{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Assignment 7: Predictive Modeling of Housing Prices in Philadelphia\n", "\n", "Jack Rummler | MUSA550 | Dec. 7, 2022" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\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, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\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) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\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\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\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 }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\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 + 2;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5.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.jsdelivr.net/npm/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) {\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) >= 0) {\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 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.jsdelivr.net/npm/notyf@3/notyf.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css\", \"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css\"];\n var inline_js = [ function(Bokeh) {\n inject_raw_css(\".bk.alert {\\n padding: 0.75rem 1.25rem;\\n border: 1px solid transparent;\\n border-radius: 0.25rem;\\n /* Don't set margin because that will not render correctly! */\\n /* margin-bottom: 1rem; */\\n margin-top: 15px;\\n margin-bottom: 15px;\\n}\\n.bk.alert a {\\n color: rgb(11, 46, 19); /* #002752; */\\n font-weight: 700;\\n text-decoration: rgb(11, 46, 19);\\n text-decoration-color: rgb(11, 46, 19);\\n text-decoration-line: none;\\n text-decoration-style: solid;\\n text-decoration-thickness: auto;\\n }\\n.bk.alert a:hover {\\n color: rgb(11, 46, 19);\\n font-weight: 700;\\n text-decoration: underline;\\n}\\n\\n.bk.alert-primary {\\n color: #004085;\\n background-color: #cce5ff;\\n border-color: #b8daff;\\n}\\n.bk.alert-primary hr {\\n border-top-color: #9fcdff;\\n}\\n\\n.bk.alert-secondary {\\n color: #383d41;\\n background-color: #e2e3e5;\\n border-color: #d6d8db;\\n }\\n.bk.alert-secondary hr {\\n border-top-color: #c8cbcf;\\n}\\n\\n.bk.alert-success {\\n color: #155724;\\n background-color: #d4edda;\\n border-color: #c3e6cb;\\n }\\n\\n.bk.alert-success hr {\\n border-top-color: #b1dfbb;\\n}\\n\\n.bk.alert-info {\\n color: #0c5460;\\n background-color: #d1ecf1;\\n border-color: #bee5eb;\\n }\\n.bk.alert-info hr {\\n border-top-color: #abdde5;\\n}\\n\\n.bk.alert-warning {\\n color: #856404;\\n background-color: #fff3cd;\\n border-color: #ffeeba;\\n }\\n\\n.bk.alert-warning hr {\\n border-top-color: #ffe8a1;\\n}\\n\\n.bk.alert-danger {\\n color: #721c24;\\n background-color: #f8d7da;\\n border-color: #f5c6cb;\\n}\\n.bk.alert-danger hr {\\n border-top-color: #f1b0b7;\\n}\\n\\n.bk.alert-light {\\n color: #818182;\\n background-color: #fefefe;\\n border-color: #fdfdfe;\\n }\\n.bk.alert-light hr {\\n border-top-color: #ececf6;\\n}\\n\\n.bk.alert-dark {\\n color: #1b1e21;\\n background-color: #d6d8d9;\\n border-color: #c6c8ca;\\n }\\n.bk.alert-dark hr {\\n border-top-color: #b9bbbe;\\n}\\n\\n\\n/* adjf\\u00e6l */\\n\\n.bk.alert-primary a {\\n color: #002752;\\n}\\n\\n.bk.alert-secondary a {\\n color: #202326;\\n}\\n\\n\\n.bk.alert-success a {\\n color: #0b2e13;\\n}\\n\\n\\n.bk.alert-info a {\\n color: #062c33;\\n}\\n\\n\\n.bk.alert-warning a {\\n color: #533f03;\\n}\\n\\n\\n.bk.alert-danger a {\\n color: #491217;\\n}\\n\\n.bk.alert-light a {\\n color: #686868;\\n}\\n\\n.bk.alert-dark a {\\n color: #040505;\\n}\\n\");\n }, function(Bokeh) {\n inject_raw_css(\".bk.card {\\n border: 1px solid rgba(0,0,0,.125);\\n border-radius: 0.25rem;\\n}\\n.bk.accordion {\\n border: 1px solid rgba(0,0,0,.125);\\n}\\n.bk.card-header {\\n align-items: center;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-radius: 0.25rem;\\n display: inline-flex;\\n justify-content: start;\\n width: 100%;\\n}\\n.bk.accordion-header {\\n align-items: center;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-radius: 0;\\n display: flex;\\n justify-content: start;\\n width: 100%;\\n}\\n.bk.card-button {\\n background-color: transparent;\\n margin-left: 0.5em;\\n}\\n.bk.card-header-row {\\n position: relative !important;\\n}\\n.bk.card-title {\\n align-items: center;\\n font-size: 1.4em;\\n font-weight: bold;\\n overflow-wrap: break-word;\\n}\\n.bk.card-header-row > .bk {\\n overflow-wrap: break-word;\\n text-align: center;\\n}\\n\");\n }, function(Bokeh) {\n inject_raw_css(\"table.panel-df {\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n border-collapse: collapse;\\n border-spacing: 0;\\n color: black;\\n font-size: 12px;\\n table-layout: fixed;\\n width: 100%;\\n}\\n\\n.panel-df tr, .panel-df th, .panel-df td {\\n text-align: right;\\n vertical-align: middle;\\n padding: 0.5em 0.5em !important;\\n line-height: normal;\\n white-space: normal;\\n max-width: none;\\n border: none;\\n}\\n\\n.panel-df tbody {\\n display: table-row-group;\\n vertical-align: middle;\\n border-color: inherit;\\n}\\n\\n.panel-df tbody tr:nth-child(odd) {\\n background: #f5f5f5;\\n}\\n\\n.panel-df thead {\\n border-bottom: 1px solid black;\\n vertical-align: bottom;\\n}\\n\\n.panel-df tr:hover {\\n background: lightblue !important;\\n cursor: pointer;\\n}\\n\");\n }, function(Bokeh) {\n inject_raw_css(\".bk.debugger-card {\\n border: 1px solid rgba(0,0,0,1);\\n color: rgba(255,255,255,1);\\n background-color: rgba(0,0,0,1);\\n border-radius: 0rem;\\n}\\n.bk.debugger-card-header {\\n align-items: center;\\n text-align: left;\\n background-color: rgba(0, 0, 0, 1)!important;\\n color: rgba(255, 255, 255, 1);\\n border-radius: 0rem;\\n display: inline-flex;\\n justify-content: start;\\n width: 100%;\\n}\\n.bk.debugger-card-button {\\n background-color: transparent;\\n color: rgba(255, 255, 255, 1);\\n margin-left: 0.5em;\\n}\\n.bk.debugger-card-title {\\n align-items: center;\\n text-align: left;\\n color: rgba(255, 255, 255, 1);\\n font-size: 1em;\\n overflow-wrap: break-word;\\n}\\n\\n/* Special debugger buttons for clearing and saving */\\n.bk button.special_btn {\\n width: 25px;\\n height: 25px;\\n background-color: black;\\n color: white;\\n display: inline-block;\\n}\\n\\n\\n.bk button.special_btn .tooltiptext {\\n visibility: hidden;\\n width: 100px;\\n background-color: darkgray;\\n color: #fff;\\n text-align: center;\\n border-radius: 6px;\\n padding: 5px 0;\\n\\n /* Position the tooltip */\\n position: relative;\\n z-index: 1;\\n top: 100%;\\n left: 100%;\\n margin-left: -100px;\\n display: block;\\n}\\n\\n.bk button.special_btn:hover .tooltiptext {\\n visibility: visible;\\n}\\n\\n\\n\\n.bk button.clear_btn:hover .shown { display: none;}\\n.bk button.clear_btn:hover:before { content: \\\"\\u2611\\\"; }\\n\");\n }, function(Bokeh) {\n inject_raw_css(\".json-formatter-row {\\n font-family: monospace;\\n}\\n.json-formatter-row,\\n.json-formatter-row a,\\n.json-formatter-row a:hover {\\n color: black;\\n text-decoration: none;\\n}\\n.json-formatter-row .json-formatter-row {\\n margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty {\\n opacity: 0.5;\\n margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n display: none;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n content: \\\"No properties\\\";\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n content: \\\"[]\\\";\\n}\\n.json-formatter-row .json-formatter-string,\\n.json-formatter-row .json-formatter-stringifiable {\\n color: green;\\n white-space: pre;\\n word-wrap: break-word;\\n}\\n.json-formatter-row .json-formatter-number {\\n color: blue;\\n}\\n.json-formatter-row .json-formatter-boolean {\\n color: red;\\n}\\n.json-formatter-row .json-formatter-null {\\n color: #855A00;\\n}\\n.json-formatter-row .json-formatter-undefined {\\n color: #ca0b69;\\n}\\n.json-formatter-row .json-formatter-function {\\n color: #FF20ED;\\n}\\n.json-formatter-row .json-formatter-date {\\n background-color: rgba(0, 0, 0, 0.05);\\n}\\n.json-formatter-row .json-formatter-url {\\n text-decoration: underline;\\n color: blue;\\n cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-bracket {\\n color: blue;\\n}\\n.json-formatter-row .json-formatter-key {\\n color: #00008B;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-toggler-link {\\n cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-toggler {\\n line-height: 1.2rem;\\n font-size: 0.7rem;\\n vertical-align: middle;\\n opacity: 0.6;\\n cursor: pointer;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-toggler:after {\\n display: inline-block;\\n transition: transform 100ms ease-in;\\n content: \\\"\\\\25BA\\\";\\n}\\n.json-formatter-row > a > .json-formatter-preview-text {\\n opacity: 0;\\n transition: opacity 0.15s ease-in;\\n font-style: italic;\\n}\\n.json-formatter-row:hover > a > .json-formatter-preview-text {\\n opacity: 0.6;\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n transform: rotate(90deg);\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n display: inline-block;\\n}\\n.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n display: none;\\n}\\n.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n display: block;\\n}\\n.json-formatter-dark.json-formatter-row {\\n font-family: monospace;\\n}\\n.json-formatter-dark.json-formatter-row,\\n.json-formatter-dark.json-formatter-row a,\\n.json-formatter-dark.json-formatter-row a:hover {\\n color: white;\\n text-decoration: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-row {\\n margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty {\\n opacity: 0.5;\\n margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n display: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n content: \\\"No properties\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n content: \\\"[]\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-string,\\n.json-formatter-dark.json-formatter-row .json-formatter-stringifiable {\\n color: #31F031;\\n white-space: pre;\\n word-wrap: break-word;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-number {\\n color: #66C2FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-boolean {\\n color: #EC4242;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-null {\\n color: #EEC97D;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-undefined {\\n color: #ef8fbe;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-function {\\n color: #FD48CB;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-date {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-url {\\n text-decoration: underline;\\n color: #027BFF;\\n cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-bracket {\\n color: #9494FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-key {\\n color: #23A0DB;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler-link {\\n cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler {\\n line-height: 1.2rem;\\n font-size: 0.7rem;\\n vertical-align: middle;\\n opacity: 0.6;\\n cursor: pointer;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler:after {\\n display: inline-block;\\n transition: transform 100ms ease-in;\\n content: \\\"\\\\25BA\\\";\\n}\\n.json-formatter-dark.json-formatter-row > a > .json-formatter-preview-text {\\n opacity: 0;\\n transition: opacity 0.15s ease-in;\\n font-style: italic;\\n}\\n.json-formatter-dark.json-formatter-row:hover > a > .json-formatter-preview-text {\\n opacity: 0.6;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n transform: rotate(90deg);\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n display: inline-block;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n display: none;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n display: block;\\n}\\n\");\n }, function(Bokeh) {\n inject_raw_css(\".bk.pn-loading:before {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n content: '';\\n z-index: 1000;\\n background-color: rgb(255,255,255,0.50);\\n border-color: lightgray;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: auto 50%;\\n border-width: 1px;\\n cursor: progress;\\n}\\n.bk.pn-loading.arcs:hover:before {\\n cursor: progress;\\n}\\n\");\n }, function(Bokeh) {\n inject_raw_css(\".codehilite .hll { background-color: #ffffcc }\\n.codehilite { background: #f8f8f8; }\\n.codehilite .c { color: #408080; font-style: italic } /* Comment */\\n.codehilite .err { border: 1px solid #FF0000 } /* Error */\\n.codehilite .k { color: #008000; font-weight: bold } /* Keyword */\\n.codehilite .o { color: #666666 } /* Operator */\\n.codehilite .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\\n.codehilite .cm { color: #408080; font-style: italic } /* Comment.Multiline */\\n.codehilite .cp { color: #BC7A00 } /* Comment.Preproc */\\n.codehilite .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\\n.codehilite .c1 { color: #408080; font-style: italic } /* Comment.Single */\\n.codehilite .cs { color: #408080; font-style: italic } /* Comment.Special */\\n.codehilite .gd { color: #A00000 } /* Generic.Deleted */\\n.codehilite .ge { font-style: italic } /* Generic.Emph */\\n.codehilite .gr { color: #FF0000 } /* Generic.Error */\\n.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */\\n.codehilite .gi { color: #00A000 } /* Generic.Inserted */\\n.codehilite .go { color: #888888 } /* Generic.Output */\\n.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\\n.codehilite .gs { font-weight: bold } /* Generic.Strong */\\n.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\\n.codehilite .gt { color: #0044DD } /* Generic.Traceback */\\n.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\\n.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\\n.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\\n.codehilite .kp { color: #008000 } /* Keyword.Pseudo */\\n.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\\n.codehilite .kt { color: #B00040 } /* Keyword.Type */\\n.codehilite .m { color: #666666 } /* Literal.Number */\\n.codehilite .s { color: #BA2121 } /* Literal.String */\\n.codehilite .na { color: #7D9029 } /* Name.Attribute */\\n.codehilite .nb { color: #008000 } /* Name.Builtin */\\n.codehilite .nc { color: #0000FF; font-weight: bold } /* Name.Class */\\n.codehilite .no { color: #880000 } /* Name.Constant */\\n.codehilite .nd { color: #AA22FF } /* Name.Decorator */\\n.codehilite .ni { color: #999999; font-weight: bold } /* Name.Entity */\\n.codehilite .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\\n.codehilite .nf { color: #0000FF } /* Name.Function */\\n.codehilite .nl { color: #A0A000 } /* Name.Label */\\n.codehilite .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\\n.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */\\n.codehilite .nv { color: #19177C } /* Name.Variable */\\n.codehilite .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\\n.codehilite .w { color: #bbbbbb } /* Text.Whitespace */\\n.codehilite .mb { color: #666666 } /* Literal.Number.Bin */\\n.codehilite .mf { color: #666666 } /* Literal.Number.Float */\\n.codehilite .mh { color: #666666 } /* Literal.Number.Hex */\\n.codehilite .mi { color: #666666 } /* Literal.Number.Integer */\\n.codehilite .mo { color: #666666 } /* Literal.Number.Oct */\\n.codehilite .sa { color: #BA2121 } /* Literal.String.Affix */\\n.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */\\n.codehilite .sc { color: #BA2121 } /* Literal.String.Char */\\n.codehilite .dl { color: #BA2121 } /* Literal.String.Delimiter */\\n.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\\n.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */\\n.codehilite .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\\n.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */\\n.codehilite .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\\n.codehilite .sx { color: #008000 } /* Literal.String.Other */\\n.codehilite .sr { color: #BB6688 } /* Literal.String.Regex */\\n.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */\\n.codehilite .ss { color: #19177C } /* Literal.String.Symbol */\\n.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */\\n.codehilite .fm { color: #0000FF } /* Name.Function.Magic */\\n.codehilite .vc { color: #19177C } /* Name.Variable.Class */\\n.codehilite .vg { color: #19177C } /* Name.Variable.Global */\\n.codehilite .vi { color: #19177C } /* Name.Variable.Instance */\\n.codehilite .vm { color: #19177C } /* Name.Variable.Magic */\\n.codehilite .il { color: #666666 } /* Literal.Number.Integer.Long */\\n\\n.markdown h1 { margin-block-start: 0.34em }\\n.markdown h2 { margin-block-start: 0.42em }\\n.markdown h3 { margin-block-start: 0.5em }\\n.markdown h4 { margin-block-start: 0.67em }\\n.markdown h5 { margin-block-start: 0.84em }\\n.markdown h6 { margin-block-start: 1.17em }\\n.markdown ul { padding-inline-start: 2em }\\n.markdown ol { padding-inline-start: 2em }\\n.markdown strong { font-weight: 600 }\\n.markdown a { color: -webkit-link }\\n.markdown a { color: -moz-hyperlinkText }\\n\");\n }, function(Bokeh) {\n inject_raw_css(\".bk.panel-widget-box {\\n min-height: 20px;\\n background-color: #f5f5f5;\\n border: 1px solid #e3e3e3;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.05);\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.05);\\n overflow-x: hidden;\\n overflow-y: hidden;\\n}\\n\\n.scrollable {\\n overflow: scroll;\\n}\\n\\nprogress {\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n border: none;\\n height: 20px;\\n background-color: whiteSmoke;\\n border-radius: 3px;\\n box-shadow: 0 2px 3px rgba(0,0,0,.5) inset;\\n color: royalblue;\\n position: relative;\\n margin: 0 0 1.5em;\\n}\\n\\nprogress[value]::-webkit-progress-bar {\\n background-color: whiteSmoke;\\n border-radius: 3px;\\n box-shadow: 0 2px 3px rgba(0,0,0,.5) inset;\\n}\\n\\nprogress[value]::-webkit-progress-value {\\n position: relative;\\n background-size: 35px 20px, 100% 100%, 100% 100%;\\n border-radius:3px;\\n}\\n\\nprogress.active:not([value])::before {\\n background-position: 10%;\\n animation-name: stripes;\\n animation-duration: 3s;\\n animation-timing-function: linear;\\n animation-iteration-count: infinite;\\n}\\n\\nprogress[value]::-moz-progress-bar {\\n background-size: 35px 20px, 100% 100%, 100% 100%;\\n border-radius:3px;\\n}\\n\\nprogress:not([value])::-moz-progress-bar {\\n border-radius:3px;\\n background: linear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, 0.2) 33%, rgba(0, 0, 0, 0.2) 66%, transparent 66%) left/2.5em 1.5em;\\n}\\n\\nprogress.active:not([value])::-moz-progress-bar {\\n background-position: 10%;\\n animation-name: stripes;\\n animation-duration: 3s;\\n animation-timing-function: linear;\\n animation-iteration-count: infinite;\\n}\\n\\nprogress.active:not([value])::-webkit-progress-bar {\\n background-position: 10%;\\n animation-name: stripes;\\n animation-duration: 3s;\\n animation-timing-function: linear;\\n animation-iteration-count: infinite;\\n}\\n\\nprogress.primary[value]::-webkit-progress-value { background-color: #007bff; }\\nprogress.primary:not([value])::before { background-color: #007bff; }\\nprogress.primary:not([value])::-webkit-progress-bar { background-color: #007bff; }\\nprogress.primary::-moz-progress-bar { background-color: #007bff; }\\n\\nprogress.secondary[value]::-webkit-progress-value { background-color: #6c757d; }\\nprogress.secondary:not([value])::before { background-color: #6c757d; }\\nprogress.secondary:not([value])::-webkit-progress-bar { background-color: #6c757d; }\\nprogress.secondary::-moz-progress-bar { background-color: #6c757d; }\\n\\nprogress.success[value]::-webkit-progress-value { background-color: #28a745; }\\nprogress.success:not([value])::before { background-color: #28a745; }\\nprogress.success:not([value])::-webkit-progress-bar { background-color: #28a745; }\\nprogress.success::-moz-progress-bar { background-color: #28a745; }\\n\\nprogress.danger[value]::-webkit-progress-value { background-color: #dc3545; }\\nprogress.danger:not([value])::before { background-color: #dc3545; }\\nprogress.danger:not([value])::-webkit-progress-bar { background-color: #dc3545; }\\nprogress.danger::-moz-progress-bar { background-color: #dc3545; }\\n\\nprogress.warning[value]::-webkit-progress-value { background-color: #ffc107; }\\nprogress.warning:not([value])::before { background-color: #ffc107; }\\nprogress.warning:not([value])::-webkit-progress-bar { background-color: #ffc107; }\\nprogress.warning::-moz-progress-bar { background-color: #ffc107; }\\n\\nprogress.info[value]::-webkit-progress-value { background-color: #17a2b8; }\\nprogress.info:not([value])::before { background-color: #17a2b8; }\\nprogress.info:not([value])::-webkit-progress-bar { background-color: #17a2b8; }\\nprogress.info::-moz-progress-bar { background-color: #17a2b8; }\\n\\nprogress.light[value]::-webkit-progress-value { background-color: #f8f9fa; }\\nprogress.light:not([value])::before { background-color: #f8f9fa; }\\nprogress.light:not([value])::-webkit-progress-bar { background-color: #f8f9fa; }\\nprogress.light::-moz-progress-bar { background-color: #f8f9fa; }\\n\\nprogress.dark[value]::-webkit-progress-value { background-color: #343a40; }\\nprogress.dark:not([value])::-webkit-progress-bar { background-color: #343a40; }\\nprogress.dark:not([value])::before { background-color: #343a40; }\\nprogress.dark::-moz-progress-bar { background-color: #343a40; }\\n\\nprogress:not([value])::-webkit-progress-bar {\\n border-radius: 3px;\\n background: linear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, 0.2) 33%, rgba(0, 0, 0, 0.2) 66%, transparent 66%) left/2.5em 1.5em;\\n}\\nprogress:not([value])::before {\\n content:\\\" \\\";\\n position:absolute;\\n height: 20px;\\n top:0;\\n left:0;\\n right:0;\\n bottom:0;\\n border-radius: 3px;\\n background: linear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, 0.2) 33%, rgba(0, 0, 0, 0.2) 66%, transparent 66%) left/2.5em 1.5em;\\n}\\n\\n@keyframes stripes {\\n from {background-position: 0%}\\n to {background-position: 100%}\\n}\\n\\n.bk-root .bk.loader {\\n overflow: hidden;\\n}\\n\\n.bk.loader::after {\\n content: \\\"\\\";\\n border-radius: 50%;\\n -webkit-mask-image: radial-gradient(transparent 50%, rgba(0, 0, 0, 1) 54%);\\n width: 100%;\\n height: 100%;\\n left: 0;\\n top: 0;\\n position: absolute;\\n}\\n\\n.bk-root .bk.loader.dark::after {\\n background: #0f0f0f;\\n}\\n\\n.bk-root .bk.loader.light::after {\\n background: #f0f0f0;\\n}\\n\\n.bk-root .bk.loader.spin::after {\\n animation: spin 2s linear infinite;\\n}\\n\\n.bk-root div.bk.loader.spin.primary-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #007bff 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.secondary-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #6c757d 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.success-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #28a745 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.danger-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #dc3545 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.warning-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #ffc107 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.info-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #17a2b8 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.light-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #f8f9fa 50%);\\n}\\n\\n.bk-root div.bk.loader.dark-light::after {\\n background: linear-gradient(135deg, #f0f0f0 50%, transparent 50%), linear-gradient(45deg, #f0f0f0 50%, #343a40 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.primary-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #007bff 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.secondary-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #6c757d 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.success-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #28a745 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.danger-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #dc3545 50%)\\n}\\n\\n.bk-root div.bk.loader.spin.warning-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #ffc107 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.info-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #17a2b8 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.light-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #f8f9fa 50%);\\n}\\n\\n.bk-root div.bk.loader.spin.dark-dark::after {\\n background: linear-gradient(135deg, #0f0f0f 50%, transparent 50%), linear-gradient(45deg, #0f0f0f 50%, #343a40 50%);\\n}\\n\\n/* Safari */\\n@-webkit-keyframes spin {\\n 0% { -webkit-transform: rotate(0deg); }\\n 100% { -webkit-transform: rotate(360deg); }\\n}\\n\\n@keyframes spin {\\n 0% { transform: rotate(0deg); }\\n 100% { transform: rotate(360deg); }\\n}\\n\\n.dot div {\\n height: 100%;\\n width: 100%;\\n border: 1px solid #000 !important;\\n background-color: #fff;\\n border-radius: 50%;\\n display: inline-block;\\n}\\n\\n.dot-filled div {\\n height: 100%;\\n width: 100%;\\n border: 1px solid #000 !important;\\n border-radius: 50%;\\n display: inline-block;\\n}\\n\\n.dot-filled.primary div {\\n background-color: #007bff;\\n}\\n\\n.dot-filled.secondary div {\\n background-color: #6c757d;\\n}\\n\\n.dot-filled.success div {\\n background-color: #28a745;\\n}\\n\\n.dot-filled.danger div {\\n background-color: #dc3545;\\n}\\n\\n.dot-filled.warning div {\\n background-color: #ffc107;\\n}\\n\\n.dot-filled.info div {\\n background-color: #17a2b8;\\n}\\n\\n.dot-filled.dark div {\\n background-color: #343a40;\\n}\\n\\n.dot-filled.light div {\\n background-color: #f8f9fa;\\n}\\n\\n/* Slider editor */\\n.slider-edit .bk-input-group .bk-input {\\n border: 0;\\n border-radius: 0;\\n min-height: 0;\\n padding-left: 0;\\n padding-right: 0;\\n font-weight: bold;\\n}\\n\\n.slider-edit .bk-input-group .bk-spin-wrapper {\\n display: contents;\\n}\\n\\n.slider-edit .bk-input-group .bk-spin-wrapper .bk.bk-spin-btn-up {\\n top: -6px;\\n}\\n\\n.slider-edit .bk-input-group .bk-spin-wrapper .bk.bk-spin-btn-down {\\n bottom: 3px;\\n}\\n\\n/* JSON Pane */\\n.bk-root .json-formatter-row .json-formatter-string, .bk-root .json-formatter-row .json-formatter-stringifiable {\\n white-space: pre-wrap;\\n}\\n\\n.ql-bubble .ql-editor {\\n border: 1px solid #ccc;\\n}\\n\");\n }, function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arcs:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiBub25lOyBkaXNwbGF5OiBibG9jazsgc2hhcGUtcmVuZGVyaW5nOiBhdXRvOyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4gIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjMyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZT0iI2MzYzNjMyIgc3Ryb2tlLWRhc2hhcnJheT0iNTAuMjY1NDgyNDU3NDM2NjkgNTAuMjY1NDgyNDU3NDM2NjkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+ICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxcyIga2V5VGltZXM9IjA7MSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCI+PC9hbmltYXRlVHJhbnNmb3JtPiAgPC9jaXJjbGU+PC9zdmc+\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n }, function(Bokeh) {\n /* BEGIN bokeh.min.js */\n /*!\n * Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n * \n * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * Neither the name of Anaconda nor the names of any contributors\n * may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n * THE POSSIBILITY OF SUCH DAMAGE.\n */\n (function(root, factory) {\n const bokeh = factory();\n bokeh.__bokeh__ = true;\n if (typeof root.Bokeh === \"undefined\" || typeof root.Bokeh.__bokeh__ === \"undefined\") {\n root.Bokeh = bokeh;\n }\n const Bokeh = root.Bokeh;\n Bokeh[bokeh.version] = bokeh;\n })(this, function() {\n let define;\n const parent_require = typeof require === \"function\" && require\n return (function(modules, entry, aliases, externals) {\n if (aliases === undefined) aliases = {};\n if (externals === undefined) externals = {};\n\n const cache = {};\n\n const normalize = function(name) {\n if (typeof name === \"number\")\n return name;\n\n if (name === \"bokehjs\")\n return entry;\n\n if (!externals[name]) {\n const prefix = \"@bokehjs/\"\n if (name.slice(0, prefix.length) === prefix)\n name = name.slice(prefix.length)\n }\n\n const alias = aliases[name]\n if (alias != null)\n return alias;\n\n const trailing = name.length > 0 && name[name.lenght-1] === \"/\";\n const index = aliases[name + (trailing ? \"\" : \"/\") + \"index\"];\n if (index != null)\n return index;\n\n return name;\n }\n\n const require = function(name) {\n let mod = cache[name];\n if (!mod) {\n const id = normalize(name);\n\n mod = cache[id];\n if (!mod) {\n if (!modules[id]) {\n if (externals[id] === false || (externals[id] == true && parent_require)) {\n try {\n mod = {exports: externals[id] ? parent_require(id) : {}};\n cache[id] = cache[name] = mod;\n return mod.exports;\n } catch (e) {}\n }\n\n const err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n mod = {exports: {}};\n cache[id] = cache[name] = mod;\n\n function __esModule() {\n Object.defineProperty(mod.exports, \"__esModule\", {value: true});\n }\n\n function __esExport(name, value) {\n Object.defineProperty(mod.exports, name, {\n enumerable: true, get: function () { return value; }\n });\n }\n\n modules[id].call(mod.exports, require, mod, mod.exports, __esModule, __esExport);\n } else {\n cache[name] = mod;\n }\n }\n\n return mod.exports;\n }\n require.resolve = function(name) {\n return \"\"\n }\n\n const main = require(entry);\n main.require = require;\n\n if (typeof Proxy !== \"undefined\") {\n // allow Bokeh.loader[\"@bokehjs/module/name\"] syntax\n main.loader = new Proxy({}, {\n get: function(_obj, module) {\n return require(module);\n }\n });\n }\n\n main.register_plugin = function(plugin_modules, plugin_entry, plugin_aliases, plugin_externals) {\n if (plugin_aliases === undefined) plugin_aliases = {};\n if (plugin_externals === undefined) plugin_externals = {};\n\n for (let name in plugin_modules) {\n modules[name] = plugin_modules[name];\n }\n\n for (let name in plugin_aliases) {\n aliases[name] = plugin_aliases[name];\n }\n\n for (let name in plugin_externals) {\n externals[name] = plugin_externals[name];\n }\n\n const plugin = require(plugin_entry);\n\n for (let name in plugin) {\n main[name] = plugin[name];\n }\n\n return plugin;\n }\n\n return main;\n })\n ([\n function _(t,_,n,o,r){o();(0,t(1).__exportStar)(t(2),n)},\n function _(t,e,r,n,o){n();var a=function(t,e){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},a(t,e)};r.__extends=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function r(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)};function i(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function c(t,e){var r=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function u(t){return this instanceof u?(this.v=t,this):new u(t)}r.__assign=function(){return r.__assign=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=0;c--)(o=t[c])&&(i=(a<3?o(i):a>3?o(e,r,i):o(e,r))||i);return a>3&&i&&Object.defineProperty(e,r,i),i},r.__param=function(t,e){return function(r,n){e(r,n,t)}},r.__metadata=function(t,e){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(t,e)},r.__awaiter=function(t,e,r,n){return new(r||(r=Promise))((function(o,a){function i(t){try{u(n.next(t))}catch(t){a(t)}}function c(t){try{u(n.throw(t))}catch(t){a(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,c)}u((n=n.apply(t,e||[])).next())}))},r.__generator=function(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(r)throw new TypeError(\"Generator is already executing.\");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]1||c(t,e)}))})}function c(t,e){try{(r=o[t](e)).value instanceof u?Promise.resolve(r.value.v).then(f,l):s(a[0][2],r)}catch(t){s(a[0][3],t)}var r}function f(t){c(\"next\",t)}function l(t){c(\"throw\",t)}function s(t,e){t(e),a.shift(),a.length&&c(a[0][0],a[0][1])}},r.__asyncDelegator=function(t){var e,r;return e={},n(\"next\"),n(\"throw\",(function(t){throw t})),n(\"return\"),e[Symbol.iterator]=function(){return this},e;function n(n,o){e[n]=t[n]?function(e){return(r=!r)?{value:u(t[n](e)),done:\"return\"===n}:o?o(e):e}:o}},r.__asyncValues=function(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=i(t),e={},n(\"next\"),n(\"throw\"),n(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise((function(n,o){(function(t,e,r,n){Promise.resolve(n).then((function(e){t({value:e,done:r})}),e)})(n,o,(e=t[r](e)).done,e.value)}))}}},r.__makeTemplateObject=function(t,e){return Object.defineProperty?Object.defineProperty(t,\"raw\",{value:e}):t.raw=e,t};var f=Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e};r.__importStar=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)\"default\"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&(0,r.__createBinding)(e,t,n);return f(e,t),e},r.__importDefault=function(t){return t&&t.__esModule?t:{default:t}},r.__classPrivateFieldGet=function(t,e,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!n:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(t):n?n.value:e.get(t)},r.__classPrivateFieldSet=function(t,e,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!o:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(t,r):o?o.value=r:e.set(t,r),r}},\n function _(e,t,o,s,l){s();const n=e(1);l(\"version\",e(3).version),l(\"index\",e(4).index),o.embed=(0,n.__importStar)(e(4)),o.protocol=(0,n.__importStar)(e(406)),o._testing=(0,n.__importStar)(e(407));var r=e(19);l(\"logger\",r.logger),l(\"set_log_level\",r.set_log_level),l(\"settings\",e(28).settings),l(\"Models\",e(7).Models),l(\"documents\",e(5).documents),l(\"safely\",e(408).safely)},\n function _(n,i,o,c,e){c(),o.version=\"2.4.3\"},\n function _(e,o,t,n,s){n();const d=e(5),r=e(19),_=e(34),c=e(13),i=e(8),a=e(16),u=e(397),l=e(399),m=e(398);var f=e(397);s(\"add_document_standalone\",f.add_document_standalone),s(\"index\",f.index),s(\"add_document_from_session\",e(399).add_document_from_session);var g=e(404);async function w(e,o,t,n){(0,i.isString)(e)&&(e=JSON.parse((0,_.unescape)(e)));const s={};for(const[o,t]of(0,c.entries)(e))s[o]=d.Document.from_json(t);const a=[];for(const e of o){const o=(0,m._resolve_element)(e),d=(0,m._resolve_root_elements)(e);if(null!=e.docid)a.push(await(0,u.add_document_standalone)(s[e.docid],o,d,e.use_for_title));else{if(null==e.token)throw new Error(\"Error rendering Bokeh items: either 'docid' or 'token' was expected.\");{const s=(0,l._get_ws_url)(t,n);r.logger.debug(`embed: computed ws url: ${s}`);try{a.push(await(0,l.add_document_from_session)(s,e.token,o,d,e.use_for_title)),console.log(\"Bokeh items were rendered successfully\")}catch(e){console.log(\"Error rendering Bokeh items:\",e)}}}}return a}s(\"embed_items_notebook\",g.embed_items_notebook),s(\"kernels\",g.kernels),s(\"BOKEH_ROOT\",e(398).BOKEH_ROOT),t.embed_item=async function(e,o){const t={},n=(0,_.uuid4)();t[n]=e.doc,null==o&&(o=e.target_id);const s=document.getElementById(o);null!=s&&s.classList.add(m.BOKEH_ROOT);const d={roots:{[e.root_id]:o},root_ids:[e.root_id],docid:n};await(0,a.defer)();const[r]=await w(t,[d]);return r},t.embed_items=async function(e,o,t,n){return await(0,a.defer)(),w(e,o,t,n)}},\n function _(t,_,o,r,n){r();const a=t(1);(0,a.__exportStar)(t(6),o),(0,a.__exportStar)(t(35),o)},\n function _(e,t,s,o,n){o();const i=e(1),r=e(7),l=e(3),_=e(19),a=e(251),c=e(14),d=e(30),h=e(15),f=e(17),u=e(31),m=e(29),g=e(9),v=e(13),p=(0,i.__importStar)(e(77)),w=e(26),b=e(8),y=e(309),k=e(75),M=e(53),j=e(396),z=e(35);class S{constructor(e){this.document=e,this.session=null,this.subscribed_models=new Set}send_event(e){const t=new z.MessageSentEvent(this.document,\"bokeh_event\",e.to_json());this.document._trigger_on_change(t)}trigger(e){for(const t of this.subscribed_models)null!=e.origin&&e.origin!=t||t._process_event(e)}}s.EventManager=S,S.__name__=\"EventManager\",s.documents=[],s.DEFAULT_TITLE=\"Bokeh Application\";class E{constructor(e){var t;s.documents.push(this),this._init_timestamp=Date.now(),this._resolver=null!==(t=null==e?void 0:e.resolver)&&void 0!==t?t:new r.ModelResolver,this._title=s.DEFAULT_TITLE,this._roots=[],this._all_models=new Map,this._all_models_freeze_count=0,this._callbacks=new Map,this._message_callbacks=new Map,this.event_manager=new S(this),this.idle=new h.Signal0(this,\"idle\"),this._idle_roots=new WeakMap,this._interactive_timestamp=null,this._interactive_plot=null}get layoutables(){return this._roots.filter((e=>e instanceof y.LayoutDOM))}get is_idle(){for(const e of this.layoutables)if(!this._idle_roots.has(e))return!1;return!0}notify_idle(e){this._idle_roots.set(e,!0),this.is_idle&&(_.logger.info(`document idle at ${Date.now()-this._init_timestamp} ms`),this.event_manager.send_event(new a.DocumentReady),this.idle.emit())}clear(){this._push_all_models_freeze();try{for(;this._roots.length>0;)this.remove_root(this._roots[0])}finally{this._pop_all_models_freeze()}}interactive_start(e,t=null){null==this._interactive_plot&&(this._interactive_plot=e,this._interactive_plot.trigger_event(new a.LODStart)),this._interactive_finalize=t,this._interactive_timestamp=Date.now()}interactive_stop(){null!=this._interactive_plot&&(this._interactive_plot.trigger_event(new a.LODEnd),null!=this._interactive_finalize&&this._interactive_finalize()),this._interactive_plot=null,this._interactive_timestamp=null,this._interactive_finalize=null}interactive_duration(){return null==this._interactive_timestamp?-1:Date.now()-this._interactive_timestamp}destructively_move(e){if(e===this)throw new Error(\"Attempted to overwrite a document with itself\");e.clear();const t=(0,g.copy)(this._roots);this.clear();for(const e of t)if(null!=e.document)throw new Error(`Somehow we didn't detach ${e}`);if(0!=this._all_models.size)throw new Error(`this._all_models still had stuff in it: ${this._all_models}`);for(const s of t)e.add_root(s);e.set_title(this._title)}_push_all_models_freeze(){this._all_models_freeze_count+=1}_pop_all_models_freeze(){this._all_models_freeze_count-=1,0===this._all_models_freeze_count&&this._recompute_all_models()}_invalidate_all_models(){_.logger.debug(\"invalidating document models\"),0===this._all_models_freeze_count&&this._recompute_all_models()}_recompute_all_models(){let e=new Set;for(const t of this._roots)e=p.union(e,t.references());const t=new Set(this._all_models.values()),s=p.difference(t,e),o=p.difference(e,t),n=new Map;for(const t of e)n.set(t.id,t);for(const e of s)e.detach_document();for(const e of o)e.attach_document(this);this._all_models=n}roots(){return this._roots}add_root(e,t){if(_.logger.debug(`Adding root: ${e}`),!(0,g.includes)(this._roots,e)){this._push_all_models_freeze();try{this._roots.push(e)}finally{this._pop_all_models_freeze()}this._trigger_on_change(new z.RootAddedEvent(this,e,t))}}remove_root(e,t){const s=this._roots.indexOf(e);if(!(s<0)){this._push_all_models_freeze();try{this._roots.splice(s,1)}finally{this._pop_all_models_freeze()}this._trigger_on_change(new z.RootRemovedEvent(this,e,t))}}title(){return this._title}set_title(e,t){e!==this._title&&(this._title=e,this._trigger_on_change(new z.TitleChangedEvent(this,e,t)))}get_model_by_id(e){var t;return null!==(t=this._all_models.get(e))&&void 0!==t?t:null}get_model_by_name(e){const t=[];for(const s of this._all_models.values())s instanceof M.Model&&s.name==e&&t.push(s);switch(t.length){case 0:return null;case 1:return t[0];default:throw new Error(`Multiple models are named '${e}'`)}}on_message(e,t){const s=this._message_callbacks.get(e);null==s?this._message_callbacks.set(e,new Set([t])):s.add(t)}remove_on_message(e,t){var s;null===(s=this._message_callbacks.get(e))||void 0===s||s.delete(t)}_trigger_on_message(e,t){const s=this._message_callbacks.get(e);if(null!=s)for(const e of s)e(t)}on_change(e,t=!1){this._callbacks.has(e)||this._callbacks.set(e,t)}remove_on_change(e){this._callbacks.delete(e)}_trigger_on_change(e){for(const[t,s]of this._callbacks)if(!s&&e instanceof z.DocumentEventBatch)for(const s of e.events)t(s);else t(e)}_notify_change(e,t,s,o,n){this._trigger_on_change(new z.ModelChangedEvent(this,e,t,s,o,null==n?void 0:n.setter_id,null==n?void 0:n.hint))}static _instantiate_object(e,t,s,o){const n=Object.assign(Object.assign({},s),{id:e,__deferred__:!0});return new(o.get(t))(n)}static _instantiate_references_json(e,t,s){var o;const n=new Map;for(const i of e){const e=i.id,r=i.type,l=null!==(o=i.attributes)&&void 0!==o?o:{};let _=t.get(e);null==_&&(_=E._instantiate_object(e,r,l,s),null!=i.subtype&&_.set_subtype(i.subtype)),n.set(_.id,_)}return n}static _resolve_refs(e,t,s,o){function n(e){var i;if((0,f.is_ref)(e)){const o=null!==(i=t.get(e.id))&&void 0!==i?i:s.get(e.id);if(null!=o)return o;throw new Error(`reference ${JSON.stringify(e)} isn't known (not in Document?)`)}if((0,u.is_NDArray_ref)(e)){const{buffer:t,dtype:s,shape:n}=(0,u.decode_NDArray)(e,o);return(0,m.ndarray)(t,{dtype:s,shape:n})}return(0,b.isArray)(e)?function(e){const t=[];for(const s of e)t.push(n(s));return t}(e):(0,b.isPlainObject)(e)?function(e){const t={};for(const[s,o]of(0,v.entries)(e))t[s]=n(o);return t}(e):e}return n(e)}static _initialize_references_json(e,t,s,o){const n=new Map;for(const{id:i,attributes:r}of e){const e=!t.has(i),l=e?s.get(i):t.get(i),_=E._resolve_refs(r,t,s,o);l.setv(_,{silent:!0}),n.set(i,{instance:l,is_new:e})}const i=[],r=new Set;function l(e){if(e instanceof c.HasProps){if(n.has(e.id)&&!r.has(e.id)){r.add(e.id);const{instance:t,is_new:s}=n.get(e.id),{attributes:o}=t;for(const e of(0,v.values)(o))l(e);s&&(t.finalize(),i.push(t))}}else if((0,b.isArray)(e))for(const t of e)l(t);else if((0,b.isPlainObject)(e))for(const t of(0,v.values)(e))l(t)}for(const e of n.values())l(e.instance);for(const e of i)e.connect_signals()}static _event_for_attribute_change(e,t,s,o,n){if(o.get_model_by_id(e.id).property(t).syncable){const i={kind:\"ModelChanged\",model:{id:e.id},attr:t,new:s};return c.HasProps._json_record_references(o,s,n,{recursive:!0}),i}return null}static _events_to_sync_objects(e,t,s,o){const n=Object.keys(e.attributes),i=Object.keys(t.attributes),r=(0,g.difference)(n,i),l=(0,g.difference)(i,n),a=(0,g.intersection)(n,i),c=[];for(const e of r)_.logger.warn(`Server sent key ${e} but we don't seem to have it in our JSON`);for(const n of l){const i=t.attributes[n];c.push(E._event_for_attribute_change(e,n,i,s,o))}for(const n of a){const i=e.attributes[n],r=t.attributes[n];null==i&&null==r||(null==i||null==r?c.push(E._event_for_attribute_change(e,n,r,s,o)):\"data\"==n||(0,w.is_equal)(i,r)||c.push(E._event_for_attribute_change(e,n,r,s,o)))}return c.filter((e=>null!=e))}static _compute_patch_since_json(e,t){const s=t.to_json(!1);function o(e){const t=new Map;for(const s of e.roots.references)t.set(s.id,s);return t}const n=o(e),i=new Map,r=[];for(const t of e.roots.root_ids)i.set(t,n.get(t)),r.push(t);const l=o(s),_=new Map,a=[];for(const e of s.roots.root_ids)_.set(e,l.get(e)),a.push(e);if(r.sort(),a.sort(),(0,g.difference)(r,a).length>0||(0,g.difference)(a,r).length>0)throw new Error(\"Not implemented: computing add/remove of document roots\");const c=new Set;let h=[];for(const e of t._all_models.keys())if(n.has(e)){const s=E._events_to_sync_objects(n.get(e),l.get(e),t,c);h=h.concat(s)}const f=new d.Serializer({include_defaults:!1});return f.to_serializable([...c]),{references:[...f.definitions],events:h}}to_json_string(e=!0){return JSON.stringify(this.to_json(e))}to_json(e=!0){const t=new d.Serializer({include_defaults:e}),s=t.to_serializable(this._roots);return{version:l.version,title:this._title,roots:{root_ids:s.map((e=>e.id)),references:[...t.definitions]}}}static from_json_string(e){const t=JSON.parse(e);return E.from_json(t)}static from_json(e){_.logger.debug(\"Creating Document from JSON\");const t=e.version,s=-1!==t.indexOf(\"+\")||-1!==t.indexOf(\"-\"),o=`Library versions: JS (${l.version}) / Python (${t})`;s||l.version.replace(/-(dev|rc)\\./,\"$1\")==t?_.logger.debug(o):(_.logger.warn(\"JS/Python version mismatch\"),_.logger.warn(o));const n=new r.ModelResolver;null!=e.defs&&(0,j.resolve_defs)(e.defs,n);const i=e.roots,a=i.root_ids,c=i.references,d=E._instantiate_references_json(c,new Map,n);E._initialize_references_json(c,new Map,d,new Map);const h=new E({resolver:n});h._push_all_models_freeze();for(const e of a){const t=d.get(e);null!=t&&h.add_root(t)}return h._pop_all_models_freeze(),h.set_title(e.title),h}replace_with_json(e){E.from_json(e).destructively_move(this)}create_json_patch_string(e){return JSON.stringify(this.create_json_patch(e))}create_json_patch(e){for(const t of e)if(t.document!=this)throw new Error(\"Cannot create a patch using events from a different document\");const t=new d.Serializer,s=t.to_serializable(e);for(const e of this._all_models.values())t.remove_def(e);return{events:s,references:[...t.definitions]}}apply_json_patch(e,t=new Map,s){const o=e.references,n=e.events,i=E._instantiate_references_json(o,this._all_models,this._resolver);t instanceof Map||(t=new Map(t));for(const e of n)switch(e.kind){case\"RootAdded\":case\"RootRemoved\":case\"ModelChanged\":{const t=e.model.id,s=this._all_models.get(t);if(null!=s)i.set(t,s);else if(!i.has(t))throw _.logger.warn(`Got an event for unknown model ${e.model}\"`),new Error(\"event model wasn't known\");break}}const r=new Map(this._all_models),l=new Map;for(const[e,t]of i)r.has(e)||l.set(e,t);E._initialize_references_json(o,r,l,t);for(const e of n)switch(e.kind){case\"MessageSent\":{const{msg_type:s,msg_data:o}=e;let n;if(void 0===o){if(1!=t.size)throw new Error(\"expected exactly one buffer\");{const[[,e]]=t;n=e}}else n=E._resolve_refs(o,r,l,t);this._trigger_on_message(s,n);break}case\"ModelChanged\":{const o=e.model.id,n=this._all_models.get(o);if(null==n)throw new Error(`Cannot apply patch to ${o} which is not in the document`);const i=e.attr,_=E._resolve_refs(e.new,r,l,t);n.setv({[i]:_},{setter_id:s});break}case\"ColumnDataChanged\":{const o=e.column_source.id,n=this._all_models.get(o);if(null==n)throw new Error(`Cannot stream to ${o} which is not in the document`);const i=E._resolve_refs(e.new,new Map,new Map,t);if(null!=e.cols)for(const e in n.data)e in i||(i[e]=n.data[e]);n.setv({data:i},{setter_id:s,check_eq:!1});break}case\"ColumnsStreamed\":{const t=e.column_source.id,o=this._all_models.get(t);if(null==o)throw new Error(`Cannot stream to ${t} which is not in the document`);if(!(o instanceof k.ColumnDataSource))throw new Error(\"Cannot stream to non-ColumnDataSource\");const n=e.data,i=e.rollover;o.stream(n,i,s);break}case\"ColumnsPatched\":{const t=e.column_source.id,o=this._all_models.get(t);if(null==o)throw new Error(`Cannot patch ${t} which is not in the document`);if(!(o instanceof k.ColumnDataSource))throw new Error(\"Cannot patch non-ColumnDataSource\");const n=e.patches;o.patch(n,s);break}case\"RootAdded\":{const t=e.model.id,o=i.get(t);this.add_root(o,s);break}case\"RootRemoved\":{const t=e.model.id,o=i.get(t);this.remove_root(o,s);break}case\"TitleChanged\":this.set_title(e.title,s);break;default:throw new Error(`Unknown patch event ${JSON.stringify(e)}`)}}}s.Document=E,E.__name__=\"Document\"},\n function _(e,o,s,r,t){r();const l=e(1),i=e(8),d=e(13),n=e(14);s.overrides={};const a=new Map;s.Models=e=>{const o=s.Models.get(e);if(null!=o)return o;throw new Error(`Model '${e}' does not exist. This could be due to a widget or a custom model not being registered before first usage.`)},s.Models.get=e=>{var o;return null!==(o=s.overrides[e])&&void 0!==o?o:a.get(e)},s.Models.register=(e,o)=>{s.overrides[e]=o},s.Models.unregister=e=>{delete s.overrides[e]},s.Models.register_models=(e,o=!1,s)=>{var r;if(null!=e)for(const t of(0,i.isArray)(e)?e:(0,d.values)(e))if(r=t,(0,i.isObject)(r)&&r.prototype instanceof n.HasProps){const e=t.__qualified__;o||!a.has(e)?a.set(e,t):null!=s?s(e):console.warn(`Model '${e}' was already registered`)}},s.register_models=s.Models.register_models,s.Models.registered_names=()=>[...a.keys()];class _{constructor(){this._known_models=new Map}get(e,o){var r;const t=null!==(r=s.Models.get(e))&&void 0!==r?r:this._known_models.get(e);if(null!=t)return t;if(void 0!==o)return o;throw new Error(`Model '${e}' does not exist. This could be due to a widget or a custom model not being registered before first usage.`)}register(e){const o=e.__qualified__;null==this.get(o,null)?this._known_models.set(o,e):console.warn(`Model '${o}' was already registered with this resolver`)}}s.ModelResolver=_,_.__name__=\"ModelResolver\";const g=(0,l.__importStar)(e(38));(0,s.register_models)(g);const u=(0,l.__importStar)(e(392));(0,s.register_models)(u)},\n function _(n,t,r,e,i){e();\n // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n // Underscore may be freely distributed under the MIT license.\n const o=n(9),u=Object.prototype.toString;function c(n){return!0===n||!1===n||\"[object Boolean]\"===u.call(n)}function f(n){return\"[object Number]\"===u.call(n)}function l(n){return\"[object String]\"===u.call(n)}function s(n){return\"symbol\"==typeof n}function a(n){const t=typeof n;return\"function\"===t||\"object\"===t&&!!n}function b(n){return a(n)&&void 0!==n[Symbol.iterator]}r.isBoolean=c,r.isNumber=f,r.isInteger=function(n){return f(n)&&Number.isInteger(n)},r.isString=l,r.isSymbol=s,r.isPrimitive=function(n){return null===n||c(n)||f(n)||l(n)||s(n)},r.isFunction=function(n){return\"[object Function]\"===u.call(n)},r.isArray=function(n){return Array.isArray(n)},r.isArrayOf=function(n,t){return(0,o.every)(n,t)},r.isArrayableOf=function(n,t){for(let r=0,e=n.length;r0,\"'step' must be a positive number\"),null==t&&(t=n,n=0);const{max:r,ceil:o,abs:i}=Math,c=n<=t?e:-e,f=r(o(i(t-n)/e),0),s=new Array(f);for(let t=0;t=0?t:n.length+t]},e.zip=function(...n){if(0==n.length)return[];const t=(0,c.min)(n.map((n=>n.length))),e=n.length,r=new Array(t);for(let o=0;on.length))),r=Array(e);for(let n=0;nn[t]))},e.argmax=function(n){return(0,c.max_by)(m(n.length),(t=>n[t]))},e.sort_by=function(n,t){const e=n.map(((n,e)=>({value:n,index:e,key:t(n)})));return e.sort(((n,t)=>{const e=n.key,r=t.key;if(e!==r){if(e>r||void 0===e)return 1;if(en.value))},e.uniq=function(n){const t=new Set;for(const e of n)t.add(e);return[...t]},e.uniq_by=function(n,t){const e=[],r=[];for(const o of n){const n=t(o);l(r,n)||(r.push(n),e.push(o))}return e},e.union=function(...n){const t=new Set;for(const e of n)for(const n of e)t.add(n);return[...t]},e.intersection=function(n,...t){const e=[];n:for(const r of n)if(!l(e,r)){for(const n of t)if(!l(n,r))continue n;e.push(r)}return e},e.difference=function(n,...t){const e=a(t);return n.filter((n=>!l(e,n)))},e.remove_at=function(n,t){const e=s(n);return e.splice(t,1),e},e.remove_by=function(n,t){for(let e=0;e2*a;)n-=2*a;return n}function c(n,t){return u(n-t)}function f(){return Math.random()}function i(n){switch(n){case\"deg\":return a/180;case\"rad\":return 1;case\"grad\":return a/200;case\"turn\":return 2*a}}r.angle_norm=u,r.angle_dist=c,r.angle_between=function(n,t,r,e=!1){const o=c(t,r);if(0==o)return!1;if(o==2*a)return!0;const f=u(n),i=c(t,f)<=o&&c(f,r)<=o;return e?!i:i},r.random=f,r.randomIn=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},r.atan2=function(n,t){return Math.atan2(t[1]-n[1],t[0]-n[0])},r.radians=function(n){return n*(a/180)},r.degrees=function(n){return n/(a/180)},r.resolve_angle=function(n,t){return-i(t)*n},r.to_radians_coeff=i,r.rnorm=function(n,t){let r,e;for(;r=f(),e=f(),e=(2*e-1)*Math.sqrt(1/Math.E*2),!(-4*r*r*Math.log(r)>=e*e););let o=e/r;return o=n+t*o,o},r.clamp=function(n,t,r){return nr?r:n},r.log=function(n,t=Math.E){return Math.log(n)/Math.log(t)},r.float32_epsilon=1.1920928955078125e-7},\n function _(r,n,e,o,s){o();class t extends Error{}e.AssertionError=t,t.__name__=\"AssertionError\",e.assert=function(r,n){if(!(!0===r||!1!==r&&r()))throw new t(null!=n?n:\"Assertion failed\")},e.unreachable=function(){throw new Error(\"unreachable code\")}},\n function _(n,t,e,r,o){r();const i=n(10);function l(n,t,e,...r){const o=n.length;t<0&&(t+=o),t<0?t=0:t>o&&(t=o),null==e||e>o-t?e=o-t:e<0&&(e=0);const i=o-e+r.length,l=new n.constructor(i);let u=0;for(;u0?0:r-1;for(;o>=0&&ot[t.length-1])return t.length;let e=0,r=t.length-1;for(;r-e!=1;){const o=e+Math.floor((r-e)/2);n>=t[o]?e=o:r=o}return e}e.is_empty=function(n){return 0==n.length},e.copy=function(n){return Array.isArray(n)?n.slice():new n.constructor(n)},e.splice=l,e.head=u,e.insert=function(n,t,e){return l(n,e,0,t)},e.append=function(n,t){return l(n,n.length,0,t)},e.prepend=function(n,t){return l(n,0,0,t)},e.indexOf=function(n,t){for(let e=0,r=n.length;ee&&(e=t);return e},e.minmax=function(n){let t,e=1/0,r=-1/0;for(let o=0,i=n.length;or&&(r=t));return[e,r]},e.minmax2=function(n,t){let e,r,o=1/0,i=-1/0,l=1/0,u=-1/0;const c=Math.min(n.length,t.length);for(let f=0;fi&&(i=e),ru&&(u=r));return[o,i,l,u]},e.min_by=function(n,t){if(0==n.length)throw new Error(\"min_by() called with an empty array\");let e=n[0],r=t(e);for(let o=1,i=n.length;or&&(e=i,r=l)}return e},e.sum=function(n){let t=0;for(let e=0,r=n.length;et[r]=n+e),0),t},e.every=function(n,t){for(let e=0,r=n.length;e(n-t)/r))}},\n function _(t,e,n,c,o){c();const s=t(9),{hasOwnProperty:r}=Object.prototype;function i(t){return Object.keys(t).length}function u(t){return 0==i(t)}n.keys=Object.keys,n.values=Object.values,n.entries=Object.entries,n.extend=Object.assign,n.clone=function(t){return Object.assign({},t)},n.merge=function(t,e){const n=Object.create(Object.prototype),c=(0,s.concat)([Object.keys(t),Object.keys(e)]);for(const o of c){const c=r.call(t,o)?t[o]:[],i=r.call(e,o)?e[o]:[];n[o]=(0,s.union)(c,i)}return n},n.size=i,n.is_empty=u,n.isEmpty=u,n.to_object=function(t){const e={};for(const[n,c]of t)e[n]=c;return e}},\n function _(e,t,s,n,r){n();const i=e(1);var o;const c=e(15),a=e(17),_=(0,i.__importStar)(e(18)),h=(0,i.__importStar)(e(21)),u=e(34),l=e(13),f=e(8),p=e(26),d=e(30),g=e(35),y=e(26),v=e(36),m=e(37),b=(0,i.__importStar)(e(21));class w extends((0,c.Signalable)()){constructor(e={}){var t,s;super(),this._subtype=void 0,this.document=null,this.destroyed=new c.Signal0(this,\"destroyed\"),this.change=new c.Signal0(this,\"change\"),this.transformchange=new c.Signal0(this,\"transformchange\"),this.exprchange=new c.Signal0(this,\"exprchange\"),this.properties={},this._watchers=new WeakMap,this._pending=!1,this._changing=!1;const n=e instanceof Map?e.get.bind(e):t=>e[t];this.id=null!==(t=n(\"id\"))&&void 0!==t?t:(0,u.uniqueId)();for(const[e,{type:t,default_value:s,options:r}]of(0,l.entries)(this._props)){let i;t instanceof _.PropertyAlias?Object.defineProperty(this.properties,e,{get:()=>this.properties[t.attr],configurable:!1,enumerable:!1}):(i=t instanceof h.Kind?new _.PrimitiveProperty(this,e,t,s,n(e),r):new t(this,e,h.Any,s,n(e),r),this.properties[e]=i)}null!==(s=n(\"__deferred__\"))&&void 0!==s&&s||(this.finalize(),this.connect_signals())}get is_syncable(){return!0}set type(e){console.warn(\"prototype.type = 'ModelName' is deprecated, use static __name__ instead\"),this.constructor.__name__=e}get type(){return this.constructor.__qualified__}static get __qualified__(){const{__module__:e,__name__:t}=this;return null!=e?`${e}.${t}`:t}static get[Symbol.toStringTag](){return this.__name__}static _fix_default(e,t){if(void 0===e||(0,f.isFunction)(e))return e;if((0,f.isPrimitive)(e))return()=>e;{const t=new m.Cloner;return()=>t.clone(e)}}static define(e){for(const[t,s]of(0,l.entries)((0,f.isFunction)(e)?e(b):e)){if(null!=this.prototype._props[t])throw new Error(`attempted to redefine property '${this.prototype.type}.${t}'`);if(null!=this.prototype[t])throw new Error(`attempted to redefine attribute '${this.prototype.type}.${t}'`);Object.defineProperty(this.prototype,t,{get(){return this.properties[t].get_value()},set(e){return this.setv({[t]:e}),this},configurable:!1,enumerable:!0});const[e,n,r={}]=s,i={type:e,default_value:this._fix_default(n,t),options:r},o=Object.assign({},this.prototype._props);o[t]=i,this.prototype._props=o}}static internal(e){const t={};for(const[s,n]of(0,l.entries)((0,f.isFunction)(e)?e(b):e)){const[e,r,i={}]=n;t[s]=[e,r,Object.assign(Object.assign({},i),{internal:!0})]}this.define(t)}static mixins(e){function t(e,t){const s={};for(const[n,r]of(0,l.entries)(t))s[e+n]=r;return s}const s={},n=[];for(const r of(0,f.isArray)(e)?e:[e])if((0,f.isArray)(r)){const[e,i]=r;(0,l.extend)(s,t(e,i)),n.push([e,i])}else{const e=r;(0,l.extend)(s,e),n.push([\"\",e])}this.define(s),this.prototype._mixins=[...this.prototype._mixins,...n]}static override(e){for(const[t,s]of(0,l.entries)(e)){const e=this._fix_default(s,t),n=this.prototype._props[t];if(null==n)throw new Error(`attempted to override nonexistent '${this.prototype.type}.${t}'`);const r=Object.assign({},this.prototype._props);r[t]=Object.assign(Object.assign({},n),{default_value:e}),this.prototype._props=r}}toString(){return`${this.type}(${this.id})`}property(e){const t=this.properties[e];if(null!=t)return t;throw new Error(`unknown property ${this.type}.${e}`)}get attributes(){const e={};for(const t of this)e[t.attr]=t.get_value();return e}[m.clone](e){const t=new Map;for(const s of this)s.dirty&&t.set(s.attr,e.clone(s.get_value()));return new this.constructor(t)}[y.equals](e,t){for(const s of this){const n=e.property(s.attr);if(!t.eq(s.get_value(),n.get_value()))return!1}return!0}[v.pretty](e){const t=e.token,s=[];for(const n of this)if(n.dirty){const r=n.get_value();s.push(`${n.attr}${t(\":\")} ${e.to_string(r)}`)}return`${this.constructor.__qualified__}${t(\"(\")}${t(\"{\")}${s.join(`${t(\",\")} `)}${t(\"}\")}${t(\")\")}`}[d.serialize](e){const t=this.ref();e.add_ref(this,t);const s=this.struct();for(const t of this)t.syncable&&(e.include_defaults||t.dirty)&&(s.attributes[t.attr]=e.to_serializable(t.get_value()));return e.add_def(this,s),t}finalize(){for(const e of this){if(!(e instanceof _.VectorSpec||e instanceof _.ScalarSpec))continue;const t=e.get_value();if(null!=t){const{transform:e,expr:s}=t;null!=e&&this.connect(e.change,(()=>this.transformchange.emit())),null!=s&&this.connect(s.change,(()=>this.exprchange.emit()))}}this.initialize()}initialize(){}connect_signals(){}disconnect_signals(){c.Signal.disconnectReceiver(this)}destroy(){this.disconnect_signals(),this.destroyed.emit()}clone(){return(new m.Cloner).clone(this)}changed_for(e){const t=this._watchers.get(e);return this._watchers.set(e,!1),null==t||t}_setv(e,t){const s=t.check_eq,n=[],r=this._changing;this._changing=!0;for(const[t,r]of e)!1!==s&&(0,p.is_equal)(t.get_value(),r)||(t.set_value(r),n.push(t));n.length>0&&(this._watchers=new WeakMap,this._pending=!0);for(const e of n)e.change.emit();if(!r){if(!t.no_change)for(;this._pending;)this._pending=!1,this.change.emit();this._pending=!1,this._changing=!1}}setv(e,t={}){const s=(0,l.entries)(e);if(0==s.length)return;if(!0===t.silent){this._watchers=new WeakMap;for(const[e,t]of s)this.properties[e].set_value(t);return}const n=new Map,r=new Map;for(const[e,t]of s){const s=this.properties[e];n.set(s,t),r.set(s,s.get_value())}this._setv(n,t);const{document:i}=this;if(null!=i){const e=[];for(const[t,s]of r)e.push([t,s,t.get_value()]);for(const[,t,s]of e)if(this._needs_invalidate(t,s)){i._invalidate_all_models();break}this._push_changes(e,t)}}getv(e){return this.property(e).get_value()}ref(){return{id:this.id}}struct(){const e={type:this.type,id:this.id,attributes:{}};return null!=this._subtype&&(e.subtype=this._subtype),e}set_subtype(e){this._subtype=e}*[Symbol.iterator](){yield*(0,l.values)(this.properties)}*syncable_properties(){for(const e of this)e.syncable&&(yield e)}serializable_attributes(){const e={};for(const t of this.syncable_properties())e[t.attr]=t.get_value();return e}static _json_record_references(e,t,s,n){const{recursive:r}=n;if((0,a.is_ref)(t)){const n=e.get_model_by_id(t.id);null==n||s.has(n)||w._value_record_references(n,s,{recursive:r})}else if((0,f.isArray)(t))for(const n of t)w._json_record_references(e,n,s,{recursive:r});else if((0,f.isPlainObject)(t))for(const n of(0,l.values)(t))w._json_record_references(e,n,s,{recursive:r})}static _value_record_references(e,t,s){const{recursive:n}=s;if(e instanceof w){if(!t.has(e)&&(t.add(e),n))for(const s of e.syncable_properties()){const e=s.get_value();w._value_record_references(e,t,{recursive:n})}}else if((0,f.isArray)(e))for(const s of e)w._value_record_references(s,t,{recursive:n});else if((0,f.isPlainObject)(e))for(const s of(0,l.values)(e))w._value_record_references(s,t,{recursive:n})}references(){const e=new Set;return w._value_record_references(this,e,{recursive:!0}),e}_doc_attached(){}_doc_detached(){}attach_document(e){if(null!=this.document&&this.document!=e)throw new Error(\"models must be owned by only a single document\");this.document=e,this._doc_attached()}detach_document(){this._doc_detached(),this.document=null}_needs_invalidate(e,t){const s=new Set;w._value_record_references(t,s,{recursive:!1});const n=new Set;w._value_record_references(e,n,{recursive:!1});for(const e of s)if(!n.has(e))return!0;for(const e of n)if(!s.has(e))return!0;return!1}_push_changes(e,t={}){if(!this.is_syncable)return;const{document:s}=this;if(null==s)return;const{setter_id:n}=t,r=[];for(const[t,i,o]of e)t.syncable&&r.push(new g.ModelChangedEvent(s,this,t.attr,i,o,n));if(0!=r.length){let e;1==r.length?[e]=r:e=new g.DocumentEventBatch(s,r,n),s._trigger_on_change(e)}}on_change(e,t){for(const s of(0,f.isArray)(e)?e:[e])this.connect(s.change,t)}}s.HasProps=w,(o=w).prototype._props={},o.prototype._mixins=[]},\n function _(n,t,e,l,s){l();const i=n(16),o=n(9);class c{constructor(n,t){this.sender=n,this.name=t}connect(n,t=null){u.has(this.sender)||u.set(this.sender,[]);const e=u.get(this.sender);if(null!=g(e,this,n,t))return!1;const l=null!=t?t:n;a.has(l)||a.set(l,[]);const s=a.get(l),i={signal:this,slot:n,context:t};return e.push(i),s.push(i),!0}disconnect(n,t=null){const e=u.get(this.sender);if(null==e||0===e.length)return!1;const l=g(e,this,n,t);if(null==l)return!1;const s=null!=t?t:n,i=a.get(s);return l.signal=null,d(e),d(i),!0}emit(n){var t;const e=null!==(t=u.get(this.sender))&&void 0!==t?t:[];for(const{signal:t,slot:l,context:s}of e)t===this&&l.call(s,n,this.sender)}}e.Signal=c,c.__name__=\"Signal\";class r extends c{emit(){super.emit(void 0)}}e.Signal0=r,r.__name__=\"Signal0\",function(n){function t(n,t){const e=u.get(n);if(null==e||0===e.length)return;const l=a.get(t);if(null!=l&&0!==l.length){for(const t of l){if(null==t.signal)return;t.signal.sender===n&&(t.signal=null)}d(e),d(l)}}function e(n){var t;const e=u.get(n);if(null!=e&&0!==e.length){for(const n of e){if(null==n.signal)return;const e=null!==(t=n.context)&&void 0!==t?t:n.slot;n.signal=null,d(a.get(e))}d(e)}}function l(n,t,e){const l=a.get(n);if(null!=l&&0!==l.length){for(const n of l){if(null==n.signal)return;if(null!=t&&n.slot!=t)continue;const l=n.signal.sender;null!=e&&e.has(l)||(n.signal=null,d(u.get(l)))}d(l)}}function s(n){const t=u.get(n);if(null!=t&&0!==t.length){for(const n of t)n.signal=null;d(t)}const e=a.get(n);if(null!=e&&0!==e.length){for(const n of e)n.signal=null;d(e)}}n.disconnect_between=t,n.disconnect_sender=e,n.disconnect_receiver=l,n.disconnect_all=s,n.disconnectBetween=t,n.disconnectSender=e,n.disconnectReceiver=l,n.disconnectAll=s}(c||(e.Signal=c={})),e.Signalable=function(){return class{connect(n,t){return n.connect(t,this)}disconnect(n,t){return n.disconnect(t,this)}}};const u=new WeakMap,a=new WeakMap;function g(n,t,e,l){return(0,o.find)(n,(n=>n.signal===t&&n.slot===e&&n.context===l))}const f=new Set;function d(n){0===f.size&&(async()=>{await(0,i.defer)(),function(){for(const n of f)(0,o.remove_by)(n,(n=>null==n.signal));f.clear()}()})(),f.add(n)}},\n function _(e,n,t,s,o){s();const r=new MessageChannel,a=new Map;r.port1.onmessage=e=>{const n=e.data,t=a.get(n);if(null!=t)try{t()}finally{a.delete(n)}};let i=1;t.defer=function(){return new Promise((e=>{const n=i++;a.set(n,e),r.port2.postMessage(n)}))},t.wait=function(e){return new Promise((n=>setTimeout(n,e)))}},\n function _(n,t,i,e,c){e();const r=n(8),s=n(13);i.is_ref=function(n){if((0,r.isPlainObject)(n)){const t=(0,s.keys)(n);return 1==t.length&&\"id\"==t[0]}return!1}},\n function _(e,t,n,r,a){r(),n.YCoordinateSeqSeqSeqSpec=n.XCoordinateSeqSeqSeqSpec=n.YCoordinateSeqSpec=n.XCoordinateSeqSpec=n.YCoordinateSpec=n.XCoordinateSpec=n.CoordinateSeqSeqSeqSpec=n.CoordinateSeqSpec=n.CoordinateSpec=n.BaseCoordinateSpec=n.NumberUnitsSpec=n.UnitsSpec=n.DataSpec=n.VectorSpec=n.TextBaselineScalar=n.TextAlignScalar=n.FontStyleScalar=n.FontSizeScalar=n.FontScalar=n.LineDashScalar=n.LineCapScalar=n.LineJoinScalar=n.ArrayScalar=n.NullStringScalar=n.StringScalar=n.NumberScalar=n.ColorScalar=n.AnyScalar=n.ScalarSpec=n.VerticalAlign=n.UpdateMode=n.TooltipAttachment=n.TickLabelOrientation=n.TextureRepetition=n.TextBaseline=n.TextAlign=n.TapBehavior=n.StepMode=n.StartEnd=n.SpatialUnits=n.Sort=n.SizingMode=n.Side=n.RoundingFunction=n.ResetPolicy=n.RenderMode=n.RenderLevel=n.RadiusDimension=n.PointPolicy=n.Place=void 0,n.TextBaselineSpec=n.TextAlignSpec=n.FontStyleSpec=n.FontSizeSpec=n.FontSpec=n.LineDashSpec=n.LineCapSpec=n.LineJoinSpec=n.MarkerSpec=n.ArraySpec=n.NullStringSpec=n.StringSpec=n.AnySpec=n.NDArraySpec=n.ColorSpec=n.ScreenSizeSpec=n.NumberSpec=n.IntSpec=n.BooleanSpec=n.NullDistanceSpec=n.DistanceSpec=n.AngleSpec=void 0;const i=e(1),s=e(15),l=e(19),o=(0,i.__importStar)(e(20)),c=e(24),_=e(9),u=e(12),d=e(10),S=e(22),p=e(27),m=e(8),h=e(28),v=e(29),y=e(33);function x(e){try{return JSON.stringify(e)}catch(t){return e.toString()}}function g(e){return(0,m.isPlainObject)(e)&&(void 0===e.value?0:1)+(void 0===e.field?0:1)+(void 0===e.expr?0:1)==1}a(\"Uniform\",y.Uniform),a(\"UniformScalar\",y.UniformScalar),a(\"UniformVector\",y.UniformVector),n.isSpec=g;class f{constructor(e,t,n,r,a,i={}){var l;let o;if(this.obj=e,this.attr=t,this.kind=n,this.default_value=r,this._dirty=!1,this.change=new s.Signal0(this.obj,\"change\"),this.internal=null!==(l=i.internal)&&void 0!==l&&l,this.convert=i.convert,this.on_update=i.on_update,void 0!==a)o=a,this._dirty=!0;else{const t=this._default_override();if(void 0!==t)o=t;else{if(void 0===r)return void(this.spec={value:null});o=r(e)}}this._update(o)}get is_value(){return void 0!==this.spec.value}get syncable(){return!this.internal}get_value(){return this.spec.value}set_value(e){this._update(e),this._dirty=!0}_default_override(){}get dirty(){return this._dirty}_update(e){var t;if(this.validate(e),null!=this.convert){const t=this.convert(e);void 0!==t&&(e=t)}this.spec={value:e},null===(t=this.on_update)||void 0===t||t.call(this,e,this.obj)}toString(){return`Prop(${this.obj}.${this.attr}, spec: ${x(this.spec)})`}normalize(e){return e}validate(e){if(!this.valid(e))throw new Error(`${this.obj}.${this.attr} given invalid value: ${x(e)}`)}valid(e){return this.kind.valid(e)}_value(e=!0){if(!this.is_value)throw new Error(\"attempted to retrieve property value for property without value specification\");let t=this.normalize([this.spec.value])[0];return null!=this.spec.transform&&e&&(t=this.spec.transform.compute(t)),t}}n.Property=f,f.__name__=\"Property\";class A{constructor(e){this.attr=e}}n.PropertyAlias=A,A.__name__=\"PropertyAlias\",n.Alias=function(e){return new A(e)};class C extends f{}n.PrimitiveProperty=C,C.__name__=\"PrimitiveProperty\";class T extends f{}n.Any=T,T.__name__=\"Any\";class L extends f{valid(e){return(0,m.isArray)(e)||(0,m.isTypedArray)(e)}}n.Array=L,L.__name__=\"Array\";class w extends f{valid(e){return(0,m.isBoolean)(e)}}n.Boolean=w,w.__name__=\"Boolean\";class P extends f{valid(e){return(0,S.is_Color)(e)}}n.Color=P,P.__name__=\"Color\";class b extends f{}n.Instance=b,b.__name__=\"Instance\";class q extends f{valid(e){return(0,m.isNumber)(e)}}n.Number=q,q.__name__=\"Number\";class N extends q{valid(e){return(0,m.isNumber)(e)&&(0|e)==e}}n.Int=N,N.__name__=\"Int\";class z extends q{}n.Angle=z,z.__name__=\"Angle\";class B extends q{valid(e){return(0,m.isNumber)(e)&&0<=e&&e<=1}}n.Percent=B,B.__name__=\"Percent\";class F extends f{valid(e){return(0,m.isString)(e)}}n.String=F,F.__name__=\"String\";class D extends f{valid(e){return null===e||(0,m.isString)(e)}}n.NullString=D,D.__name__=\"NullString\";class U extends F{}n.FontSize=U,U.__name__=\"FontSize\";class M extends F{_default_override(){return h.settings.dev?\"Bokeh\":void 0}}n.Font=M,M.__name__=\"Font\";class R extends f{valid(e){return(0,m.isString)(e)&&(0,_.includes)(this.enum_values,e)}}function k(e){return class extends R{get enum_values(){return[...e]}}}n.EnumProperty=R,R.__name__=\"EnumProperty\",n.Enum=k;class O extends R{get enum_values(){return[...o.Direction]}normalize(e){const t=new Uint8Array(e.length);for(let n=0;n=0}}n.ScreenSizeSpec=fe,fe.__name__=\"ScreenSizeSpec\";class Ae extends ne{materialize(e){return(0,S.encode_rgba)((0,S.color2rgba)(e))}v_materialize(e){if(!(0,v.is_NDArray)(e)){const t=e.length,n=new c.RGBAArray(4*t);let r=0;for(const t of e){const[e,a,i,s]=(0,S.color2rgba)(t);n[r++]=e,n[r++]=a,n[r++]=i,n[r++]=s}return new c.ColorArray(n.buffer)}if(\"uint32\"==e.dtype&&1==e.dimension)return(0,p.to_big_endian)(e);if(\"uint8\"==e.dtype&&1==e.dimension){const[t]=e.shape,n=new c.RGBAArray(4*t);let r=0;for(const t of e)n[r++]=t,n[r++]=t,n[r++]=t,n[r++]=255;return new c.ColorArray(n.buffer)}if(\"uint8\"==e.dtype&&2==e.dimension){const[t,n]=e.shape;if(4==n)return new c.ColorArray(e.buffer);if(3==n){const r=new c.RGBAArray(4*t);for(let a=0,i=0;a0){let o=r[e];return null==o&&(r[e]=o=new v(e,l)),o}throw new TypeError(\"Logger.get() expects a non-empty string name and an optional log-level\")}get level(){return this.get_level()}get_level(){return this._log_level}set_level(e){if(e instanceof i)this._log_level=e;else{if(!(0,s.isString)(e)||null==v.log_levels[e])throw new Error(\"Logger.set_level() expects a log-level object or a string name of a log-level\");this._log_level=v.log_levels[e]}const l=`[${this._name}]`;for(const[e,o]of(0,g.entries)(v.log_levels))o.level\",\"*\"),t.HTTPMethod=(0,a.Enum)(\"POST\",\"GET\"),t.HexTileOrientation=(0,a.Enum)(\"pointytop\",\"flattop\"),t.HoverMode=(0,a.Enum)(\"mouse\",\"hline\",\"vline\"),t.LatLon=(0,a.Enum)(\"lat\",\"lon\"),t.LegendClickPolicy=(0,a.Enum)(\"none\",\"hide\",\"mute\"),t.LegendLocation=t.Anchor,t.LineCap=(0,a.Enum)(\"butt\",\"round\",\"square\"),t.LineJoin=(0,a.Enum)(\"miter\",\"round\",\"bevel\"),t.LineDash=(0,a.Enum)(\"solid\",\"dashed\",\"dotted\",\"dotdash\",\"dashdot\"),t.LinePolicy=(0,a.Enum)(\"prev\",\"next\",\"nearest\",\"interp\",\"none\"),t.Location=(0,a.Enum)(\"above\",\"below\",\"left\",\"right\"),t.Logo=(0,a.Enum)(\"normal\",\"grey\"),t.MarkerType=(0,a.Enum)(\"asterisk\",\"circle\",\"circle_cross\",\"circle_dot\",\"circle_x\",\"circle_y\",\"cross\",\"dash\",\"diamond\",\"diamond_cross\",\"diamond_dot\",\"dot\",\"hex\",\"hex_dot\",\"inverted_triangle\",\"plus\",\"square\",\"square_cross\",\"square_dot\",\"square_pin\",\"square_x\",\"star\",\"star_dot\",\"triangle\",\"triangle_dot\",\"triangle_pin\",\"x\",\"y\"),t.MutedPolicy=(0,a.Enum)(\"show\",\"ignore\"),t.Orientation=(0,a.Enum)(\"vertical\",\"horizontal\"),t.OutputBackend=(0,a.Enum)(\"canvas\",\"svg\",\"webgl\"),t.PaddingUnits=(0,a.Enum)(\"percent\",\"absolute\"),t.Place=(0,a.Enum)(\"above\",\"below\",\"left\",\"right\",\"center\"),t.PointPolicy=(0,a.Enum)(\"snap_to_data\",\"follow_mouse\",\"none\"),t.RadiusDimension=(0,a.Enum)(\"x\",\"y\",\"max\",\"min\"),t.RenderLevel=(0,a.Enum)(\"image\",\"underlay\",\"glyph\",\"guide\",\"annotation\",\"overlay\"),t.RenderMode=(0,a.Enum)(\"canvas\",\"css\"),t.ResetPolicy=(0,a.Enum)(\"standard\",\"event_only\"),t.RoundingFunction=(0,a.Enum)(\"round\",\"nearest\",\"floor\",\"rounddown\",\"ceil\",\"roundup\"),t.SelectionMode=(0,a.Enum)(\"replace\",\"append\",\"intersect\",\"subtract\"),t.Side=(0,a.Enum)(\"above\",\"below\",\"left\",\"right\"),t.SizingMode=(0,a.Enum)(\"stretch_width\",\"stretch_height\",\"stretch_both\",\"scale_width\",\"scale_height\",\"scale_both\",\"fixed\"),t.Sort=(0,a.Enum)(\"ascending\",\"descending\"),t.SpatialUnits=(0,a.Enum)(\"screen\",\"data\"),t.StartEnd=(0,a.Enum)(\"start\",\"end\"),t.StepMode=(0,a.Enum)(\"after\",\"before\",\"center\"),t.TapBehavior=(0,a.Enum)(\"select\",\"inspect\"),t.TextAlign=(0,a.Enum)(\"left\",\"right\",\"center\"),t.TextBaseline=(0,a.Enum)(\"top\",\"middle\",\"bottom\",\"alphabetic\",\"hanging\",\"ideographic\"),t.TextureRepetition=(0,a.Enum)(\"repeat\",\"repeat_x\",\"repeat_y\",\"no_repeat\"),t.TickLabelOrientation=(0,a.Enum)(\"vertical\",\"horizontal\",\"parallel\",\"normal\"),t.TooltipAttachment=(0,a.Enum)(\"horizontal\",\"vertical\",\"left\",\"right\",\"above\",\"below\"),t.UpdateMode=(0,a.Enum)(\"replace\",\"append\"),t.VerticalAlign=(0,a.Enum)(\"top\",\"middle\",\"bottom\")},\n function _(e,n,t,s,r){s();const i=(0,e(1).__importStar)(e(8)),a=e(22),l=e(13),_=window.Map,{hasOwnProperty:u}=Object.prototype;class d{}t.Kind=d,d.__name__=\"Kind\",function(e){class n extends d{valid(e){return!0}}n.__name__=\"Any\",e.Any=n;class t extends d{valid(e){return!0}}t.__name__=\"Unknown\",e.Unknown=t;class s extends d{valid(e){return i.isBoolean(e)}}s.__name__=\"Boolean\",e.Boolean=s;class r extends d{constructor(e){super(),this.obj_type=e}valid(e){return!0}}r.__name__=\"Ref\",e.Ref=r;class c extends d{valid(e){return!0}}c.__name__=\"AnyRef\",e.AnyRef=c;class o extends d{valid(e){return i.isNumber(e)}}o.__name__=\"Number\",e.Number=o;class p extends o{valid(e){return super.valid(e)&&i.isInteger(e)}}p.__name__=\"Int\",e.Int=p;class y extends o{valid(e){return super.valid(e)&&0<=e&&e<=1}}y.__name__=\"Percent\",e.Percent=y;class m extends d{constructor(e){super(),this.types=e,this.types=e}valid(e){return this.types.some((n=>n.valid(e)))}}m.__name__=\"Or\",e.Or=m;class v extends d{constructor(e){super(),this.types=e,this.types=e}valid(e){if(!i.isArray(e))return!1;for(let n=0;nthis.item_type.valid(e)))}}f.__name__=\"Array\",e.Array=f;class K extends d{valid(e){return null===e}}K.__name__=\"Null\",e.Null=K;class b extends d{constructor(e){super(),this.base_type=e}valid(e){return null===e||this.base_type.valid(e)}}b.__name__=\"Nullable\",e.Nullable=b;class A extends d{constructor(e){super(),this.base_type=e}valid(e){return void 0===e||this.base_type.valid(e)}}A.__name__=\"Opt\",e.Opt=A;class x extends d{valid(e){return i.isString(e)}}x.__name__=\"String\",e.String=x;class S extends d{constructor(e){super(),this.values=new Set(e)}valid(e){return this.values.has(e)}*[Symbol.iterator](){yield*this.values}}S.__name__=\"Enum\",e.Enum=S;class N extends d{constructor(e){super(),this.item_type=e}valid(e){if(!i.isPlainObject(e))return!1;for(const n in e)if(u.call(e,n)){const t=e[n];if(!this.item_type.valid(t))return!1}return!0}}N.__name__=\"Dict\",e.Dict=N;class O extends d{constructor(e,n){super(),this.key_type=e,this.item_type=n}valid(e){if(!(e instanceof _))return!1;for(const[n,t]of e.entries())if(!this.key_type.valid(n)||!this.item_type.valid(t))return!1;return!0}}O.__name__=\"Map\",e.Map=O;class g extends d{valid(e){return(0,a.is_Color)(e)}}g.__name__=\"Color\",e.Color=g;class P extends d{valid(e){return i.isFunction(e)}}P.__name__=\"Function\",e.Function=P}(t.Kinds||(t.Kinds={})),t.Any=new t.Kinds.Any,t.Unknown=new t.Kinds.Unknown,t.Boolean=new t.Kinds.Boolean,t.Number=new t.Kinds.Number,t.Int=new t.Kinds.Int,t.String=new t.Kinds.String,t.Null=new t.Kinds.Null;t.Nullable=e=>new t.Kinds.Nullable(e);t.Opt=e=>new t.Kinds.Opt(e);t.Or=(...e)=>new t.Kinds.Or(e);t.Tuple=(...e)=>new t.Kinds.Tuple(e);t.Struct=e=>new t.Kinds.Struct(e),t.Arrayable=new t.Kinds.Arrayable;t.Array=e=>new t.Kinds.Array(e);t.Dict=e=>new t.Kinds.Dict(e);t.Map=(e,n)=>new t.Kinds.Map(e,n);t.Enum=(...e)=>new t.Kinds.Enum(e);t.Ref=e=>new t.Kinds.Ref(e);t.AnyRef=()=>new t.Kinds.AnyRef;t.Function=()=>new t.Kinds.Function,t.Percent=new t.Kinds.Percent,t.Alpha=t.Percent,t.Color=new t.Kinds.Color,t.Auto=(0,t.Enum)(\"auto\"),t.FontSize=t.String,t.Font=t.String,t.Angle=t.Number},\n function _(n,t,r,e,s){e();const u=n(23),c=n(10),l=n(8),{round:i}=Math;function o(n){return(0,c.clamp)(i(n),0,255)}function a(){return[0,0,0,0]}function f(n){return[n>>24&255,n>>16&255,n>>8&255,255&n]}function d(n,t){var r;let e,s,u,c;return null==n?[e,s,u,c]=[0,0,0,0]:(0,l.isInteger)(n)?[e,s,u,c]=f(n):(0,l.isString)(n)?[e,s,u,c]=null!==(r=_(n))&&void 0!==r?r:[0,0,0,0]:([e,s,u,c=1]=n,c=o(255*c)),255==c&&null!=t&&(c=o(255*t)),[e,s,u,c]}r.transparent=a,r.encode_rgba=function([n,t,r,e]){return n<<24|t<<16|r<<8|e},r.decode_rgba=f,r.compose_alpha=function(n,t){return 255==(255&n)?4294967040&n|o(255*t):n},r.color2rgba=d;const h={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"a\",11:\"b\",12:\"c\",13:\"d\",14:\"e\",15:\"f\"};function g(n){return h[n>>4]+h[15&n]}r.color2css=function(n,t){const[r,e,s,u]=d(n,t);return`rgba(${r}, ${e}, ${s}, ${u/255})`},r.color2hex=function(n,t){const[r,e,s,u]=d(n,t),c=`#${g(r)}${g(e)}${g(s)}`;return 255==u?c:`${c}${g(u)}`},r.color2hexrgb=function(n){const[t,r,e]=d(n);return`#${g(t)}${g(r)}${g(e)}`};const b=/^rgba?\\(\\s*([^\\s,]+?)\\s+([^\\s,]+?)\\s+([^\\s,]+?)(?:\\s*\\/\\s*([^\\s,]+?))?\\s*\\)$/,$=/^rgba?\\(\\s*([^\\s,]+?)\\s*,\\s*([^\\s,]+?)\\s*,\\s*([^\\s,]+?)(?:\\s*,\\s*([^\\s,]+?))?\\s*\\)$/,m=(()=>{const n=document.createElement(\"canvas\");n.width=1,n.height=1;const t=n.getContext(\"2d\"),r=t.createLinearGradient(0,0,1,1);return n=>{t.fillStyle=r,t.fillStyle=n;const e=t.fillStyle;return e!=r?e:null}})();function _(n){var t;if(!(n=n.trim().toLowerCase()))return null;if(\"transparent\"==n)return[0,0,0,0];if((0,u.is_named_color)(n))return f(u.named_colors[n]);if(\"#\"==n[0]){const t=Number(`0x${n.substr(1)}`);if(isNaN(t))return null;switch(n.length-1){case 3:{const n=t>>8&15,r=t>>4&15,e=t>>0&15;return[n<<4|n,r<<4|r,e<<4|e,255]}case 4:{const n=t>>12&15,r=t>>8&15,e=t>>4&15,s=t>>0&15;return[n<<4|n,r<<4|r,e<<4|e,s<<4|s]}case 6:return[t>>16&255,t>>8&255,t>>0&255,255];case 8:return[t>>24&255,t>>16&255,t>>8&255,t>>0&255]}}else if(n.startsWith(\"rgb\")){const r=null!==(t=n.match(b))&&void 0!==t?t:n.match($);if(null!=r){let[,n,t,e,s=\"1\"]=r;const u=n.endsWith(\"%\"),c=t.endsWith(\"%\"),l=e.endsWith(\"%\"),i=s.endsWith(\"%\");if(!(u&&c&&l)&&(u||c||l))return null;u&&(n=n.slice(0,-1)),c&&(t=t.slice(0,-1)),l&&(e=e.slice(0,-1)),i&&(s=s.slice(0,-1));let a=Number(n),f=Number(t),d=Number(e),h=Number(s);return isNaN(a+f+d+h)?null:(u&&(a=a/100*255),c&&(f=f/100*255),l&&(d=d/100*255),h=255*(i?h/100:h),a=o(a),f=o(f),d=o(d),h=o(h),[a,f,d,h])}}else{const t=m(n);if(null!=t)return _(t)}return null}r.css4_parse=_,r.is_Color=function(n){return!!(0,l.isInteger)(n)||(!(!(0,l.isString)(n)||null==_(n))||!(!(0,l.isArray)(n)||3!=n.length&&4!=n.length))},r.is_dark=function([n,t,r]){return 1-(.299*n+.587*t+.114*r)/255>=.6}},\n function _(e,r,l,a,i){a();l.named_colors={aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},l.is_named_color=function(e){return e in l.named_colors}},\n function _(r,t,n,a,o){a(),n.GeneratorFunction=Object.getPrototypeOf((function*(){})).constructor,n.ColorArray=Uint32Array,n.RGBAArray=Uint8ClampedArray,n.infer_type=function(r,t){return r instanceof Float64Array||r instanceof Array||t instanceof Float64Array||t instanceof Array?Float64Array:Float32Array},n.ScreenArray=Float32Array,n.to_screen=function(r){return r instanceof Float32Array?r:Float32Array.from(r)},o(\"Indices\",r(25).BitSet)},\n function _(t,s,r,e,i){var n;e();const o=t(26),a=t(11);class _{constructor(t,s=0){this.size=t,this[n]=\"BitSet\",this._count=null,this._nwords=Math.ceil(t/32),0==s||1==s?(this._array=new Uint32Array(this._nwords),1==s&&this._array.fill(4294967295)):((0,a.assert)(s.length==this._nwords,\"Initializer size mismatch\"),this._array=s)}clone(){return new _(this.size,new Uint32Array(this._array))}[(n=Symbol.toStringTag,o.equals)](t,s){if(!s.eq(this.size,t.size))return!1;const{_nwords:r}=this,e=this.size%r,i=0==e?r:r-1;for(let s=0;s>>5,r=31&t;return!!(this._array[s]>>r&1)}set(t,s=!0){this._check_bounds(t),this._count=null;const r=t>>>5,e=31&t;s?this._array[r]|=1<>>t&1&&(e+=1)}return e}*ones(){const{_array:t,_nwords:s,size:r}=this;for(let e=0,i=0;i>>t&1&&(yield e);else e+=32}}*zeros(){const{_array:t,_nwords:s,size:r}=this;for(let e=0,i=0;i>>t&1||(yield e);else e+=32}}_check_size(t){(0,a.assert)(this.size==t.size,\"Size mismatch\")}add(t){this._check_size(t);for(let s=0;s{if(a(t)&&a(e))return t[r.equals](e,this);switch(n){case\"[object Array]\":case\"[object Uint8Array]\":case\"[object Int8Array]\":case\"[object Uint16Array]\":case\"[object Int16Array]\":case\"[object Uint32Array]\":case\"[object Int32Array]\":case\"[object Float32Array]\":case\"[object Float64Array]\":return this.arrays(t,e);case\"[object Map]\":return this.maps(t,e);case\"[object Set]\":return this.sets(t,e);case\"[object Object]\":if(t.constructor==e.constructor&&(null==t.constructor||t.constructor===Object))return this.objects(t,e);case\"[object Function]\":if(t.constructor==e.constructor&&t.constructor===Function)return this.eq(`${t}`,`${e}`)}if(t instanceof Node)return this.nodes(t,e);throw Error(`can't compare objects of type ${n}`)})();return s.pop(),o.pop(),u}numbers(t,e){return Object.is(t,e)}arrays(t,e){const{length:r}=t;if(r!=e.length)return!1;for(let n=0;n{const n=navigator.userAgent;return n.includes(\"MSIE\")||n.includes(\"Trident\")||n.includes(\"Edge\")})(),e.is_mobile=\"undefined\"!=typeof window&&(\"ontouchstart\"in window||navigator.maxTouchPoints>0),e.is_little_endian=(()=>{const n=new ArrayBuffer(4),i=new Uint8Array(n);new Uint32Array(n)[1]=168496141;let e=!0;return 10==i[4]&&11==i[5]&&12==i[6]&&13==i[7]&&(e=!1),e})(),e.BYTE_ORDER=e.is_little_endian?\"little\":\"big\",e.to_big_endian=function(n){if(e.is_little_endian){const i=new Uint32Array(n.length),e=new DataView(i.buffer);let t=0;for(const i of n)e.setUint32(t,i),t+=4;return i}return n}},\n function _(e,t,r,s,_){s();class i{constructor(){this._dev=!1,this._wireframe=!1,this._force_webgl=!1}set dev(e){this._dev=e}get dev(){return this._dev}set wireframe(e){this._wireframe=e}get wireframe(){return this._wireframe}set force_webgl(e){this._force_webgl=e}get force_webgl(){return this._force_webgl}}r.Settings=i,i.__name__=\"Settings\",r.settings=new i},\n function _(e,s,t,i,r){var a,n,l,h,u,o,p,c;i();const y=e(8),_=e(11),A=e(26),q=e(30),d=e(31),z=Symbol(\"__ndarray__\");class D extends Uint8Array{constructor(e,s){super(e),this[a]=!0,this.dtype=\"uint8\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>D.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>D.prototype[q.serialize].call(this,e))}[(a=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Uint8NDArray=D,D.__name__=\"Uint8NDArray\";class N extends Int8Array{constructor(e,s){super(e),this[n]=!0,this.dtype=\"int8\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>N.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>N.prototype[q.serialize].call(this,e))}[(n=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Int8NDArray=N,N.__name__=\"Int8NDArray\";class f extends Uint16Array{constructor(e,s){super(e),this[l]=!0,this.dtype=\"uint16\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>f.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>f.prototype[q.serialize].call(this,e))}[(l=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Uint16NDArray=f,f.__name__=\"Uint16NDArray\";class m extends Int16Array{constructor(e,s){super(e),this[h]=!0,this.dtype=\"int16\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>m.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>m.prototype[q.serialize].call(this,e))}[(h=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Int16NDArray=m,m.__name__=\"Int16NDArray\";class g extends Uint32Array{constructor(e,s){super(e),this[u]=!0,this.dtype=\"uint32\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>g.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>g.prototype[q.serialize].call(this,e))}[(u=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Uint32NDArray=g,g.__name__=\"Uint32NDArray\";class I extends Int32Array{constructor(e,s){super(e),this[o]=!0,this.dtype=\"int32\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>I.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>I.prototype[q.serialize].call(this,e))}[(o=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Int32NDArray=I,I.__name__=\"Int32NDArray\";class U extends Float32Array{constructor(e,s){super(e),this[p]=!0,this.dtype=\"float32\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>U.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>U.prototype[q.serialize].call(this,e))}[(p=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}t.Float32NDArray=U,U.__name__=\"Float32NDArray\";class w extends Float64Array{constructor(e,s){super(e),this[c]=!0,this.dtype=\"float64\",this.shape=null!=s?s:x(e)?e.shape:[this.length],this.dimension=this.shape.length,null==this[A.equals]&&(this[A.equals]=(e,s)=>w.prototype[A.equals].call(this,e,s)),null==this[q.serialize]&&(this[q.serialize]=e=>w.prototype[q.serialize].call(this,e))}[(c=z,A.equals)](e,s){return s.eq(this.shape,e.shape)&&s.arrays(this,e)}[q.serialize](e){return(0,d.encode_NDArray)(this)}}function x(e){return(0,y.isObject)(e)&&void 0!==e[z]}t.Float64NDArray=w,w.__name__=\"Float64NDArray\",t.is_NDArray=x,t.ndarray=function(e,s={}){let{dtype:t}=s;null==t&&(t=e instanceof ArrayBuffer||(0,y.isArray)(e)?\"float64\":(()=>{switch(!0){case e instanceof Uint8Array:return\"uint8\";case e instanceof Int8Array:return\"int8\";case e instanceof Uint16Array:return\"uint16\";case e instanceof Int16Array:return\"int16\";case e instanceof Uint32Array:return\"uint32\";case e instanceof Int32Array:return\"int32\";case e instanceof Float32Array:return\"float32\";case e instanceof Float64Array:return\"float64\";default:(0,_.unreachable)()}})());const{shape:i}=s;switch(t){case\"uint8\":return new D(e,i);case\"int8\":return new N(e,i);case\"uint16\":return new f(e,i);case\"int16\":return new m(e,i);case\"uint32\":return new g(e,i);case\"int32\":return new I(e,i);case\"float32\":return new U(e,i);case\"float64\":return new w(e,i)}}},\n function _(e,r,t,i,s){i();const n=e(11),a=e(13),l=e(8);t.serialize=Symbol(\"serialize\");class o extends Error{}t.SerializationError=o,o.__name__=\"SerializationError\";class f{constructor(e){var r;this._references=new Map,this._definitions=new Map,this._refmap=new Map,this.include_defaults=null===(r=null==e?void 0:e.include_defaults)||void 0===r||r}get_ref(e){return this._references.get(e)}add_ref(e,r){(0,n.assert)(!this._references.has(e)),this._references.set(e,r)}add_def(e,r){const t=this.get_ref(e);(0,n.assert)(null!=t),this._definitions.set(e,r),this._refmap.set(t,r)}get objects(){return new Set(this._references.keys())}get references(){return new Set(this._references.values())}get definitions(){return new Set(this._definitions.values())}resolve_ref(e){return this._refmap.get(e)}remove_ref(e){return this._references.delete(e)}remove_def(e){return this._definitions.delete(e)}to_serializable(e){const r=this.get_ref(e);if(null!=r)return r;if(function(e){return(0,l.isObject)(e)&&void 0!==e[t.serialize]}(e))return e[t.serialize](this);if((0,l.isArray)(e)||(0,l.isTypedArray)(e)){const r=e.length,t=new Array(r);for(let i=0;i(0,s.buffer_to_base64)(_.buffer)};return Object.assign({__ndarray__:e},r)}}},\n function _(t,n,e,r,o){r(),e.buffer_to_base64=function(t){const n=new Uint8Array(t),e=Array.from(n).map((t=>String.fromCharCode(t)));return btoa(e.join(\"\"))},e.base64_to_buffer=function(t){const n=atob(t),e=n.length,r=new Uint8Array(e);for(let t=0,o=e;t\"'`])/g,(t=>{switch(t){case\"&\":return\"&\";case\"<\":return\"<\";case\">\":return\">\";case'\"':return\""\";case\"'\":return\"'\";case\"`\":return\"`\";default:return t}}))},r.unescape=function(t){return t.replace(/&(amp|lt|gt|quot|#x27|#x60);/g,((t,e)=>{switch(e){case\"amp\":return\"&\";case\"lt\":return\"<\";case\"gt\":return\">\";case\"quot\":return'\"';case\"#x27\":return\"'\";case\"#x60\":return\"`\";default:return e}}))},r.use_strict=function(t){return`'use strict';\\n${t}`},r.to_fixed=function(t,e){return t.toFixed(e).replace(/(\\.[0-9]*?)0+$/,\"$1\").replace(/\\.$/,\"\")}},\n function _(e,t,s,n,o){n();const i=e(30);class r{constructor(e){this.document=e}}s.DocumentEvent=r,r.__name__=\"DocumentEvent\";class a extends r{constructor(e,t,s){super(e),this.events=t,this.setter_id=s}}s.DocumentEventBatch=a,a.__name__=\"DocumentEventBatch\";class d extends r{}s.DocumentChangedEvent=d,d.__name__=\"DocumentChangedEvent\";class l extends d{constructor(e,t,s){super(e),this.msg_type=t,this.msg_data=s}[i.serialize](e){const t=this.msg_data,s=e.to_serializable(t);return{kind:\"MessageSent\",msg_type:this.msg_type,msg_data:s}}}s.MessageSentEvent=l,l.__name__=\"MessageSentEvent\";class _ extends d{constructor(e,t,s,n,o,i,r){super(e),this.model=t,this.attr=s,this.old=n,this.new_=o,this.setter_id=i,this.hint=r}[i.serialize](e){if(null!=this.hint)return e.to_serializable(this.hint);const t=this.new_,s=e.to_serializable(t);return this.model!=t&&e.remove_def(this.model),{kind:\"ModelChanged\",model:this.model.ref(),attr:this.attr,new:s}}}s.ModelChangedEvent=_,_.__name__=\"ModelChangedEvent\";class c extends d{constructor(e,t,s){super(e),this.column_source=t,this.patches=s}[i.serialize](e){return{kind:\"ColumnsPatched\",column_source:this.column_source,patches:this.patches}}}s.ColumnsPatchedEvent=c,c.__name__=\"ColumnsPatchedEvent\";class h extends d{constructor(e,t,s,n){super(e),this.column_source=t,this.data=s,this.rollover=n}[i.serialize](e){return{kind:\"ColumnsStreamed\",column_source:this.column_source,data:this.data,rollover:this.rollover}}}s.ColumnsStreamedEvent=h,h.__name__=\"ColumnsStreamedEvent\";class m extends d{constructor(e,t,s){super(e),this.title=t,this.setter_id=s}[i.serialize](e){return{kind:\"TitleChanged\",title:this.title}}}s.TitleChangedEvent=m,m.__name__=\"TitleChangedEvent\";class u extends d{constructor(e,t,s){super(e),this.model=t,this.setter_id=s}[i.serialize](e){return{kind:\"RootAdded\",model:e.to_serializable(this.model)}}}s.RootAddedEvent=u,u.__name__=\"RootAddedEvent\";class v extends d{constructor(e,t,s){super(e),this.model=t,this.setter_id=s}[i.serialize](e){return{kind:\"RootRemoved\",model:this.model.ref()}}}s.RootRemovedEvent=v,v.__name__=\"RootRemovedEvent\"},\n function _(t,i,r,n,s){n();const e=t(8),o=t(13);r.pretty=Symbol(\"pretty\");class c{constructor(t){this.visited=new Set,this.precision=null==t?void 0:t.precision}to_string(t){if((0,e.isObject)(t)){if(this.visited.has(t))return\"\";this.visited.add(t)}return function(t){return(0,e.isObject)(t)&&void 0!==t[r.pretty]}(t)?t[r.pretty](this):(0,e.isBoolean)(t)?this.boolean(t):(0,e.isNumber)(t)?this.number(t):(0,e.isString)(t)?this.string(t):(0,e.isArray)(t)?this.array(t):(0,e.isIterable)(t)?this.iterable(t):(0,e.isPlainObject)(t)?this.object(t):(0,e.isSymbol)(t)?this.symbol(t):`${t}`}token(t){return t}boolean(t){return`${t}`}number(t){return null!=this.precision?t.toFixed(this.precision):`${t}`}string(t){return`\"${t.replace(/'/g,\"\\\\'\")}\"`}symbol(t){return t.toString()}array(t){const i=this.token,r=[];for(const i of t)r.push(this.to_string(i));return`${i(\"[\")}${r.join(`${i(\",\")} `)}${i(\"]\")}`}iterable(t){var i;const r=this.token,n=null!==(i=Object(t)[Symbol.toStringTag])&&void 0!==i?i:\"Object\",s=this.array(t);return`${n}${r(\"(\")}${s}${r(\")\")}`}object(t){const i=this.token,r=[];for(const[n,s]of(0,o.entries)(t))r.push(`${n}${i(\":\")} ${this.to_string(s)}`);return`${i(\"{\")}${r.join(`${i(\",\")} `)}${i(\"}\")}`}}r.Printer=c,c.__name__=\"Printer\",r.to_string=function(t,i){return new c(i).to_string(t)}},\n function _(n,o,r,e,t){e();const l=n(13),i=n(8);function c(n){return(0,i.isObject)(n)&&void 0!==n[r.clone]}r.clone=Symbol(\"clone\"),r.is_Cloneable=c;class s extends Error{}r.CloningError=s,s.__name__=\"CloningError\";class a{constructor(){}clone(n){if(c(n))return n[r.clone](this);if((0,i.isArray)(n)){const o=n.length,r=new Array(o);for(let e=0;e{null!=this.layout&&(this.layout.visible=this.model.visible,this.plot_view.request_layout())}))}get needs_clip(){return null==this.layout}serializable_state(){const t=super.serializable_state();return null==this.layout?t:Object.assign(Object.assign({},t),{bbox:this.layout.bbox.box})}}i.AnnotationView=r,r.__name__=\"AnnotationView\";class a extends l.Renderer{constructor(t){super(t)}}i.Annotation=a,o=a,a.__name__=\"Annotation\",o.override({level:\"annotation\"})},\n function _(e,i,t,n,s){n();const r=e(1);var o,a;const _=e(42),l=(0,r.__importStar)(e(45)),d=e(20),h=e(53),u=e(54);class c extends h.Model{constructor(e){super(e)}}t.RendererGroup=c,o=c,c.__name__=\"RendererGroup\",o.define((({Boolean:e})=>({visible:[e,!0]})));class p extends _.View{get coordinates(){const{_coordinates:e}=this;return null!=e?e:this._coordinates=this._initialize_coordinates()}initialize(){super.initialize(),this.visuals=new l.Visuals(this),this.needs_webgl_blit=!1}connect_signals(){super.connect_signals();const{x_range_name:e,y_range_name:i}=this.model.properties;this.on_change([e,i],(()=>this._initialize_coordinates()));const{group:t}=this.model;null!=t&&this.on_change(t.properties.visible,(()=>{this.model.visible=t.visible}))}_initialize_coordinates(){const{coordinates:e}=this.model,{frame:i}=this.plot_view;if(null!=e)return e.get_transform(i);{const{x_range_name:e,y_range_name:t}=this.model,n=i.x_scales.get(e),s=i.y_scales.get(t);return new u.CoordinateTransform(n,s)}}get plot_view(){return this.parent}get plot_model(){return this.parent.model}get layer(){const{overlays:e,primary:i}=this.canvas;return\"overlay\"==this.model.level?e:i}get canvas(){return this.plot_view.canvas_view}request_render(){this.request_paint()}request_paint(){this.plot_view.request_paint(this)}request_layout(){this.plot_view.request_layout()}notify_finished(){this.plot_view.notify_finished()}notify_finished_after_paint(){this.plot_view.notify_finished_after_paint()}get needs_clip(){return!1}get has_webgl(){return!1}render(){this.model.visible&&this._render(),this._has_finished=!0}renderer_view(e){}}t.RendererView=p,p.__name__=\"RendererView\";class g extends h.Model{constructor(e){super(e)}}t.Renderer=g,a=g,g.__name__=\"Renderer\",a.define((({Boolean:e,String:i,Ref:t,Nullable:n})=>({group:[n(t(c)),null],level:[d.RenderLevel,\"image\"],visible:[e,!0],x_range_name:[i,\"default\"],y_range_name:[i,\"default\"],coordinates:[n(t(u.CoordinateMapping)),null]})))},\n function _(t,e,s,i,n){i();const o=t(1),h=t(15),r=t(43),l=t(8),_=(0,o.__importDefault)(t(44));class d{constructor(t){this.removed=new h.Signal0(this,\"removed\"),this._ready=Promise.resolve(void 0),this._slots=new WeakMap,this._idle_notified=!1;const{model:e,parent:s}=t;this.model=e,this.parent=s,this.root=null==s?this:s.root,this.removed.emit()}get ready(){return this._ready}connect(t,e){let s=this._slots.get(e);return null==s&&(s=(t,s)=>{const i=Promise.resolve(e.call(this,t,s));this._ready=this._ready.then((()=>i))},this._slots.set(e,s)),t.connect(s,this)}disconnect(t,e){return t.disconnect(e,this)}initialize(){this._has_finished=!1,this.is_root&&(this._stylesheet=r.stylesheet);for(const t of this.styles())this.stylesheet.append(t)}async lazy_initialize(){}remove(){this.disconnect_signals(),this.removed.emit()}toString(){return`${this.model.type}View(${this.model.id})`}serializable_state(){return{type:this.model.type}}get is_root(){return null==this.parent}has_finished(){return this._has_finished}get is_idle(){return this.has_finished()}connect_signals(){}disconnect_signals(){h.Signal.disconnect_receiver(this)}on_change(t,e){for(const s of(0,l.isArray)(t)?t:[t])this.connect(s.change,e)}cursor(t,e){return null}get stylesheet(){return this.is_root?this._stylesheet:this.root.stylesheet}styles(){return[_.default]}notify_finished(){this.is_root?!this._idle_notified&&this.has_finished()&&null!=this.model.document&&(this._idle_notified=!0,this.model.document.notify_idle(this.model)):this.root.notify_finished()}}s.View=d,d.__name__=\"View\"},\n function _(t,e,n,i,o){i();const s=t(8),l=t(13),r=t=>(e={},...n)=>{const i=document.createElement(t);i.classList.add(\"bk\"),(0,s.isPlainObject)(e)||(n=[e,...n],e={});for(let[t,n]of(0,l.entries)(e))if(null!=n&&(!(0,s.isBoolean)(n)||n))if(\"class\"===t&&((0,s.isString)(n)&&(n=n.split(/\\s+/)),(0,s.isArray)(n)))for(const t of n)null!=t&&i.classList.add(t);else if(\"style\"===t&&(0,s.isPlainObject)(n))for(const[t,e]of(0,l.entries)(n))i.style[t]=e;else if(\"data\"===t&&(0,s.isPlainObject)(n))for(const[t,e]of(0,l.entries)(n))i.dataset[t]=e;else i.setAttribute(t,n);function o(t){if((0,s.isString)(t))i.appendChild(document.createTextNode(t));else if(t instanceof Node)i.appendChild(t);else if(t instanceof NodeList||t instanceof HTMLCollection)for(const e of t)i.appendChild(e);else if(null!=t&&!1!==t)throw new Error(`expected a DOM element, string, false or null, got ${JSON.stringify(t)}`)}for(const t of n)if((0,s.isArray)(t))for(const e of t)o(e);else o(t);return i};function a(t){const e=t.parentNode;null!=e&&e.removeChild(t)}function c(t,...e){const n=t.firstChild;for(const i of e)t.insertBefore(i,n)}function d(t,e){var n,i,o;const s=Element.prototype;return(null!==(o=null!==(i=null!==(n=s.matches)&&void 0!==n?n:s.webkitMatchesSelector)&&void 0!==i?i:s.mozMatchesSelector)&&void 0!==o?o:s.msMatchesSelector).call(t,e)}function h(t){return parseFloat(t)||0}function f(t){const e=getComputedStyle(t);return{border:{top:h(e.borderTopWidth),bottom:h(e.borderBottomWidth),left:h(e.borderLeftWidth),right:h(e.borderRightWidth)},margin:{top:h(e.marginTop),bottom:h(e.marginBottom),left:h(e.marginLeft),right:h(e.marginRight)},padding:{top:h(e.paddingTop),bottom:h(e.paddingBottom),left:h(e.paddingLeft),right:h(e.paddingRight)}}}function u(t){const e=t.getBoundingClientRect();return{width:Math.ceil(e.width),height:Math.ceil(e.height)}}n.createElement=function(t,e,...n){return r(t)(e,...n)},n.div=r(\"div\"),n.span=r(\"span\"),n.canvas=r(\"canvas\"),n.link=r(\"link\"),n.style=r(\"style\"),n.a=r(\"a\"),n.p=r(\"p\"),n.i=r(\"i\"),n.pre=r(\"pre\"),n.button=r(\"button\"),n.label=r(\"label\"),n.input=r(\"input\"),n.select=r(\"select\"),n.option=r(\"option\"),n.optgroup=r(\"optgroup\"),n.textarea=r(\"textarea\"),n.createSVGElement=function(t,e,...n){const i=document.createElementNS(\"http://www.w3.org/2000/svg\",t);for(const[t,n]of(0,l.entries)(null!=e?e:{}))null==n||(0,s.isBoolean)(n)&&!n||i.setAttribute(t,n);function o(t){if((0,s.isString)(t))i.appendChild(document.createTextNode(t));else if(t instanceof Node)i.appendChild(t);else if(t instanceof NodeList||t instanceof HTMLCollection)for(const e of t)i.appendChild(e);else if(null!=t&&!1!==t)throw new Error(`expected a DOM element, string, false or null, got ${JSON.stringify(t)}`)}for(const t of n)if((0,s.isArray)(t))for(const e of t)o(e);else o(t);return i},n.nbsp=function(){return document.createTextNode(\"\\xa0\")},n.append=function(t,...e){for(const n of e)t.appendChild(n)},n.remove=a,n.removeElement=a,n.replaceWith=function(t,e){const n=t.parentNode;null!=n&&n.replaceChild(e,t)},n.prepend=c,n.empty=function(t,e=!1){let n;for(;n=t.firstChild;)t.removeChild(n);if(e&&t instanceof Element)for(const e of t.attributes)t.removeAttributeNode(e)},n.display=function(t){t.style.display=\"\"},n.undisplay=function(t){t.style.display=\"none\"},n.show=function(t){t.style.visibility=\"\"},n.hide=function(t){t.style.visibility=\"hidden\"},n.offset=function(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset-document.documentElement.clientTop,left:e.left+window.pageXOffset-document.documentElement.clientLeft}},n.matches=d,n.parent=function(t,e){let n=t;for(;n=n.parentElement;)if(d(n,e))return n;return null},n.extents=f,n.size=u,n.scroll_size=function(t){return{width:Math.ceil(t.scrollWidth),height:Math.ceil(t.scrollHeight)}},n.outer_size=function(t){const{margin:{left:e,right:n,top:i,bottom:o}}=f(t),{width:s,height:l}=u(t);return{width:Math.ceil(s+e+n),height:Math.ceil(l+i+o)}},n.content_size=function(t){const{left:e,top:n}=t.getBoundingClientRect(),{padding:i}=f(t);let o=0,s=0;for(const l of t.children){const t=l.getBoundingClientRect();o=Math.max(o,Math.ceil(t.left-e-i.left+t.width)),s=Math.max(s,Math.ceil(t.top-n-i.top+t.height))}return{width:o,height:s}},n.position=function(t,e,n){const{style:i}=t;if(i.left=`${e.x}px`,i.top=`${e.y}px`,i.width=`${e.width}px`,i.height=`${e.height}px`,null==n)i.margin=\"\";else{const{top:t,right:e,bottom:o,left:s}=n;i.margin=`${t}px ${e}px ${o}px ${s}px`}},n.children=function(t){return Array.from(t.children)};class p{constructor(t){this.el=t,this.classList=t.classList}get values(){const t=[];for(let e=0;e{document.addEventListener(\"DOMContentLoaded\",(()=>t()),{once:!0})}))}},\n function _(o,i,t,e,r){e(),t.root=\"bk-root\",t.default=\".bk-root{position:relative;width:auto;height:auto;box-sizing:border-box;font-family:Helvetica, Arial, sans-serif;font-size:13px;}.bk-root .bk,.bk-root .bk:before,.bk-root .bk:after{box-sizing:inherit;margin:0;border:0;padding:0;background-image:none;font-family:inherit;font-size:100%;line-height:1.42857143;}.bk-root pre.bk{font-family:Courier, monospace;}\"},\n function _(e,t,r,a,c){a();const n=e(1),l=e(46);c(\"Line\",l.Line),c(\"LineScalar\",l.LineScalar),c(\"LineVector\",l.LineVector);const i=e(49);c(\"Fill\",i.Fill),c(\"FillScalar\",i.FillScalar),c(\"FillVector\",i.FillVector);const s=e(50);c(\"Text\",s.Text),c(\"TextScalar\",s.TextScalar),c(\"TextVector\",s.TextVector);const o=e(51);c(\"Hatch\",o.Hatch),c(\"HatchScalar\",o.HatchScalar),c(\"HatchVector\",o.HatchVector);const u=(0,n.__importStar)(e(48)),V=e(47);c(\"VisualProperties\",V.VisualProperties),c(\"VisualUniforms\",V.VisualUniforms);class h{constructor(e){this._visuals=[];for(const[t,r]of e.model._mixins){const a=(()=>{switch(r){case u.Line:return new l.Line(e,t);case u.LineScalar:return new l.LineScalar(e,t);case u.LineVector:return new l.LineVector(e,t);case u.Fill:return new i.Fill(e,t);case u.FillScalar:return new i.FillScalar(e,t);case u.FillVector:return new i.FillVector(e,t);case u.Text:return new s.Text(e,t);case u.TextScalar:return new s.TextScalar(e,t);case u.TextVector:return new s.TextVector(e,t);case u.Hatch:return new o.Hatch(e,t);case u.HatchScalar:return new o.HatchScalar(e,t);case u.HatchVector:return new o.HatchVector(e,t);default:throw new Error(\"unknown visual\")}})();a instanceof V.VisualProperties&&a.update(),this._visuals.push(a),Object.defineProperty(this,t+a.type,{get:()=>a,configurable:!1,enumerable:!0})}}*[Symbol.iterator](){yield*this._visuals}}r.Visuals=h,h.__name__=\"Visuals\"},\n function _(e,t,i,l,s){l();const a=e(1),n=e(47),h=(0,a.__importStar)(e(48)),o=e(22),_=e(8);function r(e){if((0,_.isArray)(e))return e;switch(e){case\"solid\":return[];case\"dashed\":return[6];case\"dotted\":return[2,4];case\"dotdash\":return[2,4,6,4];case\"dashdot\":return[6,4,2,4];default:return e.split(\" \").map(Number).filter(_.isInteger)}}i.resolve_line_dash=r;class u extends n.VisualProperties{get doit(){const e=this.line_color.get_value(),t=this.line_alpha.get_value(),i=this.line_width.get_value();return!(null==e||0==t||0==i)}apply(e){const{doit:t}=this;return t&&(this.set_value(e),e.stroke()),t}values(){return{color:this.line_color.get_value(),alpha:this.line_alpha.get_value(),width:this.line_width.get_value(),join:this.line_join.get_value(),cap:this.line_cap.get_value(),dash:this.line_dash.get_value(),offset:this.line_dash_offset.get_value()}}set_value(e){const t=this.line_color.get_value(),i=this.line_alpha.get_value();e.strokeStyle=(0,o.color2css)(t,i),e.lineWidth=this.line_width.get_value(),e.lineJoin=this.line_join.get_value(),e.lineCap=this.line_cap.get_value(),e.lineDash=r(this.line_dash.get_value()),e.lineDashOffset=this.line_dash_offset.get_value()}}i.Line=u,u.__name__=\"Line\";class c extends n.VisualUniforms{get doit(){const e=this.line_color.value,t=this.line_alpha.value,i=this.line_width.value;return!(0==e||0==t||0==i)}apply(e){const{doit:t}=this;return t&&(this.set_value(e),e.stroke()),t}values(){return{color:this.line_color.value,alpha:this.line_alpha.value,width:this.line_width.value,join:this.line_join.value,cap:this.line_cap.value,dash:this.line_dash.value,offset:this.line_dash_offset.value}}set_value(e){const t=this.line_color.value,i=this.line_alpha.value;e.strokeStyle=(0,o.color2css)(t,i),e.lineWidth=this.line_width.value,e.lineJoin=this.line_join.value,e.lineCap=this.line_cap.value,e.lineDash=r(this.line_dash.value),e.lineDashOffset=this.line_dash_offset.value}}i.LineScalar=c,c.__name__=\"LineScalar\";class d extends n.VisualUniforms{get doit(){const{line_color:e}=this;if(e.is_Scalar()&&0==e.value)return!1;const{line_alpha:t}=this;if(t.is_Scalar()&&0==t.value)return!1;const{line_width:i}=this;return!i.is_Scalar()||0!=i.value}apply(e,t){const{doit:i}=this;return i&&(this.set_vectorize(e,t),e.stroke()),i}values(e){return{color:this.line_color.get(e),alpha:this.line_alpha.get(e),width:this.line_width.get(e),join:this.line_join.get(e),cap:this.line_cap.get(e),dash:this.line_dash.get(e),offset:this.line_dash_offset.get(e)}}set_vectorize(e,t){const i=this.line_color.get(t),l=this.line_alpha.get(t),s=this.line_width.get(t),a=this.line_join.get(t),n=this.line_cap.get(t),h=this.line_dash.get(t),_=this.line_dash_offset.get(t);e.strokeStyle=(0,o.color2css)(i,l),e.lineWidth=s,e.lineJoin=a,e.lineCap=n,e.lineDash=r(h),e.lineDashOffset=_}}i.LineVector=d,d.__name__=\"LineVector\",u.prototype.type=\"line\",u.prototype.attrs=Object.keys(h.Line),c.prototype.type=\"line\",c.prototype.attrs=Object.keys(h.LineScalar),d.prototype.type=\"line\",d.prototype.attrs=Object.keys(h.LineVector)},\n function _(t,s,o,i,r){i();class e{constructor(t,s=\"\"){this.obj=t,this.prefix=s;const o=this;this._props=[];for(const i of this.attrs){const r=t.model.properties[s+i];r.change.connect((()=>this.update())),o[i]=r,this._props.push(r)}}*[Symbol.iterator](){yield*this._props}update(){}}o.VisualProperties=e,e.__name__=\"VisualProperties\";class p{constructor(t,s=\"\"){this.obj=t,this.prefix=s;for(const o of this.attrs)Object.defineProperty(this,o,{get:()=>t[s+o]})}*[Symbol.iterator](){for(const t of this.attrs)yield this.obj.model.properties[this.prefix+t]}update(){}}o.VisualUniforms=p,p.__name__=\"VisualUniforms\"},\n function _(e,l,t,a,c){a();const r=e(1),o=(0,r.__importStar)(e(18)),n=e(20),i=(0,r.__importStar)(e(21)),_=e(13);t.Line={line_color:[i.Nullable(i.Color),\"black\"],line_alpha:[i.Alpha,1],line_width:[i.Number,1],line_join:[n.LineJoin,\"bevel\"],line_cap:[n.LineCap,\"butt\"],line_dash:[i.Or(n.LineDash,i.Array(i.Number)),[]],line_dash_offset:[i.Number,0]},t.Fill={fill_color:[i.Nullable(i.Color),\"gray\"],fill_alpha:[i.Alpha,1]},t.Hatch={hatch_color:[i.Nullable(i.Color),\"black\"],hatch_alpha:[i.Alpha,1],hatch_scale:[i.Number,12],hatch_pattern:[i.Nullable(i.Or(n.HatchPatternType,i.String)),null],hatch_weight:[i.Number,1],hatch_extra:[i.Dict(i.AnyRef()),{}]},t.Text={text_color:[i.Nullable(i.Color),\"#444444\"],text_alpha:[i.Alpha,1],text_font:[o.Font,\"helvetica\"],text_font_size:[i.FontSize,\"16px\"],text_font_style:[n.FontStyle,\"normal\"],text_align:[n.TextAlign,\"left\"],text_baseline:[n.TextBaseline,\"bottom\"],text_line_height:[i.Number,1.2]},t.LineScalar={line_color:[o.ColorScalar,\"black\"],line_alpha:[o.NumberScalar,1],line_width:[o.NumberScalar,1],line_join:[o.LineJoinScalar,\"bevel\"],line_cap:[o.LineCapScalar,\"butt\"],line_dash:[o.LineDashScalar,[]],line_dash_offset:[o.NumberScalar,0]},t.FillScalar={fill_color:[o.ColorScalar,\"gray\"],fill_alpha:[o.NumberScalar,1]},t.HatchScalar={hatch_color:[o.ColorScalar,\"black\"],hatch_alpha:[o.NumberScalar,1],hatch_scale:[o.NumberScalar,12],hatch_pattern:[o.NullStringScalar,null],hatch_weight:[o.NumberScalar,1],hatch_extra:[o.AnyScalar,{}]},t.TextScalar={text_color:[o.ColorScalar,\"#444444\"],text_alpha:[o.NumberScalar,1],text_font:[o.FontScalar,\"helvetica\"],text_font_size:[o.FontSizeScalar,\"16px\"],text_font_style:[o.FontStyleScalar,\"normal\"],text_align:[o.TextAlignScalar,\"left\"],text_baseline:[o.TextBaselineScalar,\"bottom\"],text_line_height:[o.NumberScalar,1.2]},t.LineVector={line_color:[o.ColorSpec,\"black\"],line_alpha:[o.NumberSpec,1],line_width:[o.NumberSpec,1],line_join:[o.LineJoinSpec,\"bevel\"],line_cap:[o.LineCapSpec,\"butt\"],line_dash:[o.LineDashSpec,[]],line_dash_offset:[o.NumberSpec,0]},t.FillVector={fill_color:[o.ColorSpec,\"gray\"],fill_alpha:[o.NumberSpec,1]},t.HatchVector={hatch_color:[o.ColorSpec,\"black\"],hatch_alpha:[o.NumberSpec,1],hatch_scale:[o.NumberSpec,12],hatch_pattern:[o.NullStringSpec,null],hatch_weight:[o.NumberSpec,1],hatch_extra:[o.AnyScalar,{}]},t.TextVector={text_color:[o.ColorSpec,\"#444444\"],text_alpha:[o.NumberSpec,1],text_font:[o.FontSpec,\"helvetica\"],text_font_size:[o.FontSizeSpec,\"16px\"],text_font_style:[o.FontStyleSpec,\"normal\"],text_align:[o.TextAlignSpec,\"left\"],text_baseline:[o.TextBaselineSpec,\"bottom\"],text_line_height:[o.NumberSpec,1.2]},t.attrs_of=function(e,l,t,a=!1){const c={};for(const r of(0,_.keys)(t)){const t=`${l}${r}`,o=e[t];c[a?t:r]=o}return c}},\n function _(l,t,e,i,s){i();const a=l(1),o=l(47),r=(0,a.__importStar)(l(48)),_=l(22);class c extends o.VisualProperties{get doit(){const l=this.fill_color.get_value(),t=this.fill_alpha.get_value();return!(null==l||0==t)}apply(l,t){const{doit:e}=this;return e&&(this.set_value(l),l.fill(t)),e}values(){return{color:this.fill_color.get_value(),alpha:this.fill_alpha.get_value()}}set_value(l){const t=this.fill_color.get_value(),e=this.fill_alpha.get_value();l.fillStyle=(0,_.color2css)(t,e)}}e.Fill=c,c.__name__=\"Fill\";class h extends o.VisualUniforms{get doit(){const l=this.fill_color.value,t=this.fill_alpha.value;return!(0==l||0==t)}apply(l,t){const{doit:e}=this;return e&&(this.set_value(l),l.fill(t)),e}values(){return{color:this.fill_color.value,alpha:this.fill_alpha.value}}set_value(l){const t=this.fill_color.value,e=this.fill_alpha.value;l.fillStyle=(0,_.color2css)(t,e)}}e.FillScalar=h,h.__name__=\"FillScalar\";class u extends o.VisualUniforms{get doit(){const{fill_color:l}=this;if(l.is_Scalar()&&0==l.value)return!1;const{fill_alpha:t}=this;return!t.is_Scalar()||0!=t.value}apply(l,t,e){const{doit:i}=this;return i&&(this.set_vectorize(l,t),l.fill(e)),i}values(l){return{color:this.fill_color.get(l),alpha:this.fill_alpha.get(l)}}set_vectorize(l,t){const e=this.fill_color.get(t),i=this.fill_alpha.get(t);l.fillStyle=(0,_.color2css)(e,i)}}e.FillVector=u,u.__name__=\"FillVector\",c.prototype.type=\"fill\",c.prototype.attrs=Object.keys(r.Fill),h.prototype.type=\"fill\",h.prototype.attrs=Object.keys(r.FillScalar),u.prototype.type=\"fill\",u.prototype.attrs=Object.keys(r.FillVector)},\n function _(t,e,l,s,_){s();const i=t(1),a=t(47),o=(0,i.__importStar)(t(48)),n=t(22);class h extends a.VisualProperties{get doit(){const t=this.text_color.get_value(),e=this.text_alpha.get_value();return!(null==t||0==e)}values(){return{color:this.text_color.get_value(),alpha:this.text_alpha.get_value(),font:this.text_font.get_value(),font_size:this.text_font_size.get_value(),font_style:this.text_font_style.get_value(),align:this.text_align.get_value(),baseline:this.text_baseline.get_value(),line_height:this.text_line_height.get_value()}}set_value(t){const e=this.text_color.get_value(),l=this.text_alpha.get_value();t.fillStyle=(0,n.color2css)(e,l),t.font=this.font_value(),t.textAlign=this.text_align.get_value(),t.textBaseline=this.text_baseline.get_value()}font_value(){return`${this.text_font_style.get_value()} ${this.text_font_size.get_value()} ${this.text_font.get_value()}`}}l.Text=h,h.__name__=\"Text\";class x extends a.VisualUniforms{get doit(){const t=this.text_color.value,e=this.text_alpha.value;return!(0==t||0==e)}values(){return{color:this.text_color.value,alpha:this.text_alpha.value,font:this.text_font.value,font_size:this.text_font_size.value,font_style:this.text_font_style.value,align:this.text_align.value,baseline:this.text_baseline.value,line_height:this.text_line_height.value}}set_value(t){const e=this.text_color.value,l=this.text_alpha.value,s=this.font_value(),_=this.text_align.value,i=this.text_baseline.value;t.fillStyle=(0,n.color2css)(e,l),t.font=s,t.textAlign=_,t.textBaseline=i}font_value(){return`${this.text_font_style.value} ${this.text_font_size.value} ${this.text_font.value}`}}l.TextScalar=x,x.__name__=\"TextScalar\";class u extends a.VisualUniforms{values(t){return{color:this.text_color.get(t),alpha:this.text_alpha.get(t),font:this.text_font.get(t),font_size:this.text_font_size.get(t),font_style:this.text_font_style.get(t),align:this.text_align.get(t),baseline:this.text_baseline.get(t),line_height:this.text_line_height.get(t)}}get doit(){const{text_color:t}=this;if(t.is_Scalar()&&0==t.value)return!1;const{text_alpha:e}=this;return!e.is_Scalar()||0!=e.value}set_vectorize(t,e){const l=this.text_color.get(e),s=this.text_alpha.get(e),_=this.font_value(e),i=this.text_align.get(e),a=this.text_baseline.get(e);t.fillStyle=(0,n.color2css)(l,s),t.font=_,t.textAlign=i,t.textBaseline=a}font_value(t){return`${this.text_font_style.get(t)} ${this.text_font_size.get(t)} ${this.text_font.get(t)}`}}l.TextVector=u,u.__name__=\"TextVector\",h.prototype.type=\"text\",h.prototype.attrs=Object.keys(o.Text),x.prototype.type=\"text\",x.prototype.attrs=Object.keys(o.TextScalar),u.prototype.type=\"text\",u.prototype.attrs=Object.keys(o.TextVector)},\n function _(t,e,a,r,i){r();const h=t(1),s=t(47),n=t(52),c=(0,h.__importStar)(t(18)),_=(0,h.__importStar)(t(48));class l extends s.VisualProperties{constructor(){super(...arguments),this._update_iteration=0}update(){if(this._update_iteration++,this._hatch_image=null,!this.doit)return;const t=this.hatch_color.get_value(),e=this.hatch_alpha.get_value(),a=this.hatch_scale.get_value(),r=this.hatch_pattern.get_value(),i=this.hatch_weight.get_value(),h=t=>{this._hatch_image=t},s=this.hatch_extra.get_value()[r];if(null!=s){const r=s.get_pattern(t,e,a,i);if(r instanceof Promise){const{_update_iteration:t}=this;r.then((e=>{this._update_iteration==t&&(h(e),this.obj.request_render())}))}else h(r)}else{const s=this.obj.canvas.create_layer(),c=(0,n.get_pattern)(s,r,t,e,a,i);h(c)}}get doit(){const t=this.hatch_color.get_value(),e=this.hatch_alpha.get_value(),a=this.hatch_pattern.get_value();return!(null==t||0==e||\" \"==a||\"blank\"==a||null==a)}apply(t,e){const{doit:a}=this;return a&&(this.set_value(t),t.layer.undo_transform((()=>t.fill(e)))),a}set_value(t){const e=this.pattern(t);t.fillStyle=null!=e?e:\"transparent\"}pattern(t){const e=this._hatch_image;return null==e?null:t.createPattern(e,this.repetition())}repetition(){const t=this.hatch_pattern.get_value(),e=this.hatch_extra.get_value()[t];if(null==e)return\"repeat\";switch(e.repetition){case\"repeat\":return\"repeat\";case\"repeat_x\":return\"repeat-x\";case\"repeat_y\":return\"repeat-y\";case\"no_repeat\":return\"no-repeat\"}}}a.Hatch=l,l.__name__=\"Hatch\";class o extends s.VisualUniforms{constructor(){super(...arguments),this._static_doit=!1,this._update_iteration=0}_compute_static_doit(){const t=this.hatch_color.value,e=this.hatch_alpha.value,a=this.hatch_pattern.value;return!(null==t||0==e||\" \"==a||\"blank\"==a||null==a)}update(){this._update_iteration++;const t=this.hatch_color.length;if(this._hatch_image=new c.UniformScalar(null,t),this._static_doit=this._compute_static_doit(),!this._static_doit)return;const e=this.hatch_color.value,a=this.hatch_alpha.value,r=this.hatch_scale.value,i=this.hatch_pattern.value,h=this.hatch_weight.value,s=e=>{this._hatch_image=new c.UniformScalar(e,t)},_=this.hatch_extra.value[i];if(null!=_){const t=_.get_pattern(e,a,r,h);if(t instanceof Promise){const{_update_iteration:e}=this;t.then((t=>{this._update_iteration==e&&(s(t),this.obj.request_render())}))}else s(t)}else{const t=this.obj.canvas.create_layer(),c=(0,n.get_pattern)(t,i,e,a,r,h);s(c)}}get doit(){return this._static_doit}apply(t,e){const{doit:a}=this;return a&&(this.set_value(t),t.layer.undo_transform((()=>t.fill(e)))),a}set_value(t){var e;t.fillStyle=null!==(e=this.pattern(t))&&void 0!==e?e:\"transparent\"}pattern(t){const e=this._hatch_image.value;return null==e?null:t.createPattern(e,this.repetition())}repetition(){const t=this.hatch_pattern.value,e=this.hatch_extra.value[t];if(null==e)return\"repeat\";switch(e.repetition){case\"repeat\":return\"repeat\";case\"repeat_x\":return\"repeat-x\";case\"repeat_y\":return\"repeat-y\";case\"no_repeat\":return\"no-repeat\"}}}a.HatchScalar=o,o.__name__=\"HatchScalar\";class u extends s.VisualUniforms{constructor(){super(...arguments),this._static_doit=!1,this._update_iteration=0}_compute_static_doit(){const{hatch_color:t}=this;if(t.is_Scalar()&&0==t.value)return!1;const{hatch_alpha:e}=this;if(e.is_Scalar()&&0==e.value)return!1;const{hatch_pattern:a}=this;if(a.is_Scalar()){const t=a.value;if(\" \"==t||\"blank\"==t||null==t)return!1}return!0}update(){this._update_iteration++;const t=this.hatch_color.length;if(this._hatch_image=new c.UniformScalar(null,t),this._static_doit=this._compute_static_doit(),!this._static_doit)return;const e=(t,e,a,r,i,h)=>{const s=this.hatch_extra.value[t];if(null!=s){const t=s.get_pattern(e,a,r,i);if(t instanceof Promise){const{_update_iteration:e}=this;t.then((t=>{this._update_iteration==e&&(h(t),this.obj.request_render())}))}else h(t)}else{const s=this.obj.canvas.create_layer(),c=(0,n.get_pattern)(s,t,e,a,r,i);h(c)}};if(this.hatch_color.is_Scalar()&&this.hatch_alpha.is_Scalar()&&this.hatch_scale.is_Scalar()&&this.hatch_pattern.is_Scalar()&&this.hatch_weight.is_Scalar()){const a=this.hatch_color.value,r=this.hatch_alpha.value,i=this.hatch_scale.value;e(this.hatch_pattern.value,a,r,i,this.hatch_weight.value,(e=>{this._hatch_image=new c.UniformScalar(e,t)}))}else{const a=new Array(t);a.fill(null),this._hatch_image=new c.UniformVector(a);for(let r=0;r{a[r]=t}))}}}get doit(){return this._static_doit}apply(t,e,a){const{doit:r}=this;return r&&(this.set_vectorize(t,e),t.layer.undo_transform((()=>t.fill(a)))),r}set_vectorize(t,e){var a;t.fillStyle=null!==(a=this.pattern(t,e))&&void 0!==a?a:\"transparent\"}pattern(t,e){const a=this._hatch_image.get(e);return null==a?null:t.createPattern(a,this.repetition(e))}repetition(t){const e=this.hatch_pattern.get(t),a=this.hatch_extra.value[e];if(null==a)return\"repeat\";switch(a.repetition){case\"repeat\":return\"repeat\";case\"repeat_x\":return\"repeat-x\";case\"repeat_y\":return\"repeat-y\";case\"no_repeat\":return\"no-repeat\"}}}a.HatchVector=u,u.__name__=\"HatchVector\",l.prototype.type=\"hatch\",l.prototype.attrs=Object.keys(_.Hatch),o.prototype.type=\"hatch\",o.prototype.attrs=Object.keys(_.HatchScalar),u.prototype.type=\"hatch\",u.prototype.attrs=Object.keys(_.HatchVector)},\n function _(e,o,a,s,r){s();const i=e(22);function l(e,o,a){e.moveTo(0,a+.5),e.lineTo(o,a+.5),e.stroke()}function n(e,o,a){e.moveTo(a+.5,0),e.lineTo(a+.5,o),e.stroke()}function t(e,o){e.moveTo(0,o),e.lineTo(o,0),e.stroke(),e.moveTo(0,0),e.lineTo(o,o),e.stroke()}a.hatch_aliases={\" \":\"blank\",\".\":\"dot\",o:\"ring\",\"-\":\"horizontal_line\",\"|\":\"vertical_line\",\"+\":\"cross\",'\"':\"horizontal_dash\",\":\":\"vertical_dash\",\"@\":\"spiral\",\"/\":\"right_diagonal_line\",\"\\\\\":\"left_diagonal_line\",x:\"diagonal_cross\",\",\":\"right_diagonal_dash\",\"`\":\"left_diagonal_dash\",v:\"horizontal_wave\",\">\":\"vertical_wave\",\"*\":\"criss_cross\"},a.get_pattern=function(e,o,s,r,c,k){return e.resize(c,c),e.prepare(),function(e,o,s,r,c,k){var _;const T=c,v=T/2,h=v/2,d=(0,i.color2css)(s,r);switch(e.strokeStyle=d,e.fillStyle=d,e.lineCap=\"square\",e.lineWidth=k,null!==(_=a.hatch_aliases[o])&&void 0!==_?_:o){case\"blank\":break;case\"dot\":e.arc(v,v,v/2,0,2*Math.PI,!0),e.fill();break;case\"ring\":e.arc(v,v,v/2,0,2*Math.PI,!0),e.stroke();break;case\"horizontal_line\":l(e,T,v);break;case\"vertical_line\":n(e,T,v);break;case\"cross\":l(e,T,v),n(e,T,v);break;case\"horizontal_dash\":l(e,v,v);break;case\"vertical_dash\":n(e,v,v);break;case\"spiral\":{const o=T/30;e.moveTo(v,v);for(let a=0;a<360;a++){const s=.1*a,r=v+o*s*Math.cos(s),i=v+o*s*Math.sin(s);e.lineTo(r,i)}e.stroke();break}case\"right_diagonal_line\":e.moveTo(.5-h,T),e.lineTo(h+.5,0),e.stroke(),e.moveTo(h+.5,T),e.lineTo(3*h+.5,0),e.stroke(),e.moveTo(3*h+.5,T),e.lineTo(5*h+.5,0),e.stroke(),e.stroke();break;case\"left_diagonal_line\":e.moveTo(h+.5,T),e.lineTo(.5-h,0),e.stroke(),e.moveTo(3*h+.5,T),e.lineTo(h+.5,0),e.stroke(),e.moveTo(5*h+.5,T),e.lineTo(3*h+.5,0),e.stroke(),e.stroke();break;case\"diagonal_cross\":t(e,T);break;case\"right_diagonal_dash\":e.moveTo(h+.5,3*h+.5),e.lineTo(3*h+.5,h+.5),e.stroke();break;case\"left_diagonal_dash\":e.moveTo(h+.5,h+.5),e.lineTo(3*h+.5,3*h+.5),e.stroke();break;case\"horizontal_wave\":e.moveTo(0,h),e.lineTo(v,3*h),e.lineTo(T,h),e.stroke();break;case\"vertical_wave\":e.moveTo(h,0),e.lineTo(3*h,v),e.lineTo(h,T),e.stroke();break;case\"criss_cross\":t(e,T),l(e,T,v),n(e,T,v)}}(e.ctx,o,s,r,c,k),e.canvas}},\n function _(e,t,s,n,c){var a;n();const i=e(14),r=e(8),l=e(13),o=e(26),_=e(19);class h extends i.HasProps{constructor(e){super(e)}get is_syncable(){return this.syncable}[o.equals](e,t){return t.eq(this.id,e.id)&&super[o.equals](e,t)}initialize(){super.initialize(),this._js_callbacks=new Map}connect_signals(){super.connect_signals(),this._update_property_callbacks(),this.connect(this.properties.js_property_callbacks.change,(()=>this._update_property_callbacks())),this.connect(this.properties.js_event_callbacks.change,(()=>this._update_event_callbacks())),this.connect(this.properties.subscribed_events.change,(()=>this._update_event_callbacks()))}_process_event(e){var t;for(const s of null!==(t=this.js_event_callbacks[e.event_name])&&void 0!==t?t:[])s.execute(e);null!=this.document&&this.subscribed_events.some((t=>t==e.event_name))&&this.document.event_manager.send_event(e)}trigger_event(e){null!=this.document&&(e.origin=this,this.document.event_manager.trigger(e))}_update_event_callbacks(){null!=this.document?this.document.event_manager.subscribed_models.add(this):_.logger.warn(\"WARNING: Document not defined for updating event callbacks\")}_update_property_callbacks(){const e=e=>{const[t,s=null]=e.split(\":\");return null!=s?this.properties[s][t]:this[t]};for(const[t,s]of this._js_callbacks){const n=e(t);for(const e of s)this.disconnect(n,e)}this._js_callbacks.clear();for(const[t,s]of(0,l.entries)(this.js_property_callbacks)){const n=s.map((e=>()=>e.execute(this)));this._js_callbacks.set(t,n);const c=e(t);for(const e of n)this.connect(c,e)}}_doc_attached(){(0,l.isEmpty)(this.js_event_callbacks)&&0==this.subscribed_events.length||this._update_event_callbacks()}_doc_detached(){this.document.event_manager.subscribed_models.delete(this)}select(e){if((0,r.isString)(e))return[...this.references()].filter((t=>t instanceof h&&t.name===e));if(e.prototype instanceof i.HasProps)return[...this.references()].filter((t=>t instanceof e));throw new Error(\"invalid selector\")}select_one(e){const t=this.select(e);switch(t.length){case 0:return null;case 1:return t[0];default:throw new Error(\"found more than one object matching given selector\")}}}s.Model=h,a=h,h.__name__=\"Model\",a.define((({Any:e,Unknown:t,Boolean:s,String:n,Array:c,Dict:a,Nullable:i})=>({tags:[c(t),[]],name:[i(n),null],js_property_callbacks:[a(c(e)),{}],js_event_callbacks:[a(c(e)),{}],subscribed_events:[c(n),[]],syncable:[s,!0]})))},\n function _(e,t,s,a,r){var c,n;a();const _=e(12),o=e(53),i=e(55),l=e(59),u=e(61),g=e(62),h=e(57),p=e(63),m=e(67);class x{constructor(e,t){this.x_scale=e,this.y_scale=t,this.x_source=this.x_scale.source_range,this.y_source=this.y_scale.source_range,this.ranges=[this.x_source,this.y_source],this.scales=[this.x_scale,this.y_scale]}map_to_screen(e,t){return[this.x_scale.v_compute(e),this.y_scale.v_compute(t)]}map_from_screen(e,t){return[this.x_scale.v_invert(e),this.y_scale.v_invert(t)]}}s.CoordinateTransform=x,x.__name__=\"CoordinateTransform\";class y extends o.Model{constructor(e){super(e)}get x_ranges(){return new Map([[\"default\",this.x_source]])}get y_ranges(){return new Map([[\"default\",this.y_source]])}_get_scale(e,t,s){if(e instanceof m.FactorRange!=t instanceof g.CategoricalScale)throw new Error(`Range ${e.type} is incompatible is Scale ${t.type}`);t instanceof u.LogScale&&e instanceof p.DataRange1d&&(e.scale_hint=\"log\");const a=t.clone();return a.setv({source_range:e,target_range:s}),a}get_transform(e){const{x_source:t,x_scale:s,x_target:a}=this,r=this._get_scale(t,s,a),{y_source:c,y_scale:n,y_target:_}=this,o=this._get_scale(c,n,_),i=new v({source_scale:r,source_range:r.source_range,target_scale:e.x_scale,target_range:e.x_target}),l=new v({source_scale:o,source_range:o.source_range,target_scale:e.y_scale,target_range:e.y_target});return new x(i,l)}}s.CoordinateMapping=y,c=y,y.__name__=\"CoordinateMapping\",c.define((({Ref:e})=>({x_source:[e(h.Range),()=>new p.DataRange1d],y_source:[e(h.Range),()=>new p.DataRange1d],x_scale:[e(i.Scale),()=>new l.LinearScale],y_scale:[e(i.Scale),()=>new l.LinearScale],x_target:[e(h.Range)],y_target:[e(h.Range)]})));class v extends i.Scale{constructor(e){super(e)}get s_compute(){const e=this.source_scale.s_compute,t=this.target_scale.s_compute;return s=>t(e(s))}get s_invert(){const e=this.source_scale.s_invert,t=this.target_scale.s_invert;return s=>e(t(s))}compute(e){return this.s_compute(e)}v_compute(e){const{s_compute:t}=this;return(0,_.map)(e,t)}invert(e){return this.s_invert(e)}v_invert(e){const{s_invert:t}=this;return(0,_.map)(e,t)}}s.CompositeScale=v,n=v,v.__name__=\"CompositeScale\",n.internal((({Ref:e})=>({source_scale:[e(i.Scale)],target_scale:[e(i.Scale)]})))},\n function _(e,t,r,n,s){var _;n();const a=e(56),c=e(57),o=e(58),i=e(24);class u extends a.Transform{constructor(e){super(e)}compute(e){return this.s_compute(e)}v_compute(e){const t=new i.ScreenArray(e.length),{s_compute:r}=this;for(let n=0;n({source_range:[e(c.Range)],target_range:[e(o.Range1d)]})))},\n function _(n,s,o,r,c){r();const e=n(53);class t extends e.Model{constructor(n){super(n)}}o.Transform=t,t.__name__=\"Transform\"},\n function _(e,t,n,i,s){var r;i();const a=e(53);class l extends a.Model{constructor(e){super(e),this.have_updated_interactively=!1}get is_reversed(){return this.start>this.end}get is_valid(){return isFinite(this.min)&&isFinite(this.max)}get span(){return Math.abs(this.end-this.start)}}n.Range=l,r=l,l.__name__=\"Range\",r.define((({Number:e,Tuple:t,Or:n,Auto:i,Nullable:s})=>({bounds:[s(n(t(s(e),s(e)),i)),null],min_interval:[s(e),null],max_interval:[s(e),null]}))),r.internal((({Array:e,AnyRef:t})=>({plots:[e(t()),[]]})))},\n function _(t,e,s,n,r){var a;n();const i=t(57);class _ extends i.Range{constructor(t){super(t)}_set_auto_bounds(){if(\"auto\"==this.bounds){const t=Math.min(this._reset_start,this._reset_end),e=Math.max(this._reset_start,this._reset_end);this.setv({bounds:[t,e]},{silent:!0})}}initialize(){super.initialize(),this._set_auto_bounds()}get min(){return Math.min(this.start,this.end)}get max(){return Math.max(this.start,this.end)}reset(){this._set_auto_bounds();const{_reset_start:t,_reset_end:e}=this;this.start!=t||this.end!=e?this.setv({start:t,end:e}):this.change.emit()}map(t){return new _({start:t(this.start),end:t(this.end)})}widen(t){let{start:e,end:s}=this;return this.is_reversed?(e+=t,s-=t):(e-=t,s+=t),new _({start:e,end:s})}}s.Range1d=_,a=_,_.__name__=\"Range1d\",a.define((({Number:t,Nullable:e})=>({start:[t,0],end:[t,1],reset_start:[e(t),null,{on_update(t,e){e._reset_start=null!=t?t:e.start}}],reset_end:[e(t),null,{on_update(t,e){e._reset_end=null!=t?t:e.end}}]})))},\n function _(t,e,n,r,s){r();const a=t(60);class _ extends a.ContinuousScale{constructor(t){super(t)}get s_compute(){const[t,e]=this._linear_compute_state();return n=>t*n+e}get s_invert(){const[t,e]=this._linear_compute_state();return n=>(n-e)/t}_linear_compute_state(){const t=this.source_range.start,e=this.source_range.end,n=this.target_range.start,r=(this.target_range.end-n)/(e-t);return[r,-r*t+n]}}n.LinearScale=_,_.__name__=\"LinearScale\"},\n function _(n,c,o,s,e){s();const t=n(55);class u extends t.Scale{constructor(n){super(n)}}o.ContinuousScale=u,u.__name__=\"ContinuousScale\"},\n function _(t,e,a,o,s){o();const r=t(60);class n extends r.ContinuousScale{constructor(t){super(t)}get s_compute(){const[t,e,a,o]=this._compute_state();return s=>{if(0==a)return 0;{const r=(Math.log(s)-o)/a;return isFinite(r)?r*t+e:NaN}}}get s_invert(){const[t,e,a,o]=this._compute_state();return s=>{const r=(s-e)/t;return Math.exp(a*r+o)}}_get_safe_factor(t,e){let a=t<0?0:t,o=e<0?0:e;if(a==o)if(0==a)[a,o]=[1,10];else{const t=Math.log(a)/Math.log(10);a=10**Math.floor(t),o=Math.ceil(t)!=Math.floor(t)?10**Math.ceil(t):10**(Math.ceil(t)+1)}return[a,o]}_compute_state(){const t=this.source_range.start,e=this.source_range.end,a=this.target_range.start,o=this.target_range.end-a,[s,r]=this._get_safe_factor(t,e);let n,c;0==s?(n=Math.log(r),c=0):(n=Math.log(r)-Math.log(s),c=Math.log(s));return[o,a,n,c]}}a.LogScale=n,n.__name__=\"LogScale\"},\n function _(t,e,c,a,s){a();const n=t(55),r=t(59),{_linear_compute_state:o}=r.LinearScale.prototype;class l extends n.Scale{constructor(t){super(t)}get s_compute(){const[t,e]=o.call(this),c=this.source_range;return a=>t*c.synthetic(a)+e}get s_invert(){const[t,e]=o.call(this);return c=>(c-e)/t}}c.CategoricalScale=l,l.__name__=\"CategoricalScale\"},\n function _(t,i,n,e,a){e();const s=t(1);var l;const _=t(64),o=t(20),r=t(9),h=t(19),d=(0,s.__importStar)(t(65)),u=t(66);class g extends _.DataRange{constructor(t){super(t),this.have_updated_interactively=!1}initialize(){super.initialize(),this._initial_start=this.start,this._initial_end=this.end,this._initial_range_padding=this.range_padding,this._initial_range_padding_units=this.range_padding_units,this._initial_follow=this.follow,this._initial_follow_interval=this.follow_interval,this._initial_default_span=this.default_span,this._plot_bounds=new Map}get min(){return Math.min(this.start,this.end)}get max(){return Math.max(this.start,this.end)}computed_renderers(){const{renderers:t,names:i}=this,n=(0,r.concat)(this.plots.map((t=>t.data_renderers)));return(0,u.compute_renderers)(0==t.length?\"auto\":t,n,i)}_compute_plot_bounds(t,i){let n=d.empty();for(const e of t){const t=i.get(e);null==t||!e.visible&&this.only_visible||(n=d.union(n,t))}return n}adjust_bounds_for_aspect(t,i){const n=d.empty();let e=t.x1-t.x0;e<=0&&(e=1);let a=t.y1-t.y0;a<=0&&(a=1);const s=.5*(t.x1+t.x0),l=.5*(t.y1+t.y0);return el&&(\"start\"==this.follow?a=e+s*l:\"end\"==this.follow&&(e=a-s*l)),[e,a]}update(t,i,n,e){if(this.have_updated_interactively)return;const a=this.computed_renderers();let s=this._compute_plot_bounds(a,t);null!=e&&(s=this.adjust_bounds_for_aspect(s,e)),this._plot_bounds.set(n,s);const[l,_]=this._compute_min_max(this._plot_bounds.entries(),i);let[o,r]=this._compute_range(l,_);null!=this._initial_start&&(\"log\"==this.scale_hint?this._initial_start>0&&(o=this._initial_start):o=this._initial_start),null!=this._initial_end&&(\"log\"==this.scale_hint?this._initial_end>0&&(r=this._initial_end):r=this._initial_end);let h=!1;\"auto\"==this.bounds&&(this.setv({bounds:[o,r]},{silent:!0}),h=!0);const[d,u]=[this.start,this.end];if(o!=d||r!=u){const t={};o!=d&&(t.start=o),r!=u&&(t.end=r),this.setv(t),h=!1}h&&this.change.emit()}reset(){this.have_updated_interactively=!1,this.setv({range_padding:this._initial_range_padding,range_padding_units:this._initial_range_padding_units,follow:this._initial_follow,follow_interval:this._initial_follow_interval,default_span:this._initial_default_span},{silent:!0}),this.change.emit()}}n.DataRange1d=g,l=g,g.__name__=\"DataRange1d\",l.define((({Boolean:t,Number:i,Nullable:n})=>({start:[i],end:[i],range_padding:[i,.1],range_padding_units:[o.PaddingUnits,\"percent\"],flipped:[t,!1],follow:[n(o.StartEnd),null],follow_interval:[n(i),null],default_span:[i,2],only_visible:[t,!1]}))),l.internal((({Enum:t})=>({scale_hint:[t(\"log\",\"auto\"),\"auto\"]})))},\n function _(e,n,a,r,s){var t;r();const c=e(57);class _ extends c.Range{constructor(e){super(e)}}a.DataRange=_,t=_,_.__name__=\"DataRange\",t.define((({String:e,Array:n,AnyRef:a})=>({names:[n(e),[]],renderers:[n(a()),[]]})))},\n function _(t,i,e,h,r){h();const s=t(24),n=t(26),{min:x,max:y}=Math;e.empty=function(){return{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}},e.positive_x=function(){return{x0:Number.MIN_VALUE,y0:-1/0,x1:1/0,y1:1/0}},e.positive_y=function(){return{x0:-1/0,y0:Number.MIN_VALUE,x1:1/0,y1:1/0}},e.union=function(t,i){return{x0:x(t.x0,i.x0),x1:y(t.x1,i.x1),y0:x(t.y0,i.y0),y1:y(t.y1,i.y1)}};class o{constructor(t){if(null==t)this.x0=0,this.y0=0,this.x1=0,this.y1=0;else if(\"x0\"in t){const{x0:i,y0:e,x1:h,y1:r}=t;if(!(i<=h&&e<=r))throw new Error(`invalid bbox {x0: ${i}, y0: ${e}, x1: ${h}, y1: ${r}}`);this.x0=i,this.y0=e,this.x1=h,this.y1=r}else if(\"x\"in t){const{x:i,y:e,width:h,height:r}=t;if(!(h>=0&&r>=0))throw new Error(`invalid bbox {x: ${i}, y: ${e}, width: ${h}, height: ${r}}`);this.x0=i,this.y0=e,this.x1=i+h,this.y1=e+r}else{let i,e,h,r;if(\"width\"in t)if(\"left\"in t)i=t.left,e=i+t.width;else if(\"right\"in t)e=t.right,i=e-t.width;else{const h=t.width/2;i=t.hcenter-h,e=t.hcenter+h}else i=t.left,e=t.right;if(\"height\"in t)if(\"top\"in t)h=t.top,r=h+t.height;else if(\"bottom\"in t)r=t.bottom,h=r-t.height;else{const i=t.height/2;h=t.vcenter-i,r=t.vcenter+i}else h=t.top,r=t.bottom;if(!(i<=e&&h<=r))throw new Error(`invalid bbox {left: ${i}, top: ${h}, right: ${e}, bottom: ${r}}`);this.x0=i,this.y0=h,this.x1=e,this.y1=r}}static from_rect({left:t,right:i,top:e,bottom:h}){return new o({x0:Math.min(t,i),y0:Math.min(e,h),x1:Math.max(t,i),y1:Math.max(e,h)})}equals(t){return this.x0==t.x0&&this.y0==t.y0&&this.x1==t.x1&&this.y1==t.y1}[n.equals](t,i){return i.eq(this.x0,t.x0)&&i.eq(this.y0,t.y0)&&i.eq(this.x1,t.x1)&&i.eq(this.y1,t.y1)}toString(){return`BBox({left: ${this.left}, top: ${this.top}, width: ${this.width}, height: ${this.height}})`}get left(){return this.x0}get top(){return this.y0}get right(){return this.x1}get bottom(){return this.y1}get p0(){return[this.x0,this.y0]}get p1(){return[this.x1,this.y1]}get x(){return this.x0}get y(){return this.y0}get width(){return this.x1-this.x0}get height(){return this.y1-this.y0}get size(){return{width:this.width,height:this.height}}get rect(){const{x0:t,y0:i,x1:e,y1:h}=this;return{p0:{x:t,y:i},p1:{x:e,y:i},p2:{x:e,y:h},p3:{x:t,y:h}}}get box(){const{x:t,y:i,width:e,height:h}=this;return{x:t,y:i,width:e,height:h}}get h_range(){return{start:this.x0,end:this.x1}}get v_range(){return{start:this.y0,end:this.y1}}get ranges(){return[this.h_range,this.v_range]}get aspect(){return this.width/this.height}get hcenter(){return(this.left+this.right)/2}get vcenter(){return(this.top+this.bottom)/2}get area(){return this.width*this.height}relative(){const{width:t,height:i}=this;return new o({x:0,y:0,width:t,height:i})}translate(t,i){const{x:e,y:h,width:r,height:s}=this;return new o({x:t+e,y:i+h,width:r,height:s})}relativize(t,i){return[t-this.x,i-this.y]}contains(t,i){return this.x0<=t&&t<=this.x1&&this.y0<=i&&i<=this.y1}clip(t,i){return tthis.x1&&(t=this.x1),ithis.y1&&(i=this.y1),[t,i]}grow_by(t){return new o({left:this.left-t,right:this.right+t,top:this.top-t,bottom:this.bottom+t})}shrink_by(t){return new o({left:this.left+t,right:this.right-t,top:this.top+t,bottom:this.bottom-t})}union(t){return new o({x0:x(this.x0,t.x0),y0:x(this.y0,t.y0),x1:y(this.x1,t.x1),y1:y(this.y1,t.y1)})}intersection(t){return this.intersects(t)?new o({x0:y(this.x0,t.x0),y0:y(this.y0,t.y0),x1:x(this.x1,t.x1),y1:x(this.y1,t.y1)}):null}intersects(t){return!(t.x1this.x1||t.y1this.y1)}get xview(){return{compute:t=>this.left+t,v_compute:t=>{const i=new s.ScreenArray(t.length),e=this.left;for(let h=0;hthis.bottom-t,v_compute:t=>{const i=new s.ScreenArray(t.length),e=this.bottom;for(let h=0;h0&&(r=r.filter((n=>(0,l.includes)(t,n.name)))),r}},\n function _(t,n,e,i,s){var r;i();const a=t(57),o=t(20),g=t(21),p=t(24),c=t(9),l=t(8),u=t(11);function h(t,n,e=0){const i=new Map;for(let s=0;sa.get(t).value)));r.set(t,{value:l/s,mapping:a}),o+=s+n+p}return[r,(a.size-1)*n+g]}function _(t,n,e,i,s=0){var r;const a=new Map,o=new Map;for(const[n,e,i]of t){const t=null!==(r=o.get(n))&&void 0!==r?r:[];o.set(n,[...t,[e,i]])}let g=s,p=0;for(const[t,s]of o){const r=s.length,[o,l]=d(s,e,i,g);p+=l;const u=(0,c.sum)(s.map((([t])=>o.get(t).value)));a.set(t,{value:u/r,mapping:o}),g+=r+n+l}return[a,(o.size-1)*n+p]}e.Factor=(0,g.Or)(g.String,(0,g.Tuple)(g.String,g.String),(0,g.Tuple)(g.String,g.String,g.String)),e.FactorSeq=(0,g.Or)((0,g.Array)(g.String),(0,g.Array)((0,g.Tuple)(g.String,g.String)),(0,g.Array)((0,g.Tuple)(g.String,g.String,g.String))),e.map_one_level=h,e.map_two_levels=d,e.map_three_levels=_;class f extends a.Range{constructor(t){super(t)}get min(){return this.start}get max(){return this.end}initialize(){super.initialize(),this._init(!0)}connect_signals(){super.connect_signals(),this.connect(this.properties.factors.change,(()=>this.reset())),this.connect(this.properties.factor_padding.change,(()=>this.reset())),this.connect(this.properties.group_padding.change,(()=>this.reset())),this.connect(this.properties.subgroup_padding.change,(()=>this.reset())),this.connect(this.properties.range_padding.change,(()=>this.reset())),this.connect(this.properties.range_padding_units.change,(()=>this.reset()))}reset(){this._init(!1),this.change.emit()}_lookup(t){switch(t.length){case 1:{const[n]=t,e=this._mapping.get(n);return null!=e?e.value:NaN}case 2:{const[n,e]=t,i=this._mapping.get(n);if(null!=i){const t=i.mapping.get(e);if(null!=t)return t.value}return NaN}case 3:{const[n,e,i]=t,s=this._mapping.get(n);if(null!=s){const t=s.mapping.get(e);if(null!=t){const n=t.mapping.get(i);if(null!=n)return n.value}}return NaN}default:(0,u.unreachable)()}}synthetic(t){if((0,l.isNumber)(t))return t;if((0,l.isString)(t))return this._lookup([t]);let n=0;const e=t[t.length-1];return(0,l.isNumber)(e)&&(n=e,t=t.slice(0,-1)),this._lookup(t)+n}v_synthetic(t){const n=t.length,e=new p.ScreenArray(n);for(let i=0;i{if((0,c.every)(this.factors,l.isString)){const t=this.factors,[n,e]=h(t,this.factor_padding);return{levels:1,mapping:n,tops:null,mids:null,inside_padding:e}}if((0,c.every)(this.factors,(t=>(0,l.isArray)(t)&&2==t.length&&(0,l.isString)(t[0])&&(0,l.isString)(t[1])))){const t=this.factors,[n,e]=d(t,this.group_padding,this.factor_padding),i=[...n.keys()];return{levels:2,mapping:n,tops:i,mids:null,inside_padding:e}}if((0,c.every)(this.factors,(t=>(0,l.isArray)(t)&&3==t.length&&(0,l.isString)(t[0])&&(0,l.isString)(t[1])&&(0,l.isString)(t[2])))){const t=this.factors,[n,e]=_(t,this.group_padding,this.subgroup_padding,this.factor_padding),i=[...n.keys()],s=[];for(const[t,e]of n)for(const n of e.mapping.keys())s.push([t,n]);return{levels:3,mapping:n,tops:i,mids:s,inside_padding:e}}(0,u.unreachable)()})();this._mapping=e,this.tops=i,this.mids=s;let a=0,o=this.factors.length+r;if(\"percent\"==this.range_padding_units){const t=(o-a)*this.range_padding/2;a-=t,o+=t}else a-=this.range_padding,o+=this.range_padding;this.setv({start:a,end:o,levels:n},{silent:t}),\"auto\"==this.bounds&&this.setv({bounds:[a,o]},{silent:!0})}}e.FactorRange=f,r=f,f.__name__=\"FactorRange\",r.define((({Number:t})=>({factors:[e.FactorSeq,[]],factor_padding:[t,0],subgroup_padding:[t,.8],group_padding:[t,1.4],range_padding:[t,0],range_padding_units:[o.PaddingUnits,\"percent\"],start:[t],end:[t]}))),r.internal((({Number:t,String:n,Array:e,Tuple:i,Nullable:s})=>({levels:[t],mids:[s(e(i(n,n))),null],tops:[s(e(n)),null]})))},\n function _(t,e,s,a,i){a();const n=t(1);var _;const r=t(69),o=t(112),l=t(48),d=t(20),h=t(24),c=t(113),u=(0,n.__importStar)(t(18)),v=t(10);class p extends r.DataAnnotationView{async lazy_initialize(){await super.lazy_initialize();const{start:t,end:e}=this.model;null!=t&&(this.start=await(0,c.build_view)(t,{parent:this})),null!=e&&(this.end=await(0,c.build_view)(e,{parent:this}))}set_data(t){var e,s;super.set_data(t),null===(e=this.start)||void 0===e||e.set_data(t),null===(s=this.end)||void 0===s||s.set_data(t)}remove(){var t,e;null===(t=this.start)||void 0===t||t.remove(),null===(e=this.end)||void 0===e||e.remove(),super.remove()}map_data(){const{frame:t}=this.plot_view;\"data\"==this.model.start_units?(this._sx_start=this.coordinates.x_scale.v_compute(this._x_start),this._sy_start=this.coordinates.y_scale.v_compute(this._y_start)):(this._sx_start=t.bbox.xview.v_compute(this._x_start),this._sy_start=t.bbox.yview.v_compute(this._y_start)),\"data\"==this.model.end_units?(this._sx_end=this.coordinates.x_scale.v_compute(this._x_end),this._sy_end=this.coordinates.y_scale.v_compute(this._y_end)):(this._sx_end=t.bbox.xview.v_compute(this._x_end),this._sy_end=t.bbox.yview.v_compute(this._y_end));const{_sx_start:e,_sy_start:s,_sx_end:a,_sy_end:i}=this,n=e.length,_=this._angles=new h.ScreenArray(n);for(let t=0;t({x_start:[u.XCoordinateSpec,{field:\"x_start\"}],y_start:[u.YCoordinateSpec,{field:\"y_start\"}],start_units:[d.SpatialUnits,\"data\"],start:[e(t(o.ArrowHead)),null],x_end:[u.XCoordinateSpec,{field:\"x_end\"}],y_end:[u.YCoordinateSpec,{field:\"y_end\"}],end_units:[d.SpatialUnits,\"data\"],end:[e(t(o.ArrowHead)),()=>new o.OpenHead]})))},\n function _(t,e,n,s,a){s();const o=t(1);var i;const c=t(40),r=t(70),_=t(75),l=t(78),h=(0,o.__importStar)(t(18));class d extends c.AnnotationView{constructor(){super(...arguments),this._initial_set_data=!1}connect_signals(){super.connect_signals();const t=()=>{this.set_data(this.model.source),this._rerender()};this.connect(this.model.change,t),this.connect(this.model.source.streaming,t),this.connect(this.model.source.patching,t),this.connect(this.model.source.change,t)}_rerender(){this.request_render()}set_data(t){const e=this;for(const n of this.model)if(n instanceof h.VectorSpec||n instanceof h.ScalarSpec)if(n instanceof h.BaseCoordinateSpec){const s=n.array(t);e[`_${n.attr}`]=s}else{const s=n.uniform(t);e[`${n.attr}`]=s}this.plot_model.use_map&&(null!=e._x&&l.inplace.project_xy(e._x,e._y),null!=e._xs&&l.inplace.project_xsys(e._xs,e._ys));for(const t of this.visuals)t.update()}_render(){this._initial_set_data||(this.set_data(this.model.source),this._initial_set_data=!0),this.map_data(),this.paint(this.layer.ctx)}}n.DataAnnotationView=d,d.__name__=\"DataAnnotationView\";class u extends c.Annotation{constructor(t){super(t)}}n.DataAnnotation=u,i=u,u.__name__=\"DataAnnotation\",i.define((({Ref:t})=>({source:[t(r.ColumnarDataSource),()=>new _.ColumnDataSource]})))},\n function _(t,e,n,s,a){var i;s();const r=t(71),l=t(15),c=t(19),o=t(73),h=t(8),u=t(9),g=t(13),d=t(72),_=t(74),m=t(29);class w extends r.DataSource{constructor(t){super(t),this.selection_manager=new o.SelectionManager(this)}get_array(t){let e=this.data[t];return null==e?this.data[t]=e=[]:(0,h.isArray)(e)||(this.data[t]=e=Array.from(e)),e}initialize(){super.initialize(),this._select=new l.Signal0(this,\"select\"),this.inspect=new l.Signal(this,\"inspect\"),this.streaming=new l.Signal0(this,\"streaming\"),this.patching=new l.Signal(this,\"patching\")}get_column(t){const e=this.data[t];return null!=e?e:null}columns(){return(0,g.keys)(this.data)}get_length(t=!0){const e=(0,u.uniq)((0,g.values)(this.data).map((t=>(0,m.is_NDArray)(t)?t.shape[0]:t.length)));switch(e.length){case 0:return null;case 1:return e[0];default:{const n=\"data source has columns of inconsistent lengths\";if(t)return c.logger.warn(n),e.sort()[0];throw new Error(n)}}}get length(){var t;return null!==(t=this.get_length())&&void 0!==t?t:0}clear(){const t={};for(const e of this.columns())t[e]=new this.data[e].constructor(0);this.data=t}}n.ColumnarDataSource=w,i=w,w.__name__=\"ColumnarDataSource\",i.define((({Ref:t})=>({selection_policy:[t(_.SelectionPolicy),()=>new _.UnionRenderers]}))),i.internal((({AnyRef:t})=>({inspected:[t(),()=>new d.Selection]})))},\n function _(e,c,n,t,o){var a;t();const s=e(53),r=e(72);class l extends s.Model{constructor(e){super(e)}}n.DataSource=l,a=l,l.__name__=\"DataSource\",a.define((({Ref:e})=>({selected:[e(r.Selection),()=>new r.Selection]})))},\n function _(i,e,s,t,n){var l;t();const c=i(53),d=i(9),h=i(13);class _ extends c.Model{constructor(i){super(i)}get_view(){return this.view}get selected_glyph(){return this.selected_glyphs.length>0?this.selected_glyphs[0]:null}add_to_selected_glyphs(i){this.selected_glyphs.push(i)}update(i,e=!0,s=\"replace\"){switch(s){case\"replace\":this.indices=i.indices,this.line_indices=i.line_indices,this.multiline_indices=i.multiline_indices,this.image_indices=i.image_indices,this.view=i.view,this.selected_glyphs=i.selected_glyphs;break;case\"append\":this.update_through_union(i);break;case\"intersect\":this.update_through_intersection(i);break;case\"subtract\":this.update_through_subtraction(i)}}clear(){this.indices=[],this.line_indices=[],this.multiline_indices={},this.image_indices=[],this.view=null,this.selected_glyphs=[]}map(i){return new _(Object.assign(Object.assign({},this.attributes),{indices:this.indices.map(i),multiline_indices:(0,h.to_object)((0,h.entries)(this.multiline_indices).map((([e,s])=>[i(Number(e)),s]))),image_indices:this.image_indices.map((e=>Object.assign(Object.assign({},e),{index:i(e.index)})))}))}is_empty(){return 0==this.indices.length&&0==this.line_indices.length&&0==this.image_indices.length}update_through_union(i){this.indices=(0,d.union)(this.indices,i.indices),this.selected_glyphs=(0,d.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,d.union)(i.line_indices,this.line_indices),this.view=i.view,this.multiline_indices=(0,h.merge)(i.multiline_indices,this.multiline_indices)}update_through_intersection(i){this.indices=(0,d.intersection)(this.indices,i.indices),this.selected_glyphs=(0,d.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,d.union)(i.line_indices,this.line_indices),this.view=i.view,this.multiline_indices=(0,h.merge)(i.multiline_indices,this.multiline_indices)}update_through_subtraction(i){this.indices=(0,d.difference)(this.indices,i.indices),this.selected_glyphs=(0,d.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,d.union)(i.line_indices,this.line_indices),this.view=i.view,this.multiline_indices=(0,h.merge)(i.multiline_indices,this.multiline_indices)}}s.Selection=_,l=_,_.__name__=\"Selection\",l.define((({Int:i,Array:e,Dict:s})=>({indices:[e(i),[]],line_indices:[e(i),[]],multiline_indices:[s(e(i)),{}]}))),l.internal((({Int:i,Array:e,AnyRef:s,Struct:t,Nullable:n})=>({selected_glyphs:[e(s()),[]],view:[n(s()),null],image_indices:[e(t({index:i,dim1:i,dim2:i,flat_index:i})),[]]})))},\n function _(e,t,o,s,c){s();const n=e(72);function i(e){return\"GlyphRenderer\"==e.model.type}function l(e){return\"GraphRenderer\"==e.model.type}class r{constructor(e){this.source=e,this.inspectors=new Map}select(e,t,o,s=\"replace\"){const c=[],n=[];for(const t of e)i(t)?c.push(t):l(t)&&n.push(t);let r=!1;for(const e of n){const c=e.model.selection_policy.hit_test(t,e);r=r||e.model.selection_policy.do_selection(c,e.model,o,s)}if(c.length>0){const e=this.source.selection_policy.hit_test(t,c);r=r||this.source.selection_policy.do_selection(e,this.source,o,s)}return r}inspect(e,t){let o=!1;if(i(e)){const s=e.hit_test(t);if(null!=s){o=!s.is_empty();const c=this.get_or_create_inspector(e.model);c.update(s,!0,\"replace\"),this.source.setv({inspected:c},{silent:!0}),this.source.inspect.emit([e.model,{geometry:t}])}}else if(l(e)){const s=e.model.inspection_policy.hit_test(t,e);o=o||e.model.inspection_policy.do_inspection(s,t,e,!1,\"replace\")}return o}clear(e){this.source.selected.clear(),null!=e&&this.get_or_create_inspector(e.model).clear()}get_or_create_inspector(e){let t=this.inspectors.get(e);return null==t&&(t=new n.Selection,this.inspectors.set(e,t)),t}}o.SelectionManager=r,r.__name__=\"SelectionManager\"},\n function _(e,t,n,s,o){s();const r=e(53);class c extends r.Model{do_selection(e,t,n,s){return null!=e&&(t.selected.update(e,n,s),t._select.emit(),!t.selected.is_empty())}}n.SelectionPolicy=c,c.__name__=\"SelectionPolicy\";class l extends c{hit_test(e,t){const n=[];for(const s of t){const t=s.hit_test(e);null!=t&&n.push(t)}if(n.length>0){const e=n[0];for(const t of n)e.update_through_intersection(t);return e}return null}}n.IntersectRenderers=l,l.__name__=\"IntersectRenderers\";class _ extends c{hit_test(e,t){const n=[];for(const s of t){const t=s.hit_test(e);null!=t&&n.push(t)}if(n.length>0){const e=n[0];for(const t of n)e.update_through_union(t);return e}return null}}n.UnionRenderers=_,_.__name__=\"UnionRenderers\"},\n function _(t,n,e,s,o){s();const r=t(1);var l;const c=t(70),i=t(8),a=t(13),u=(0,r.__importStar)(t(76)),h=t(77),d=t(35);function f(t,n,e){if((0,i.isArray)(t)){const s=t.concat(n);return null!=e&&s.length>e?s.slice(-e):s}if((0,i.isTypedArray)(t)){const s=t.length+n.length;if(null!=e&&s>e){const o=s-e,r=t.length;let l;t.length({data:[t(n),{}]})))},\n function _(t,n,o,e,c){e(),o.concat=function(t,...n){let o=t.length;for(const t of n)o+=t.length;const e=new t.constructor(o);e.set(t,0);let c=t.length;for(const t of n)e.set(t,c),c+=t.length;return e}},\n function _(n,o,t,e,f){function c(...n){const o=new Set;for(const t of n)for(const n of t)o.add(n);return o}e(),t.union=c,t.intersection=function(n,...o){const t=new Set;n:for(const e of n){for(const n of o)if(!n.has(e))continue n;t.add(e)}return t},t.difference=function(n,...o){const t=new Set(n);for(const n of c(...o))t.delete(n);return t}},\n function _(n,t,e,o,r){o();const c=n(1),l=(0,c.__importDefault)(n(79)),i=(0,c.__importDefault)(n(80)),u=n(24),a=new i.default(\"GOOGLE\"),s=new i.default(\"WGS84\"),f=(0,l.default)(s,a);e.wgs84_mercator={compute:(n,t)=>isFinite(n)&&isFinite(t)?f.forward([n,t]):[NaN,NaN],invert:(n,t)=>isFinite(n)&&isFinite(t)?f.inverse([n,t]):[NaN,NaN]};const _={lon:[-20026376.39,20026376.39],lat:[-20048966.1,20048966.1]},p={lon:[-180,180],lat:[-85.06,85.06]},{min:g,max:h}=Math;function m(n,t){const o=g(n.length,t.length),r=(0,u.infer_type)(n,t),c=new r(o),l=new r(o);return e.inplace.project_xy(n,t,c,l),[c,l]}e.clip_mercator=function(n,t,e){const[o,r]=_[e];return[h(n,o),g(t,r)]},e.in_bounds=function(n,t){const[e,o]=p[t];return e2?void 0!==e.name&&\"geocent\"===e.name||void 0!==n.name&&\"geocent\"===n.name?\"number\"==typeof o.z?[o.x,o.y,o.z].concat(t.splice(3)):[o.x,o.y,t[2]].concat(t.splice(3)):[o.x,o.y].concat(t.splice(2)):[o.x,o.y]):(a=(0,c.default)(e,n,t,r),2===(i=Object.keys(t)).length||i.forEach((function(r){if(void 0!==e.name&&\"geocent\"===e.name||void 0!==n.name&&\"geocent\"===n.name){if(\"x\"===r||\"y\"===r||\"z\"===r)return}else if(\"x\"===r||\"y\"===r)return;a[r]=t[r]})),a)}function l(e){return e instanceof i.default?e:e.oProj?e.oProj:(0,i.default)(e)}t.default=function(e,n,t){e=l(e);var r,o=!1;return void 0===n?(n=e,e=u,o=!0):(void 0!==n.x||Array.isArray(n))&&(t=n,n=e,e=u,o=!0),n=l(n),t?f(e,n,t):(r={forward:function(t,r){return f(e,n,t,r)},inverse:function(t,r){return f(n,e,t,r)}},o&&(r.oProj=n),r)}},\n function _(t,e,a,s,i){s();const l=t(1),u=(0,l.__importDefault)(t(81)),r=(0,l.__importDefault)(t(92)),d=(0,l.__importDefault)(t(93)),o=t(101),f=(0,l.__importDefault)(t(103)),p=(0,l.__importDefault)(t(104)),m=(0,l.__importDefault)(t(88)),n=t(105);function h(t,e){if(!(this instanceof h))return new h(t);e=e||function(t){if(t)throw t};var a=(0,u.default)(t);if(\"object\"==typeof a){var s=h.projections.get(a.projName);if(s){if(a.datumCode&&\"none\"!==a.datumCode){var i=(0,m.default)(f.default,a.datumCode);i&&(a.datum_params=a.datum_params||(i.towgs84?i.towgs84.split(\",\"):null),a.ellps=i.ellipse,a.datumName=i.datumName?i.datumName:a.datumCode)}a.k0=a.k0||1,a.axis=a.axis||\"enu\",a.ellps=a.ellps||\"wgs84\",a.lat1=a.lat1||a.lat0;var l=(0,o.sphere)(a.a,a.b,a.rf,a.ellps,a.sphere),d=(0,o.eccentricity)(l.a,l.b,l.rf,a.R_A),_=(0,n.getNadgrids)(a.nadgrids),c=a.datum||(0,p.default)(a.datumCode,a.datum_params,l.a,l.b,d.es,d.ep2,_);(0,r.default)(this,a),(0,r.default)(this,s),this.a=l.a,this.b=l.b,this.rf=l.rf,this.sphere=l.sphere,this.es=d.es,this.e=d.e,this.ep2=d.ep2,this.datum=c,this.init(),e(null,this)}else e(t)}else e(t)}h.projections=d.default,h.projections.start(),a.default=h},\n function _(t,r,n,u,e){u();const f=t(1),i=(0,f.__importDefault)(t(82)),a=(0,f.__importDefault)(t(89)),o=(0,f.__importDefault)(t(84)),l=(0,f.__importDefault)(t(88));var C=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];var d=[\"3857\",\"900913\",\"3785\",\"102113\"];n.default=function(t){if(!function(t){return\"string\"==typeof t}(t))return t;if(function(t){return t in i.default}(t))return i.default[t];if(function(t){return C.some((function(r){return t.indexOf(r)>-1}))}(t)){var r=(0,a.default)(t);if(function(t){var r=(0,l.default)(t,\"authority\");if(r){var n=(0,l.default)(r,\"epsg\");return n&&d.indexOf(n)>-1}}(r))return i.default[\"EPSG:3857\"];var n=function(t){var r=(0,l.default)(t,\"extension\");if(r)return(0,l.default)(r,\"proj4\")}(r);return n?(0,o.default)(n):r}return function(t){return\"+\"===t[0]}(t)?(0,o.default)(t):void 0}},\n function _(t,r,i,e,n){e();const f=t(1),a=(0,f.__importDefault)(t(83)),l=(0,f.__importDefault)(t(84)),u=(0,f.__importDefault)(t(89));function o(t){var r=this;if(2===arguments.length){var i=arguments[1];\"string\"==typeof i?\"+\"===i.charAt(0)?o[t]=(0,l.default)(arguments[1]):o[t]=(0,u.default)(arguments[1]):o[t]=i}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?o.apply(r,t):o(t)}));if(\"string\"==typeof t){if(t in o)return o[t]}else\"EPSG\"in t?o[\"EPSG:\"+t.EPSG]=t:\"ESRI\"in t?o[\"ESRI:\"+t.ESRI]=t:\"IAU2000\"in t?o[\"IAU2000:\"+t.IAU2000]=t:console.log(t);return}}(0,a.default)(o),i.default=o},\n function _(t,l,G,S,e){S(),G.default=function(t){t(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),t(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),t(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),t.WGS84=t[\"EPSG:4326\"],t[\"EPSG:3785\"]=t[\"EPSG:3857\"],t.GOOGLE=t[\"EPSG:3857\"],t[\"EPSG:900913\"]=t[\"EPSG:3857\"],t[\"EPSG:102113\"]=t[\"EPSG:3857\"]}},\n function _(t,n,o,a,u){a();const e=t(1),r=t(85),i=(0,e.__importDefault)(t(86)),f=(0,e.__importDefault)(t(87)),l=(0,e.__importDefault)(t(88));o.default=function(t){var n,o,a,u={},e=t.split(\"+\").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,n){var o=n.split(\"=\");return o.push(!0),t[o[0].toLowerCase()]=o[1],t}),{}),c={proj:\"projName\",datum:\"datumCode\",rf:function(t){u.rf=parseFloat(t)},lat_0:function(t){u.lat0=t*r.D2R},lat_1:function(t){u.lat1=t*r.D2R},lat_2:function(t){u.lat2=t*r.D2R},lat_ts:function(t){u.lat_ts=t*r.D2R},lon_0:function(t){u.long0=t*r.D2R},lon_1:function(t){u.long1=t*r.D2R},lon_2:function(t){u.long2=t*r.D2R},alpha:function(t){u.alpha=parseFloat(t)*r.D2R},gamma:function(t){u.rectified_grid_angle=parseFloat(t)},lonc:function(t){u.longc=t*r.D2R},x_0:function(t){u.x0=parseFloat(t)},y_0:function(t){u.y0=parseFloat(t)},k_0:function(t){u.k0=parseFloat(t)},k:function(t){u.k0=parseFloat(t)},a:function(t){u.a=parseFloat(t)},b:function(t){u.b=parseFloat(t)},r_a:function(){u.R_A=!0},zone:function(t){u.zone=parseInt(t,10)},south:function(){u.utmSouth=!0},towgs84:function(t){u.datum_params=t.split(\",\").map((function(t){return parseFloat(t)}))},to_meter:function(t){u.to_meter=parseFloat(t)},units:function(t){u.units=t;var n=(0,l.default)(f.default,t);n&&(u.to_meter=n.to_meter)},from_greenwich:function(t){u.from_greenwich=t*r.D2R},pm:function(t){var n=(0,l.default)(i.default,t);u.from_greenwich=(n||parseFloat(t))*r.D2R},nadgrids:function(t){\"@null\"===t?u.datumCode=\"none\":u.nadgrids=t},axis:function(t){var n=\"ewnsud\";3===t.length&&-1!==n.indexOf(t.substr(0,1))&&-1!==n.indexOf(t.substr(1,1))&&-1!==n.indexOf(t.substr(2,1))&&(u.axis=t)},approx:function(){u.approx=!0}};for(n in e)o=e[n],n in c?\"function\"==typeof(a=c[n])?a(o):u[a]=o:u[n]=o;return\"string\"==typeof u.datumCode&&\"WGS84\"!==u.datumCode&&(u.datumCode=u.datumCode.toLowerCase()),u}},\n function _(S,_,P,R,I){R(),P.PJD_3PARAM=1,P.PJD_7PARAM=2,P.PJD_GRIDSHIFT=3,P.PJD_WGS84=4,P.PJD_NODATUM=5,P.SRS_WGS84_SEMIMAJOR=6378137,P.SRS_WGS84_SEMIMINOR=6356752.314,P.SRS_WGS84_ESQUARED=.0066943799901413165,P.SEC_TO_RAD=484813681109536e-20,P.HALF_PI=Math.PI/2,P.SIXTH=.16666666666666666,P.RA4=.04722222222222222,P.RA6=.022156084656084655,P.EPSLN=1e-10,P.D2R=.017453292519943295,P.R2D=57.29577951308232,P.FORTPI=Math.PI/4,P.TWO_PI=2*Math.PI,P.SPI=3.14159265359},\n function _(o,r,a,e,s){e();var n={};a.default=n,n.greenwich=0,n.lisbon=-9.131906111111,n.paris=2.337229166667,n.bogota=-74.080916666667,n.madrid=-3.687938888889,n.rome=12.452333333333,n.bern=7.439583333333,n.jakarta=106.807719444444,n.ferro=-17.666666666667,n.brussels=4.367975,n.stockholm=18.058277777778,n.athens=23.7163375,n.oslo=10.722916666667},\n function _(t,e,f,o,u){o(),f.default={ft:{to_meter:.3048},\"us-ft\":{to_meter:1200/3937}}},\n function _(e,r,t,a,n){a();var o=/[\\s_\\-\\/\\(\\)]/g;t.default=function(e,r){if(e[r])return e[r];for(var t,a=Object.keys(e),n=r.toLowerCase().replace(o,\"\"),f=-1;++f0?90:-90),e.lat_ts=e.lat1)}(n),n}},\n function _(t,e,r,i,s){i(),r.default=function(t){return new d(t).output()};var h=/\\s/,o=/[A-Za-z]/,n=/[A-Za-z84]/,a=/[,\\]]/,u=/[\\d\\.E\\-\\+]/;function d(t){if(\"string\"!=typeof t)throw new Error(\"not a string\");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=1}d.prototype.readCharicter=function(){var t=this.text[this.place++];if(4!==this.state)for(;h.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case 1:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},d.prototype.afterquote=function(t){if('\"'===t)return this.word+='\"',void(this.state=4);if(a.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in afterquote yet, index '+this.place)},d.prototype.afterItem=function(t){return\",\"===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=1)):\"]\"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=1,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},d.prototype.number=function(t){if(!u.test(t)){if(a.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in number yet, index '+this.place)}this.word+=t},d.prototype.quoted=function(t){'\"'!==t?this.word+=t:this.state=5},d.prototype.keyword=function(t){if(n.test(t))this.word+=t;else{if(\"[\"===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=1)}if(!a.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in keyword yet, index '+this.place);this.afterItem(t)}},d.prototype.neutral=function(t){if(o.test(t))return this.word=t,void(this.state=2);if('\"'===t)return this.word=\"\",void(this.state=4);if(u.test(t))return this.word=t,void(this.state=3);if(!a.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in neutral yet, index '+this.place);this.afterItem(t)},d.prototype.output=function(){for(;this.place90&&a*o.R2D<-90&&h*o.R2D>180&&h*o.R2D<-180)return null;if(Math.abs(Math.abs(a)-o.HALF_PI)<=o.EPSLN)return null;if(this.sphere)i=this.x0+this.a*this.k0*(0,n.default)(h-this.long0),s=this.y0+this.a*this.k0*Math.log(Math.tan(o.FORTPI+.5*a));else{var e=Math.sin(a),r=(0,l.default)(this.e,a,e);i=this.x0+this.a*this.k0*(0,n.default)(h-this.long0),s=this.y0-this.a*this.k0*Math.log(r)}return t.x=i,t.y=s,t}function M(t){var i,s,h=t.x-this.x0,a=t.y-this.y0;if(this.sphere)s=o.HALF_PI-2*Math.atan(Math.exp(-a/(this.a*this.k0)));else{var e=Math.exp(-a/(this.a*this.k0));if(-9999===(s=(0,u.default)(this.e,e)))return null}return i=(0,n.default)(this.long0+h/(this.a*this.k0)),t.x=i,t.y=s,t}s.init=f,s.forward=_,s.inverse=M,s.names=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"],s.default={init:f,forward:_,inverse:M,names:s.names}},\n function _(t,n,r,u,a){u(),r.default=function(t,n,r){var u=t*n;return r/Math.sqrt(1-u*u)}},\n function _(t,n,u,a,f){a();const e=t(1),o=t(85),_=(0,e.__importDefault)(t(97));u.default=function(t){return Math.abs(t)<=o.SPI?t:t-(0,_.default)(t)*o.TWO_PI}},\n function _(n,t,u,f,c){f(),u.default=function(n){return n<0?-1:1}},\n function _(t,n,a,o,u){o();const c=t(85);a.default=function(t,n,a){var o=t*a,u=.5*t;return o=Math.pow((1-o)/(1+o),u),Math.tan(.5*(c.HALF_PI-n))/o}},\n function _(t,a,n,r,f){r();const h=t(85);n.default=function(t,a){for(var n,r,f=.5*t,o=h.HALF_PI-2*Math.atan(a),u=0;u<=15;u++)if(n=t*Math.sin(o),o+=r=h.HALF_PI-2*Math.atan(a*Math.pow((1-n)/(1+n),f))-o,Math.abs(r)<=1e-10)return o;return-9999}},\n function _(n,i,e,t,r){function a(){}function f(n){return n}t(),e.init=a,e.forward=f,e.inverse=f,e.names=[\"longlat\",\"identity\"],e.default={init:a,forward:f,inverse:f,names:e.names}},\n function _(t,r,e,a,n){a();const f=t(1),i=t(85),u=(0,f.__importStar)(t(102)),c=(0,f.__importDefault)(t(88));e.eccentricity=function(t,r,e,a){var n=t*t,f=r*r,u=(n-f)/n,c=0;return a?(n=(t*=1-u*(i.SIXTH+u*(i.RA4+u*i.RA6)))*t,u=0):c=Math.sqrt(u),{es:u,e:c,ep2:(n-f)/f}},e.sphere=function(t,r,e,a,n){if(!t){var f=(0,c.default)(u.default,a);f||(f=u.WGS84),t=f.a,r=f.b,e=f.rf}return e&&!r&&(r=(1-1/e)*t),(0===e||Math.abs(t-r)3&&(0===s.datum_params[3]&&0===s.datum_params[4]&&0===s.datum_params[5]&&0===s.datum_params[6]||(s.datum_type=d.PJD_7PARAM,s.datum_params[3]*=d.SEC_TO_RAD,s.datum_params[4]*=d.SEC_TO_RAD,s.datum_params[5]*=d.SEC_TO_RAD,s.datum_params[6]=s.datum_params[6]/1e6+1))),r&&(s.datum_type=d.PJD_GRIDSHIFT,s.grids=r),s.a=_,s.b=t,s.es=u,s.ep2=p,s}},\n function _(t,e,n,r,i){r();var u={};function l(t){if(0===t.length)return null;var e=\"@\"===t[0];return e&&(t=t.slice(1)),\"null\"===t?{name:\"null\",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:u[t]||null,isNull:!1}}function o(t){return t/3600*Math.PI/180}function a(t,e,n){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,n)))}function d(t){return t.map((function(t){return[o(t.longitudeShift),o(t.latitudeShift)]}))}function g(t,e,n){return{name:a(t,e+8,e+16).trim(),parent:a(t,e+24,e+24+8).trim(),lowerLatitude:t.getFloat64(e+72,n),upperLatitude:t.getFloat64(e+88,n),lowerLongitude:t.getFloat64(e+104,n),upperLongitude:t.getFloat64(e+120,n),latitudeInterval:t.getFloat64(e+136,n),longitudeInterval:t.getFloat64(e+152,n),gridNodeCount:t.getInt32(e+168,n)}}function s(t,e,n,r){for(var i=e+176,u=[],l=0;l1&&console.log(\"Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored\");var l=function(t,e,n){for(var r=176,i=[],u=0;ua.y||f>a.x||N1e-12&&Math.abs(n.y)>1e-12);if(d<0)return console.log(\"Inverse grid shift iterator failed to converge.\"),a;a.x=(0,u.default)(l.x+t.ll[0]),a.y=l.y+t.ll[1]}else isNaN(l.x)||(a.x=r.x+l.x,a.y=r.y+l.y);return a}function f(r,e){var t,a={x:r.x/e.del[0],y:r.y/e.del[1]},i=Math.floor(a.x),l=Math.floor(a.y),n=a.x-1*i,o=a.y-1*l,u={x:Number.NaN,y:Number.NaN};if(i<0||i>=e.lim[0])return u;if(l<0||l>=e.lim[1])return u;t=l*e.lim[0]+i;var d=e.cvs[t][0],s=e.cvs[t][1];t++;var y=e.cvs[t][0],f=e.cvs[t][1];t+=e.lim[0];var x=e.cvs[t][0],m=e.cvs[t][1];t--;var N=e.cvs[t][0],c=e.cvs[t][1],_=n*o,g=n*(1-o),v=(1-n)*(1-o),S=(1-n)*o;return u.x=v*d+g*y+S*N+_*x,u.y=v*s+g*f+S*c+_*m,u}t.default=function(r,e,t){if((0,o.compareDatums)(r,e))return t;if(r.datum_type===n.PJD_NODATUM||e.datum_type===n.PJD_NODATUM)return t;var a=r.a,i=r.es;if(r.datum_type===n.PJD_GRIDSHIFT){if(0!==s(r,!1,t))return;a=n.SRS_WGS84_SEMIMAJOR,i=n.SRS_WGS84_ESQUARED}var l=e.a,u=e.b,y=e.es;if(e.datum_type===n.PJD_GRIDSHIFT&&(l=n.SRS_WGS84_SEMIMAJOR,u=n.SRS_WGS84_SEMIMINOR,y=n.SRS_WGS84_ESQUARED),i===y&&a===l&&!d(r.datum_type)&&!d(e.datum_type))return t;if(t=(0,o.geodeticToGeocentric)(t,i,a),d(r.datum_type)&&(t=(0,o.geocentricToWgs84)(t,r.datum_type,r.datum_params)),d(e.datum_type)&&(t=(0,o.geocentricFromWgs84)(t,e.datum_type,e.datum_params)),t=(0,o.geocentricToGeodetic)(t,y,l,u),e.datum_type===n.PJD_GRIDSHIFT&&0!==s(e,!0,t))return;return t},t.applyGridShift=s},\n function _(a,t,r,m,s){m();const u=a(85);r.compareDatums=function(a,t){return a.datum_type===t.datum_type&&(!(a.a!==t.a||Math.abs(a.es-t.es)>5e-11)&&(a.datum_type===u.PJD_3PARAM?a.datum_params[0]===t.datum_params[0]&&a.datum_params[1]===t.datum_params[1]&&a.datum_params[2]===t.datum_params[2]:a.datum_type!==u.PJD_7PARAM||a.datum_params[0]===t.datum_params[0]&&a.datum_params[1]===t.datum_params[1]&&a.datum_params[2]===t.datum_params[2]&&a.datum_params[3]===t.datum_params[3]&&a.datum_params[4]===t.datum_params[4]&&a.datum_params[5]===t.datum_params[5]&&a.datum_params[6]===t.datum_params[6]))},r.geodeticToGeocentric=function(a,t,r){var m,s,_,e,n=a.x,d=a.y,i=a.z?a.z:0;if(d<-u.HALF_PI&&d>-1.001*u.HALF_PI)d=-u.HALF_PI;else if(d>u.HALF_PI&&d<1.001*u.HALF_PI)d=u.HALF_PI;else{if(d<-u.HALF_PI)return{x:-1/0,y:-1/0,z:a.z};if(d>u.HALF_PI)return{x:1/0,y:1/0,z:a.z}}return n>Math.PI&&(n-=2*Math.PI),s=Math.sin(d),e=Math.cos(d),_=s*s,{x:((m=r/Math.sqrt(1-t*_))+i)*e*Math.cos(n),y:(m+i)*e*Math.sin(n),z:(m*(1-t)+i)*s}},r.geocentricToGeodetic=function(a,t,r,m){var s,_,e,n,d,i,p,P,y,z,M,o,A,c,x,h=1e-12,f=a.x,I=a.y,F=a.z?a.z:0;if(s=Math.sqrt(f*f+I*I),_=Math.sqrt(f*f+I*I+F*F),s/r1e-24&&A<30);return{x:c,y:Math.atan(M/Math.abs(z)),z:x}},r.geocentricToWgs84=function(a,t,r){if(t===u.PJD_3PARAM)return{x:a.x+r[0],y:a.y+r[1],z:a.z+r[2]};if(t===u.PJD_7PARAM){var m=r[0],s=r[1],_=r[2],e=r[3],n=r[4],d=r[5],i=r[6];return{x:i*(a.x-d*a.y+n*a.z)+m,y:i*(d*a.x+a.y-e*a.z)+s,z:i*(-n*a.x+e*a.y+a.z)+_}}},r.geocentricFromWgs84=function(a,t,r){if(t===u.PJD_3PARAM)return{x:a.x-r[0],y:a.y-r[1],z:a.z-r[2]};if(t===u.PJD_7PARAM){var m=r[0],s=r[1],_=r[2],e=r[3],n=r[4],d=r[5],i=r[6],p=(a.x-m)/i,P=(a.y-s)/i,y=(a.z-_)/i;return{x:p+d*P-n*y,y:-d*p+P+e*y,z:n*p-e*P+y}}}},\n function _(e,a,i,r,s){r(),i.default=function(e,a,i){var r,s,n,c=i.x,d=i.y,f=i.z||0,u={};for(n=0;n<3;n++)if(!a||2!==n||void 0!==i.z)switch(0===n?(r=c,s=-1!==\"ew\".indexOf(e.axis[n])?\"x\":\"y\"):1===n?(r=d,s=-1!==\"ns\".indexOf(e.axis[n])?\"y\":\"x\"):(r=f,s=\"z\"),e.axis[n]){case\"e\":u[s]=r;break;case\"w\":u[s]=-r;break;case\"n\":u[s]=r;break;case\"s\":u[s]=-r;break;case\"u\":void 0!==i[s]&&(u.z=r);break;case\"d\":void 0!==i[s]&&(u.z=-r);break;default:return null}return u}},\n function _(n,t,e,u,f){u(),e.default=function(n){var t={x:n[0],y:n[1]};return n.length>2&&(t.z=n[2]),n.length>3&&(t.m=n[3]),t}},\n function _(e,i,n,t,r){function o(e){if(\"function\"==typeof Number.isFinite){if(Number.isFinite(e))return;throw new TypeError(\"coordinates must be finite numbers\")}if(\"number\"!=typeof e||e!=e||!isFinite(e))throw new TypeError(\"coordinates must be finite numbers\")}t(),n.default=function(e){o(e.x),o(e.y)}},\n function _(e,i,s,t,o){t();const n=e(1);var l,a,r,_,c;const d=e(53),v=e(42),u=(0,n.__importStar)(e(45)),h=e(48),m=(0,n.__importStar)(e(18));class T extends v.View{initialize(){super.initialize(),this.visuals=new u.Visuals(this)}request_render(){this.parent.request_render()}get canvas(){return this.parent.canvas}set_data(e){const i=this;for(const s of this.model){if(!(s instanceof m.VectorSpec||s instanceof m.ScalarSpec))continue;const t=s.uniform(e);i[`${s.attr}`]=t}}}s.ArrowHeadView=T,T.__name__=\"ArrowHeadView\";class p extends d.Model{constructor(e){super(e)}}s.ArrowHead=p,l=p,p.__name__=\"ArrowHead\",l.define((()=>({size:[m.NumberSpec,25]})));class V extends T{clip(e,i){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.moveTo(.5*s,s),e.lineTo(.5*s,-2),e.lineTo(-.5*s,-2),e.lineTo(-.5*s,s),e.lineTo(0,0),e.lineTo(.5*s,s)}render(e,i){if(this.visuals.line.doit){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,s),e.lineTo(0,0),e.lineTo(-.5*s,s),e.stroke()}}}s.OpenHeadView=V,V.__name__=\"OpenHeadView\";class f extends p{constructor(e){super(e)}}s.OpenHead=f,a=f,f.__name__=\"OpenHead\",a.prototype.default_view=V,a.mixins(h.LineVector);class w extends T{clip(e,i){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.moveTo(.5*s,s),e.lineTo(.5*s,-2),e.lineTo(-.5*s,-2),e.lineTo(-.5*s,s),e.lineTo(.5*s,s)}render(e,i){this.visuals.fill.doit&&(this.visuals.fill.set_vectorize(e,i),this._normal(e,i),e.fill()),this.visuals.line.doit&&(this.visuals.line.set_vectorize(e,i),this._normal(e,i),e.stroke())}_normal(e,i){const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,s),e.lineTo(0,0),e.lineTo(-.5*s,s),e.closePath()}}s.NormalHeadView=w,w.__name__=\"NormalHeadView\";class H extends p{constructor(e){super(e)}}s.NormalHead=H,r=H,H.__name__=\"NormalHead\",r.prototype.default_view=w,r.mixins([h.LineVector,h.FillVector]),r.override({fill_color:\"black\"});class z extends T{clip(e,i){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.moveTo(.5*s,s),e.lineTo(.5*s,-2),e.lineTo(-.5*s,-2),e.lineTo(-.5*s,s),e.lineTo(0,.5*s),e.lineTo(.5*s,s)}render(e,i){this.visuals.fill.doit&&(this.visuals.fill.set_vectorize(e,i),this._vee(e,i),e.fill()),this.visuals.line.doit&&(this.visuals.line.set_vectorize(e,i),this._vee(e,i),e.stroke())}_vee(e,i){const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,s),e.lineTo(0,0),e.lineTo(-.5*s,s),e.lineTo(0,.5*s),e.closePath()}}s.VeeHeadView=z,z.__name__=\"VeeHeadView\";class x extends p{constructor(e){super(e)}}s.VeeHead=x,_=x,x.__name__=\"VeeHead\",_.prototype.default_view=z,_.mixins([h.LineVector,h.FillVector]),_.override({fill_color:\"black\"});class g extends T{render(e,i){if(this.visuals.line.doit){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,0),e.lineTo(-.5*s,0),e.stroke()}}clip(e,i){}}s.TeeHeadView=g,g.__name__=\"TeeHeadView\";class b extends p{constructor(e){super(e)}}s.TeeHead=b,c=b,b.__name__=\"TeeHead\",c.prototype.default_view=g,c.mixins(h.LineVector)},\n function _(n,e,t,i,o){i();const s=n(9);async function c(n,e,t){const i=new n(Object.assign(Object.assign({},t),{model:e}));return i.initialize(),await i.lazy_initialize(),i}t.build_view=async function(n,e={parent:null},t=(n=>n.default_view)){const i=await c(t(n),n,e);return i.connect_signals(),i},t.build_views=async function(n,e,t={parent:null},i=(n=>n.default_view)){const o=(0,s.difference)([...n.keys()],e);for(const e of o)n.get(e).remove(),n.delete(e);const a=[],f=e.filter((e=>!n.has(e)));for(const e of f){const o=await c(i(e),e,t);n.set(e,o),a.push(o)}for(const n of a)n.connect_signals();return a},t.remove_views=function(n){for(const[e,t]of n)t.remove(),n.delete(e)}},\n function _(e,s,_,i,l){i();const t=e(1);var o;const r=e(115),p=(0,t.__importStar)(e(48));class h extends r.UpperLowerView{paint(e){e.beginPath(),e.moveTo(this._lower_sx[0],this._lower_sy[0]);for(let s=0,_=this._lower_sx.length;s<_;s++)e.lineTo(this._lower_sx[s],this._lower_sy[s]);for(let s=this._upper_sx.length-1;s>=0;s--)e.lineTo(this._upper_sx[s],this._upper_sy[s]);e.closePath(),this.visuals.fill.apply(e),e.beginPath(),e.moveTo(this._lower_sx[0],this._lower_sy[0]);for(let s=0,_=this._lower_sx.length;s<_;s++)e.lineTo(this._lower_sx[s],this._lower_sy[s]);this.visuals.line.apply(e),e.beginPath(),e.moveTo(this._upper_sx[0],this._upper_sy[0]);for(let s=0,_=this._upper_sx.length;s<_;s++)e.lineTo(this._upper_sx[s],this._upper_sy[s]);this.visuals.line.apply(e)}}_.BandView=h,h.__name__=\"BandView\";class n extends r.UpperLower{constructor(e){super(e)}}_.Band=n,o=n,n.__name__=\"Band\",o.prototype.default_view=h,o.mixins([p.Line,p.Fill]),o.override({fill_color:\"#fff9ba\",fill_alpha:.4,line_color:\"#cccccc\",line_alpha:.3})},\n function _(e,t,i,s,o){s();const r=e(1);var n;const p=e(69),a=e(20),_=(0,r.__importStar)(e(18));class h extends p.DataAnnotationView{map_data(){const{frame:e}=this.plot_view,t=this.model.dimension,i=this.coordinates.x_scale,s=this.coordinates.y_scale,o=\"height\"==t?s:i,r=\"height\"==t?i:s,n=\"height\"==t?e.bbox.yview:e.bbox.xview,p=\"height\"==t?e.bbox.xview:e.bbox.yview;let a,_,h;a=\"data\"==this.model.properties.lower.units?o.v_compute(this._lower):n.v_compute(this._lower),_=\"data\"==this.model.properties.upper.units?o.v_compute(this._upper):n.v_compute(this._upper),h=\"data\"==this.model.properties.base.units?r.v_compute(this._base):p.v_compute(this._base);const[d,c]=\"height\"==t?[1,0]:[0,1],u=[a,h],l=[_,h];this._lower_sx=u[d],this._lower_sy=u[c],this._upper_sx=l[d],this._upper_sy=l[c]}}i.UpperLowerView=h,h.__name__=\"UpperLowerView\";class d extends _.CoordinateSpec{get dimension(){return\"width\"==this.obj.dimension?\"x\":\"y\"}get units(){var e;return null!==(e=this.spec.units)&&void 0!==e?e:\"data\"}}i.XOrYCoordinateSpec=d,d.__name__=\"XOrYCoordinateSpec\";class c extends p.DataAnnotation{constructor(e){super(e)}}i.UpperLower=c,n=c,c.__name__=\"UpperLower\",n.define((()=>({dimension:[a.Dimension,\"height\"],lower:[d,{field:\"lower\"}],upper:[d,{field:\"upper\"}],base:[d,{field:\"base\"}]})))},\n function _(t,o,i,n,e){n();const s=t(1);var l;const r=t(40),a=(0,s.__importStar)(t(48)),c=t(20),h=t(65);i.EDGE_TOLERANCE=2.5;class b extends r.AnnotationView{constructor(){super(...arguments),this.bbox=new h.BBox}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.request_render()))}_render(){const{left:t,right:o,top:i,bottom:n}=this.model;if(null==t&&null==o&&null==i&&null==n)return;const{frame:e}=this.plot_view,s=this.coordinates.x_scale,l=this.coordinates.y_scale,r=(t,o,i,n,e)=>{let s;return s=null!=t?this.model.screen?t:\"data\"==o?i.compute(t):n.compute(t):e,s};this.bbox=h.BBox.from_rect({left:r(t,this.model.left_units,s,e.bbox.xview,e.bbox.left),right:r(o,this.model.right_units,s,e.bbox.xview,e.bbox.right),top:r(i,this.model.top_units,l,e.bbox.yview,e.bbox.top),bottom:r(n,this.model.bottom_units,l,e.bbox.yview,e.bbox.bottom)}),this._paint_box()}_paint_box(){const{ctx:t}=this.layer;t.save();const{left:o,top:i,width:n,height:e}=this.bbox;t.beginPath(),t.rect(o,i,n,e),this.visuals.fill.apply(t),this.visuals.hatch.apply(t),this.visuals.line.apply(t),t.restore()}interactive_bbox(){const t=this.model.line_width+i.EDGE_TOLERANCE;return this.bbox.grow_by(t)}interactive_hit(t,o){if(null==this.model.in_cursor)return!1;return this.interactive_bbox().contains(t,o)}cursor(t,o){const{left:i,right:n,bottom:e,top:s}=this.bbox;return Math.abs(t-i)<3||Math.abs(t-n)<3?this.model.ew_cursor:Math.abs(o-e)<3||Math.abs(o-s)<3?this.model.ns_cursor:this.bbox.contains(t,o)?this.model.in_cursor:null}}i.BoxAnnotationView=b,b.__name__=\"BoxAnnotationView\";class u extends r.Annotation{constructor(t){super(t)}update({left:t,right:o,top:i,bottom:n}){this.setv({left:t,right:o,top:i,bottom:n,screen:!0})}}i.BoxAnnotation=u,l=u,u.__name__=\"BoxAnnotation\",l.prototype.default_view=b,l.mixins([a.Line,a.Fill,a.Hatch]),l.define((({Number:t,Nullable:o})=>({top:[o(t),null],top_units:[c.SpatialUnits,\"data\"],bottom:[o(t),null],bottom_units:[c.SpatialUnits,\"data\"],left:[o(t),null],left_units:[c.SpatialUnits,\"data\"],right:[o(t),null],right_units:[c.SpatialUnits,\"data\"],render_mode:[c.RenderMode,\"canvas\"]}))),l.internal((({Boolean:t,String:o,Nullable:i})=>({screen:[t,!1],ew_cursor:[i(o),null],ns_cursor:[i(o),null],in_cursor:[i(o),null]}))),l.override({fill_color:\"#fff9ba\",fill_alpha:.4,line_color:\"#cccccc\",line_alpha:.3})},\n function _(t,e,i,o,n){o();const a=t(1);var r;const s=t(40),l=t(118),_=t(126),c=t(127),h=t(130),u=t(168),p=t(131),m=t(192),g=t(132),d=t(173),f=t(172),w=t(196),b=t(204),v=t(206),x=t(133),y=t(20),k=(0,a.__importStar)(t(48)),z=t(9),j=t(207),C=t(208),L=t(211),B=t(123),S=t(11),M=t(113),T=t(65),A=t(8);class O extends s.AnnotationView{get orientation(){return this._orientation}initialize(){super.initialize();const{ticker:t,formatter:e,color_mapper:i}=this.model;this._ticker=\"auto\"!=t?t:(()=>{switch(!0){case i instanceof w.LogColorMapper:return new u.LogTicker;case i instanceof w.ScanningColorMapper:return new u.BinnedTicker({mapper:i});case i instanceof w.CategoricalColorMapper:return new u.CategoricalTicker;default:return new u.BasicTicker}})(),this._formatter=\"auto\"!=e?e:(()=>{switch(!0){case this._ticker instanceof u.LogTicker:return new m.LogTickFormatter;case i instanceof w.CategoricalColorMapper:return new m.CategoricalTickFormatter;default:return new m.BasicTickFormatter}})(),this._major_range=(()=>{if(i instanceof w.CategoricalColorMapper){const{factors:t}=i;return new v.FactorRange({factors:t})}if(i instanceof f.ContinuousColorMapper){const{min:t,max:e}=i.metrics;return new v.Range1d({start:t,end:e})}(0,S.unreachable)()})(),this._major_scale=(()=>{if(i instanceof w.LinearColorMapper)return new b.LinearScale;if(i instanceof w.LogColorMapper)return new b.LogScale;if(i instanceof w.ScanningColorMapper){const{binning:t}=i.metrics;return new b.LinearInterpolationScale({binning:t})}if(i instanceof w.CategoricalColorMapper)return new b.CategoricalScale;(0,S.unreachable)()})(),this._minor_range=new v.Range1d({start:0,end:1}),this._minor_scale=new b.LinearScale;const o=k.attrs_of(this.model,\"major_label_\",k.Text,!0),n=k.attrs_of(this.model,\"major_tick_\",k.Line,!0),a=k.attrs_of(this.model,\"minor_tick_\",k.Line,!0),r=k.attrs_of(this.model,\"title_\",k.Text),s=i instanceof w.CategoricalColorMapper?c.CategoricalAxis:i instanceof w.LogColorMapper?c.LogAxis:c.LinearAxis;this._axis=new s(Object.assign(Object.assign(Object.assign({ticker:this._ticker,formatter:this._formatter,major_tick_in:this.model.major_tick_in,major_tick_out:this.model.major_tick_out,minor_tick_in:this.model.minor_tick_in,minor_tick_out:this.model.minor_tick_out,major_label_standoff:this.model.label_standoff,major_label_overrides:this.model.major_label_overrides,major_label_policy:this.model.major_label_policy,axis_line_color:null},o),n),a));const{title:_}=this.model;_&&(this._title=new l.Title(Object.assign({text:_,standoff:this.model.title_standoff},r)))}async lazy_initialize(){await super.lazy_initialize();const t=this,e={get parent(){return t.parent},get root(){return t.root},get frame(){return t._frame},get canvas_view(){return t.parent.canvas_view},request_layout(){t.parent.request_layout()}};this._axis_view=await(0,M.build_view)(this._axis,{parent:e}),null!=this._title&&(this._title_view=await(0,M.build_view)(this._title,{parent:e}))}remove(){var t;null===(t=this._title_view)||void 0===t||t.remove(),this._axis_view.remove(),super.remove()}connect_signals(){super.connect_signals(),this.connect(this._ticker.change,(()=>this.request_render())),this.connect(this._formatter.change,(()=>this.request_render())),this.connect(this.model.color_mapper.metrics_change,(()=>{const t=this._major_range,e=this._major_scale,{color_mapper:i}=this.model;if(i instanceof f.ContinuousColorMapper&&t instanceof v.Range1d){const{min:e,max:o}=i.metrics;t.setv({start:e,end:o})}if(i instanceof w.ScanningColorMapper&&e instanceof b.LinearInterpolationScale){const{binning:t}=i.metrics;e.binning=t}this._set_canvas_image(),this.plot_view.request_layout()}))}_set_canvas_image(){const{orientation:t}=this,e=(()=>{const{palette:e}=this.model.color_mapper;return\"vertical\"==t?(0,z.reversed)(e):e})(),[i,o]=\"vertical\"==t?[1,e.length]:[e.length,1],n=this._image=document.createElement(\"canvas\");n.width=i,n.height=o;const a=n.getContext(\"2d\"),r=a.getImageData(0,0,i,o),s=new w.LinearColorMapper({palette:e}).rgba_mapper.v_compute((0,z.range)(0,e.length));r.data.set(s),a.putImageData(r,0,0)}update_layout(){const{location:t,width:e,height:i,padding:o,margin:n}=this.model,[a,r]=(()=>{if(!(0,A.isString)(t))return[\"end\",\"start\"];switch(t){case\"top_left\":return[\"start\",\"start\"];case\"top\":case\"top_center\":return[\"start\",\"center\"];case\"top_right\":return[\"start\",\"end\"];case\"bottom_left\":return[\"end\",\"start\"];case\"bottom\":case\"bottom_center\":return[\"end\",\"center\"];case\"bottom_right\":return[\"end\",\"end\"];case\"left\":case\"center_left\":return[\"center\",\"start\"];case\"center\":case\"center_center\":return[\"center\",\"center\"];case\"right\":case\"center_right\":return[\"center\",\"end\"]}})(),s=this._orientation=(()=>{const{orientation:t}=this.model;return\"auto\"==t?null!=this.panel?this.panel.is_horizontal?\"horizontal\":\"vertical\":\"start\"==r||\"end\"==r||\"center\"==r&&\"center\"==a?\"vertical\":\"horizontal\":t})(),l=new C.NodeLayout,c=new C.VStack,h=new C.VStack,u=new C.HStack,p=new C.HStack;l.absolute=!0,c.absolute=!0,h.absolute=!0,u.absolute=!0,p.absolute=!0;const[m,g,d,f]=(()=>\"horizontal\"==s?[this._major_scale,this._minor_scale,this._major_range,this._minor_range]:[this._minor_scale,this._major_scale,this._minor_range,this._major_range])();this._frame=new _.CartesianFrame(m,g,d,f),l.on_resize((t=>this._frame.set_geometry(t)));const w=new L.BorderLayout;this._inner_layout=w,w.absolute=!0,w.center_panel=l,w.top_panel=c,w.bottom_panel=h,w.left_panel=u,w.right_panel=p;const b={left:o,right:o,top:o,bottom:o},v=(()=>{if(null==this.panel){if((0,A.isString)(t))return{left:n,right:n,top:n,bottom:n};{const[e,i]=t;return{left:e,right:n,top:n,bottom:i}}}if(!(0,A.isString)(t)){const[e,i]=t;return w.fixup_geometry=(t,o)=>{const n=t,a=this.layout.bbox,{width:r,height:s}=t;if(t=new T.BBox({left:a.left+e,bottom:a.bottom-i,width:r,height:s}),null!=o){const e=t.left-n.left,i=t.top-n.top,{left:a,top:r,width:s,height:l}=o;o=new T.BBox({left:a+e,top:r+i,width:s,height:l})}return[t,o]},{left:e,right:0,top:0,bottom:i}}w.fixup_geometry=(t,e)=>{const i=t;if(\"horizontal\"==s){const{top:e,width:i,height:o}=t;if(\"end\"==r){const{right:n}=this.layout.bbox;t=new T.BBox({right:n,top:e,width:i,height:o})}else if(\"center\"==r){const{hcenter:n}=this.layout.bbox;t=new T.BBox({hcenter:Math.round(n),top:e,width:i,height:o})}}else{const{left:e,width:i,height:o}=t;if(\"end\"==a){const{bottom:n}=this.layout.bbox;t=new T.BBox({left:e,bottom:n,width:i,height:o})}else if(\"center\"==a){const{vcenter:n}=this.layout.bbox;t=new T.BBox({left:e,vcenter:Math.round(n),width:i,height:o})}}if(null!=e){const o=t.left-i.left,n=t.top-i.top,{left:a,top:r,width:s,height:l}=e;e=new T.BBox({left:a+o,top:r+n,width:s,height:l})}return[t,e]}})();let x,y,k,z;if(w.padding=b,null!=this.panel?(x=\"max\",y=void 0,k=void 0,z=void 0):\"auto\"==(\"horizontal\"==s?e:i)?(x=\"fixed\",y=25*this.model.color_mapper.palette.length,k={percent:.3},z={percent:.8}):(x=\"fit\",y=void 0),\"horizontal\"==s){const t=\"auto\"==e?void 0:e,o=\"auto\"==i?25:i;w.set_sizing({width_policy:x,height_policy:\"min\",width:y,min_width:k,max_width:z,halign:r,valign:a,margin:v}),w.center_panel.set_sizing({width_policy:\"auto\"==e?\"fit\":\"fixed\",height_policy:\"fixed\",width:t,height:o})}else{const t=\"auto\"==e?25:e,o=\"auto\"==i?void 0:i;w.set_sizing({width_policy:\"min\",height_policy:x,height:y,min_height:k,max_height:z,halign:r,valign:a,margin:v}),w.center_panel.set_sizing({width_policy:\"fixed\",height_policy:\"auto\"==i?\"fit\":\"fixed\",width:t,height:o})}c.set_sizing({width_policy:\"fit\",height_policy:\"min\"}),h.set_sizing({width_policy:\"fit\",height_policy:\"min\"}),u.set_sizing({width_policy:\"min\",height_policy:\"fit\"}),p.set_sizing({width_policy:\"min\",height_policy:\"fit\"});const{_title_view:S}=this;null!=S&&(\"horizontal\"==s?(S.panel=new B.Panel(\"above\"),S.update_layout(),c.children.push(S.layout)):(S.panel=new B.Panel(\"left\"),S.update_layout(),u.children.push(S.layout)));const{panel:M}=this,O=null!=M&&s==M.orientation?M.side:\"horizontal\"==s?\"below\":\"right\",R=(()=>{switch(O){case\"above\":return c;case\"below\":return h;case\"left\":return u;case\"right\":return p}})(),{_axis_view:F}=this;if(F.panel=new B.Panel(O),F.update_layout(),R.children.push(F.layout),null!=this.panel){const t=new j.Grid([{layout:w,row:0,col:0}]);t.absolute=!0,\"horizontal\"==s?t.set_sizing({width_policy:\"max\",height_policy:\"min\"}):t.set_sizing({width_policy:\"min\",height_policy:\"max\"}),this.layout=t}else this.layout=this._inner_layout;const{visible:I}=this.model;this.layout.sizing.visible=I,this._set_canvas_image()}_render(){var t;const{ctx:e}=this.layer;e.save(),this._paint_bbox(e,this._inner_layout.bbox),this._paint_image(e,this._inner_layout.center_panel.bbox),null===(t=this._title_view)||void 0===t||t.render(),this._axis_view.render(),e.restore()}_paint_bbox(t,e){const{x:i,y:o}=e;let{width:n,height:a}=e;i+n>=this.parent.canvas_view.bbox.width&&(n-=1),o+a>=this.parent.canvas_view.bbox.height&&(a-=1),t.save(),this.visuals.background_fill.doit&&(this.visuals.background_fill.set_value(t),t.fillRect(i,o,n,a)),this.visuals.border_line.doit&&(this.visuals.border_line.set_value(t),t.strokeRect(i,o,n,a)),t.restore()}_paint_image(t,e){const{x:i,y:o,width:n,height:a}=e;t.save(),t.setImageSmoothingEnabled(!1),t.globalAlpha=this.model.scale_alpha,t.drawImage(this._image,i,o,n,a),this.visuals.bar_line.doit&&(this.visuals.bar_line.set_value(t),t.strokeRect(i,o,n,a)),t.restore()}serializable_state(){const t=super.serializable_state(),{children:e=[]}=t,i=(0,a.__rest)(t,[\"children\"]);return null!=this._title_view&&e.push(this._title_view.serializable_state()),e.push(this._axis_view.serializable_state()),Object.assign(Object.assign({},i),{children:e})}}i.ColorBarView=O,O.__name__=\"ColorBarView\";class R extends s.Annotation{constructor(t){super(t)}}i.ColorBar=R,r=R,R.__name__=\"ColorBar\",r.prototype.default_view=O,r.mixins([[\"major_label_\",k.Text],[\"title_\",k.Text],[\"major_tick_\",k.Line],[\"minor_tick_\",k.Line],[\"border_\",k.Line],[\"bar_\",k.Line],[\"background_\",k.Fill]]),r.define((({Alpha:t,Number:e,String:i,Tuple:o,Dict:n,Or:a,Ref:r,Auto:s,Nullable:l})=>({location:[a(y.Anchor,o(e,e)),\"top_right\"],orientation:[a(y.Orientation,s),\"auto\"],title:[l(i),null],title_standoff:[e,2],width:[a(e,s),\"auto\"],height:[a(e,s),\"auto\"],scale_alpha:[t,1],ticker:[a(r(h.Ticker),s),\"auto\"],formatter:[a(r(p.TickFormatter),s),\"auto\"],major_label_overrides:[n(a(i,r(x.BaseText))),{}],major_label_policy:[r(g.LabelingPolicy),()=>new g.NoOverlap],color_mapper:[r(d.ColorMapper)],label_standoff:[e,5],margin:[e,30],padding:[e,10],major_tick_in:[e,5],major_tick_out:[e,0],minor_tick_in:[e,0],minor_tick_out:[e,0]}))),r.override({background_fill_color:\"#ffffff\",background_fill_alpha:.95,bar_line_color:null,border_line_color:null,major_label_text_font_size:\"11px\",major_tick_line_color:\"#ffffff\",minor_tick_line_color:null,title_text_font_size:\"13px\",title_text_font_style:\"italic\"})},\n function _(t,e,i,s,l){s();const o=t(1);var a;const n=t(119),r=t(20),c=t(120),h=(0,o.__importStar)(t(48));class _ extends n.TextAnnotationView{_get_location(){const t=this.model.offset,e=this.model.standoff/2;let i,s;const{bbox:l}=this.layout;switch(this.panel.side){case\"above\":case\"below\":switch(this.model.vertical_align){case\"top\":s=l.top+e;break;case\"middle\":s=l.vcenter;break;case\"bottom\":s=l.bottom-e}switch(this.model.align){case\"left\":i=l.left+t;break;case\"center\":i=l.hcenter;break;case\"right\":i=l.right-t}break;case\"left\":switch(this.model.vertical_align){case\"top\":i=l.left+e;break;case\"middle\":i=l.hcenter;break;case\"bottom\":i=l.right-e}switch(this.model.align){case\"left\":s=l.bottom-t;break;case\"center\":s=l.vcenter;break;case\"right\":s=l.top+t}break;case\"right\":switch(this.model.vertical_align){case\"top\":i=l.right-e;break;case\"middle\":i=l.hcenter;break;case\"bottom\":i=l.left+e}switch(this.model.align){case\"left\":s=l.top+t;break;case\"center\":s=l.vcenter;break;case\"right\":s=l.bottom-t}}return[i,s]}_render(){const{text:t}=this.model;if(null==t||0==t.length)return;this.model.text_baseline=this.model.vertical_align,this.model.text_align=this.model.align;const[e,i]=this._get_location(),s=this.panel.get_label_angle_heuristic(\"parallel\");(\"canvas\"==this.model.render_mode?this._canvas_text.bind(this):this._css_text.bind(this))(this.layer.ctx,t,e,i,s)}_get_size(){const{text:t}=this.model,e=new c.TextBox({text:t});e.visuals=this.visuals.text.values();const{width:i,height:s}=e.size();return{width:i,height:0==s?0:2+s+this.model.standoff}}}i.TitleView=_,_.__name__=\"TitleView\";class d extends n.TextAnnotation{constructor(t){super(t)}}i.Title=d,a=d,d.__name__=\"Title\",a.prototype.default_view=_,a.mixins([h.Text,[\"border_\",h.Line],[\"background_\",h.Fill]]),a.define((({Number:t,String:e})=>({text:[e,\"\"],vertical_align:[r.VerticalAlign,\"bottom\"],align:[r.TextAlign,\"left\"],offset:[t,0],standoff:[t,10]}))),a.prototype._props.text_align.options.internal=!0,a.prototype._props.text_baseline.options.internal=!0,a.override({text_font_size:\"13px\",text_font_style:\"bold\",text_line_height:1,background_fill_color:null,border_line_color:null})},\n function _(e,t,s,i,l){var n;i();const o=e(40),a=e(43),r=e(20),d=e(120),u=e(123),c=e(11);class h extends o.AnnotationView{update_layout(){const{panel:e}=this;this.layout=null!=e?new u.SideLayout(e,(()=>this.get_size()),!0):void 0}initialize(){super.initialize(),\"css\"==this.model.render_mode&&(this.el=(0,a.div)(),this.plot_view.canvas_view.add_overlay(this.el))}remove(){null!=this.el&&(0,a.remove)(this.el),super.remove()}connect_signals(){super.connect_signals(),\"css\"==this.model.render_mode?this.connect(this.model.change,(()=>this.render())):this.connect(this.model.change,(()=>this.request_render()))}render(){this.model.visible||\"css\"!=this.model.render_mode||(0,a.undisplay)(this.el),super.render()}_canvas_text(e,t,s,i,l){const n=new d.TextBox({text:t});n.angle=l,n.position={sx:s,sy:i},n.visuals=this.visuals.text.values();const{background_fill:o,border_line:a}=this.visuals;if(o.doit||a.doit){const{p0:t,p1:s,p2:i,p3:l}=n.rect();e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(s.x,s.y),e.lineTo(i.x,i.y),e.lineTo(l.x,l.y),e.closePath(),this.visuals.background_fill.apply(e),this.visuals.border_line.apply(e)}this.visuals.text.doit&&n.paint(e)}_css_text(e,t,s,i,l){const{el:n}=this;(0,c.assert)(null!=n),(0,a.undisplay)(n),n.textContent=t,this.visuals.text.set_value(e),n.style.position=\"absolute\",n.style.left=`${s}px`,n.style.top=`${i}px`,n.style.color=e.fillStyle,n.style.font=e.font,n.style.lineHeight=\"normal\",n.style.whiteSpace=\"pre\";const[o,r]=(()=>{switch(this.visuals.text.text_align.get_value()){case\"left\":return[\"left\",\"0%\"];case\"center\":return[\"center\",\"-50%\"];case\"right\":return[\"right\",\"-100%\"]}})(),[d,u]=(()=>{switch(this.visuals.text.text_baseline.get_value()){case\"top\":return[\"top\",\"0%\"];case\"middle\":return[\"center\",\"-50%\"];case\"bottom\":return[\"bottom\",\"-100%\"];default:return[\"center\",\"-50%\"]}})();let h=`translate(${r}, ${u})`;l&&(h+=`rotate(${l}rad)`),n.style.transformOrigin=`${o} ${d}`,n.style.transform=h,this.layout,this.visuals.background_fill.doit&&(this.visuals.background_fill.set_value(e),n.style.backgroundColor=e.fillStyle),this.visuals.border_line.doit&&(this.visuals.border_line.set_value(e),n.style.borderStyle=e.lineDash.length<2?\"solid\":\"dashed\",n.style.borderWidth=`${e.lineWidth}px`,n.style.borderColor=e.strokeStyle),(0,a.display)(n)}}s.TextAnnotationView=h,h.__name__=\"TextAnnotationView\";class _ extends o.Annotation{constructor(e){super(e)}}s.TextAnnotation=_,n=_,_.__name__=\"TextAnnotation\",n.define((()=>({render_mode:[r.RenderMode,\"canvas\"]})))},\n function _(t,e,s,i,n){i();const h=t(65),o=t(121),r=t(9),a=t(8),c=t(122),_=t(22);s.text_width=(()=>{const t=document.createElement(\"canvas\").getContext(\"2d\");let e=\"\";return(s,i)=>(i!=e&&(e=i,t.font=i),t.measureText(s).width)})();class l{constructor(){this._position={sx:0,sy:0},this.font_size_scale=1,this.align=\"left\",this._base_font_size=13,this._x_anchor=\"left\",this._y_anchor=\"center\"}set base_font_size(t){null!=t&&(this._base_font_size=t)}get base_font_size(){return this._base_font_size}set position(t){this._position=t}get position(){return this._position}infer_text_height(){return\"ascent_descent\"}bbox(){const{p0:t,p1:e,p2:s,p3:i}=this.rect(),n=Math.min(t.x,e.x,s.x,i.x),o=Math.min(t.y,e.y,s.y,i.y),r=Math.max(t.x,e.x,s.x,i.x),a=Math.max(t.y,e.y,s.y,i.y);return new h.BBox({left:n,right:r,top:o,bottom:a})}size(){const{width:t,height:e}=this._size(),{angle:s}=this;if(s){const i=Math.cos(Math.abs(s)),n=Math.sin(Math.abs(s));return{width:Math.abs(t*i+e*n),height:Math.abs(t*n+e*i)}}return{width:t,height:e}}rect(){const t=this._rect(),{angle:e}=this;if(e){const{sx:s,sy:i}=this.position,n=new c.AffineTransform;return n.translate(s,i),n.rotate(e),n.translate(-s,-i),n.apply_rect(t)}return t}paint_rect(t){const{p0:e,p1:s,p2:i,p3:n}=this.rect();t.save(),t.strokeStyle=\"red\",t.lineWidth=1,t.beginPath();const{round:h}=Math;t.moveTo(h(e.x),h(e.y)),t.lineTo(h(s.x),h(s.y)),t.lineTo(h(i.x),h(i.y)),t.lineTo(h(n.x),h(n.y)),t.closePath(),t.stroke(),t.restore()}paint_bbox(t){const{x:e,y:s,width:i,height:n}=this.bbox();t.save(),t.strokeStyle=\"blue\",t.lineWidth=1,t.beginPath();const{round:h}=Math;t.moveTo(h(e),h(s)),t.lineTo(h(e),h(s+n)),t.lineTo(h(e+i),h(s+n)),t.lineTo(h(e+i),h(s)),t.closePath(),t.stroke(),t.restore()}}s.GraphicsBox=l,l.__name__=\"GraphicsBox\";class x extends l{constructor({text:t}){super(),this.text=t}set visuals(t){const e=t.color,s=t.alpha,i=t.font_style;let n=t.font_size;const h=t.font,{font_size_scale:r,base_font_size:a}=this,c=(0,o.parse_css_font_size)(n);if(null!=c){let{value:t,unit:e}=c;t*=r,\"em\"==e&&a&&(t*=a,e=\"px\"),n=`${t}${e}`}const l=`${i} ${n} ${h}`;this.font=l,this.color=(0,_.color2css)(e,s),this.line_height=t.line_height;const x=t.align;this._x_anchor=x;const u=t.baseline;this._y_anchor=(()=>{switch(u){case\"top\":return\"top\";case\"middle\":return\"center\";case\"bottom\":return\"bottom\";default:return\"baseline\"}})()}infer_text_height(){if(this.text.includes(\"\\n\"))return\"ascent_descent\";{function t(t){for(const e of new Set(t))if(!(\"0\"<=e&&e<=\"9\"))switch(e){case\",\":case\".\":case\"+\":case\"-\":case\"\\u2212\":case\"e\":continue;default:return!1}return!0}return t(this.text)?\"cap\":\"ascent_descent\"}}_text_line(t){var e;const s=null!==(e=this.text_height_metric)&&void 0!==e?e:this.infer_text_height(),i=(()=>{switch(s){case\"x\":case\"x_descent\":return t.x_height;case\"cap\":case\"cap_descent\":return t.cap_height;case\"ascent\":case\"ascent_descent\":return t.ascent}})(),n=(()=>{switch(s){case\"x\":case\"cap\":case\"ascent\":return 0;case\"x_descent\":case\"cap_descent\":case\"ascent_descent\":return t.descent}})();return{height:i+n,ascent:i,descent:n}}get nlines(){return this.text.split(\"\\n\").length}_size(){var t,e;const{font:i}=this,n=(0,o.font_metrics)(i),h=(this.line_height-1)*n.height,a=\"\"==this.text,c=this.text.split(\"\\n\"),_=c.length,l=c.map((t=>(0,s.text_width)(t,i))),x=this._text_line(n).height*_,u=\"%\"==(null===(t=this.width)||void 0===t?void 0:t.unit)?this.width.value:1,p=\"%\"==(null===(e=this.height)||void 0===e?void 0:e.unit)?this.height.value:1;return{width:(0,r.max)(l)*u,height:a?0:(x+h*(_-1))*p,metrics:n}}_computed_position(t,e,s){const{width:i,height:n}=t,{sx:h,sy:o,x_anchor:r=this._x_anchor,y_anchor:c=this._y_anchor}=this.position;return{x:h-(()=>{if((0,a.isNumber)(r))return r*i;switch(r){case\"left\":return 0;case\"center\":return.5*i;case\"right\":return i}})(),y:o-(()=>{var t;if((0,a.isNumber)(c))return c*n;switch(c){case\"top\":return 0;case\"center\":return.5*n;case\"bottom\":return n;case\"baseline\":if(1!=s)return.5*n;switch(null!==(t=this.text_height_metric)&&void 0!==t?t:this.infer_text_height()){case\"x\":case\"x_descent\":return e.x_height;case\"cap\":case\"cap_descent\":return e.cap_height;case\"ascent\":case\"ascent_descent\":return e.ascent}}})()}}_rect(){const{width:t,height:e,metrics:s}=this._size(),i=this.text.split(\"\\n\").length,{x:n,y:o}=this._computed_position({width:t,height:e},s,i);return new h.BBox({x:n,y:o,width:t,height:e}).rect}paint(t){var e,i;const{font:n}=this,h=(0,o.font_metrics)(n),a=(this.line_height-1)*h.height,c=this.text.split(\"\\n\"),_=c.length,l=c.map((t=>(0,s.text_width)(t,n))),x=this._text_line(h),u=x.height*_,p=\"%\"==(null===(e=this.width)||void 0===e?void 0:e.unit)?this.width.value:1,f=\"%\"==(null===(i=this.height)||void 0===i?void 0:i.unit)?this.height.value:1,g=(0,r.max)(l)*p,d=(u+a*(_-1))*f;t.save(),t.fillStyle=this.color,t.font=this.font,t.textAlign=\"left\",t.textBaseline=\"alphabetic\";const{sx:b,sy:m}=this.position,{align:y}=this,{angle:w}=this;w&&(t.translate(b,m),t.rotate(w),t.translate(-b,-m));let{x:v,y:z}=this._computed_position({width:g,height:d},h,_);if(\"justify\"==y)for(let e=0;e<_;e++){let i=v;const h=c[e].split(\" \"),o=h.length,_=h.map((t=>(0,s.text_width)(t,n))),l=(g-(0,r.sum)(_))/(o-1);for(let e=0;e{switch(y){case\"left\":return 0;case\"center\":return.5*(g-l[e]);case\"right\":return g-l[e]}})();t.fillStyle=this.color,t.fillText(c[e],s,z+x.ascent),z+=x.height+a}t.restore()}}s.TextBox=x,x.__name__=\"TextBox\";class u extends l{constructor(t,e){super(),this.base=t,this.expo=e}get children(){return[this.base,this.expo]}set base_font_size(t){super.base_font_size=t,this.base.base_font_size=t,this.expo.base_font_size=t}set position(t){this._position=t;const e=this.base.size(),s=this.expo.size(),i=this._shift_scale()*e.height,n=Math.max(e.height,i+s.height);this.base.position={sx:0,x_anchor:\"left\",sy:n,y_anchor:\"bottom\"},this.expo.position={sx:e.width,x_anchor:\"left\",sy:i,y_anchor:\"bottom\"}}get position(){return this._position}set visuals(t){this.expo.font_size_scale=.7,this.base.visuals=t,this.expo.visuals=t}_shift_scale(){if(this.base instanceof x&&1==this.base.nlines){const{x_height:t,cap_height:e}=(0,o.font_metrics)(this.base.font);return t/e}return 2/3}infer_text_height(){return this.base.infer_text_height()}_rect(){const t=this.base.bbox(),e=this.expo.bbox(),s=t.union(e),{x:i,y:n}=this._computed_position();return s.translate(i,n).rect}_size(){const t=this.base.size(),e=this.expo.size();return{width:t.width+e.width,height:Math.max(t.height,this._shift_scale()*t.height+e.height)}}paint(t){t.save();const{angle:e}=this;if(e){const{sx:s,sy:i}=this.position;t.translate(s,i),t.rotate(e),t.translate(-s,-i)}const{x:s,y:i}=this._computed_position();t.translate(s,i),this.base.paint(t),this.expo.paint(t),t.restore()}paint_bbox(t){super.paint_bbox(t);const{x:e,y:s}=this._computed_position();t.save(),t.translate(e,s);for(const e of this.children)e.paint_bbox(t);t.restore()}_computed_position(){const{width:t,height:e}=this._size(),{sx:s,sy:i,x_anchor:n=this._x_anchor,y_anchor:h=this._y_anchor}=this.position;return{x:s-(()=>{if((0,a.isNumber)(n))return n*t;switch(n){case\"left\":return 0;case\"center\":return.5*t;case\"right\":return t}})(),y:i-(()=>{if((0,a.isNumber)(h))return h*e;switch(h){case\"top\":return 0;case\"center\":return.5*e;case\"bottom\":return e;case\"baseline\":return.5*e}})()}}}s.BaseExpo=u,u.__name__=\"BaseExpo\";class p{constructor(t){this.items=t}set base_font_size(t){for(const e of this.items)e.base_font_size=t}get length(){return this.items.length}set visuals(t){for(const e of this.items)e.visuals=t;const e={x:0,cap:1,ascent:2,x_descent:3,cap_descent:4,ascent_descent:5},s=(0,r.max_by)(this.items.map((t=>t.infer_text_height())),(t=>e[t]));for(const t of this.items)t.text_height_metric=s}set angle(t){for(const e of this.items)e.angle=t}max_size(){let t=0,e=0;for(const s of this.items){const i=s.size();t=Math.max(t,i.width),e=Math.max(e,i.height)}return{width:t,height:e}}}s.GraphicsBoxes=p,p.__name__=\"GraphicsBoxes\"},\n function _(t,e,n,r,l){r();const a=t(11),c=(()=>{try{return\"undefined\"!=typeof OffscreenCanvas&&null!=new OffscreenCanvas(0,0).getContext(\"2d\")}catch(t){return!1}})()?(t,e)=>new OffscreenCanvas(t,e):(t,e)=>{const n=document.createElement(\"canvas\");return n.width=t,n.height=e,n},o=(()=>{const t=c(0,0).getContext(\"2d\");return e=>{t.font=e;const n=t.measureText(\"M\"),r=t.measureText(\"x\"),l=t.measureText(\"\\xc5\\u015ag|\"),c=l.fontBoundingBoxAscent,o=l.fontBoundingBoxDescent;if(null!=c&&null!=o)return{height:c+o,ascent:c,descent:o,cap_height:n.actualBoundingBoxAscent,x_height:r.actualBoundingBoxAscent};const s=l.actualBoundingBoxAscent,u=l.actualBoundingBoxDescent;if(null!=s&&null!=u)return{height:s+u,ascent:s,descent:u,cap_height:n.actualBoundingBoxAscent,x_height:r.actualBoundingBoxAscent};(0,a.unreachable)()}})(),s=(()=>{const t=c(0,0).getContext(\"2d\");return(e,n)=>{t.font=n;const r=t.measureText(e),l=r.actualBoundingBoxAscent,c=r.actualBoundingBoxDescent;if(null!=l&&null!=c)return{width:r.width,height:l+c,ascent:l,descent:c};(0,a.unreachable)()}})(),u=(()=>{const t=document.createElement(\"canvas\"),e=t.getContext(\"2d\");let n=-1,r=-1;return(l,a=1)=>{e.font=l;const{width:c}=e.measureText(\"M\"),o=c*a,s=Math.ceil(o),u=Math.ceil(2*o),i=Math.ceil(1.5*o);n{let e=0;for(let n=0;n<=i;n++)for(let r=0;r{let e=t.length-4;for(let n=u;n>=i;n--)for(let r=0;r{const t=document.createElement(\"canvas\"),e=t.getContext(\"2d\");let n=-1,r=-1;return(l,a,c=1)=>{e.font=a;const{width:o}=e.measureText(\"M\"),s=o*c,u=Math.ceil(s),i=Math.ceil(2*s),f=Math.ceil(1.5*s);(n{let e=0;for(let n=0;n<=f;n++)for(let r=0;r{let e=t.length-4;for(let n=i;n>=f;n--)for(let r=0;r{try{return o(\"normal 10px sans-serif\"),o}catch(t){return u}})(),h=(()=>{try{return s(\"A\",\"normal 10px sans-serif\"),s}catch(t){return i}})(),g=new Map;function d(t){let e=g.get(t);return null==e&&(e={font:f(t),glyphs:new Map},g.set(t,e)),e.font}n.font_metrics=d,n.glyph_metrics=function(t,e){let n=g.get(e);null==n&&(d(e),n=g.get(e));let r=n.glyphs.get(t);return null==r&&(r=h(t,e),n.glyphs.set(t,r)),r},n.parse_css_font_size=function(t){const e=t.match(/^\\s*(\\d+(\\.\\d+)?)(\\w+)\\s*$/);if(null!=e){const[,t,,n]=e,r=Number(t);if(isFinite(r))return{value:r,unit:n}}return null}},\n function _(t,s,r,n,i){n();const{sin:e,cos:a}=Math;class h{constructor(t=1,s=0,r=0,n=1,i=0,e=0){this.a=t,this.b=s,this.c=r,this.d=n,this.e=i,this.f=e}toString(){const{a:t,b:s,c:r,d:n,e:i,f:e}=this;return`matrix(${t}, ${s}, ${r}, ${n}, ${i}, ${e})`}static from_DOMMatrix(t){const{a:s,b:r,c:n,d:i,e,f:a}=t;return new h(s,r,n,i,e,a)}to_DOMMatrix(){const{a:t,b:s,c:r,d:n,e:i,f:e}=this;return new DOMMatrix([t,s,r,n,i,e])}clone(){const{a:t,b:s,c:r,d:n,e:i,f:e}=this;return new h(t,s,r,n,i,e)}get is_identity(){const{a:t,b:s,c:r,d:n,e:i,f:e}=this;return 1==t&&0==s&&0==r&&1==n&&0==i&&0==e}apply_point(t){const[s,r]=this.apply(t.x,t.y);return{x:s,y:r}}apply_rect(t){return{p0:this.apply_point(t.p0),p1:this.apply_point(t.p1),p2:this.apply_point(t.p2),p3:this.apply_point(t.p3)}}apply(t,s){const{a:r,b:n,c:i,d:e,e:a,f:h}=this;return[r*t+i*s+a,n*t+e*s+h]}iv_apply(t,s){const{a:r,b:n,c:i,d:e,e:a,f:h}=this,c=t.length;for(let o=0;o{const h={max:4,fit:3,min:2,fixed:1};return h[i]>h[t]};if(\"fixed\"!=n&&\"fixed\"!=s)if(n==s){const n=t,s=_(t/e),r=_(h*e),g=h;Math.abs(i.width-n)+Math.abs(i.height-s)<=Math.abs(i.width-r)+Math.abs(i.height-g)?(t=n,h=s):(t=r,h=g)}else r(n,s)?h=_(t/e):t=_(h*e);else\"fixed\"==n?h=_(t/e):\"fixed\"==s&&(t=_(h*e))}return{width:t,height:h}}measure(i){if(!this.sizing.visible)return{width:0,height:0};const t=i=>\"fixed\"==this.sizing.width_policy&&null!=this.sizing.width?this.sizing.width:i,h=i=>\"fixed\"==this.sizing.height_policy&&null!=this.sizing.height?this.sizing.height:i,e=new s.Sizeable(i).shrink_by(this.sizing.margin).map(t,h),n=this._measure(e),r=this.clip_size(n,e),g=t(r.width),l=h(r.height),a=this.apply_aspect(e,{width:g,height:l});return Object.assign(Object.assign({},n),a)}compute(i={}){const t=this.measure({width:null!=i.width&&this.is_width_expanding()?i.width:1/0,height:null!=i.height&&this.is_height_expanding()?i.height:1/0}),{width:h,height:e}=t,n=new r.BBox({left:0,top:0,width:h,height:e});let s;if(null!=t.inner){const{left:i,top:n,right:g,bottom:l}=t.inner;s=new r.BBox({left:i,top:n,right:h-g,bottom:e-l})}this.set_geometry(n,s)}get xview(){return this.bbox.xview}get yview(){return this.bbox.yview}clip_size(i,t){function h(i,t,h,e){return null==h?h=0:(0,g.isNumber)(h)||(h=Math.round(h.percent*t)),null==e?e=1/0:(0,g.isNumber)(e)||(e=Math.round(e.percent*t)),a(h,l(i,e))}return{width:h(i.width,t.width,this.sizing.min_width,this.sizing.max_width),height:h(i.height,t.height,this.sizing.min_height,this.sizing.max_height)}}has_size_changed(){const{_dirty:i}=this;return this._dirty=!1,i}}h.Layoutable=o,o.__name__=\"Layoutable\";class d extends o{_measure(i){const{width_policy:t,height_policy:h}=this.sizing;return{width:(()=>{const{width:h}=this.sizing;if(i.width==1/0)return null!=h?h:0;switch(t){case\"fixed\":return null!=h?h:0;case\"min\":return null!=h?l(i.width,h):0;case\"fit\":return null!=h?l(i.width,h):i.width;case\"max\":return null!=h?a(i.width,h):i.width}})(),height:(()=>{const{height:t}=this.sizing;if(i.height==1/0)return null!=t?t:0;switch(h){case\"fixed\":return null!=t?t:0;case\"min\":return null!=t?l(i.height,t):0;case\"fit\":return null!=t?l(i.height,t):i.height;case\"max\":return null!=t?a(i.height,t):i.height}})()}}}h.LayoutItem=d,d.__name__=\"LayoutItem\";class u extends o{_measure(i){const t=this._content_size(),h=i.bounded_to(this.sizing.size).bounded_to(t);return{width:(()=>{switch(this.sizing.width_policy){case\"fixed\":return null!=this.sizing.width?this.sizing.width:t.width;case\"min\":return t.width;case\"fit\":return h.width;case\"max\":return Math.max(t.width,h.width)}})(),height:(()=>{switch(this.sizing.height_policy){case\"fixed\":return null!=this.sizing.height?this.sizing.height:t.height;case\"min\":return t.height;case\"fit\":return h.height;case\"max\":return Math.max(t.height,h.height)}})()}}}h.ContentLayoutable=u,u.__name__=\"ContentLayoutable\"},\n function _(e,t,s,a,_){a();const r=e(62),n=e(61),g=e(58),i=e(63),c=e(67),h=e(65),l=e(13),o=e(11);class x{constructor(e,t,s,a,_={},r={},n={},g={}){this.in_x_scale=e,this.in_y_scale=t,this.x_range=s,this.y_range=a,this.extra_x_ranges=_,this.extra_y_ranges=r,this.extra_x_scales=n,this.extra_y_scales=g,this._bbox=new h.BBox,(0,o.assert)(null==e.source_range&&null==e.target_range),(0,o.assert)(null==t.source_range&&null==t.target_range),this._configure_scales()}get bbox(){return this._bbox}_get_ranges(e,t){return new Map((0,l.entries)(Object.assign(Object.assign({},t),{default:e})))}_get_scales(e,t,s,a){var _;const g=new Map((0,l.entries)(Object.assign(Object.assign({},t),{default:e}))),h=new Map;for(const[t,l]of s){if(l instanceof c.FactorRange!=e instanceof r.CategoricalScale)throw new Error(`Range ${l.type} is incompatible is Scale ${e.type}`);e instanceof n.LogScale&&l instanceof i.DataRange1d&&(l.scale_hint=\"log\");const s=(null!==(_=g.get(t))&&void 0!==_?_:e).clone();s.setv({source_range:l,target_range:a}),h.set(t,s)}return h}_configure_frame_ranges(){const{bbox:e}=this;this._x_target=new g.Range1d({start:e.left,end:e.right}),this._y_target=new g.Range1d({start:e.bottom,end:e.top})}_configure_scales(){this._configure_frame_ranges(),this._x_ranges=this._get_ranges(this.x_range,this.extra_x_ranges),this._y_ranges=this._get_ranges(this.y_range,this.extra_y_ranges),this._x_scales=this._get_scales(this.in_x_scale,this.extra_x_scales,this._x_ranges,this._x_target),this._y_scales=this._get_scales(this.in_y_scale,this.extra_y_scales,this._y_ranges,this._y_target)}_update_scales(){this._configure_frame_ranges();for(const[,e]of this._x_scales)e.target_range=this._x_target;for(const[,e]of this._y_scales)e.target_range=this._y_target}set_geometry(e){this._bbox=e,this._update_scales()}get x_target(){return this._x_target}get y_target(){return this._y_target}get x_ranges(){return this._x_ranges}get y_ranges(){return this._y_ranges}get x_scales(){return this._x_scales}get y_scales(){return this._y_scales}get x_scale(){return this._x_scales.get(\"default\")}get y_scale(){return this._y_scales.get(\"default\")}get xscales(){return(0,l.to_object)(this.x_scales)}get yscales(){return(0,l.to_object)(this.y_scales)}}s.CartesianFrame=x,x.__name__=\"CartesianFrame\"},\n function _(i,s,x,A,o){A(),o(\"Axis\",i(128).Axis),o(\"CategoricalAxis\",i(140).CategoricalAxis),o(\"ContinuousAxis\",i(143).ContinuousAxis),o(\"DatetimeAxis\",i(144).DatetimeAxis),o(\"LinearAxis\",i(145).LinearAxis),o(\"LogAxis\",i(162).LogAxis),o(\"MercatorAxis\",i(165).MercatorAxis)},\n function _(t,e,i,s,a){s();const o=t(1);var l;const n=t(129),_=t(130),r=t(131),h=t(132),c=(0,o.__importStar)(t(48)),b=t(20),u=t(24),m=t(123),d=t(9),x=t(13),f=t(8),g=t(120),p=t(67),v=t(133),w=t(113),j=t(11),k=t(8),y=t(134),{abs:z}=Math;class M extends n.GuideRendererView{constructor(){super(...arguments),this._axis_label_view=null,this._major_label_views=new Map}async lazy_initialize(){await super.lazy_initialize(),await this._init_axis_label(),await this._init_major_labels()}async _init_axis_label(){const{axis_label:t}=this.model;if(null!=t){const e=(0,k.isString)(t)?(0,y.parse_delimited_string)(t):t;this._axis_label_view=await(0,w.build_view)(e,{parent:this})}else this._axis_label_view=null}async _init_major_labels(){const{major_label_overrides:t}=this.model;for(const[e,i]of(0,x.entries)(t)){const t=(0,k.isString)(i)?(0,y.parse_delimited_string)(i):i;this._major_label_views.set(e,await(0,w.build_view)(t,{parent:this}))}}update_layout(){this.layout=new m.SideLayout(this.panel,(()=>this.get_size()),!0),this.layout.on_resize((()=>this._coordinates=void 0))}get_size(){const{visible:t,fixed_location:e}=this.model;if(t&&null==e&&this.is_renderable){const{extents:t}=this;return{width:0,height:Math.round(t.tick+t.tick_label+t.axis_label)}}return{width:0,height:0}}get is_renderable(){const[t,e]=this.ranges;return t.is_valid&&e.is_valid}_render(){var t;if(!this.is_renderable)return;const{tick_coords:e,extents:i}=this,s=this.layer.ctx;s.save(),this._draw_rule(s,i),this._draw_major_ticks(s,i,e),this._draw_minor_ticks(s,i,e),this._draw_major_labels(s,i,e),this._draw_axis_label(s,i,e),null===(t=this._paint)||void 0===t||t.call(this,s,i,e),s.restore()}connect_signals(){super.connect_signals();const{axis_label:t,major_label_overrides:e}=this.model.properties;this.on_change(t,(async()=>{var t;null===(t=this._axis_label_view)||void 0===t||t.remove(),await this._init_axis_label()})),this.on_change(e,(async()=>{for(const t of this._major_label_views.values())t.remove();await this._init_major_labels()})),this.connect(this.model.change,(()=>this.plot_view.request_layout()))}get needs_clip(){return null!=this.model.fixed_location}_draw_rule(t,e){if(!this.visuals.axis_line.doit)return;const[i,s]=this.rule_coords,[a,o]=this.coordinates.map_to_screen(i,s),[l,n]=this.normals,[_,r]=this.offsets;this.visuals.axis_line.set_value(t),t.beginPath();for(let e=0;e0?s+i+3:0}_draw_axis_label(t,e,i){if(null==this._axis_label_view||null!=this.model.fixed_location)return;const[s,a]=(()=>{const{bbox:t}=this.layout;switch(this.panel.side){case\"above\":return[t.hcenter,t.bottom];case\"below\":return[t.hcenter,t.top];case\"left\":return[t.right,t.vcenter];case\"right\":return[t.left,t.vcenter]}})(),[o,l]=this.normals,n=e.tick+e.tick_label+this.model.axis_label_standoff,{vertical_align:_,align:r}=this.panel.get_label_text_heuristics(\"parallel\"),h={sx:s+o*n,sy:a+l*n,x_anchor:r,y_anchor:_},c=this._axis_label_view.graphics();c.visuals=this.visuals.axis_label_text.values(),c.angle=this.panel.get_label_angle_heuristic(\"parallel\"),this.plot_view.base_font_size&&(c.base_font_size=this.plot_view.base_font_size),c.position=h,c.align=r,c.paint(t)}_draw_ticks(t,e,i,s,a){if(!a.doit)return;const[o,l]=e,[n,_]=this.coordinates.map_to_screen(o,l),[r,h]=this.normals,[c,b]=this.offsets,[u,m]=[r*(c-i),h*(b-i)],[d,x]=[r*(c+s),h*(b+s)];a.set_value(t),t.beginPath();for(let e=0;et.bbox())),M=(()=>{const[t]=this.ranges;return t.is_reversed?0==this.dimension?(t,e)=>z[t].left-z[e].right:(t,e)=>z[e].top-z[t].bottom:0==this.dimension?(t,e)=>z[e].left-z[t].right:(t,e)=>z[t].top-z[e].bottom})(),{major_label_policy:O}=this.model,T=O.filter(k,z,M),A=[...T.ones()];if(0!=A.length){const t=this.parent.canvas_view.bbox,e=e=>{const i=z[e];if(i.left<0){const t=-i.left,{position:s}=y[e];y[e].position=Object.assign(Object.assign({},s),{sx:s.sx+t})}else if(i.right>t.width){const s=i.right-t.width,{position:a}=y[e];y[e].position=Object.assign(Object.assign({},a),{sx:a.sx-s})}},i=e=>{const i=z[e];if(i.top<0){const t=-i.top,{position:s}=y[e];y[e].position=Object.assign(Object.assign({},s),{sy:s.sy+t})}else if(i.bottom>t.height){const s=i.bottom-t.height,{position:a}=y[e];y[e].position=Object.assign(Object.assign({},a),{sy:a.sy-s})}},s=A[0],a=A[A.length-1];0==this.dimension?(e(s),e(a)):(i(s),i(a))}for(const e of T){y[e].paint(t)}}_tick_extent(){return this.model.major_tick_out}_tick_label_extents(){const t=this.tick_coords.major,e=this.compute_labels(t[this.dimension]),i=this.model.major_label_orientation,s=this.model.major_label_standoff,a=this.visuals.major_label_text;return[this._oriented_labels_extent(e,i,s,a)]}get extents(){const t=this._tick_label_extents();return{tick:this._tick_extent(),tick_labels:t,tick_label:(0,d.sum)(t),axis_label:this._axis_label_extent()}}_oriented_labels_extent(t,e,i,s){if(0==t.length||!s.doit)return 0;const a=this.panel.get_label_angle_heuristic(e);t.visuals=s.values(),t.angle=a,t.base_font_size=this.plot_view.base_font_size;const o=t.max_size(),l=0==this.dimension?o.height:o.width;return l>0?i+l+3:0}get normals(){return this.panel.normals}get dimension(){return this.panel.dimension}compute_labels(t){const e=this.model.formatter.format_graphics(t,this),{_major_label_views:i}=this,s=new Set;for(let a=0;az(l-n)?(t=r(_(a,o),l),s=_(r(a,o),n)):(t=_(a,o),s=r(a,o)),[t,s]}}get rule_coords(){const t=this.dimension,e=(t+1)%2,[i]=this.ranges,[s,a]=this.computed_bounds,o=[new Array(2),new Array(2)];return o[t][0]=Math.max(s,i.min),o[t][1]=Math.min(a,i.max),o[t][0]>o[t][1]&&(o[t][0]=o[t][1]=NaN),o[e][0]=this.loc,o[e][1]=this.loc,o}get tick_coords(){const t=this.dimension,e=(t+1)%2,[i]=this.ranges,[s,a]=this.computed_bounds,o=this.model.ticker.get_ticks(s,a,i,this.loc),l=o.major,n=o.minor,_=[[],[]],r=[[],[]],[h,c]=[i.min,i.max];for(let i=0;ic||(_[t].push(l[i]),_[e].push(this.loc));for(let i=0;ic||(r[t].push(n[i]),r[e].push(this.loc));return{major:_,minor:r}}get loc(){const{fixed_location:t}=this.model;if(null!=t){if((0,f.isNumber)(t))return t;const[,e]=this.ranges;if(e instanceof p.FactorRange)return e.synthetic(t);(0,j.unreachable)()}const[,e]=this.ranges;switch(this.panel.side){case\"left\":case\"below\":return e.start;case\"right\":case\"above\":return e.end}}serializable_state(){return Object.assign(Object.assign({},super.serializable_state()),{bbox:this.layout.bbox.box})}remove(){var t;null===(t=this._axis_label_view)||void 0===t||t.remove();for(const t of this._major_label_views.values())t.remove();super.remove()}has_finished(){if(!super.has_finished())return!1;if(null!=this._axis_label_view&&!this._axis_label_view.has_finished())return!1;for(const t of this._major_label_views.values())if(!t.has_finished())return!1;return!0}}i.AxisView=M,M.__name__=\"AxisView\";class O extends n.GuideRenderer{constructor(t){super(t)}}i.Axis=O,l=O,O.__name__=\"Axis\",l.prototype.default_view=M,l.mixins([[\"axis_\",c.Line],[\"major_tick_\",c.Line],[\"minor_tick_\",c.Line],[\"major_label_\",c.Text],[\"axis_label_\",c.Text]]),l.define((({Any:t,Int:e,Number:i,String:s,Ref:a,Dict:o,Tuple:l,Or:n,Nullable:c,Auto:u})=>({bounds:[n(l(i,i),u),\"auto\"],ticker:[a(_.Ticker)],formatter:[a(r.TickFormatter)],axis_label:[c(n(s,a(v.BaseText))),null],axis_label_standoff:[e,5],major_label_standoff:[e,5],major_label_orientation:[n(b.TickLabelOrientation,i),\"horizontal\"],major_label_overrides:[o(n(s,a(v.BaseText))),{}],major_label_policy:[a(h.LabelingPolicy),()=>new h.AllLabels],major_tick_in:[i,2],major_tick_out:[i,6],minor_tick_in:[i,0],minor_tick_out:[i,4],fixed_location:[c(n(i,t)),null]}))),l.override({axis_line_color:\"black\",major_tick_line_color:\"black\",minor_tick_line_color:\"black\",major_label_text_font_size:\"11px\",major_label_text_align:\"center\",major_label_text_baseline:\"alphabetic\",axis_label_text_font_size:\"13px\",axis_label_text_font_style:\"italic\"})},\n function _(e,r,d,n,i){var s;n();const _=e(41);class u extends _.RendererView{}d.GuideRendererView=u,u.__name__=\"GuideRendererView\";class c extends _.Renderer{constructor(e){super(e)}}d.GuideRenderer=c,s=c,c.__name__=\"GuideRenderer\",s.override({level:\"guide\"})},\n function _(c,e,n,s,o){s();const r=c(53);class t extends r.Model{constructor(c){super(c)}}n.Ticker=t,t.__name__=\"Ticker\"},\n function _(t,o,r,e,c){e();const n=t(53),a=t(120);class m extends n.Model{constructor(t){super(t)}format_graphics(t,o){return this.doFormat(t,o).map((t=>new a.TextBox({text:t})))}compute(t,o){return this.doFormat([t],null!=o?o:{loc:0})[0]}v_compute(t,o){return this.doFormat(t,null!=o?o:{loc:0})}}r.TickFormatter=m,m.__name__=\"TickFormatter\"},\n function _(e,n,s,t,i){var c,r;t();const l=e(53),o=e(13),a=e(34),u=e(8),d=e(24);class _ extends l.Model{constructor(e){super(e)}}s.LabelingPolicy=_,_.__name__=\"LabelingPolicy\";class f extends _{constructor(e){super(e)}filter(e,n,s){return e}}s.AllLabels=f,f.__name__=\"AllLabels\";class m extends _{constructor(e){super(e)}filter(e,n,s){const{min_distance:t}=this;let i=null;for(const n of e)null!=i&&s(i,n)({min_distance:[e,5]})));class b extends _{constructor(e){super(e)}get names(){return(0,o.keys)(this.args)}get values(){return(0,o.values)(this.args)}get func(){const e=(0,a.use_strict)(this.code);return new d.GeneratorFunction(\"indices\",\"bboxes\",\"distance\",...this.names,e)}filter(e,n,s){const t=Object.create(null),i=this.func.call(t,e,n,s,...this.values);let c=i.next();if(c.done&&void 0!==c.value){const{value:n}=c;return n instanceof d.Indices?n:void 0===n?e:(0,u.isIterable)(n)?d.Indices.from_indices(e.size,n):d.Indices.all_unset(e.size)}{const n=[];do{n.push(c.value),c=i.next()}while(!c.done);return d.Indices.from_indices(e.size,n)}}}s.CustomLabelingPolicy=b,r=b,b.__name__=\"CustomLabelingPolicy\",r.define((({Unknown:e,String:n,Dict:s})=>({args:[s(e),{}],code:[n,\"\"]})))},\n function _(e,s,t,n,a){var _;n();const x=e(53),c=e(42);class i extends c.View{}t.BaseTextView=i,i.__name__=\"BaseTextView\";class o extends x.Model{constructor(e){super(e)}}t.BaseText=o,_=o,o.__name__=\"BaseText\",_.define((({String:e})=>({text:[e]})))},\n function _(n,e,t,i,r){i();const s=n(135),l=n(139),d=[{start:\"$$\",end:\"$$\",inline:!1},{start:\"\\\\[\",end:\"\\\\]\",inline:!1},{start:\"\\\\(\",end:\"\\\\)\",inline:!0}];t.parse_delimited_string=function(n){for(const e of d){const t=n.indexOf(e.start),i=t+e.start.length;if(0==t){const t=n.indexOf(e.end,i),r=t;if(t==n.length-e.end.length)return new s.TeX({text:n.slice(i,r),inline:e.inline});break}}return new l.PlainText({text:n})}},\n function _(t,e,s,i,n){var o,r,a;i();const h=t(8),_=t(136),l=t(22),c=t(120),d=t(121),u=t(122),g=t(65),p=t(133),x=t(137);class m extends p.BaseTextView{constructor(){super(...arguments),this._position={sx:0,sy:0},this.align=\"left\",this._x_anchor=\"left\",this._y_anchor=\"center\",this._base_font_size=13,this.font_size_scale=1,this.svg_image=null}graphics(){return this}infer_text_height(){return\"ascent_descent\"}set base_font_size(t){null!=t&&(this._base_font_size=t)}get base_font_size(){return this._base_font_size}get has_image_loaded(){return null!=this.svg_image}_rect(){const{width:t,height:e}=this._size(),{x:s,y:i}=this._computed_position();return new g.BBox({x:s,y:i,width:t,height:e}).rect}set position(t){this._position=t}get position(){return this._position}get text(){return this.model.text}get provider(){return x.default_provider}async lazy_initialize(){await super.lazy_initialize(),\"not_started\"==this.provider.status&&await this.provider.fetch(),\"not_started\"!=this.provider.status&&\"loading\"!=this.provider.status||this.provider.ready.connect((()=>this.load_image())),\"loaded\"==this.provider.status&&await this.load_image()}connect_signals(){super.connect_signals(),this.on_change(this.model.properties.text,(()=>this.load_image()))}set visuals(t){const e=t.color,s=t.alpha,i=t.font_style;let n=t.font_size;const o=t.font,{font_size_scale:r,_base_font_size:a}=this,h=(0,d.parse_css_font_size)(n);if(null!=h){let{value:t,unit:e}=h;t*=r,\"em\"==e&&a&&(t*=a,e=\"px\"),n=`${t}${e}`}const _=`${i} ${n} ${o}`;this.font=_,this.color=(0,l.color2css)(e,s)}_computed_position(){const{width:t,height:e}=this._size(),{sx:s,sy:i,x_anchor:n=this._x_anchor,y_anchor:o=this._y_anchor}=this.position;return{x:s-(()=>{if((0,h.isNumber)(n))return n*t;switch(n){case\"left\":return 0;case\"center\":return.5*t;case\"right\":return t}})(),y:i-(()=>{if((0,h.isNumber)(o))return o*e;switch(o){case\"top\":return 0;case\"center\":return.5*e;case\"bottom\":return e;case\"baseline\":return.5*e}})()}}size(){const{width:t,height:e}=this._size(),{angle:s}=this;if(s){const i=Math.cos(Math.abs(s)),n=Math.sin(Math.abs(s));return{width:Math.abs(t*i+e*n),height:Math.abs(t*n+e*i)}}return{width:t,height:e}}get_text_dimensions(){return{width:(0,c.text_width)(this.model.text,this.font),height:(0,d.font_metrics)(this.font).height}}get_image_dimensions(){var t,e,s,i;const n=parseFloat(null!==(e=null===(t=this.svg_element.getAttribute(\"height\"))||void 0===t?void 0:t.replace(/([A-z])/g,\"\"))&&void 0!==e?e:\"0\"),o=parseFloat(null!==(i=null===(s=this.svg_element.getAttribute(\"width\"))||void 0===s?void 0:s.replace(/([A-z])/g,\"\"))&&void 0!==i?i:\"0\");return{width:(0,d.font_metrics)(this.font).x_height*o,height:(0,d.font_metrics)(this.font).x_height*n}}_size(){return this.has_image_loaded?this.get_image_dimensions():this.get_text_dimensions()}bbox(){const{p0:t,p1:e,p2:s,p3:i}=this.rect(),n=Math.min(t.x,e.x,s.x,i.x),o=Math.min(t.y,e.y,s.y,i.y),r=Math.max(t.x,e.x,s.x,i.x),a=Math.max(t.y,e.y,s.y,i.y);return new g.BBox({left:n,right:r,top:o,bottom:a})}rect(){const t=this._rect(),{angle:e}=this;if(e){const{sx:s,sy:i}=this.position,n=new u.AffineTransform;return n.translate(s,i),n.rotate(e),n.translate(-s,-i),n.apply_rect(t)}return t}paint_rect(t){const{p0:e,p1:s,p2:i,p3:n}=this.rect();t.save(),t.strokeStyle=\"red\",t.lineWidth=1,t.beginPath();const{round:o}=Math;t.moveTo(o(e.x),o(e.y)),t.lineTo(o(s.x),o(s.y)),t.lineTo(o(i.x),o(i.y)),t.lineTo(o(n.x),o(n.y)),t.closePath(),t.stroke(),t.restore()}paint_bbox(t){const{x:e,y:s,width:i,height:n}=this.bbox();t.save(),t.strokeStyle=\"blue\",t.lineWidth=1,t.beginPath();const{round:o}=Math;t.moveTo(o(e),o(s)),t.lineTo(o(e),o(s+n)),t.lineTo(o(e+i),o(s+n)),t.lineTo(o(e+i),o(s)),t.closePath(),t.stroke(),t.restore()}async load_image(){if(null==this.provider.MathJax)return null;const t=this._process_text(this.model.text);if(null==t)return this._has_finished=!0,null;const e=t.children[0];this.svg_element=e,e.setAttribute(\"font\",this.font),e.setAttribute(\"stroke\",this.color);const s=e.outerHTML,i=new Blob([s],{type:\"image/svg+xml\"}),n=URL.createObjectURL(i);try{this.svg_image=await(0,_.load_image)(n)}finally{URL.revokeObjectURL(n)}return this.parent.request_layout(),this.svg_image}paint(t){t.save();const{sx:e,sy:s}=this.position;this.angle&&(t.translate(e,s),t.rotate(this.angle),t.translate(-e,-s));const{x:i,y:n}=this._computed_position();if(null!=this.svg_image){const{width:e,height:s}=this.get_image_dimensions();t.drawImage(this.svg_image,i,n,e,s)}else t.fillStyle=this.color,t.font=this.font,t.textAlign=\"left\",t.textBaseline=\"alphabetic\",t.fillText(this.model.text,i,n+(0,d.font_metrics)(this.font).ascent);t.restore(),this._has_finished||\"failed\"!=this.provider.status&&!this.has_image_loaded||(this._has_finished=!0,this.parent.notify_finished_after_paint())}}s.MathTextView=m,m.__name__=\"MathTextView\";class f extends p.BaseText{constructor(t){super(t)}}s.MathText=f,f.__name__=\"MathText\";class v extends m{_process_text(t){}}s.AsciiView=v,v.__name__=\"AsciiView\";class y extends f{constructor(t){super(t)}}s.Ascii=y,o=y,y.__name__=\"Ascii\",o.prototype.default_view=v;class w extends m{_process_text(t){var e;return null===(e=this.provider.MathJax)||void 0===e?void 0:e.mathml2svg(t.trim())}}s.MathMLView=w,w.__name__=\"MathMLView\";class b extends f{constructor(t){super(t)}}s.MathML=b,r=b,b.__name__=\"MathML\",r.prototype.default_view=w;class M extends m{_process_text(t){var e;return null===(e=this.provider.MathJax)||void 0===e?void 0:e.tex2svg(t,void 0,this.model.macros)}}s.TeXView=M,M.__name__=\"TeXView\";class T extends f{constructor(t){super(t)}}s.TeX=T,a=T,T.__name__=\"TeX\",a.prototype.default_view=M,a.define((({Boolean:t,Number:e,String:s,Dict:i,Tuple:n,Or:o})=>({macros:[i(o(s,n(s,e))),{}],inline:[t,!1]})))},\n function _(i,e,t,s,o){s();const a=i(19);t.load_image=async function(i,e){return new n(i,e).promise};class n{constructor(i,e={}){this._image=new Image,this._finished=!1;const{attempts:t=1,timeout:s=1}=e;this.promise=new Promise(((o,n)=>{this._image.crossOrigin=\"anonymous\";let r=0;this._image.onerror=()=>{if(++r==t){const s=`unable to load ${i} image after ${t} attempts`;if(a.logger.warn(s),null==this._image.crossOrigin)return void(null!=e.failed&&e.failed());a.logger.warn(`attempting to load ${i} without a cross origin policy`),this._image.crossOrigin=null,r=0}setTimeout((()=>this._image.src=i),s)},this._image.onload=()=>{this._finished=!0,null!=e.loaded&&e.loaded(this._image),o(this._image)},this._image.src=i}))}get finished(){return this._finished}get image(){if(this._finished)return this._image;throw new Error(\"not loaded yet\")}}t.ImageLoader=n,n.__name__=\"ImageLoader\"},\n function _(t,e,a,s,n){var r=this&&this.__createBinding||(Object.create?function(t,e,a,s){void 0===s&&(s=a),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[a]}})}:function(t,e,a,s){void 0===s&&(s=a),t[s]=e[a]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),d=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)\"default\"!==a&&Object.prototype.hasOwnProperty.call(t,a)&&r(e,t,a);return i(e,t),e};s();const o=t(15),u=t(138);class c{constructor(){this.ready=new o.Signal0(this,\"ready\"),this.status=\"not_started\"}}a.MathJaxProvider=c,c.__name__=\"MathJaxProvider\";class h extends c{get MathJax(){return null}async fetch(){this.status=\"failed\"}}a.NoProvider=h,h.__name__=\"NoProvider\";class l extends c{get MathJax(){return\"undefined\"!=typeof MathJax?MathJax:null}async fetch(){const t=document.createElement(\"script\");t.src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js\",t.onload=()=>{this.status=\"loaded\",this.ready.emit()},t.onerror=()=>{this.status=\"failed\"},this.status=\"loading\",document.head.appendChild(t)}}a.CDNProvider=l,l.__name__=\"CDNProvider\";class _ extends c{get MathJax(){return this._mathjax}async fetch(){this.status=\"loading\";try{const e=await(0,u.load_module)(Promise.resolve().then((()=>d(t(519)))));this._mathjax=e,this.status=\"loaded\",this.ready.emit()}catch(t){this.status=\"failed\"}}}a.BundleProvider=_,_.__name__=\"BundleProvider\",a.default_provider=new _},\n function _(n,r,o,t,c){t(),o.load_module=async function(n){try{return await n}catch(n){if((r=n)instanceof Error&&\"code\"in r&&\"MODULE_NOT_FOUND\"===n.code)return null;throw n}var r}},\n function _(e,t,i,n,s){var a;n();const x=e(133),_=e(120);class l extends x.BaseTextView{initialize(){super.initialize(),this._has_finished=!0}graphics(){return new _.TextBox({text:this.model.text})}}i.PlainTextView=l,l.__name__=\"PlainTextView\";class r extends x.BaseText{constructor(e){super(e)}}i.PlainText=r,a=r,r.__name__=\"PlainText\",a.prototype.default_view=l},\n function _(t,s,o,e,i){e();const r=t(1);var a;const l=t(128),_=t(141),n=t(142),p=(0,r.__importStar)(t(48)),c=t(20),h=t(120),m=t(8);class u extends l.AxisView{_paint(t,s,o){this._draw_group_separators(t,s,o)}_draw_group_separators(t,s,o){const[e]=this.ranges,[i,r]=this.computed_bounds;if(!e.tops||e.tops.length<2||!this.visuals.separator_line.doit)return;const a=this.dimension,l=(a+1)%2,_=[[],[]];let n=0;for(let t=0;ti&&pnew h.GraphicsBoxes(t.map((t=>(0,m.isString)(t)?new h.TextBox({text:t}):t))),_=t=>l(this.model.formatter.doFormat(t,this));if(1==t.levels){const t=_(i.major);a.push([t,r.major,this.model.major_label_orientation,this.visuals.major_label_text])}else if(2==t.levels){const t=_(i.major.map((t=>t[1])));a.push([t,r.major,this.model.major_label_orientation,this.visuals.major_label_text]),a.push([l(i.tops),r.tops,this.model.group_label_orientation,this.visuals.group_text])}else if(3==t.levels){const t=_(i.major.map((t=>t[2]))),s=i.mids.map((t=>t[1]));a.push([t,r.major,this.model.major_label_orientation,this.visuals.major_label_text]),a.push([l(s),r.mids,this.model.subgroup_label_orientation,this.visuals.subgroup_text]),a.push([l(i.tops),r.tops,this.model.group_label_orientation,this.visuals.group_text])}return a}get tick_coords(){const t=this.dimension,s=(t+1)%2,[o]=this.ranges,[e,i]=this.computed_bounds,r=this.model.ticker.get_ticks(e,i,o,this.loc),a={major:[[],[]],mids:[[],[]],tops:[[],[]],minor:[[],[]]};return a.major[t]=r.major,a.major[s]=r.major.map((()=>this.loc)),3==o.levels&&(a.mids[t]=r.mids,a.mids[s]=r.mids.map((()=>this.loc))),o.levels>1&&(a.tops[t]=r.tops,a.tops[s]=r.tops.map((()=>this.loc))),a}}o.CategoricalAxisView=u,u.__name__=\"CategoricalAxisView\";class d extends l.Axis{constructor(t){super(t)}}o.CategoricalAxis=d,a=d,d.__name__=\"CategoricalAxis\",a.prototype.default_view=u,a.mixins([[\"separator_\",p.Line],[\"group_\",p.Text],[\"subgroup_\",p.Text]]),a.define((({Number:t,Or:s})=>({group_label_orientation:[s(c.TickLabelOrientation,t),\"parallel\"],subgroup_label_orientation:[s(c.TickLabelOrientation,t),\"parallel\"]}))),a.override({ticker:()=>new _.CategoricalTicker,formatter:()=>new n.CategoricalTickFormatter,separator_line_color:\"lightgrey\",separator_line_width:2,group_text_font_style:\"bold\",group_text_font_size:\"11px\",group_text_color:\"grey\",subgroup_text_font_style:\"bold\",subgroup_text_font_size:\"11px\"})},\n function _(t,c,o,s,e){s();const r=t(130);class i extends r.Ticker{constructor(t){super(t)}get_ticks(t,c,o,s){var e,r;return{major:this._collect(o.factors,o,t,c),minor:[],tops:this._collect(null!==(e=o.tops)&&void 0!==e?e:[],o,t,c),mids:this._collect(null!==(r=o.mids)&&void 0!==r?r:[],o,t,c)}}_collect(t,c,o,s){const e=[];for(const r of t){const t=c.synthetic(r);t>o&&tnew _.DatetimeTicker,formatter:()=>new m.DatetimeTickFormatter})},\n function _(e,i,s,n,r){var t;n();const a=e(143),o=e(146),c=e(147);class _ extends a.ContinuousAxisView{}s.LinearAxisView=_,_.__name__=\"LinearAxisView\";class u extends a.ContinuousAxis{constructor(e){super(e)}}s.LinearAxis=u,t=u,u.__name__=\"LinearAxis\",t.prototype.default_view=_,t.override({ticker:()=>new c.BasicTicker,formatter:()=>new o.BasicTickFormatter})},\n function _(i,t,e,n,o){var r;n();const s=i(131),c=i(34);function _(i){let t=\"\";for(const e of i)t+=\"-\"==e?\"\\u2212\":e;return t}e.unicode_replace=_;class a extends s.TickFormatter{constructor(i){super(i),this.last_precision=3}get scientific_limit_low(){return 10**this.power_limit_low}get scientific_limit_high(){return 10**this.power_limit_high}_need_sci(i){if(!this.use_scientific)return!1;const{scientific_limit_high:t}=this,{scientific_limit_low:e}=this,n=i.length<2?0:Math.abs(i[1]-i[0])/1e4;for(const o of i){const i=Math.abs(o);if(!(i<=n)&&(i>=t||i<=e))return!0}return!1}_format_with_precision(i,t,e){return t?i.map((i=>_(i.toExponential(e)))):i.map((i=>_((0,c.to_fixed)(i,e))))}_auto_precision(i,t){const e=new Array(i.length),n=this.last_precision<=15;i:for(let o=this.last_precision;n?o<=15:o>=1;n?o++:o--){if(t){e[0]=i[0].toExponential(o);for(let t=1;t({precision:[n(t,e),\"auto\"],use_scientific:[i,!0],power_limit_high:[t,5],power_limit_low:[t,-3]})))},\n function _(c,e,s,i,n){i();const r=c(148);class t extends r.AdaptiveTicker{constructor(c){super(c)}}s.BasicTicker=t,t.__name__=\"BasicTicker\"},\n function _(t,i,a,s,e){var n;s();const r=t(149),_=t(9),l=t(10);class h extends r.ContinuousTicker{constructor(t){super(t)}get_min_interval(){return this.min_interval}get_max_interval(){var t;return null!==(t=this.max_interval)&&void 0!==t?t:1/0}initialize(){super.initialize();const t=(0,_.nth)(this.mantissas,-1)/this.base,i=(0,_.nth)(this.mantissas,0)*this.base;this.extended_mantissas=[t,...this.mantissas,i],this.base_factor=0===this.get_min_interval()?1:this.get_min_interval()}get_interval(t,i,a){const s=i-t,e=this.get_ideal_interval(t,i,a),n=Math.floor((0,l.log)(e/this.base_factor,this.base)),r=this.base**n*this.base_factor,h=this.extended_mantissas,m=h.map((t=>Math.abs(a-s/(t*r)))),v=h[(0,_.argmin)(m)]*r;return(0,l.clamp)(v,this.get_min_interval(),this.get_max_interval())}}a.AdaptiveTicker=h,n=h,h.__name__=\"AdaptiveTicker\",n.define((({Number:t,Array:i,Nullable:a})=>({base:[t,10],mantissas:[i(t),[1,2,5]],min_interval:[t,0],max_interval:[a(t),null]})))},\n function _(t,n,i,s,e){var o;s();const r=t(130),c=t(9);class _ extends r.Ticker{constructor(t){super(t)}get_ticks(t,n,i,s){return this.get_ticks_no_defaults(t,n,s,this.desired_num_ticks)}get_ticks_no_defaults(t,n,i,s){const e=this.get_interval(t,n,s),o=Math.floor(t/e),r=Math.ceil(n/e);let _;_=isFinite(o)&&isFinite(r)?(0,c.range)(o,r+1):[];const u=_.map((t=>t*e)).filter((i=>t<=i&&i<=n)),a=this.num_minor_ticks,f=[];if(a>0&&u.length>0){const i=e/a,s=(0,c.range)(0,a).map((t=>t*i));for(const i of s.slice(1)){const s=u[0]-i;t<=s&&s<=n&&f.push(s)}for(const i of u)for(const e of s){const s=i+e;t<=s&&s<=n&&f.push(s)}}return{major:u,minor:f}}get_ideal_interval(t,n,i){return(n-t)/i}}i.ContinuousTicker=_,o=_,_.__name__=\"ContinuousTicker\",o.define((({Int:t})=>({num_minor_ticks:[t,5],desired_num_ticks:[t,6]})))},\n function _(s,t,e,n,i){n();var r;const o=(0,s(1).__importDefault)(s(151)),a=s(131),c=s(19),u=s(152),m=s(9),h=s(8);function d(s){return(0,o.default)(s,\"%Y %m %d %H %M %S\").split(/\\s+/).map((s=>parseInt(s,10)))}function l(s,t){if((0,h.isFunction)(t))return t(s);{const e=(0,u.sprintf)(\"$1%06d\",function(s){return Math.round(s/1e3%1*1e6)}(s));return-1==(t=t.replace(/((^|[^%])(%%)*)%f/,e)).indexOf(\"%\")?t:(0,o.default)(s,t)}}const f=[\"microseconds\",\"milliseconds\",\"seconds\",\"minsec\",\"minutes\",\"hourmin\",\"hours\",\"days\",\"months\",\"years\"];class _ extends a.TickFormatter{constructor(s){super(s),this.strip_leading_zeros=!0}initialize(){super.initialize(),this._update_width_formats()}_update_width_formats(){const s=+(0,o.default)(new Date),t=function(t){const e=t.map((t=>l(s,t).length)),n=(0,m.sort_by)((0,m.zip)(e,t),(([s])=>s));return(0,m.unzip)(n)};this._width_formats={microseconds:t(this.microseconds),milliseconds:t(this.milliseconds),seconds:t(this.seconds),minsec:t(this.minsec),minutes:t(this.minutes),hourmin:t(this.hourmin),hours:t(this.hours),days:t(this.days),months:t(this.months),years:t(this.years)}}_get_resolution_str(s,t){const e=1.1*s;switch(!1){case!(e<.001):return\"microseconds\";case!(e<1):return\"milliseconds\";case!(e<60):return t>=60?\"minsec\":\"seconds\";case!(e<3600):return t>=3600?\"hourmin\":\"minutes\";case!(e<86400):return\"hours\";case!(e<2678400):return\"days\";case!(e<31536e3):return\"months\";default:return\"years\"}}doFormat(s,t){if(0==s.length)return[];const e=Math.abs(s[s.length-1]-s[0])/1e3,n=e/(s.length-1),i=this._get_resolution_str(n,e),[,[r]]=this._width_formats[i],o=[],a=f.indexOf(i),u={};for(const s of f)u[s]=0;u.seconds=5,u.minsec=4,u.minutes=4,u.hourmin=3,u.hours=3;for(const t of s){let s,e;try{e=d(t),s=l(t,r)}catch(s){c.logger.warn(`unable to format tick for timestamp value ${t}`),c.logger.warn(` - ${s}`),o.push(\"ERR\");continue}let n=!1,m=a;for(;0==e[u[f[m]]];){let r;if(m+=1,m==f.length)break;if((\"minsec\"==i||\"hourmin\"==i)&&!n){if(\"minsec\"==i&&0==e[4]&&0!=e[5]||\"hourmin\"==i&&0==e[3]&&0!=e[4]){r=this._width_formats[f[a-1]][1][0],s=l(t,r);break}n=!0}r=this._width_formats[f[m]][1][0],s=l(t,r)}if(this.strip_leading_zeros){let t=s.replace(/^0+/g,\"\");t!=s&&isNaN(parseInt(t))&&(t=`0${t}`),o.push(t)}else o.push(s)}return o}}e.DatetimeTickFormatter=_,r=_,_.__name__=\"DatetimeTickFormatter\",r.define((({String:s,Array:t})=>({microseconds:[t(s),[\"%fus\"]],milliseconds:[t(s),[\"%3Nms\",\"%S.%3Ns\"]],seconds:[t(s),[\"%Ss\"]],minsec:[t(s),[\":%M:%S\"]],minutes:[t(s),[\":%M\",\"%Mm\"]],hourmin:[t(s),[\"%H:%M\"]],hours:[t(s),[\"%Hh\",\"%H:%M\"]],days:[t(s),[\"%m/%d\",\"%a%d\"]],months:[t(s),[\"%m/%Y\",\"%b %Y\"]],years:[t(s),[\"%Y\"]]})))},\n function _(e,t,n,r,o){!function(e){\"object\"==typeof t&&t.exports?t.exports=e():\"function\"==typeof define?define(e):this.tz=e()}((function(){function e(e,t,n){var r,o=t.day[1];do{r=new Date(Date.UTC(n,t.month,Math.abs(o++)))}while(t.day[0]<7&&r.getUTCDay()!=t.day[0]);return(r={clock:t.clock,sort:r.getTime(),rule:t,save:6e4*t.save,offset:e.offset})[r.clock]=r.sort+6e4*t.time,r.posix?r.wallclock=r[r.clock]+(e.offset+t.saved):r.posix=r[r.clock]-(e.offset+t.saved),r}function t(t,n,r){var o,a,u,i,l,s,c,f=t[t.zone],h=[],T=new Date(r).getUTCFullYear(),g=1;for(o=1,a=f.length;o=T-g;--c)for(o=0,a=s.length;o=h[o][n]&&h[o][h[o].clock]>u[h[o].clock]&&(i=h[o])}return i&&((l=/^(.*)\\/(.*)$/.exec(u.format))?i.abbrev=l[i.save?2:1]:i.abbrev=u.format.replace(/%s/,i.rule.letter)),i||u}function n(e,n){return\"UTC\"==e.zone?n:(e.entry=t(e,\"posix\",n),n+e.entry.offset+e.entry.save)}function r(e,n){return\"UTC\"==e.zone?n:(e.entry=r=t(e,\"wallclock\",n),0<(o=n-r.wallclock)&&o9)t+=s*l[c-10];else{if(a=new Date(n(e,t)),c<7)for(;s;)a.setUTCDate(a.getUTCDate()+i),a.getUTCDay()==c&&(s-=i);else 7==c?a.setUTCFullYear(a.getUTCFullYear()+s):8==c?a.setUTCMonth(a.getUTCMonth()+s):a.setUTCDate(a.getUTCDate()+s);null==(t=r(e,a.getTime()))&&(t=r(e,a.getTime()+864e5*i)-864e5*i)}return t}var a={clock:function(){return+new Date},zone:\"UTC\",entry:{abbrev:\"UTC\",offset:0,save:0},UTC:1,z:function(e,t,n,r){var o,a,u=this.entry.offset+this.entry.save,i=Math.abs(u/1e3),l=[],s=3600;for(o=0;o<3;o++)l.push((\"0\"+Math.floor(i/s)).slice(-2)),i%=s,s/=60;return\"^\"!=n||u?(\"^\"==n&&(r=3),3==r?(a=(a=l.join(\":\")).replace(/:00$/,\"\"),\"^\"!=n&&(a=a.replace(/:00$/,\"\"))):r?(a=l.slice(0,r+1).join(\":\"),\"^\"==n&&(a=a.replace(/:00$/,\"\"))):a=l.slice(0,2).join(\"\"),a=(a=(u<0?\"-\":\"+\")+a).replace(/([-+])(0)/,{_:\" $1\",\"-\":\"$1\"}[n]||\"$1$2\")):\"Z\"},\"%\":function(e){return\"%\"},n:function(e){return\"\\n\"},t:function(e){return\"\\t\"},U:function(e){return s(e,0)},W:function(e){return s(e,1)},V:function(e){return c(e)[0]},G:function(e){return c(e)[1]},g:function(e){return c(e)[1]%100},j:function(e){return Math.floor((e.getTime()-Date.UTC(e.getUTCFullYear(),0))/864e5)+1},s:function(e){return Math.floor(e.getTime()/1e3)},C:function(e){return Math.floor(e.getUTCFullYear()/100)},N:function(e){return e.getTime()%1e3*1e6},m:function(e){return e.getUTCMonth()+1},Y:function(e){return e.getUTCFullYear()},y:function(e){return e.getUTCFullYear()%100},H:function(e){return e.getUTCHours()},M:function(e){return e.getUTCMinutes()},S:function(e){return e.getUTCSeconds()},e:function(e){return e.getUTCDate()},d:function(e){return e.getUTCDate()},u:function(e){return e.getUTCDay()||7},w:function(e){return e.getUTCDay()},l:function(e){return e.getUTCHours()%12||12},I:function(e){return e.getUTCHours()%12||12},k:function(e){return e.getUTCHours()},Z:function(e){return this.entry.abbrev},a:function(e){return this[this.locale].day.abbrev[e.getUTCDay()]},A:function(e){return this[this.locale].day.full[e.getUTCDay()]},h:function(e){return this[this.locale].month.abbrev[e.getUTCMonth()]},b:function(e){return this[this.locale].month.abbrev[e.getUTCMonth()]},B:function(e){return this[this.locale].month.full[e.getUTCMonth()]},P:function(e){return this[this.locale].meridiem[Math.floor(e.getUTCHours()/12)].toLowerCase()},p:function(e){return this[this.locale].meridiem[Math.floor(e.getUTCHours()/12)]},R:function(e,t){return this.convert([t,\"%H:%M\"])},T:function(e,t){return this.convert([t,\"%H:%M:%S\"])},D:function(e,t){return this.convert([t,\"%m/%d/%y\"])},F:function(e,t){return this.convert([t,\"%Y-%m-%d\"])},x:function(e,t){return this.convert([t,this[this.locale].date])},r:function(e,t){return this.convert([t,this[this.locale].time12||\"%I:%M:%S\"])},X:function(e,t){return this.convert([t,this[this.locale].time24])},c:function(e,t){return this.convert([t,this[this.locale].dateTime])},convert:function(e){if(!e.length)return\"1.0.23\";var t,a,u,l,s,c=Object.create(this),f=[];for(t=0;t=o?Math.floor((n-o)/7)+1:0}function c(e){var t,n,r;return n=e.getUTCFullYear(),t=new Date(Date.UTC(n,0)).getUTCDay(),(r=s(e,1)+(t>1&&t<=4?1:0))?53!=r||4==t||3==t&&29==new Date(n,1,29).getDate()?[r,e.getUTCFullYear()]:[1,e.getUTCFullYear()+1]:(n=e.getUTCFullYear()-1,[r=4==(t=new Date(Date.UTC(n,0)).getUTCDay())||3==t&&29==new Date(n,1,29).getDate()?53:52,e.getUTCFullYear()-1])}return u=u.toLowerCase().split(\"|\"),\"delmHMSUWVgCIky\".replace(/./g,(function(e){a[e].pad=2})),a.N.pad=9,a.j.pad=3,a.k.style=\"_\",a.l.style=\"_\",a.e.style=\"_\",function(){return a.convert(arguments)}}))},\n function _(r,t,n,e,i){e();const u=r(1),a=(0,u.__importStar)(r(153)),f=r(154),o=(0,u.__importDefault)(r(151)),l=r(21),s=r(8);function c(r,...t){return(0,f.sprintf)(r,...t)}function m(r,t,n){if((0,s.isNumber)(r)){return c((()=>{switch(!1){case Math.floor(r)!=r:return\"%d\";case!(Math.abs(r)>.1&&Math.abs(r)<1e3):return\"%0.3f\";default:return\"%0.3e\"}})(),r)}return`${r}`}function _(r,t,e){if(null==t)return m;if(null!=e&&r in e){const t=e[r];if((0,s.isString)(t)){if(t in n.DEFAULT_FORMATTERS)return n.DEFAULT_FORMATTERS[t];throw new Error(`Unknown tooltip field formatter type '${t}'`)}return function(r,n,e){return t.format(r,n,e)}}return n.DEFAULT_FORMATTERS.numeral}function p(r,t,n){const e=t.get_column(r);if(null==e)return null;if((0,s.isNumber)(n))return e[n];const i=e[n.index];if((0,s.isTypedArray)(i)||(0,s.isArray)(i)){if((0,s.isArray)(i[0])){return i[n.dim2][n.dim1]}return i[n.flat_index]}return i}function d(r,t,n,e){if(\"$\"==r[0]){return function(r,t){if(r in t)return t[r];throw new Error(`Unknown special variable '$${r}'`)}(r.substring(1),e)}return p(r.substring(1).replace(/[{}]/g,\"\"),t,n)}n.FormatterType=(0,l.Enum)(\"numeral\",\"printf\",\"datetime\"),n.DEFAULT_FORMATTERS={numeral:(r,t,n)=>a.format(r,t),datetime:(r,t,n)=>(0,o.default)(r,t),printf:(r,t,n)=>c(t,r)},n.sprintf=c,n.basic_formatter=m,n.get_formatter=_,n._get_column_value=p,n.get_value=d,n.replace_placeholders=function(r,t,n,e,i={},u){let a,f;if((0,s.isString)(r)?(a=r,f=!1):(a=r.html,f=!0),a=a.replace(/@\\$name/g,(r=>`@{${i.name}}`)),a=a.replace(/((?:\\$\\w+)|(?:@\\w+)|(?:@{(?:[^{}]+)}))(?:{([^{}]+)})?/g,((r,a,o)=>{const l=d(a,t,n,i);if(null==l)return u?u(\"???\"):\"???\";if(\"safe\"==o)return f=!0,`${l}`;const s=`${_(a,o,e)(l,o,i)}`;return u?u(s):s})),f){return[...(new DOMParser).parseFromString(a,\"text/html\").body.childNodes]}return a}},\n function _(e,n,t,r,i){\n /*!\n * numbro.js\n * version : 1.6.2\n * author : Företagsplatsen AB\n * license : MIT\n * http://www.foretagsplatsen.se\n */\n var a,o={},l=o,u=\"en-US\",c=null,s=\"0,0\";void 0!==n&&n.exports;function f(e){this._value=e}function d(e){var n,t=\"\";for(n=0;n-1?function(e,n){var t,r,i,a;return t=(a=e.toString()).split(\"e\")[0],i=a.split(\"e\")[1],a=t.split(\".\")[0]+(r=t.split(\".\")[1]||\"\")+d(i-r.length),n>0&&(a+=\".\"+d(n)),a}(e,n):(t(e*o)/o).toFixed(n),r&&(i=new RegExp(\"0{1,\"+r+\"}$\"),a=a.replace(i,\"\")),a}function p(e,n,t){var r;return r=n.indexOf(\"$\")>-1?function(e,n,t){var r,i,a=n,l=a.indexOf(\"$\"),c=a.indexOf(\"(\"),s=a.indexOf(\"+\"),f=a.indexOf(\"-\"),d=\"\",h=\"\";-1===a.indexOf(\"$\")?\"infix\"===o[u].currency.position?(h=o[u].currency.symbol,o[u].currency.spaceSeparated&&(h=\" \"+h+\" \")):o[u].currency.spaceSeparated&&(d=\" \"):a.indexOf(\" $\")>-1?(d=\" \",a=a.replace(\" $\",\"\")):a.indexOf(\"$ \")>-1?(d=\" \",a=a.replace(\"$ \",\"\")):a=a.replace(\"$\",\"\");if(i=m(e,a,t,h),-1===n.indexOf(\"$\"))switch(o[u].currency.position){case\"postfix\":i.indexOf(\")\")>-1?((i=i.split(\"\")).splice(-1,0,d+o[u].currency.symbol),i=i.join(\"\")):i=i+d+o[u].currency.symbol;break;case\"infix\":break;case\"prefix\":i.indexOf(\"(\")>-1||i.indexOf(\"-\")>-1?(i=i.split(\"\"),r=Math.max(c,f)+1,i.splice(r,0,o[u].currency.symbol+d),i=i.join(\"\")):i=o[u].currency.symbol+d+i;break;default:throw Error('Currency position should be among [\"prefix\", \"infix\", \"postfix\"]')}else l<=1?i.indexOf(\"(\")>-1||i.indexOf(\"+\")>-1||i.indexOf(\"-\")>-1?(r=1,(l-1?((i=i.split(\"\")).splice(-1,0,d+o[u].currency.symbol),i=i.join(\"\")):i=i+d+o[u].currency.symbol;return i}(e,n,t):n.indexOf(\"%\")>-1?function(e,n,t){var r,i=\"\";e*=100,n.indexOf(\" %\")>-1?(i=\" \",n=n.replace(\" %\",\"\")):n=n.replace(\"%\",\"\");(r=m(e,n,t)).indexOf(\")\")>-1?((r=r.split(\"\")).splice(-1,0,i+\"%\"),r=r.join(\"\")):r=r+i+\"%\";return r}(e,n,t):n.indexOf(\":\")>-1?function(e){var n=Math.floor(e/60/60),t=Math.floor((e-60*n*60)/60),r=Math.round(e-60*n*60-60*t);return n+\":\"+(t<10?\"0\"+t:t)+\":\"+(r<10?\"0\"+r:r)}(e):m(e,n,t),r}function m(e,n,t,r){var i,a,l,s,f,d,p,m,x,g,O,b,w,y,M,v,$,B=!1,E=!1,F=!1,k=\"\",U=!1,N=!1,S=!1,j=!1,D=!1,C=\"\",L=\"\",T=Math.abs(e),K=[\"B\",\"KiB\",\"MiB\",\"GiB\",\"TiB\",\"PiB\",\"EiB\",\"ZiB\",\"YiB\"],G=[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"],I=\"\",P=!1,R=!1;if(0===e&&null!==c)return c;if(!isFinite(e))return\"\"+e;if(0===n.indexOf(\"{\")){var W=n.indexOf(\"}\");if(-1===W)throw Error('Format should also contain a \"}\"');b=n.slice(1,W),n=n.slice(W+1)}else b=\"\";if(n.indexOf(\"}\")===n.length-1){var Y=n.indexOf(\"{\");if(-1===Y)throw Error('Format should also contain a \"{\"');w=n.slice(Y+1,-1),n=n.slice(0,Y+1)}else w=\"\";if(v=null===($=-1===n.indexOf(\".\")?n.match(/([0-9]+).*/):n.match(/([0-9]+)\\..*/))?-1:$[1].length,-1!==n.indexOf(\"-\")&&(P=!0),n.indexOf(\"(\")>-1?(B=!0,n=n.slice(1,-1)):n.indexOf(\"+\")>-1&&(E=!0,n=n.replace(/\\+/g,\"\")),n.indexOf(\"a\")>-1){if(g=n.split(\".\")[0].match(/[0-9]+/g)||[\"0\"],g=parseInt(g[0],10),U=n.indexOf(\"aK\")>=0,N=n.indexOf(\"aM\")>=0,S=n.indexOf(\"aB\")>=0,j=n.indexOf(\"aT\")>=0,D=U||N||S||j,n.indexOf(\" a\")>-1?(k=\" \",n=n.replace(\" a\",\"\")):n=n.replace(\"a\",\"\"),p=0===(p=(f=Math.floor(Math.log(T)/Math.LN10)+1)%3)?3:p,g&&0!==T&&(d=Math.floor(Math.log(T)/Math.LN10)+1-g,m=3*~~((Math.min(g,f)-p)/3),T/=Math.pow(10,m),-1===n.indexOf(\".\")&&g>3))for(n+=\"[.]\",M=(M=0===d?0:3*~~(d/3)-d)<0?M+3:M,i=0;i=Math.pow(10,12)&&!D||j?(k+=o[u].abbreviations.trillion,e/=Math.pow(10,12)):T=Math.pow(10,9)&&!D||S?(k+=o[u].abbreviations.billion,e/=Math.pow(10,9)):T=Math.pow(10,6)&&!D||N?(k+=o[u].abbreviations.million,e/=Math.pow(10,6)):(T=Math.pow(10,3)&&!D||U)&&(k+=o[u].abbreviations.thousand,e/=Math.pow(10,3)))}if(n.indexOf(\"b\")>-1)for(n.indexOf(\" b\")>-1?(C=\" \",n=n.replace(\" b\",\"\")):n=n.replace(\"b\",\"\"),s=0;s<=K.length;s++)if(a=Math.pow(1024,s),l=Math.pow(1024,s+1),e>=a&&e0&&(e/=a);break}if(n.indexOf(\"d\")>-1)for(n.indexOf(\" d\")>-1?(C=\" \",n=n.replace(\" d\",\"\")):n=n.replace(\"d\",\"\"),s=0;s<=G.length;s++)if(a=Math.pow(1e3,s),l=Math.pow(1e3,s+1),e>=a&&e0&&(e/=a);break}if(n.indexOf(\"o\")>-1&&(n.indexOf(\" o\")>-1?(L=\" \",n=n.replace(\" o\",\"\")):n=n.replace(\"o\",\"\"),o[u].ordinal&&(L+=o[u].ordinal(e))),n.indexOf(\"[.]\")>-1&&(F=!0,n=n.replace(\"[.]\",\".\")),x=e.toString().split(\".\")[0],O=n.split(\".\")[1],y=n.indexOf(\",\"),O){if(x=(I=-1!==O.indexOf(\"*\")?h(e,e.toString().split(\".\")[1].length,t):O.indexOf(\"[\")>-1?h(e,(O=(O=O.replace(\"]\",\"\")).split(\"[\"))[0].length+O[1].length,t,O[1].length):h(e,O.length,t)).split(\".\")[0],I.split(\".\")[1].length)I=(r?k+r:o[u].delimiters.decimal)+I.split(\".\")[1];else I=\"\";F&&0===Number(I.slice(1))&&(I=\"\")}else x=h(e,null,t);return x.indexOf(\"-\")>-1&&(x=x.slice(1),R=!0),x.length-1&&(x=x.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g,\"$1\"+o[u].delimiters.thousands)),0===n.indexOf(\".\")&&(x=\"\"),b+(n.indexOf(\"(\")2)&&(o.length<2?!!o[0].match(/^\\d+.*\\d$/)&&!o[0].match(u):1===o[0].length?!!o[0].match(/^\\d+$/)&&!o[0].match(u)&&!!o[1].match(/^\\d+$/):!!o[0].match(/^\\d+.*\\d$/)&&!o[0].match(u)&&!!o[1].match(/^\\d+$/)))))},n.exports={format:function(e,n,t,r){return null!=t&&t!==a.culture()&&a.setCulture(t),p(Number(e),null!=n?n:s,null==r?Math.round:r)}}},\n function _(e,n,t,r,i){!function(){\"use strict\";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\\x25]+/,modulo:/^\\x25{2}/,placeholder:/^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\\d]*)/i,key_access:/^\\.([a-z_][a-z_\\d]*)/i,index_access:/^\\[(\\d+)\\]/,sign:/^[+-]/};function n(e){return i(a(e),arguments)}function r(e,t){return n.apply(null,[e].concat(t||[]))}function i(t,r){var i,s,a,o,p,c,l,u,f,d=1,g=t.length,y=\"\";for(s=0;s=0),o.type){case\"b\":i=parseInt(i,10).toString(2);break;case\"c\":i=String.fromCharCode(parseInt(i,10));break;case\"d\":case\"i\":i=parseInt(i,10);break;case\"j\":i=JSON.stringify(i,null,o.width?parseInt(o.width):0);break;case\"e\":i=o.precision?parseFloat(i).toExponential(o.precision):parseFloat(i).toExponential();break;case\"f\":i=o.precision?parseFloat(i).toFixed(o.precision):parseFloat(i);break;case\"g\":i=o.precision?String(Number(i.toPrecision(o.precision))):parseFloat(i);break;case\"o\":i=(parseInt(i,10)>>>0).toString(8);break;case\"s\":i=String(i),i=o.precision?i.substring(0,o.precision):i;break;case\"t\":i=String(!!i),i=o.precision?i.substring(0,o.precision):i;break;case\"T\":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=o.precision?i.substring(0,o.precision):i;break;case\"u\":i=parseInt(i,10)>>>0;break;case\"v\":i=i.valueOf(),i=o.precision?i.substring(0,o.precision):i;break;case\"x\":i=(parseInt(i,10)>>>0).toString(16);break;case\"X\":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}e.json.test(o.type)?y+=i:(!e.number.test(o.type)||u&&!o.sign?f=\"\":(f=u?\"+\":\"-\",i=i.toString().replace(e.sign,\"\")),c=o.pad_char?\"0\"===o.pad_char?\"0\":o.pad_char.charAt(1):\" \",l=o.width-(f+i).length,p=o.width&&l>0?c.repeat(l):\"\",y+=o.align?f+i+p:\"0\"===c?f+p+i:p+f+i)}return y}var s=Object.create(null);function a(n){if(s[n])return s[n];for(var t,r=n,i=[],a=0;r;){if(null!==(t=e.text.exec(r)))i.push(t[0]);else if(null!==(t=e.modulo.exec(r)))i.push(\"%\");else{if(null===(t=e.placeholder.exec(r)))throw new SyntaxError(\"[sprintf] unexpected placeholder\");if(t[2]){a|=1;var o=[],p=t[2],c=[];if(null===(c=e.key.exec(p)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");for(o.push(c[1]);\"\"!==(p=p.substring(c[0].length));)if(null!==(c=e.key_access.exec(p)))o.push(c[1]);else{if(null===(c=e.index_access.exec(p)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");o.push(c[1])}t[2]=o}else a|=2;if(3===a)throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");i.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return s[n]=i}void 0!==t&&(t.sprintf=n,t.vsprintf=r),\"undefined\"!=typeof window&&(window.sprintf=n,window.vsprintf=r,\"function\"==typeof define&&define.amd&&define((function(){return{sprintf:n,vsprintf:r}})))}()},\n function _(e,n,i,a,s){var r;a();const t=e(9),c=e(148),m=e(156),_=e(157),k=e(160),o=e(161),T=e(159);class w extends m.CompositeTicker{constructor(e){super(e)}}i.DatetimeTicker=w,r=w,w.__name__=\"DatetimeTicker\",r.override({num_minor_ticks:0,tickers:()=>[new c.AdaptiveTicker({mantissas:[1,2,5],base:10,min_interval:0,max_interval:500*T.ONE_MILLI,num_minor_ticks:0}),new c.AdaptiveTicker({mantissas:[1,2,5,10,15,20,30],base:60,min_interval:T.ONE_SECOND,max_interval:30*T.ONE_MINUTE,num_minor_ticks:0}),new c.AdaptiveTicker({mantissas:[1,2,4,6,8,12],base:24,min_interval:T.ONE_HOUR,max_interval:12*T.ONE_HOUR,num_minor_ticks:0}),new _.DaysTicker({days:(0,t.range)(1,32)}),new _.DaysTicker({days:(0,t.range)(1,31,3)}),new _.DaysTicker({days:[1,8,15,22]}),new _.DaysTicker({days:[1,15]}),new k.MonthsTicker({months:(0,t.range)(0,12,1)}),new k.MonthsTicker({months:(0,t.range)(0,12,2)}),new k.MonthsTicker({months:(0,t.range)(0,12,4)}),new k.MonthsTicker({months:(0,t.range)(0,12,6)}),new o.YearsTicker({})]})},\n function _(t,e,i,r,s){var n;r();const _=t(149),a=t(9);class l extends _.ContinuousTicker{constructor(t){super(t)}get min_intervals(){return this.tickers.map((t=>t.get_min_interval()))}get max_intervals(){return this.tickers.map((t=>t.get_max_interval()))}get_min_interval(){return this.min_intervals[0]}get_max_interval(){return this.max_intervals[0]}get_best_ticker(t,e,i){const r=e-t,s=this.get_ideal_interval(t,e,i),n=[(0,a.sorted_index)(this.min_intervals,s)-1,(0,a.sorted_index)(this.max_intervals,s)],_=[this.min_intervals[n[0]],this.max_intervals[n[1]]].map((t=>Math.abs(i-r/t)));let l;if((0,a.is_empty)(_.filter((t=>!isNaN(t)))))l=this.tickers[0];else{const t=n[(0,a.argmin)(_)];l=this.tickers[t]}return l}get_interval(t,e,i){return this.get_best_ticker(t,e,i).get_interval(t,e,i)}get_ticks_no_defaults(t,e,i,r){return this.get_best_ticker(t,e,r).get_ticks_no_defaults(t,e,i,r)}}i.CompositeTicker=l,n=l,l.__name__=\"CompositeTicker\",n.define((({Array:t,Ref:e})=>({tickers:[t(e(_.ContinuousTicker)),[]]})))},\n function _(t,e,n,s,o){var a;s();const i=t(158),r=t(159),c=t(9);class _ extends i.SingleIntervalTicker{constructor(t){super(t)}initialize(){super.initialize();const t=this.days;t.length>1?this.interval=(t[1]-t[0])*r.ONE_DAY:this.interval=31*r.ONE_DAY}get_ticks_no_defaults(t,e,n,s){const o=function(t,e){const n=(0,r.last_month_no_later_than)(new Date(t)),s=(0,r.last_month_no_later_than)(new Date(e));s.setUTCMonth(s.getUTCMonth()+1);const o=[],a=n;for(;o.push((0,r.copy_date)(a)),a.setUTCMonth(a.getUTCMonth()+1),!(a>s););return o}(t,e),a=this.days,i=this.interval,_=(0,c.concat)(o.map((t=>((t,e)=>{const n=t.getUTCMonth(),s=[];for(const o of a){const a=(0,r.copy_date)(t);a.setUTCDate(o),new Date(a.getTime()+e/2).getUTCMonth()==n&&s.push(a)}return s})(t,i))));return{major:_.map((t=>t.getTime())).filter((n=>t<=n&&n<=e)),minor:[]}}}n.DaysTicker=_,a=_,_.__name__=\"DaysTicker\",a.define((({Int:t,Array:e})=>({days:[e(t),[]]}))),a.override({num_minor_ticks:0})},\n function _(e,n,t,r,i){var a;r();const l=e(149);class s extends l.ContinuousTicker{constructor(e){super(e)}get_interval(e,n,t){return this.interval}get_min_interval(){return this.interval}get_max_interval(){return this.interval}}t.SingleIntervalTicker=s,a=s,s.__name__=\"SingleIntervalTicker\",a.define((({Number:e})=>({interval:[e]})))},\n function _(t,n,e,_,E){function N(t){return new Date(t.getTime())}function O(t){const n=N(t);return n.setUTCDate(1),n.setUTCHours(0),n.setUTCMinutes(0),n.setUTCSeconds(0),n.setUTCMilliseconds(0),n}_(),e.ONE_MILLI=1,e.ONE_SECOND=1e3,e.ONE_MINUTE=60*e.ONE_SECOND,e.ONE_HOUR=60*e.ONE_MINUTE,e.ONE_DAY=24*e.ONE_HOUR,e.ONE_MONTH=30*e.ONE_DAY,e.ONE_YEAR=365*e.ONE_DAY,e.copy_date=N,e.last_month_no_later_than=O,e.last_year_no_later_than=function(t){const n=O(t);return n.setUTCMonth(0),n}},\n function _(t,e,n,a,r){var s;a();const i=t(158),o=t(159),l=t(9);class _ extends i.SingleIntervalTicker{constructor(t){super(t)}initialize(){super.initialize();const t=this.months;t.length>1?this.interval=(t[1]-t[0])*o.ONE_MONTH:this.interval=12*o.ONE_MONTH}get_ticks_no_defaults(t,e,n,a){const r=function(t,e){const n=(0,o.last_year_no_later_than)(new Date(t)),a=(0,o.last_year_no_later_than)(new Date(e));a.setUTCFullYear(a.getUTCFullYear()+1);const r=[],s=n;for(;r.push((0,o.copy_date)(s)),s.setUTCFullYear(s.getUTCFullYear()+1),!(s>a););return r}(t,e),s=this.months;return{major:(0,l.concat)(r.map((t=>s.map((e=>{const n=(0,o.copy_date)(t);return n.setUTCMonth(e),n}))))).map((t=>t.getTime())).filter((n=>t<=n&&n<=e)),minor:[]}}}n.MonthsTicker=_,s=_,_.__name__=\"MonthsTicker\",s.define((({Int:t,Array:e})=>({months:[e(t),[]]})))},\n function _(e,t,a,i,r){i();const n=e(147),_=e(158),s=e(159);class c extends _.SingleIntervalTicker{constructor(e){super(e)}initialize(){super.initialize(),this.interval=s.ONE_YEAR,this.basic_ticker=new n.BasicTicker({num_minor_ticks:0})}get_ticks_no_defaults(e,t,a,i){const r=(0,s.last_year_no_later_than)(new Date(e)).getUTCFullYear(),n=(0,s.last_year_no_later_than)(new Date(t)).getUTCFullYear();return{major:this.basic_ticker.get_ticks_no_defaults(r,n,a,i).major.map((e=>Date.UTC(e,0,1))).filter((a=>e<=a&&a<=t)),minor:[]}}}a.YearsTicker=c,c.__name__=\"YearsTicker\"},\n function _(e,o,i,s,t){var n;s();const r=e(143),_=e(163),c=e(164);class a extends r.ContinuousAxisView{}i.LogAxisView=a,a.__name__=\"LogAxisView\";class u extends r.ContinuousAxis{constructor(e){super(e)}}i.LogAxis=u,n=u,u.__name__=\"LogAxis\",n.prototype.default_view=a,n.override({ticker:()=>new c.LogTicker,formatter:()=>new _.LogTickFormatter})},\n function _(e,t,n,o,r){var i;o();const a=e(131),s=e(146),c=e(164),l=e(120),{abs:u,log:x,round:_}=Math;class p extends a.TickFormatter{constructor(e){super(e)}initialize(){super.initialize(),this.basic_formatter=new s.BasicTickFormatter}format_graphics(e,t){var n,o;if(0==e.length)return[];const r=null!==(o=null===(n=this.ticker)||void 0===n?void 0:n.base)&&void 0!==o?o:10,i=this._exponents(e,r);return null==i?this.basic_formatter.format_graphics(e,t):i.map((e=>{if(u(e)u(e)({ticker:[n(t(c.LogTicker)),null],min_exponent:[e,0]})))},\n function _(t,o,e,s,n){var r;s();const i=t(148),a=t(9);class c extends i.AdaptiveTicker{constructor(t){super(t)}get_ticks_no_defaults(t,o,e,s){const n=this.num_minor_ticks,r=[],i=this.base,c=Math.log(t)/Math.log(i),f=Math.log(o)/Math.log(i),l=f-c;let h;if(isFinite(l))if(l<2){const e=this.get_interval(t,o,s),i=Math.floor(t/e),c=Math.ceil(o/e);if(h=(0,a.range)(i,c+1).filter((t=>0!=t)).map((t=>t*e)).filter((e=>t<=e&&e<=o)),n>0&&h.length>0){const t=e/n,o=(0,a.range)(0,n).map((o=>o*t));for(const t of o.slice(1))r.push(h[0]-t);for(const t of h)for(const e of o)r.push(t+e)}}else{const t=Math.ceil(.999999*c),o=Math.floor(1.000001*f),e=Math.ceil((o-t)/9);if(h=(0,a.range)(t-1,o+1,e).map((t=>i**t)),n>0&&h.length>0){const t=i**e/n,o=(0,a.range)(1,n+1).map((o=>o*t));for(const t of o)r.push(h[0]/t);r.push(h[0]);for(const t of h)for(const e of o)r.push(t*e)}}else h=[];return{major:h.filter((e=>t<=e&&e<=o)),minor:r.filter((e=>t<=e&&e<=o))}}}e.LogTicker=c,r=c,c.__name__=\"LogTicker\",r.override({mantissas:[1,5]})},\n function _(e,r,t,i,a){var o;i();const s=e(128),c=e(145),n=e(166),_=e(167);class x extends s.AxisView{}t.MercatorAxisView=x,x.__name__=\"MercatorAxisView\";class d extends c.LinearAxis{constructor(e){super(e)}}t.MercatorAxis=d,o=d,d.__name__=\"MercatorAxis\",o.prototype.default_view=x,o.override({ticker:()=>new _.MercatorTicker({dimension:\"lat\"}),formatter:()=>new n.MercatorTickFormatter({dimension:\"lat\"})})},\n function _(r,t,e,o,n){var i;o();const c=r(146),s=r(20),a=r(78);class l extends c.BasicTickFormatter{constructor(r){super(r)}doFormat(r,t){if(null==this.dimension)throw new Error(\"MercatorTickFormatter.dimension not configured\");if(0==r.length)return[];const e=r.length,o=new Array(e);if(\"lon\"==this.dimension)for(let n=0;n({dimension:[r(s.LatLon),null]})))},\n function _(t,o,n,s,r){var e;s();const i=t(147),c=t(20),_=t(78);class a extends i.BasicTicker{constructor(t){super(t)}get_ticks_no_defaults(t,o,n,s){if(null==this.dimension)throw new Error(`${this}.dimension wasn't configured`);return[t,o]=(0,_.clip_mercator)(t,o,this.dimension),\"lon\"==this.dimension?this._get_ticks_lon(t,o,n,s):this._get_ticks_lat(t,o,n,s)}_get_ticks_lon(t,o,n,s){const[r]=_.wgs84_mercator.invert(t,n),[e,i]=_.wgs84_mercator.invert(o,n),c=super.get_ticks_no_defaults(r,e,n,s),a=[];for(const t of c.major)if((0,_.in_bounds)(t,\"lon\")){const[o]=_.wgs84_mercator.compute(t,i);a.push(o)}const m=[];for(const t of c.minor)if((0,_.in_bounds)(t,\"lon\")){const[o]=_.wgs84_mercator.compute(t,i);m.push(o)}return{major:a,minor:m}}_get_ticks_lat(t,o,n,s){const[,r]=_.wgs84_mercator.invert(n,t),[e,i]=_.wgs84_mercator.invert(n,o),c=super.get_ticks_no_defaults(r,i,n,s),a=[];for(const t of c.major)if((0,_.in_bounds)(t,\"lat\")){const[,o]=_.wgs84_mercator.compute(e,t);a.push(o)}const m=[];for(const t of c.minor)if((0,_.in_bounds)(t,\"lat\")){const[,o]=_.wgs84_mercator.compute(e,t);m.push(o)}return{major:a,minor:m}}}n.MercatorTicker=a,e=a,a.__name__=\"MercatorTicker\",e.define((({Nullable:t})=>({dimension:[t(c.LatLon),null]})))},\n function _(e,i,r,c,k){c(),k(\"AdaptiveTicker\",e(148).AdaptiveTicker),k(\"BasicTicker\",e(147).BasicTicker),k(\"CategoricalTicker\",e(141).CategoricalTicker),k(\"CompositeTicker\",e(156).CompositeTicker),k(\"ContinuousTicker\",e(149).ContinuousTicker),k(\"DatetimeTicker\",e(155).DatetimeTicker),k(\"DaysTicker\",e(157).DaysTicker),k(\"FixedTicker\",e(169).FixedTicker),k(\"LogTicker\",e(164).LogTicker),k(\"MercatorTicker\",e(167).MercatorTicker),k(\"MonthsTicker\",e(160).MonthsTicker),k(\"SingleIntervalTicker\",e(158).SingleIntervalTicker),k(\"Ticker\",e(130).Ticker),k(\"YearsTicker\",e(161).YearsTicker),k(\"BinnedTicker\",e(170).BinnedTicker)},\n function _(r,t,e,i,n){var s;i();const _=r(149);class c extends _.ContinuousTicker{constructor(r){super(r)}get_ticks_no_defaults(r,t,e,i){return{major:this.ticks,minor:this.minor_ticks}}get_interval(r,t,e){return 0}get_min_interval(){return 0}get_max_interval(){return 0}}e.FixedTicker=c,s=c,c.__name__=\"FixedTicker\",s.define((({Number:r,Array:t})=>({ticks:[t(r),[]],minor_ticks:[t(r),[]]})))},\n function _(e,n,t,r,i){var o;r();const a=e(130),s=e(171),c=e(12);class m extends a.Ticker{constructor(e){super(e)}get_ticks(e,n,t,r){const{binning:i}=this.mapper.metrics,o=Math.max(0,(0,c.left_edge_index)(e,i)),a=Math.min((0,c.left_edge_index)(n,i)+1,i.length-1),s=[];for(let e=o;e<=a;e++)s.push(i[e]);const{num_major_ticks:m}=this,_=[],h=\"auto\"==m?s.length:m,l=Math.max(1,Math.floor(s.length/h));for(let e=0;e({mapper:[n(s.ScanningColorMapper)],num_major_ticks:[t(e,r),8]})))},\n function _(n,e,i,r,o){r();const t=n(172),a=n(12);class c extends t.ContinuousColorMapper{constructor(n){super(n)}cmap(n,e,i,r,o){if(no.binning[o.binning.length-1])return r;return e[(0,a.left_edge_index)(n,o.binning)]}}i.ScanningColorMapper=c,c.__name__=\"ScanningColorMapper\"},\n function _(t,e,o,n,s){var l;n();const c=t(173),i=t(175),a=t(9),h=t(8);class r extends c.ColorMapper{constructor(t){super(t),this._scan_data=null}connect_signals(){super.connect_signals();const t=()=>{for(const[t]of this.domain)this.connect(t.view.change,(()=>this.update_data())),this.connect(t.data_source.selected.change,(()=>this.update_data()))};this.connect(this.properties.domain.change,(()=>t())),t()}update_data(){const{domain:t,palette:e}=this,o=[...this._collect(t)];this._scan_data=this.scan(o,e.length),this.metrics_change.emit(),this.change.emit()}get metrics(){return null==this._scan_data&&this.update_data(),this._scan_data}*_collect(t){for(const[e,o]of t)for(const t of(0,h.isArray)(o)?o:[o]){let o=e.data_source.get_column(t);o=e.view.indices.select(o);const n=e.view.masked,s=e.data_source.selected.indices;let l;if(null!=n&&s.length>0?l=(0,a.intersection)([...n],s):null!=n?l=[...n]:s.length>0&&(l=s),null!=l&&(o=(0,a.map)(l,(t=>o[t]))),o.length>0&&!(0,h.isNumber)(o[0]))for(const t of o)yield*t;else yield*o}}_v_compute(t,e,o,n){const{nan_color:s}=n;let{low_color:l,high_color:c}=n;null==l&&(l=o[0]),null==c&&(c=o[o.length-1]);const{domain:i}=this,h=(0,a.is_empty)(i)?t:[...this._collect(i)];this._scan_data=this.scan(h,o.length),this.metrics_change.emit();for(let n=0,i=t.length;n({high:[a(t),null],low:[a(t),null],high_color:[a(n),null],low_color:[a(n),null],domain:[c(l(o(i.GlyphRenderer),s(e,c(e)))),[]]})))},\n function _(e,r,t,n,o){var a;n();const c=e(174),i=e(15),_=e(24),l=e(22),s=e(27);function p(e){return(0,l.encode_rgba)((0,l.color2rgba)(e))}function u(e){const r=new Uint32Array(e.length);for(let t=0,n=e.length;te))),r}get rgba_mapper(){const e=this,r=u(this.palette),t=this._colors(p);return{v_compute(n){const o=new _.ColorArray(n.length);return e._v_compute(n,o,r,t),new Uint8ClampedArray((0,s.to_big_endian)(o).buffer)}}}_colors(e){return{nan_color:e(this.nan_color)}}}t.ColorMapper=h,a=h,h.__name__=\"ColorMapper\",a.define((({Color:e,Array:r})=>({palette:[r(e)],nan_color:[e,\"gray\"]})))},\n function _(r,e,n,s,o){s();const p=r(56);class t extends p.Transform{constructor(r){super(r)}compute(r){throw new Error(\"mapping single values is not supported\")}}n.Mapper=t,t.__name__=\"Mapper\"},\n function _(e,t,i,s,l){var h;s();const n=e(176),o=e(177),a=e(186),c=e(187),_=e(189),r=e(179),d=e(70),p=e(190),g=e(24),u=e(12),y=e(13),m=e(113),v=e(67),f={fill:{},line:{}},w={fill:{fill_alpha:.3,fill_color:\"grey\"},line:{line_alpha:.3,line_color:\"grey\"}},b={fill:{fill_alpha:.2},line:{}},V={fill:{fill_alpha:.2},line:{}};class x extends n.DataRendererView{get glyph_view(){return this.glyph}async lazy_initialize(){var e;await super.lazy_initialize();const t=this.model.glyph;this.glyph=await this.build_glyph_view(t);const i=\"fill\"in this.glyph.visuals,s=\"line\"in this.glyph.visuals,l=Object.assign({},t.attributes);function h(e){const h=(0,y.clone)(l);return i&&(0,y.extend)(h,e.fill),s&&(0,y.extend)(h,e.line),new t.constructor(h)}function n(e,t){return t instanceof r.Glyph?t:h(\"auto\"==t?e:{fill:{},line:{}})}delete l.id;let{selection_glyph:o,nonselection_glyph:a,hover_glyph:c,muted_glyph:_}=this.model;o=n(f,o),this.selection_glyph=await this.build_glyph_view(o),a=n(b,a),this.nonselection_glyph=await this.build_glyph_view(a),null!=c&&(this.hover_glyph=await this.build_glyph_view(c)),_=n(V,_),this.muted_glyph=await this.build_glyph_view(_);const d=n(w,\"auto\");this.decimated_glyph=await this.build_glyph_view(d),this.selection_glyph.set_base(this.glyph),this.nonselection_glyph.set_base(this.glyph),null===(e=this.hover_glyph)||void 0===e||e.set_base(this.glyph),this.muted_glyph.set_base(this.glyph),this.decimated_glyph.set_base(this.glyph),this.set_data()}async build_glyph_view(e){return(0,m.build_view)(e,{parent:this})}remove(){var e;this.glyph.remove(),this.selection_glyph.remove(),this.nonselection_glyph.remove(),null===(e=this.hover_glyph)||void 0===e||e.remove(),this.muted_glyph.remove(),this.decimated_glyph.remove(),super.remove()}connect_signals(){super.connect_signals();const e=()=>this.request_render(),t=()=>this.update_data();this.connect(this.model.change,e),this.connect(this.glyph.model.change,t),this.connect(this.selection_glyph.model.change,t),this.connect(this.nonselection_glyph.model.change,t),null!=this.hover_glyph&&this.connect(this.hover_glyph.model.change,t),this.connect(this.muted_glyph.model.change,t),this.connect(this.decimated_glyph.model.change,t),this.connect(this.model.data_source.change,t),this.connect(this.model.data_source.streaming,t),this.connect(this.model.data_source.patching,(e=>this.update_data(e))),this.connect(this.model.data_source.selected.change,e),this.connect(this.model.data_source._select,e),null!=this.hover_glyph&&this.connect(this.model.data_source.inspect,e),this.connect(this.model.properties.view.change,t),this.connect(this.model.view.properties.indices.change,t),this.connect(this.model.view.properties.masked.change,(()=>this.set_visuals())),this.connect(this.model.properties.visible.change,(()=>this.plot_view.invalidate_dataranges=!0));const{x_ranges:i,y_ranges:s}=this.plot_view.frame;for(const[,e]of i)e instanceof v.FactorRange&&this.connect(e.change,t);for(const[,e]of s)e instanceof v.FactorRange&&this.connect(e.change,t);const{transformchange:l,exprchange:h}=this.model.glyph;this.connect(l,t),this.connect(h,t)}_update_masked_indices(){const e=this.glyph.mask_data();return this.model.view.masked=e,e}update_data(e){this.set_data(e),this.request_render()}set_data(e){const t=this.model.data_source;this.all_indices=this.model.view.indices;const{all_indices:i}=this;this.glyph.set_data(t,i,e),this.set_visuals(),this._update_masked_indices();const{lod_factor:s}=this.plot_model,l=this.all_indices.count;this.decimated=new g.Indices(l);for(let e=0;e!n||n.is_empty()?[]:n.selected_glyph?this.model.view.convert_indices_from_subset(i):n.indices.length>0?n.indices:Object.keys(n.multiline_indices).map((e=>parseInt(e))))()),d=(0,u.filter)(i,(e=>r.has(t[e]))),{lod_threshold:p}=this.plot_model;let g,y,m;if(null!=this.model.document&&this.model.document.interactive_duration()>0&&!e&&null!=p&&t.length>p?(i=[...this.decimated],g=this.decimated_glyph,y=this.decimated_glyph,m=this.selection_glyph):(g=this.model.muted?this.muted_glyph:this.glyph,y=this.nonselection_glyph,m=this.selection_glyph),null!=this.hover_glyph&&d.length){const e=new Set(i);for(const t of d)e.delete(t);i=[...e]}if(h.length){const e={};for(const t of h)e[t]=!0;const l=new Array,n=new Array;if(this.glyph instanceof o.LineView)for(const i of t)null!=e[i]?l.push(i):n.push(i);else for(const s of i)null!=e[t[s]]?l.push(s):n.push(s);y.render(s,n),m.render(s,l),null!=this.hover_glyph&&(this.glyph instanceof o.LineView?this.hover_glyph.render(s,this.model.view.convert_indices_from_subset(d)):this.hover_glyph.render(s,d))}else if(this.glyph instanceof o.LineView)this.hover_glyph&&d.length?this.hover_glyph.render(s,this.model.view.convert_indices_from_subset(d)):g.render(s,t);else if(this.glyph instanceof a.PatchView||this.glyph instanceof c.HAreaView||this.glyph instanceof _.VAreaView)if(0==n.selected_glyphs.length||null==this.hover_glyph)g.render(s,t);else for(const e of n.selected_glyphs)e==this.glyph.model&&this.hover_glyph.render(s,t);else g.render(s,i),this.hover_glyph&&d.length&&this.hover_glyph.render(s,d);s.restore()}draw_legend(e,t,i,s,l,h,n,o){0!=this.glyph.data_size&&(null==o&&(o=this.model.get_reference_point(h,n)),this.glyph.draw_legend_for_index(e,{x0:t,x1:i,y0:s,y1:l},o))}hit_test(e){if(!this.model.visible)return null;const t=this.glyph.hit_test(e);return null==t?null:this.model.view.convert_selection_from_subset(t)}}i.GlyphRendererView=x,x.__name__=\"GlyphRendererView\";class G extends n.DataRenderer{constructor(e){super(e)}initialize(){super.initialize(),this.view.source!=this.data_source&&(this.view.source=this.data_source,this.view.compute_indices())}get_reference_point(e,t){if(null!=e){const i=this.data_source.get_column(e);if(null!=i)for(const[e,s]of Object.entries(this.view.indices_map))if(i[parseInt(e)]==t)return s}return 0}get_selection_manager(){return this.data_source.selection_manager}}i.GlyphRenderer=G,h=G,G.__name__=\"GlyphRenderer\",h.prototype.default_view=x,h.define((({Boolean:e,Auto:t,Or:i,Ref:s,Null:l,Nullable:h})=>({data_source:[s(d.ColumnarDataSource)],view:[s(p.CDSView),e=>new p.CDSView({source:e.data_source})],glyph:[s(r.Glyph)],hover_glyph:[h(s(r.Glyph)),null],nonselection_glyph:[i(s(r.Glyph),t,l),\"auto\"],selection_glyph:[i(s(r.Glyph),t,l),\"auto\"],muted_glyph:[i(s(r.Glyph),t,l),\"auto\"],muted:[e,!1]})))},\n function _(e,r,t,a,n){var s;a();const c=e(41);class _ extends c.RendererView{get xscale(){return this.coordinates.x_scale}get yscale(){return this.coordinates.y_scale}}t.DataRendererView=_,_.__name__=\"DataRendererView\";class i extends c.Renderer{constructor(e){super(e)}get selection_manager(){return this.get_selection_manager()}}t.DataRenderer=i,s=i,i.__name__=\"DataRenderer\",s.override({level:\"glyph\"})},\n function _(e,t,i,s,n){s();const l=e(1);var _;const r=e(178),o=e(184),a=(0,l.__importStar)(e(48)),h=(0,l.__importStar)(e(185)),c=e(72);class d extends r.XYGlyphView{async lazy_initialize(){await super.lazy_initialize();const{webgl:t}=this.renderer.plot_view.canvas_view;if(null==t?void 0:t.regl_wrapper.has_webgl){const{LineGL:i}=await Promise.resolve().then((()=>(0,l.__importStar)(e(426))));this.glglyph=new i(t.regl_wrapper,this)}}_render(e,t,i){const{sx:s,sy:n}=null!=i?i:this;let l=null;const _=e=>null!=l&&e-l!=1;let r=!0;e.beginPath();for(const i of t){const t=s[i],o=n[i];isFinite(t+o)?r||_(i)?(e.moveTo(t,o),r=!1):e.lineTo(t,o):r=!0,l=i}this.visuals.line.set_value(e),e.stroke()}_hit_point(e){const t=new c.Selection,i={x:e.sx,y:e.sy};let s=9999;const n=Math.max(2,this.line_width.value/2);for(let e=0,l=this.sx.length-1;e({x:[c.XCoordinateSpec,{field:\"x\"}],y:[c.YCoordinateSpec,{field:\"y\"}]})))},\n function _(e,t,s,i,n){i();const r=e(1),a=(0,r.__importStar)(e(18)),o=(0,r.__importStar)(e(65)),_=(0,r.__importStar)(e(45)),l=e(42),c=e(53),h=e(19),d=e(24),u=e(8),f=e(180),p=e(12),g=e(26),y=e(181),x=e(67),v=e(72),{abs:b,ceil:m}=Math;class w extends l.View{constructor(){super(...arguments),this._index=null,this._data_size=null,this._nohit_warned=new Set}get renderer(){return this.parent}get has_webgl(){return null!=this.glglyph}get index(){const{_index:e}=this;if(null!=e)return e;throw new Error(`${this}.index_data() wasn't called`)}get data_size(){const{_data_size:e}=this;if(null!=e)return e;throw new Error(`${this}.set_data() wasn't called`)}initialize(){super.initialize(),this.visuals=new _.Visuals(this)}request_render(){this.parent.request_render()}get canvas(){return this.renderer.parent.canvas_view}render(e,t,s){var i;null!=this.glglyph&&(this.renderer.needs_webgl_blit=this.glglyph.render(e,t,null!==(i=this.base)&&void 0!==i?i:this),this.renderer.needs_webgl_blit)||this._render(e,t,null!=s?s:this.base)}has_finished(){return!0}notify_finished(){this.renderer.notify_finished()}_bounds(e){return e}bounds(){return this._bounds(this.index.bbox)}log_bounds(){const{x0:e,x1:t}=this.index.bounds(o.positive_x()),{y0:s,y1:i}=this.index.bounds(o.positive_y());return this._bounds({x0:e,y0:s,x1:t,y1:i})}get_anchor_point(e,t,[s,i]){switch(e){case\"center\":case\"center_center\":{const[e,n]=this.scenterxy(t,s,i);return{x:e,y:n}}default:return null}}scenterx(e,t,s){return this.scenterxy(e,t,s)[0]}scentery(e,t,s){return this.scenterxy(e,t,s)[1]}sdist(e,t,s,i=\"edge\",n=!1){const r=t.length,a=new d.ScreenArray(r),o=e.s_compute;if(\"center\"==i)for(let e=0;em(e))),a}draw_legend_for_index(e,t,s){}hit_test(e){switch(e.type){case\"point\":if(null!=this._hit_point)return this._hit_point(e);break;case\"span\":if(null!=this._hit_span)return this._hit_span(e);break;case\"rect\":if(null!=this._hit_rect)return this._hit_rect(e);break;case\"poly\":if(null!=this._hit_poly)return this._hit_poly(e)}return this._nohit_warned.has(e.type)||(h.logger.debug(`'${e.type}' selection not available for ${this.model.type}`),this._nohit_warned.add(e.type)),null}_hit_rect_against_index(e){const{sx0:t,sx1:s,sy0:i,sy1:n}=e,[r,a]=this.renderer.coordinates.x_scale.r_invert(t,s),[o,_]=this.renderer.coordinates.y_scale.r_invert(i,n),l=[...this.index.indices({x0:r,x1:a,y0:o,y1:_})];return new v.Selection({indices:l})}_project_data(){}*_iter_visuals(){for(const e of this.visuals)for(const t of e)(t instanceof a.VectorSpec||t instanceof a.ScalarSpec)&&(yield t)}set_base(e){e!=this&&e instanceof this.constructor&&(this.base=e)}_configure(e,t){Object.defineProperty(this,(0,u.isString)(e)?e:e.attr,Object.assign({configurable:!0,enumerable:!0},t))}set_visuals(e,t){var s;for(const s of this._iter_visuals()){const{base:i}=this;if(null!=i){const e=i.model.properties[s.attr];if(null!=e&&(0,g.is_equal)(s.get_value(),e.get_value())){this._configure(s,{get:()=>i[`${s.attr}`]});continue}}const n=s.uniform(e).select(t);this._configure(s,{value:n})}for(const e of this.visuals)e.update();null===(s=this.glglyph)||void 0===s||s.set_visuals_changed()}set_data(e,t,s){var i;const{x_source:n,y_source:r}=this.renderer.coordinates,o=new Set(this._iter_visuals());this._data_size=t.count;for(const s of this.model)if((s instanceof a.VectorSpec||s instanceof a.ScalarSpec)&&!o.has(s))if(s instanceof a.BaseCoordinateSpec){const i=s.array(e);let o=t.select(i);const _=\"x\"==s.dimension?n:r;if(_ instanceof x.FactorRange)if(s instanceof a.CoordinateSpec)o=_.v_synthetic(o);else if(s instanceof a.CoordinateSeqSpec)for(let e=0;e{const s=new Uint32Array(r);for(let a=0;a>1;t[s]>i?e=s:n=s+1}return t[n]}class r extends d.default{get boxes(){return this._boxes}search_indices(i,t,n,e){if(this._pos!==this._boxes.length)throw new Error(\"Data not yet indexed - call index.finish().\");let s=this._boxes.length-4;const d=[],x=new o.Indices(this.numItems);for(;void 0!==s;){const o=Math.min(s+4*this.nodeSize,h(s,this._levelBounds));for(let h=s;h>2],r=this._boxes[h+0],l=this._boxes[h+1],a=this._boxes[h+2],_=this._boxes[h+3];na||t>_||(s<4*this.numItems?x.set(o):d.push(o)))}s=d.pop()}return x}}r.__name__=\"_FlatBush\";class l{constructor(i){this.index=null,i>0&&(this.index=new r(i))}add_rect(i,t,n,e){var s;isFinite(i+t+n+e)?null===(s=this.index)||void 0===s||s.add(i,t,n,e):this.add_empty()}add_point(i,t){var n;isFinite(i+t)?null===(n=this.index)||void 0===n||n.add(i,t,i,t):this.add_empty()}add_empty(){var i;null===(i=this.index)||void 0===i||i.add(1/0,1/0,-1/0,-1/0)}finish(){var i;null===(i=this.index)||void 0===i||i.finish()}_normalize(i){let{x0:t,y0:n,x1:e,y1:s}=i;return t>e&&([t,e]=[e,t]),n>s&&([n,s]=[s,n]),{x0:t,y0:n,x1:e,y1:s}}get bbox(){if(null==this.index)return(0,x.empty)();{const{minX:i,minY:t,maxX:n,maxY:e}=this.index;return{x0:i,y0:t,x1:n,y1:e}}}indices(i){if(null==this.index)return new o.Indices(0);{const{x0:t,y0:n,x1:e,y1:s}=this._normalize(i);return this.index.search_indices(t,n,e,s)}}bounds(i){const t=(0,x.empty)();if(null==this.index)return t;const{boxes:n}=this.index;for(const e of this.indices(i)){const s=n[4*e+0],d=n[4*e+1],o=n[4*e+2],x=n[4*e+3];s>=i.x0&&st.x1&&(t.x1=o),d>=i.y0&&dt.y1&&(t.y1=x)}return t}}n.SpatialIndex=l,l.__name__=\"SpatialIndex\"},\n function _(t,s,i,e,h){e();const n=(0,t(1).__importDefault)(t(183)),o=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class r{static from(t){if(!(t instanceof ArrayBuffer))throw new Error(\"Data must be an instance of ArrayBuffer.\");const[s,i]=new Uint8Array(t,0,2);if(251!==s)throw new Error(\"Data does not appear to be in a Flatbush format.\");if(i>>4!=3)throw new Error(`Got v${i>>4} data when expected v3.`);const[e]=new Uint16Array(t,2,1),[h]=new Uint32Array(t,4,1);return new r(h,e,o[15&i],t)}constructor(t,s=16,i=Float64Array,e){if(void 0===t)throw new Error(\"Missing required argument: numItems.\");if(isNaN(t)||t<=0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+s,2),65535);let h=t,r=h;this._levelBounds=[4*h];do{h=Math.ceil(h/this.nodeSize),r+=h,this._levelBounds.push(4*r)}while(1!==h);this.ArrayType=i||Float64Array,this.IndexArrayType=r<16384?Uint16Array:Uint32Array;const a=o.indexOf(this.ArrayType),_=4*r*this.ArrayType.BYTES_PER_ELEMENT;if(a<0)throw new Error(`Unexpected typed array class: ${i}.`);e&&e instanceof ArrayBuffer?(this.data=e,this._boxes=new this.ArrayType(this.data,8,4*r),this._indices=new this.IndexArrayType(this.data,8+_,r),this._pos=4*r,this.minX=this._boxes[this._pos-4],this.minY=this._boxes[this._pos-3],this.maxX=this._boxes[this._pos-2],this.maxY=this._boxes[this._pos-1]):(this.data=new ArrayBuffer(8+_+r*this.IndexArrayType.BYTES_PER_ELEMENT),this._boxes=new this.ArrayType(this.data,8,4*r),this._indices=new this.IndexArrayType(this.data,8+_,r),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(this.data,0,2).set([251,48+a]),new Uint16Array(this.data,2,1)[0]=s,new Uint32Array(this.data,4,1)[0]=t),this._queue=new n.default}add(t,s,i,e){const h=this._pos>>2;return this._indices[h]=h,this._boxes[this._pos++]=t,this._boxes[this._pos++]=s,this._boxes[this._pos++]=i,this._boxes[this._pos++]=e,tthis.maxX&&(this.maxX=i),e>this.maxY&&(this.maxY=e),h}finish(){if(this._pos>>2!==this.numItems)throw new Error(`Added ${this._pos>>2} items when expected ${this.numItems}.`);if(this.numItems<=this.nodeSize)return this._boxes[this._pos++]=this.minX,this._boxes[this._pos++]=this.minY,this._boxes[this._pos++]=this.maxX,void(this._boxes[this._pos++]=this.maxY);const t=this.maxX-this.minX,s=this.maxY-this.minY,i=new Uint32Array(this.numItems);for(let e=0;e>2]=t,this._boxes[this._pos++]=e,this._boxes[this._pos++]=h,this._boxes[this._pos++]=n,this._boxes[this._pos++]=o}}}search(t,s,i,e,h){if(this._pos!==this._boxes.length)throw new Error(\"Data not yet indexed - call index.finish().\");let n=this._boxes.length-4;const o=[],r=[];for(;void 0!==n;){const a=Math.min(n+4*this.nodeSize,_(n,this._levelBounds));for(let _=n;_>2];ithis._boxes[_+2]||s>this._boxes[_+3]||(n<4*this.numItems?(void 0===h||h(a))&&r.push(a):o.push(a)))}n=o.pop()}return r}neighbors(t,s,i=1/0,e=1/0,h){if(this._pos!==this._boxes.length)throw new Error(\"Data not yet indexed - call index.finish().\");let n=this._boxes.length-4;const o=this._queue,r=[],x=e*e;for(;void 0!==n;){const e=Math.min(n+4*this.nodeSize,_(n,this._levelBounds));for(let i=n;i>2],r=a(t,this._boxes[i],this._boxes[i+2]),_=a(s,this._boxes[i+1],this._boxes[i+3]),x=r*r+_*_;n<4*this.numItems?(void 0===h||h(e))&&o.push(-e-1,x):o.push(e,x)}for(;o.length&&o.peek()<0;){if(o.peekValue()>x)return o.clear(),r;if(r.push(-o.pop()-1),r.length===i)return o.clear(),r}n=o.pop()}return o.clear(),r}}function a(t,s,i){return t>1;s[h]>t?e=h:i=h+1}return s[i]}function x(t,s,i,e,h,n){if(Math.floor(e/n)>=Math.floor(h/n))return;const o=t[e+h>>1];let r=e-1,a=h+1;for(;;){do{r++}while(t[r]o);if(r>=a)break;d(t,s,i,r,a)}x(t,s,i,e,a,n),x(t,s,i,a+1,h,n)}function d(t,s,i,e,h){const n=t[e];t[e]=t[h],t[h]=n;const o=4*e,r=4*h,a=s[o],_=s[o+1],x=s[o+2],d=s[o+3];s[o]=s[r],s[o+1]=s[r+1],s[o+2]=s[r+2],s[o+3]=s[r+3],s[r]=a,s[r+1]=_,s[r+2]=x,s[r+3]=d;const m=i[e];i[e]=i[h],i[h]=m}function m(t,s){let i=t^s,e=65535^i,h=65535^(t|s),n=t&(65535^s),o=i|e>>1,r=i>>1^i,a=h>>1^e&n>>1^h,_=i&h>>1^n>>1^n;i=o,e=r,h=a,n=_,o=i&i>>2^e&e>>2,r=i&e>>2^e&(i^e)>>2,a^=i&h>>2^e&n>>2,_^=e&h>>2^(i^e)&n>>2,i=o,e=r,h=a,n=_,o=i&i>>4^e&e>>4,r=i&e>>4^e&(i^e)>>4,a^=i&h>>4^e&n>>4,_^=e&h>>4^(i^e)&n>>4,i=o,e=r,h=a,n=_,a^=i&h>>8^e&n>>8,_^=e&h>>8^(i^e)&n>>8,i=a^a>>1,e=_^_>>1;let x=t^s,d=e|65535^(x|i);return x=16711935&(x|x<<8),x=252645135&(x|x<<4),x=858993459&(x|x<<2),x=1431655765&(x|x<<1),d=16711935&(d|d<<8),d=252645135&(d|d<<4),d=858993459&(d|d<<2),d=1431655765&(d|d<<1),(d<<1|x)>>>0}i.default=r},\n function _(s,t,i,h,e){h();i.default=class{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(s,t){let i=this.length++;for(this.ids[i]=s,this.values[i]=t;i>0;){const s=i-1>>1,h=this.values[s];if(t>=h)break;this.ids[i]=this.ids[s],this.values[i]=h,i=s}this.ids[i]=s,this.values[i]=t}pop(){if(0===this.length)return;const s=this.ids[0];if(this.length--,this.length>0){const s=this.ids[0]=this.ids[this.length],t=this.values[0]=this.values[this.length],i=this.length>>1;let h=0;for(;h=t)break;this.ids[h]=e,this.values[h]=l,h=s}this.ids[h]=s,this.values[h]=t}return s}peek(){if(0!==this.length)return this.ids[0]}peekValue(){if(0!==this.length)return this.values[0]}}},\n function _(e,n,a,t,i){t();const l=(0,e(1).__importStar)(e(185));function r(e,n,{x0:a,x1:t,y0:i,y1:l},r){n.save(),n.beginPath(),n.moveTo(a,(i+l)/2),n.lineTo(t,(i+l)/2),e.line.apply(n,r),n.restore()}function c(e,n,{x0:a,x1:t,y0:i,y1:l},r){var c,o;const _=.1*Math.abs(t-a),s=.1*Math.abs(l-i),y=a+_,p=t-_,g=i+s,h=l-s;n.beginPath(),n.rect(y,g,p-y,h-g),e.fill.apply(n,r),null===(c=e.hatch)||void 0===c||c.apply(n,r),null===(o=e.line)||void 0===o||o.apply(n,r)}a.generic_line_scalar_legend=function(e,n,{x0:a,x1:t,y0:i,y1:l}){n.save(),n.beginPath(),n.moveTo(a,(i+l)/2),n.lineTo(t,(i+l)/2),e.line.apply(n),n.restore()},a.generic_line_vector_legend=r,a.generic_line_legend=r,a.generic_area_scalar_legend=function(e,n,{x0:a,x1:t,y0:i,y1:l}){var r,c;const o=.1*Math.abs(t-a),_=.1*Math.abs(l-i),s=a+o,y=t-o,p=i+_,g=l-_;n.beginPath(),n.rect(s,p,y-s,g-p),e.fill.apply(n),null===(r=e.hatch)||void 0===r||r.apply(n),null===(c=e.line)||void 0===c||c.apply(n)},a.generic_area_vector_legend=c,a.generic_area_legend=c,a.line_interpolation=function(e,n,a,t,i,r){const{sx:c,sy:o}=n;let _,s,y,p;\"point\"==n.type?([y,p]=e.yscale.r_invert(o-1,o+1),[_,s]=e.xscale.r_invert(c-1,c+1)):\"v\"==n.direction?([y,p]=e.yscale.r_invert(o,o),[_,s]=[Math.min(a-1,i-1),Math.max(a+1,i+1)]):([_,s]=e.xscale.r_invert(c,c),[y,p]=[Math.min(t-1,r-1),Math.max(t+1,r+1)]);const{x:g,y:h}=l.check_2_segments_intersect(_,y,s,p,a,t,i,r);return[g,h]}},\n function _(t,n,e,i,r){function s(t,n){return(t.x-n.x)**2+(t.y-n.y)**2}function o(t,n,e){const i=s(n,e);if(0==i)return s(t,n);const r=((t.x-n.x)*(e.x-n.x)+(t.y-n.y)*(e.y-n.y))/i;if(r<0)return s(t,n);if(r>1)return s(t,e);return s(t,{x:n.x+r*(e.x-n.x),y:n.y+r*(e.y-n.y)})}i(),e.point_in_poly=function(t,n,e,i){let r=!1,s=e[e.length-1],o=i[i.length-1];for(let u=0;u0&&_<1&&h>0&&h<1,x:t+_*(e-t),y:n+_*(i-n)}}}},\n function _(t,s,e,i,a){i();const l=t(1);var n;const _=t(178),o=t(184),c=(0,l.__importStar)(t(185)),h=(0,l.__importStar)(t(48)),r=t(72);class p extends _.XYGlyphView{_render(t,s,e){const{sx:i,sy:a}=null!=e?e:this;let l=!0;t.beginPath();for(const e of s){const s=i[e],n=a[e];isFinite(s+n)?l?(t.moveTo(s,n),l=!1):t.lineTo(s,n):(t.closePath(),l=!0)}t.closePath(),this.visuals.fill.apply(t),this.visuals.hatch.apply(t),this.visuals.line.apply(t)}draw_legend_for_index(t,s,e){(0,o.generic_area_scalar_legend)(this.visuals,t,s)}_hit_point(t){const s=new r.Selection;return c.point_in_poly(t.sx,t.sy,this.sx,this.sy)&&(s.add_to_selected_glyphs(this.model),s.view=this),s}}e.PatchView=p,p.__name__=\"PatchView\";class d extends _.XYGlyph{constructor(t){super(t)}}e.Patch=d,n=d,d.__name__=\"Patch\",n.prototype.default_view=p,n.mixins([h.LineScalar,h.FillScalar,h.HatchScalar])},\n function _(t,s,e,i,n){i();const h=t(1);var r;const a=t(188),_=(0,h.__importStar)(t(185)),o=(0,h.__importStar)(t(18)),l=t(72);class c extends a.AreaView{_index_data(t){const{min:s,max:e}=Math,{data_size:i}=this;for(let n=0;n=0;s--)t.lineTo(n[s],h[s]);t.closePath(),this.visuals.fill.apply(t),this.visuals.hatch.apply(t)}_hit_point(t){const s=this.sy.length,e=new l.Selection;for(let i=0,n=s-1;i({x1:[o.XCoordinateSpec,{field:\"x1\"}],x2:[o.XCoordinateSpec,{field:\"x2\"}],y:[o.YCoordinateSpec,{field:\"y\"}]})))},\n function _(e,a,r,_,s){_();const n=e(1);var c;const i=e(179),l=e(184),t=(0,n.__importStar)(e(48));class o extends i.GlyphView{draw_legend_for_index(e,a,r){(0,l.generic_area_scalar_legend)(this.visuals,e,a)}}r.AreaView=o,o.__name__=\"AreaView\";class d extends i.Glyph{constructor(e){super(e)}}r.Area=d,c=d,d.__name__=\"Area\",c.mixins([t.FillScalar,t.HatchScalar])},\n function _(t,s,e,i,n){i();const h=t(1);var r;const a=t(188),_=(0,h.__importStar)(t(185)),o=(0,h.__importStar)(t(18)),l=t(72);class c extends a.AreaView{_index_data(t){const{min:s,max:e}=Math,{data_size:i}=this;for(let n=0;n=0;s--)t.lineTo(i[s],h[s]);t.closePath(),this.visuals.fill.apply(t),this.visuals.hatch.apply(t)}scenterxy(t){return[this.sx[t],(this.sy1[t]+this.sy2[t])/2]}_hit_point(t){const s=this.sx.length,e=new l.Selection;for(let i=0,n=s-1;i({x:[o.XCoordinateSpec,{field:\"x\"}],y1:[o.YCoordinateSpec,{field:\"y1\"}],y2:[o.YCoordinateSpec,{field:\"y2\"}]})))},\n function _(e,i,s,t,n){var c;t();const o=e(53),r=e(24),u=e(191),_=e(70);class a extends o.Model{constructor(e){super(e)}initialize(){super.initialize(),this.compute_indices()}connect_signals(){super.connect_signals(),this.connect(this.properties.filters.change,(()=>this.compute_indices()));const e=()=>{const e=()=>this.compute_indices();null!=this.source&&(this.connect(this.source.change,e),this.source instanceof _.ColumnarDataSource&&(this.connect(this.source.streaming,e),this.connect(this.source.patching,e)))};let i=null!=this.source;i?e():this.connect(this.properties.source.change,(()=>{i||(e(),i=!0)}))}compute_indices(){var e;const{source:i}=this;if(null==i)return;const s=null!==(e=i.get_length())&&void 0!==e?e:1,t=r.Indices.all_set(s);for(const e of this.filters)t.intersect(e.compute_indices(i));this.indices=t,this._indices=[...t],this.indices_map_to_subset()}indices_map_to_subset(){this.indices_map={};for(let e=0;ethis._indices[e]))}convert_selection_to_subset(e){return e.map((e=>this.indices_map[e]))}convert_indices_from_subset(e){return e.map((e=>this._indices[e]))}}s.CDSView=a,c=a,a.__name__=\"CDSView\",c.define((({Array:e,Ref:i})=>({filters:[e(i(u.Filter)),[]],source:[i(_.ColumnarDataSource)]}))),c.internal((({Int:e,Dict:i,Ref:s,Nullable:t})=>({indices:[s(r.Indices)],indices_map:[i(e),{}],masked:[t(s(r.Indices)),null]})))},\n function _(e,t,n,s,c){s();const o=e(53);class r extends o.Model{constructor(e){super(e)}}n.Filter=r,r.__name__=\"Filter\"},\n function _(t,r,a,e,c){e(),c(\"BasicTickFormatter\",t(146).BasicTickFormatter),c(\"CategoricalTickFormatter\",t(142).CategoricalTickFormatter),c(\"DatetimeTickFormatter\",t(150).DatetimeTickFormatter),c(\"FuncTickFormatter\",t(193).FuncTickFormatter),c(\"LogTickFormatter\",t(163).LogTickFormatter),c(\"MercatorTickFormatter\",t(166).MercatorTickFormatter),c(\"NumeralTickFormatter\",t(194).NumeralTickFormatter),c(\"PrintfTickFormatter\",t(195).PrintfTickFormatter),c(\"TickFormatter\",t(131).TickFormatter)},\n function _(t,e,n,s,r){var c;s();const i=t(131),a=t(13),u=t(34);class o extends i.TickFormatter{constructor(t){super(t)}get names(){return(0,a.keys)(this.args)}get values(){return(0,a.values)(this.args)}_make_func(){const t=(0,u.use_strict)(this.code);return new Function(\"tick\",\"index\",\"ticks\",...this.names,t)}doFormat(t,e){const n=this._make_func().bind({});return t.map(((t,e,s)=>`${n(t,e,s,...this.values)}`))}}n.FuncTickFormatter=o,c=o,o.__name__=\"FuncTickFormatter\",c.define((({Unknown:t,String:e,Dict:n})=>({args:[n(t),{}],code:[e,\"\"]})))},\n function _(r,n,t,o,e){o();var a;const u=(0,r(1).__importStar)(r(153)),c=r(131),i=r(20);class s extends c.TickFormatter{constructor(r){super(r)}get _rounding_fn(){switch(this.rounding){case\"round\":case\"nearest\":return Math.round;case\"floor\":case\"rounddown\":return Math.floor;case\"ceil\":case\"roundup\":return Math.ceil}}doFormat(r,n){const{format:t,language:o,_rounding_fn:e}=this;return r.map((r=>u.format(r,t,o,e)))}}t.NumeralTickFormatter=s,a=s,s.__name__=\"NumeralTickFormatter\",a.define((({String:r})=>({format:[r,\"0,0\"],language:[r,\"en\"],rounding:[i.RoundingFunction,\"round\"]})))},\n function _(t,r,n,o,a){var e;o();const i=t(131),s=t(152);class c extends i.TickFormatter{constructor(t){super(t)}doFormat(t,r){return t.map((t=>(0,s.sprintf)(this.format,t)))}}n.PrintfTickFormatter=c,e=c,c.__name__=\"PrintfTickFormatter\",e.define((({String:t})=>({format:[t,\"%s\"]})))},\n function _(r,o,a,p,e){p(),e(\"CategoricalColorMapper\",r(197).CategoricalColorMapper),e(\"CategoricalMarkerMapper\",r(199).CategoricalMarkerMapper),e(\"CategoricalPatternMapper\",r(200).CategoricalPatternMapper),e(\"ContinuousColorMapper\",r(172).ContinuousColorMapper),e(\"ColorMapper\",r(173).ColorMapper),e(\"LinearColorMapper\",r(201).LinearColorMapper),e(\"LogColorMapper\",r(202).LogColorMapper),e(\"ScanningColorMapper\",r(171).ScanningColorMapper),e(\"EqHistColorMapper\",r(203).EqHistColorMapper)},\n function _(t,o,r,a,e){var c;a();const s=t(198),l=t(173),n=t(67);class _ extends l.ColorMapper{constructor(t){super(t)}_v_compute(t,o,r,{nan_color:a}){(0,s.cat_v_compute)(t,this.factors,r,o,this.start,this.end,a)}}r.CategoricalColorMapper=_,c=_,_.__name__=\"CategoricalColorMapper\",c.define((({Number:t,Nullable:o})=>({factors:[n.FactorSeq],start:[t,0],end:[o(t),null]})))},\n function _(n,t,e,l,i){l();const c=n(12),u=n(8);function f(n,t){if(n.length!=t.length)return!1;for(let e=0,l=n.length;ef(n,h)))),s=_<0||_>=e.length?r:e[_],l[g]=s}}},\n function _(e,r,a,t,s){var c;t();const l=e(198),n=e(67),u=e(174),o=e(20);class p extends u.Mapper{constructor(e){super(e)}v_compute(e){const r=new Array(e.length);return(0,l.cat_v_compute)(e,this.factors,this.markers,r,this.start,this.end,this.default_value),r}}a.CategoricalMarkerMapper=p,c=p,p.__name__=\"CategoricalMarkerMapper\",c.define((({Number:e,Array:r,Nullable:a})=>({factors:[n.FactorSeq],markers:[r(o.MarkerType)],start:[e,0],end:[a(e),null],default_value:[o.MarkerType,\"circle\"]})))},\n function _(t,e,a,r,n){var s;r();const c=t(198),l=t(67),p=t(174),u=t(20);class o extends p.Mapper{constructor(t){super(t)}v_compute(t){const e=new Array(t.length);return(0,c.cat_v_compute)(t,this.factors,this.patterns,e,this.start,this.end,this.default_value),e}}a.CategoricalPatternMapper=o,s=o,o.__name__=\"CategoricalPatternMapper\",s.define((({Number:t,Array:e,Nullable:a})=>({factors:[l.FactorSeq],patterns:[e(u.HatchPatternType)],start:[t,0],end:[a(t),null],default_value:[u.HatchPatternType,\" \"]})))},\n function _(n,r,o,t,a){t();const e=n(172),i=n(12);class s extends e.ContinuousColorMapper{constructor(n){super(n)}scan(n,r){const o=null!=this.low?this.low:(0,i.min)(n),t=null!=this.high?this.high:(0,i.max)(n);return{max:t,min:o,norm_factor:1/(t-o),normed_interval:1/r}}cmap(n,r,o,t,a){const e=r.length-1;if(n==a.max)return r[e];const i=(n-a.min)*a.norm_factor,s=Math.floor(i/a.normed_interval);return s<0?o:s>e?t:r[s]}}o.LinearColorMapper=s,s.__name__=\"LinearColorMapper\"},\n function _(o,t,n,r,l){r();const a=o(172),s=o(12);class e extends a.ContinuousColorMapper{constructor(o){super(o)}scan(o,t){const n=null!=this.low?this.low:(0,s.min)(o),r=null!=this.high?this.high:(0,s.max)(o);return{max:r,min:n,scale:t/(Math.log(r)-Math.log(n))}}cmap(o,t,n,r,l){const a=t.length-1;if(o>l.max)return r;if(o==l.max)return t[a];if(oa&&(e=a),t[e]}}n.LogColorMapper=e,e.__name__=\"LogColorMapper\"},\n function _(e,n,s,t,l){var i;t();const r=e(171),o=e(12),c=e(9);class a extends r.ScanningColorMapper{constructor(e){super(e)}scan(e,n){let s=null!=this.low?this.low:(0,o.min)(e);const t=null!=this.high?this.high:(0,o.max)(e),l=this.bins,i=(0,c.linspace)(s,t,l+1),r=(0,o.bin_counts)(e,i);let a=0;for(let e=0;e1&&(f=1-n)}const d=(0,c.linspace)(f,1,n+1),g=(0,o.interpolate)(d,p,_);return this.rescale_discrete_levels?s=g[0]:g[0]=s,g[g.length-1]=t,{min:s,max:t,binning:g}}}s.EqHistColorMapper=a,i=a,a.__name__=\"EqHistColorMapper\",i.define((({Boolean:e,Int:n})=>({bins:[n,65536],rescale_discrete_levels:[e,!1]})))},\n function _(a,e,l,c,n){c(),n(\"CategoricalScale\",a(62).CategoricalScale),n(\"ContinuousScale\",a(60).ContinuousScale),n(\"LinearScale\",a(59).LinearScale),n(\"LinearInterpolationScale\",a(205).LinearInterpolationScale),n(\"LogScale\",a(61).LogScale),n(\"Scale\",a(55).Scale)},\n function _(e,r,n,t,a){var i;t();const s=e(55),o=e(59),c=e(12);class _ extends s.Scale{constructor(e){super(e)}connect_signals(){super.connect_signals();const{source_range:e,target_range:r}=this.properties;this.on_change([e,r],(()=>{this.linear_scale=new o.LinearScale({source_range:this.source_range,target_range:this.target_range})}))}get s_compute(){throw new Error(\"not implemented\")}get s_invert(){throw new Error(\"not implemented\")}compute(e){return e}v_compute(e){const{binning:r}=this,{start:n,end:t}=this.source_range,a=n,i=t,s=r.length,o=(t-n)/(s-1),_=new Float64Array(s);for(let e=0;e{if(ei)return i;const n=(0,c.left_edge_index)(e,r);if(-1==n)return a;if(n>=s-1)return i;const t=r[n],o=(e-t)/(r[n+1]-t),l=_[n];return l+o*(_[n+1]-l)}));return this.linear_scale.v_compute(l)}invert(e){return e}v_invert(e){return new Float64Array(e)}}n.LinearInterpolationScale=_,i=_,_.__name__=\"LinearInterpolationScale\",i.internal((({Arrayable:e,Ref:r})=>({binning:[e],linear_scale:[r(o.LinearScale),e=>new o.LinearScale({source_range:e.source_range,target_range:e.target_range})]})))},\n function _(a,n,e,g,R){g(),R(\"DataRange\",a(64).DataRange),R(\"DataRange1d\",a(63).DataRange1d),R(\"FactorRange\",a(67).FactorRange),R(\"Range\",a(57).Range),R(\"Range1d\",a(58).Range1d)},\n function _(a,o,i,t,e){t();var n=a(124);e(\"Sizeable\",n.Sizeable),e(\"SizingPolicy\",n.SizingPolicy);var c=a(125);e(\"Layoutable\",c.Layoutable),e(\"LayoutItem\",c.LayoutItem);var r=a(208);e(\"HStack\",r.HStack),e(\"VStack\",r.VStack);var l=a(209);e(\"Grid\",l.Grid),e(\"Row\",l.Row),e(\"Column\",l.Column);var S=a(210);e(\"ContentBox\",S.ContentBox),e(\"VariadicBox\",S.VariadicBox)},\n function _(t,e,h,i,r){i();const n=t(125),o=t(65);class s extends n.Layoutable{constructor(){super(...arguments),this.children=[]}*[Symbol.iterator](){yield*this.children}}h.Stack=s,s.__name__=\"Stack\";class c extends s{_measure(t){let e=0,h=0;for(const t of this.children){const i=t.measure({width:0,height:0});e+=i.width,h=Math.max(h,i.height)}return{width:e,height:h}}_set_geometry(t,e){super._set_geometry(t,e);const h=this.absolute?t.top:0;let i=this.absolute?t.left:0;const{height:r}=t;for(const t of this.children){const{width:e}=t.measure({width:0,height:0});t.set_geometry(new o.BBox({left:i,width:e,top:h,height:r})),i+=e}}}h.HStack=c,c.__name__=\"HStack\";class a extends s{_measure(t){let e=0,h=0;for(const t of this.children){const i=t.measure({width:0,height:0});e=Math.max(e,i.width),h+=i.height}return{width:e,height:h}}_set_geometry(t,e){super._set_geometry(t,e);const h=this.absolute?t.left:0;let i=this.absolute?t.top:0;const{width:r}=t;for(const t of this.children){const{height:e}=t.measure({width:0,height:0});t.set_geometry(new o.BBox({top:i,height:e,left:h,width:r})),i+=e}}}h.VStack=a,a.__name__=\"VStack\";class l extends n.Layoutable{constructor(){super(...arguments),this.children=[]}*[Symbol.iterator](){yield*this.children}_measure(t){const{width_policy:e,height_policy:h}=this.sizing,{min:i,max:r}=Math;let n=0,o=0;for(const e of this.children){const{width:h,height:i}=e.measure(t);n=r(n,h),o=r(o,i)}return{width:(()=>{const{width:h}=this.sizing;if(t.width==1/0)return\"fixed\"==e&&null!=h?h:n;switch(e){case\"fixed\":return null!=h?h:n;case\"min\":return n;case\"fit\":return null!=h?i(t.width,h):t.width;case\"max\":return null!=h?r(t.width,h):t.width}})(),height:(()=>{const{height:e}=this.sizing;if(t.height==1/0)return\"fixed\"==h&&null!=e?e:o;switch(h){case\"fixed\":return null!=e?e:o;case\"min\":return o;case\"fit\":return null!=e?i(t.height,e):t.height;case\"max\":return null!=e?r(t.height,e):t.height}})()}}_set_geometry(t,e){super._set_geometry(t,e);const h=this.absolute?t:t.relative(),{left:i,right:r,top:n,bottom:s}=h,c=Math.round(h.vcenter),a=Math.round(h.hcenter);for(const e of this.children){const{margin:h,halign:l,valign:d}=e.sizing,{width:u,height:g,inner:_}=e.measure(t),w=(()=>{switch(`${d}_${l}`){case\"start_start\":return new o.BBox({left:i+h.left,top:n+h.top,width:u,height:g});case\"start_center\":return new o.BBox({hcenter:a,top:n+h.top,width:u,height:g});case\"start_end\":return new o.BBox({right:r-h.right,top:n+h.top,width:u,height:g});case\"center_start\":return new o.BBox({left:i+h.left,vcenter:c,width:u,height:g});case\"center_center\":return new o.BBox({hcenter:a,vcenter:c,width:u,height:g});case\"center_end\":return new o.BBox({right:r-h.right,vcenter:c,width:u,height:g});case\"end_start\":return new o.BBox({left:i+h.left,bottom:s-h.bottom,width:u,height:g});case\"end_center\":return new o.BBox({hcenter:a,bottom:s-h.bottom,width:u,height:g});case\"end_end\":return new o.BBox({right:r-h.right,bottom:s-h.bottom,width:u,height:g})}})(),m=null==_?w:new o.BBox({left:w.left+_.left,top:w.top+_.top,right:w.right-_.right,bottom:w.bottom-_.bottom});e.set_geometry(w,m)}}}h.NodeLayout=l,l.__name__=\"NodeLayout\"},\n function _(t,i,s,e,o){e();const n=t(124),l=t(125),r=t(8),h=t(65),c=t(9),{max:a,round:g}=Math;class p{constructor(t){this.def=t,this._map=new Map}get(t){let i=this._map.get(t);return void 0===i&&(i=this.def(),this._map.set(t,i)),i}apply(t,i){const s=this.get(t);this._map.set(t,i(s))}}p.__name__=\"DefaultMap\";class f{constructor(){this._items=[],this._nrows=0,this._ncols=0}get nrows(){return this._nrows}get ncols(){return this._ncols}add(t,i){const{r1:s,c1:e}=t;this._nrows=a(this._nrows,s+1),this._ncols=a(this._ncols,e+1),this._items.push({span:t,data:i})}at(t,i){return this._items.filter((({span:s})=>s.r0<=t&&t<=s.r1&&s.c0<=i&&i<=s.c1)).map((({data:t})=>t))}row(t){return this._items.filter((({span:i})=>i.r0<=t&&t<=i.r1)).map((({data:t})=>t))}col(t){return this._items.filter((({span:i})=>i.c0<=t&&t<=i.c1)).map((({data:t})=>t))}foreach(t){for(const{span:i,data:s}of this._items)t(i,s)}map(t){const i=new f;for(const{span:s,data:e}of this._items)i.add(s,t(s,e));return i}}f.__name__=\"Container\";class _ extends l.Layoutable{constructor(t=[]){super(),this.items=t,this.rows=\"auto\",this.cols=\"auto\",this.spacing=0}*[Symbol.iterator](){for(const{layout:t}of this.items)yield t}is_width_expanding(){if(super.is_width_expanding())return!0;if(\"fixed\"==this.sizing.width_policy)return!1;const{cols:t}=this._state;return(0,c.some)(t,(t=>\"max\"==t.policy))}is_height_expanding(){if(super.is_height_expanding())return!0;if(\"fixed\"==this.sizing.height_policy)return!1;const{rows:t}=this._state;return(0,c.some)(t,(t=>\"max\"==t.policy))}_init(){var t,i,s,e;super._init();const o=new f;for(const{layout:t,row:i,col:s,row_span:e,col_span:n}of this.items)if(t.sizing.visible){const l=i,r=s,h=i+(null!=e?e:1)-1,c=s+(null!=n?n:1)-1;o.add({r0:l,c0:r,r1:h,c1:c},t)}const{nrows:n,ncols:l}=o,h=new Array(n);for(let s=0;s{var t;const i=(0,r.isPlainObject)(this.rows)?null!==(t=this.rows[s])&&void 0!==t?t:this.rows[\"*\"]:this.rows;return null==i?{policy:\"auto\"}:(0,r.isNumber)(i)?{policy:\"fixed\",height:i}:(0,r.isString)(i)?{policy:i}:i})(),n=null!==(t=e.align)&&void 0!==t?t:\"auto\";if(\"fixed\"==e.policy)h[s]={policy:\"fixed\",height:e.height,align:n};else if(\"min\"==e.policy)h[s]={policy:\"min\",align:n};else if(\"fit\"==e.policy||\"max\"==e.policy)h[s]={policy:e.policy,flex:null!==(i=e.flex)&&void 0!==i?i:1,align:n};else{if(\"auto\"!=e.policy)throw new Error(\"unrechable\");(0,c.some)(o.row(s),(t=>t.is_height_expanding()))?h[s]={policy:\"max\",flex:1,align:n}:h[s]={policy:\"min\",align:n}}}const a=new Array(l);for(let t=0;t{var i;const s=(0,r.isPlainObject)(this.cols)?null!==(i=this.cols[t])&&void 0!==i?i:this.cols[\"*\"]:this.cols;return null==s?{policy:\"auto\"}:(0,r.isNumber)(s)?{policy:\"fixed\",width:s}:(0,r.isString)(s)?{policy:s}:s})(),n=null!==(s=i.align)&&void 0!==s?s:\"auto\";if(\"fixed\"==i.policy)a[t]={policy:\"fixed\",width:i.width,align:n};else if(\"min\"==i.policy)a[t]={policy:\"min\",align:n};else if(\"fit\"==i.policy||\"max\"==i.policy)a[t]={policy:i.policy,flex:null!==(e=i.flex)&&void 0!==e?e:1,align:n};else{if(\"auto\"!=i.policy)throw new Error(\"unrechable\");(0,c.some)(o.col(t),(t=>t.is_width_expanding()))?a[t]={policy:\"max\",flex:1,align:n}:a[t]={policy:\"min\",align:n}}}const[g,p]=(0,r.isNumber)(this.spacing)?[this.spacing,this.spacing]:this.spacing;this._state={items:o,nrows:n,ncols:l,rows:h,cols:a,rspacing:g,cspacing:p}}_measure_totals(t,i){const{nrows:s,ncols:e,rspacing:o,cspacing:n}=this._state;return{height:(0,c.sum)(t)+(s-1)*o,width:(0,c.sum)(i)+(e-1)*n}}_measure_cells(t){const{items:i,nrows:s,ncols:e,rows:o,cols:l,rspacing:r,cspacing:h}=this._state,c=new Array(s);for(let t=0;t{const{r0:e,c0:f,r1:d,c1:u}=i,w=(d-e)*r,m=(u-f)*h;let y=0;for(let i=e;i<=d;i++)y+=t(i,f).height;y+=w;let x=0;for(let i=f;i<=u;i++)x+=t(e,i).width;x+=m;const b=s.measure({width:x,height:y});_.add(i,{layout:s,size_hint:b});const z=new n.Sizeable(b).grow_by(s.sizing.margin);z.height-=w,z.width-=m;const v=[];for(let t=e;t<=d;t++){const i=o[t];\"fixed\"==i.policy?z.height-=i.height:v.push(t)}if(z.height>0){const t=g(z.height/v.length);for(const i of v)c[i]=a(c[i],t)}const j=[];for(let t=f;t<=u;t++){const i=l[t];\"fixed\"==i.policy?z.width-=i.width:j.push(t)}if(z.width>0){const t=g(z.width/j.length);for(const i of j)p[i]=a(p[i],t)}}));return{size:this._measure_totals(c,p),row_heights:c,col_widths:p,size_hints:_}}_measure_grid(t){const{nrows:i,ncols:s,rows:e,cols:o,rspacing:n,cspacing:l}=this._state,r=this._measure_cells(((t,i)=>{const s=e[t],n=o[i];return{width:\"fixed\"==n.policy?n.width:1/0,height:\"fixed\"==s.policy?s.height:1/0}}));let h;h=\"fixed\"==this.sizing.height_policy&&null!=this.sizing.height?this.sizing.height:t.height!=1/0&&this.is_height_expanding()?t.height:r.size.height;let c,p=0;for(let t=0;t0)for(let t=0;ti?i:e,t--}}}c=\"fixed\"==this.sizing.width_policy&&null!=this.sizing.width?this.sizing.width:t.width!=1/0&&this.is_width_expanding()?t.width:r.size.width;let f=0;for(let t=0;t0)for(let t=0;ts?s:o,t--}}}const{row_heights:_,col_widths:d,size_hints:u}=this._measure_cells(((t,i)=>({width:r.col_widths[i],height:r.row_heights[t]})));return{size:this._measure_totals(_,d),row_heights:_,col_widths:d,size_hints:u}}_measure(t){const{size:i}=this._measure_grid(t);return i}_set_geometry(t,i){super._set_geometry(t,i);const{nrows:s,ncols:e,rspacing:o,cspacing:n}=this._state,{row_heights:l,col_widths:r,size_hints:c}=this._measure_grid(t),f=this._state.rows.map(((t,i)=>Object.assign(Object.assign({},t),{top:0,height:l[i],get bottom(){return this.top+this.height}}))),_=this._state.cols.map(((t,i)=>Object.assign(Object.assign({},t),{left:0,width:r[i],get right(){return this.left+this.width}}))),d=c.map(((t,i)=>Object.assign(Object.assign({},i),{outer:new h.BBox,inner:new h.BBox})));for(let i=0,e=this.absolute?t.top:0;i{const{layout:r,size_hint:c}=l,{sizing:a}=r,{width:p,height:d}=c,u=function(t,i){let s=(i-t)*n;for(let e=t;e<=i;e++)s+=_[e].width;return s}(i,e),w=function(t,i){let s=(i-t)*o;for(let e=t;e<=i;e++)s+=f[e].height;return s}(t,s),m=i==e&&\"auto\"!=_[i].align?_[i].align:a.halign,y=t==s&&\"auto\"!=f[t].align?f[t].align:a.valign;let x=_[i].left;\"start\"==m?x+=a.margin.left:\"center\"==m?x+=g((u-p)/2):\"end\"==m&&(x+=u-a.margin.right-p);let b=f[t].top;\"start\"==y?b+=a.margin.top:\"center\"==y?b+=g((w-d)/2):\"end\"==y&&(b+=w-a.margin.bottom-d),l.outer=new h.BBox({left:x,top:b,width:p,height:d})}));const u=f.map((()=>({start:new p((()=>0)),end:new p((()=>0))}))),w=_.map((()=>({start:new p((()=>0)),end:new p((()=>0))})));d.foreach((({r0:t,c0:i,r1:s,c1:e},{size_hint:o,outer:n})=>{const{inner:l}=o;null!=l&&(u[t].start.apply(n.top,(t=>a(t,l.top))),u[s].end.apply(f[s].bottom-n.bottom,(t=>a(t,l.bottom))),w[i].start.apply(n.left,(t=>a(t,l.left))),w[e].end.apply(_[e].right-n.right,(t=>a(t,l.right))))})),d.foreach((({r0:t,c0:i,r1:s,c1:e},o)=>{const{size_hint:n,outer:l}=o,r=t=>{const i=this.absolute?l:l.relative(),s=i.left+t.left,e=i.top+t.top,o=i.right-t.right,n=i.bottom-t.bottom;return new h.BBox({left:s,top:e,right:o,bottom:n})};if(null!=n.inner){let h=r(n.inner);if(!1!==n.align){const o=u[t].start.get(l.top),n=u[s].end.get(f[s].bottom-l.bottom),c=w[i].start.get(l.left),a=w[e].end.get(_[e].right-l.right);try{h=r({top:o,bottom:n,left:c,right:a})}catch(t){}}o.inner=h}else o.inner=l})),d.foreach(((t,{layout:i,outer:s,inner:e})=>{i.set_geometry(s,e)}))}}s.Grid=_,_.__name__=\"Grid\";class d extends _{constructor(t){super(),this.items=t.map(((t,i)=>({layout:t,row:0,col:i}))),this.rows=\"fit\"}}s.Row=d,d.__name__=\"Row\";class u extends _{constructor(t){super(),this.items=t.map(((t,i)=>({layout:t,row:i,col:0}))),this.cols=\"fit\"}}s.Column=u,u.__name__=\"Column\"},\n function _(e,t,s,n,i){n();const a=e(125),c=e(124),o=e(43);class r extends a.ContentLayoutable{constructor(e){super(),this.content_size=(0,o.unsized)(e,(()=>new c.Sizeable((0,o.size)(e))))}_content_size(){return this.content_size}}s.ContentBox=r,r.__name__=\"ContentBox\";class _ extends a.Layoutable{constructor(e){super(),this.el=e}_measure(e){const t=new c.Sizeable(e).bounded_to(this.sizing.size);return(0,o.sized)(this.el,t,(()=>{const e=new c.Sizeable((0,o.content_size)(this.el)),{border:t,padding:s}=(0,o.extents)(this.el);return e.grow_by(t).grow_by(s).map(Math.ceil)}))}}s.VariadicBox=_,_.__name__=\"VariadicBox\";class h extends _{constructor(e){super(e),this._cache=new Map}_measure(e){const{width:t,height:s}=e,n=`${t},${s}`;let i=this._cache.get(n);return null==i&&(i=super._measure(e),this._cache.set(n,i)),i}invalidate_cache(){this._cache.clear()}}s.CachedVariadicBox=h,h.__name__=\"CachedVariadicBox\"},\n function _(t,e,i,h,o){h();const s=t(124),r=t(125),n=t(65);class g extends r.Layoutable{constructor(){super(...arguments),this.min_border={left:0,top:0,right:0,bottom:0},this.padding={left:0,top:0,right:0,bottom:0}}*[Symbol.iterator](){yield this.top_panel,yield this.bottom_panel,yield this.left_panel,yield this.right_panel,yield this.center_panel}_measure(t){t=new s.Sizeable({width:\"fixed\"==this.sizing.width_policy||t.width==1/0?this.sizing.width:t.width,height:\"fixed\"==this.sizing.height_policy||t.height==1/0?this.sizing.height:t.height});const e=this.left_panel.measure({width:0,height:t.height}),i=Math.max(e.width,this.min_border.left)+this.padding.left,h=this.right_panel.measure({width:0,height:t.height}),o=Math.max(h.width,this.min_border.right)+this.padding.right,r=this.top_panel.measure({width:t.width,height:0}),n=Math.max(r.height,this.min_border.top)+this.padding.top,g=this.bottom_panel.measure({width:t.width,height:0}),a=Math.max(g.height,this.min_border.bottom)+this.padding.bottom,d=new s.Sizeable(t).shrink_by({left:i,right:o,top:n,bottom:a}),l=this.center_panel.measure(d);return{width:i+l.width+o,height:n+l.height+a,inner:{left:i,right:o,top:n,bottom:a},align:(()=>{const{width_policy:t,height_policy:e}=this.center_panel.sizing;return\"fixed\"!=t&&\"fixed\"!=e})()}}_set_geometry(t,e){super._set_geometry(t,e),this.center_panel.set_geometry(e);const i=this.left_panel.measure({width:0,height:t.height}),h=this.right_panel.measure({width:0,height:t.height}),o=this.top_panel.measure({width:t.width,height:0}),s=this.bottom_panel.measure({width:t.width,height:0}),{left:r,top:g,right:a,bottom:d}=e;this.top_panel.set_geometry(new n.BBox({left:r,right:a,bottom:g,height:o.height})),this.bottom_panel.set_geometry(new n.BBox({left:r,right:a,top:d,height:s.height})),this.left_panel.set_geometry(new n.BBox({top:g,bottom:d,right:r,width:i.width})),this.right_panel.set_geometry(new n.BBox({top:g,bottom:d,left:a,width:h.width}))}}i.BorderLayout=g,g.__name__=\"BorderLayout\"},\n function _(t,e,i,s,l){s();const n=t(1);var o;const a=t(119),_=t(10),d=t(20),h=t(120),r=t(123),u=(0,n.__importStar)(t(48));class c extends a.TextAnnotationView{update_layout(){const{panel:t}=this;this.layout=null!=t?new r.SideLayout(t,(()=>this.get_size()),!1):void 0}_get_size(){const{text:t}=this.model,e=new h.TextBox({text:t}),{angle:i,angle_units:s}=this.model;e.angle=(0,_.resolve_angle)(i,s),e.visuals=this.visuals.text.values();const{width:l,height:n}=e.size();return{width:l,height:n}}_render(){const{angle:t,angle_units:e}=this.model,i=(0,_.resolve_angle)(t,e),s=null!=this.layout?this.layout:this.plot_view.frame,l=this.coordinates.x_scale,n=this.coordinates.y_scale;let o=\"data\"==this.model.x_units?l.compute(this.model.x):s.bbox.xview.compute(this.model.x),a=\"data\"==this.model.y_units?n.compute(this.model.y):s.bbox.yview.compute(this.model.y);o+=this.model.x_offset,a-=this.model.y_offset;(\"canvas\"==this.model.render_mode?this._canvas_text.bind(this):this._css_text.bind(this))(this.layer.ctx,this.model.text,o,a,i)}}i.LabelView=c,c.__name__=\"LabelView\";class x extends a.TextAnnotation{constructor(t){super(t)}}i.Label=x,o=x,x.__name__=\"Label\",o.prototype.default_view=c,o.mixins([u.Text,[\"border_\",u.Line],[\"background_\",u.Fill]]),o.define((({Number:t,String:e,Angle:i})=>({x:[t],x_units:[d.SpatialUnits,\"data\"],y:[t],y_units:[d.SpatialUnits,\"data\"],text:[e,\"\"],angle:[i,0],angle_units:[d.AngleUnits,\"rad\"],x_offset:[t,0],y_offset:[t,0]}))),o.override({background_fill_color:null,border_line_color:null})},\n function _(t,e,s,i,l){i();const o=t(1);var a;const r=t(69),n=(0,o.__importStar)(t(48)),d=t(20),_=t(43),c=t(120),h=(0,o.__importStar)(t(18)),u=t(11);class v extends r.DataAnnotationView{set_data(t){var e;if(super.set_data(t),null===(e=this.els)||void 0===e||e.forEach((t=>(0,_.remove)(t))),\"css\"==this.model.render_mode){const t=this.els=[...this.text].map((()=>(0,_.div)({style:{display:\"none\"}})));for(const e of t)this.plot_view.canvas_view.add_overlay(e)}else delete this.els}remove(){var t;null===(t=this.els)||void 0===t||t.forEach((t=>(0,_.remove)(t))),super.remove()}_rerender(){\"css\"==this.model.render_mode?this.render():this.request_render()}map_data(){const{x_scale:t,y_scale:e}=this.coordinates,s=null!=this.layout?this.layout:this.plot_view.frame;this.sx=\"data\"==this.model.x_units?t.v_compute(this._x):s.bbox.xview.v_compute(this._x),this.sy=\"data\"==this.model.y_units?e.v_compute(this._y):s.bbox.yview.v_compute(this._y)}paint(){const t=\"canvas\"==this.model.render_mode?this._v_canvas_text.bind(this):this._v_css_text.bind(this),{ctx:e}=this.layer;for(let s=0,i=this.text.length;s{switch(this.visuals.text.text_align.get(e)){case\"left\":return[\"left\",\"0%\"];case\"center\":return[\"center\",\"-50%\"];case\"right\":return[\"right\",\"-100%\"]}})(),[d,c]=(()=>{switch(this.visuals.text.text_baseline.get(e)){case\"top\":return[\"top\",\"0%\"];case\"middle\":return[\"center\",\"-50%\"];case\"bottom\":return[\"bottom\",\"-100%\"];default:return[\"center\",\"-50%\"]}})();let h=`translate(${n}, ${c})`;o&&(h+=`rotate(${o}rad)`),a.style.transformOrigin=`${r} ${d}`,a.style.transform=h,this.layout,this.visuals.background_fill.doit&&(this.visuals.background_fill.set_vectorize(t,e),a.style.backgroundColor=t.fillStyle),this.visuals.border_line.doit&&(this.visuals.border_line.set_vectorize(t,e),a.style.borderStyle=t.lineDash.length<2?\"solid\":\"dashed\",a.style.borderWidth=`${t.lineWidth}px`,a.style.borderColor=t.strokeStyle),(0,_.display)(a)}}s.LabelSetView=v,v.__name__=\"LabelSetView\";class x extends r.DataAnnotation{constructor(t){super(t)}}s.LabelSet=x,a=x,x.__name__=\"LabelSet\",a.prototype.default_view=v,a.mixins([n.TextVector,[\"border_\",n.LineVector],[\"background_\",n.FillVector]]),a.define((()=>({x:[h.XCoordinateSpec,{field:\"x\"}],y:[h.YCoordinateSpec,{field:\"y\"}],x_units:[d.SpatialUnits,\"data\"],y_units:[d.SpatialUnits,\"data\"],text:[h.StringSpec,{field:\"text\"}],angle:[h.AngleSpec,0],x_offset:[h.NumberSpec,{value:0}],y_offset:[h.NumberSpec,{value:0}],render_mode:[d.RenderMode,\"canvas\"]}))),a.override({background_fill_color:null,border_line_color:null})},\n function _(t,e,i,l,s){l();const n=t(1);var o;const h=t(40),a=t(215),_=t(20),r=(0,n.__importStar)(t(48)),d=t(15),c=t(123),g=t(121),m=t(65),b=t(9),f=t(8),u=t(11);class x extends h.AnnotationView{update_layout(){const{panel:t}=this;this.layout=null!=t?new c.SideLayout(t,(()=>this.get_size())):void 0}cursor(t,e){return\"none\"==this.model.click_policy?null:\"pointer\"}get legend_padding(){return null!=this.model.border_line_color?this.model.padding:0}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.request_render())),this.connect(this.model.item_change,(()=>this.request_render()))}compute_legend_bbox(){const t=this.model.get_legend_names(),{glyph_height:e,glyph_width:i}=this.model,{label_height:l,label_width:s}=this.model;this.max_label_height=(0,b.max)([(0,g.font_metrics)(this.visuals.label_text.font_value()).height,l,e]);const{ctx:n}=this.layer;n.save(),this.visuals.label_text.set_value(n),this.text_widths=new Map;for(const e of t)this.text_widths.set(e,(0,b.max)([n.measureText(e).width,s]));this.visuals.title_text.set_value(n),this.title_height=this.model.title?(0,g.font_metrics)(this.visuals.title_text.font_value()).height+this.model.title_standoff:0,this.title_width=this.model.title?n.measureText(this.model.title).width:0,n.restore();const o=Math.max((0,b.max)([...this.text_widths.values()]),0),h=this.model.margin,{legend_padding:a}=this,_=this.model.spacing,{label_standoff:r}=this.model;let d,c;if(\"vertical\"==this.model.orientation)d=t.length*this.max_label_height+Math.max(t.length-1,0)*_+2*a+this.title_height,c=(0,b.max)([o+i+r+2*a,this.title_width+2*a]);else{let e=2*a+Math.max(t.length-1,0)*_;for(const[,t]of this.text_widths)e+=(0,b.max)([t,s])+i+r;c=(0,b.max)([this.title_width+2*a,e]),d=this.max_label_height+this.title_height+2*a}const x=null!=this.layout?this.layout:this.plot_view.frame,[p,w]=x.bbox.ranges,{location:v}=this.model;let y,k;if((0,f.isString)(v))switch(v){case\"top_left\":y=p.start+h,k=w.start+h;break;case\"top\":case\"top_center\":y=(p.end+p.start)/2-c/2,k=w.start+h;break;case\"top_right\":y=p.end-h-c,k=w.start+h;break;case\"bottom_right\":y=p.end-h-c,k=w.end-h-d;break;case\"bottom\":case\"bottom_center\":y=(p.end+p.start)/2-c/2,k=w.end-h-d;break;case\"bottom_left\":y=p.start+h,k=w.end-h-d;break;case\"left\":case\"center_left\":y=p.start+h,k=(w.end+w.start)/2-d/2;break;case\"center\":case\"center_center\":y=(p.end+p.start)/2-c/2,k=(w.end+w.start)/2-d/2;break;case\"right\":case\"center_right\":y=p.end-h-c,k=(w.end+w.start)/2-d/2}else if((0,f.isArray)(v)&&2==v.length){const[t,e]=v;y=x.bbox.xview.compute(t),k=x.bbox.yview.compute(e)-d}else(0,u.unreachable)();return new m.BBox({left:y,top:k,width:c,height:d})}interactive_bbox(){return this.compute_legend_bbox()}interactive_hit(t,e){return this.interactive_bbox().contains(t,e)}on_hit(t,e){let i;const{glyph_width:l}=this.model,{legend_padding:s}=this,n=this.model.spacing,{label_standoff:o}=this.model;let h=i=s;const a=this.compute_legend_bbox(),_=\"vertical\"==this.model.orientation;for(const r of this.model.items){const d=r.get_labels_list_from_label_prop();for(const c of d){const d=a.x+h,g=a.y+i+this.title_height;let b,f;[b,f]=_?[a.width-2*s,this.max_label_height]:[this.text_widths.get(c)+l+o,this.max_label_height];if(new m.BBox({left:d,top:g,width:b,height:f}).contains(t,e)){switch(this.model.click_policy){case\"hide\":for(const t of r.renderers)t.visible=!t.visible;break;case\"mute\":for(const t of r.renderers)t.muted=!t.muted}return!0}_?i+=this.max_label_height+n:h+=this.text_widths.get(c)+l+o+n}}return!1}_render(){if(0==this.model.items.length)return;if(!(0,b.some)(this.model.items,(t=>t.visible)))return;for(const t of this.model.items)t.legend=this.model;const{ctx:t}=this.layer,e=this.compute_legend_bbox();t.save(),this._draw_legend_box(t,e),this._draw_legend_items(t,e),this._draw_title(t,e),t.restore()}_draw_legend_box(t,e){t.beginPath(),t.rect(e.x,e.y,e.width,e.height),this.visuals.background_fill.apply(t),this.visuals.border_line.apply(t)}_draw_legend_items(t,e){const{glyph_width:i,glyph_height:l}=this.model,{legend_padding:s}=this,n=this.model.spacing,{label_standoff:o}=this.model;let h=s,a=s;const _=\"vertical\"==this.model.orientation;for(const r of this.model.items){if(!r.visible)continue;const d=r.get_labels_list_from_label_prop(),c=r.get_field_from_label_prop();if(0==d.length)continue;const g=(()=>{switch(this.model.click_policy){case\"none\":return!0;case\"hide\":return(0,b.every)(r.renderers,(t=>t.visible));case\"mute\":return(0,b.every)(r.renderers,(t=>!t.muted))}})();for(const m of d){const d=e.x+h,b=e.y+a+this.title_height,f=d+i,u=b+l;_?a+=this.max_label_height+n:h+=this.text_widths.get(m)+i+o+n,this.visuals.label_text.set_value(t),t.fillText(m,f+o,b+this.max_label_height/2);for(const e of r.renderers){const i=this.plot_view.renderer_view(e);null==i||i.draw_legend(t,d,f,b,u,c,m,r.index)}if(!g){let l,n;[l,n]=_?[e.width-2*s,this.max_label_height]:[this.text_widths.get(m)+i+o,this.max_label_height],t.beginPath(),t.rect(d,b,l,n),this.visuals.inactive_fill.set_value(t),t.fill()}}}}_draw_title(t,e){const{title:i}=this.model;i&&this.visuals.title_text.doit&&(t.save(),t.translate(e.x0,e.y0+this.title_height),this.visuals.title_text.set_value(t),t.fillText(i,this.legend_padding,this.legend_padding-this.model.title_standoff),t.restore())}_get_size(){const{width:t,height:e}=this.compute_legend_bbox();return{width:t+2*this.model.margin,height:e+2*this.model.margin}}}i.LegendView=x,x.__name__=\"LegendView\";class p extends h.Annotation{constructor(t){super(t)}initialize(){super.initialize(),this.item_change=new d.Signal0(this,\"item_change\")}get_legend_names(){const t=[];for(const e of this.items){const i=e.get_labels_list_from_label_prop();t.push(...i)}return t}}i.Legend=p,o=p,p.__name__=\"Legend\",o.prototype.default_view=x,o.mixins([[\"label_\",r.Text],[\"title_\",r.Text],[\"inactive_\",r.Fill],[\"border_\",r.Line],[\"background_\",r.Fill]]),o.define((({Number:t,String:e,Array:i,Tuple:l,Or:s,Ref:n,Nullable:o})=>({orientation:[_.Orientation,\"vertical\"],location:[s(_.LegendLocation,l(t,t)),\"top_right\"],title:[o(e),null],title_standoff:[t,5],label_standoff:[t,5],glyph_height:[t,20],glyph_width:[t,20],label_height:[t,20],label_width:[t,20],margin:[t,10],padding:[t,10],spacing:[t,3],items:[i(n(a.LegendItem)),[]],click_policy:[_.LegendClickPolicy,\"none\"]}))),o.override({border_line_color:\"#e5e5e5\",border_line_alpha:.5,border_line_width:1,background_fill_color:\"#ffffff\",background_fill_alpha:.95,inactive_fill_color:\"white\",inactive_fill_alpha:.7,label_text_font_size:\"13px\",label_text_baseline:\"middle\",title_text_font_size:\"13px\",title_text_font_style:\"italic\"})},\n function _(e,r,l,n,t){n();const i=e(1);var s;const o=e(53),a=e(175),_=e(70),u=e(216),d=(0,i.__importStar)(e(18)),c=e(19),f=e(9);class h extends o.Model{constructor(e){super(e)}_check_data_sources_on_renderers(){if(null!=this.get_field_from_label_prop()){if(this.renderers.length<1)return!1;const e=this.renderers[0].data_source;if(null!=e)for(const r of this.renderers)if(r.data_source!=e)return!1}return!0}_check_field_label_on_data_source(){const e=this.get_field_from_label_prop();if(null!=e){if(this.renderers.length<1)return!1;const r=this.renderers[0].data_source;if(null!=r&&!(0,f.includes)(r.columns(),e))return!1}return!0}initialize(){super.initialize(),this.legend=null,this.connect(this.change,(()=>{var e;return null===(e=this.legend)||void 0===e?void 0:e.item_change.emit()}));this._check_data_sources_on_renderers()||c.logger.error(\"Non matching data sources on legend item renderers\");this._check_field_label_on_data_source()||c.logger.error(`Bad column name on label: ${this.label}`)}get_field_from_label_prop(){const{label:e}=this;return(0,u.isField)(e)?e.field:null}get_labels_list_from_label_prop(){if(!this.visible)return[];if((0,u.isValue)(this.label)){const{value:e}=this.label;return null!=e?[e]:[]}const e=this.get_field_from_label_prop();if(null!=e){let r;if(!this.renderers[0]||null==this.renderers[0].data_source)return[\"No source found\"];if(r=this.renderers[0].data_source,r instanceof _.ColumnarDataSource){const l=r.get_column(e);return null!=l?(0,f.uniq)(Array.from(l)):[\"Invalid field\"]}}return[]}}l.LegendItem=h,s=h,h.__name__=\"LegendItem\",s.define((({Boolean:e,Int:r,Array:l,Ref:n,Nullable:t})=>({label:[d.NullStringSpec,null],renderers:[l(n(a.GlyphRenderer)),[]],index:[t(r),null],visible:[e,!0]})))},\n function _(i,n,e,t,u){t();const c=i(8);e.isValue=function(i){return(0,c.isPlainObject)(i)&&\"value\"in i},e.isField=function(i){return(0,c.isPlainObject)(i)&&\"field\"in i},e.isExpr=function(i){return(0,c.isPlainObject)(i)&&\"expr\"in i}},\n function _(t,n,e,s,i){s();const o=t(1);var a;const l=t(40),c=(0,o.__importStar)(t(48)),r=t(20);class _ extends l.AnnotationView{connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.request_render()))}_render(){const{xs:t,ys:n}=this.model;if(t.length!=n.length)return;const e=t.length;if(e<3)return;const{frame:s}=this.plot_view,{ctx:i}=this.layer,o=this.coordinates.x_scale,a=this.coordinates.y_scale,{screen:l}=this.model;function c(t,n,e,s){return l?t:\"data\"==n?e.v_compute(t):s.v_compute(t)}const r=c(t,this.model.xs_units,o,s.bbox.xview),_=c(n,this.model.ys_units,a,s.bbox.yview);i.beginPath();for(let t=0;t({xs:[n(t),[]],xs_units:[r.SpatialUnits,\"data\"],ys:[n(t),[]],ys_units:[r.SpatialUnits,\"data\"]}))),a.internal((({Boolean:t})=>({screen:[t,!1]}))),a.override({fill_color:\"#fff9ba\",fill_alpha:.4,line_color:\"#cccccc\",line_alpha:.3})},\n function _(e,t,n,o,i){o();const s=e(1);var l;const r=e(40),c=(0,s.__importStar)(e(48));class a extends r.AnnotationView{connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.request_render()))}_render(){const{gradient:e,y_intercept:t}=this.model;if(null==e||null==t)return;const{frame:n}=this.plot_view,o=this.coordinates.x_scale,i=this.coordinates.y_scale;let s,l,r,c;if(0==e)s=i.compute(t),l=s,r=n.bbox.left,c=r+n.bbox.width;else{s=n.bbox.top,l=s+n.bbox.height;const a=(i.invert(s)-t)/e,_=(i.invert(l)-t)/e;r=o.compute(a),c=o.compute(_)}const{ctx:a}=this.layer;a.save(),a.beginPath(),this.visuals.line.set_value(a),a.moveTo(r,s),a.lineTo(c,l),a.stroke(),a.restore()}}n.SlopeView=a,a.__name__=\"SlopeView\";class _ extends r.Annotation{constructor(e){super(e)}}n.Slope=_,l=_,_.__name__=\"Slope\",l.prototype.default_view=a,l.mixins(c.Line),l.define((({Number:e,Nullable:t})=>({gradient:[t(e),null],y_intercept:[t(e),null]}))),l.override({line_color:\"black\"})},\n function _(e,t,i,o,n){o();const s=e(1);var l;const a=e(40),r=(0,s.__importStar)(e(48)),c=e(20);class d extends a.AnnotationView{connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.plot_view.request_paint(this)))}_render(){const{location:e}=this.model;if(null==e)return;const{frame:t}=this.plot_view,i=this.coordinates.x_scale,o=this.coordinates.y_scale,n=(t,i)=>\"data\"==this.model.location_units?t.compute(e):this.model.for_hover?e:i.compute(e);let s,l,a,r;\"width\"==this.model.dimension?(a=n(o,t.bbox.yview),l=t.bbox.left,r=t.bbox.width,s=this.model.line_width):(a=t.bbox.top,l=n(i,t.bbox.xview),r=this.model.line_width,s=t.bbox.height);const{ctx:c}=this.layer;c.save(),c.beginPath(),this.visuals.line.set_value(c),c.moveTo(l,a),\"width\"==this.model.dimension?c.lineTo(l+r,a):c.lineTo(l,a+s),c.stroke(),c.restore()}}i.SpanView=d,d.__name__=\"SpanView\";class _ extends a.Annotation{constructor(e){super(e)}}i.Span=_,l=_,_.__name__=\"Span\",l.prototype.default_view=d,l.mixins(r.Line),l.define((({Number:e,Nullable:t})=>({render_mode:[c.RenderMode,\"canvas\"],location:[t(e),null],location_units:[c.SpatialUnits,\"data\"],dimension:[c.Dimension,\"width\"]}))),l.internal((({Boolean:e})=>({for_hover:[e,!1]}))),l.override({line_color:\"black\"})},\n function _(i,e,t,o,l){var s;o();const a=i(40),_=i(221),n=i(113),r=i(43),h=i(123),b=i(65);class v extends a.AnnotationView{constructor(){super(...arguments),this._invalidate_toolbar=!0,this._previous_bbox=new b.BBox}update_layout(){this.layout=new h.SideLayout(this.panel,(()=>this.get_size()),!0)}initialize(){super.initialize(),this.el=(0,r.div)(),this.plot_view.canvas_view.add_event(this.el)}async lazy_initialize(){await super.lazy_initialize(),this._toolbar_view=await(0,n.build_view)(this.model.toolbar,{parent:this}),this.plot_view.visibility_callbacks.push((i=>this._toolbar_view.set_visibility(i)))}remove(){this._toolbar_view.remove(),(0,r.remove)(this.el),super.remove()}render(){this.model.visible||(0,r.undisplay)(this.el),super.render()}_render(){const{bbox:i}=this.layout;this._previous_bbox.equals(i)||((0,r.position)(this.el,i),this._previous_bbox=i,this._invalidate_toolbar=!0),this._invalidate_toolbar&&(this.el.style.position=\"absolute\",this.el.style.overflow=\"hidden\",(0,r.empty)(this.el),this.el.appendChild(this._toolbar_view.el),this._toolbar_view.layout.bbox=i,this._toolbar_view.render(),this._invalidate_toolbar=!1),(0,r.display)(this.el)}_get_size(){const{tools:i,logo:e}=this.model.toolbar;return{width:30*i.length+(null!=e?25:0)+15,height:30}}}t.ToolbarPanelView=v,v.__name__=\"ToolbarPanelView\";class d extends a.Annotation{constructor(i){super(i)}}t.ToolbarPanel=d,s=d,d.__name__=\"ToolbarPanel\",s.prototype.default_view=v,s.define((({Ref:i})=>({toolbar:[i(_.Toolbar)]})))},\n function _(t,e,s,i,o){var c;i();const n=t(8),a=t(9),l=t(13),r=t(222),_=t(223),u=t(232),p=t(233);function v(t){switch(t){case\"tap\":return\"active_tap\";case\"pan\":return\"active_drag\";case\"pinch\":case\"scroll\":return\"active_scroll\";case\"multi\":return\"active_multi\"}return null}function h(t){return\"tap\"==t||\"pan\"==t}s.Drag=r.Tool,s.Inspection=r.Tool,s.Scroll=r.Tool,s.Tap=r.Tool;class f extends p.ToolbarBase{constructor(t){super(t)}connect_signals(){super.connect_signals();const{tools:t,active_drag:e,active_inspect:s,active_scroll:i,active_tap:o,active_multi:c}=this.properties;this.on_change([t,e,s,i,o,c],(()=>this._init_tools()))}_init_tools(){if(super._init_tools(),\"auto\"==this.active_inspect);else if(this.active_inspect instanceof u.InspectTool){let t=!1;for(const e of this.inspectors)e!=this.active_inspect?e.active=!1:t=!0;t||(this.active_inspect=null)}else if((0,n.isArray)(this.active_inspect)){const t=(0,a.intersection)(this.active_inspect,this.inspectors);t.length!=this.active_inspect.length&&(this.active_inspect=t);for(const t of this.inspectors)(0,a.includes)(this.active_inspect,t)||(t.active=!1)}else if(null==this.active_inspect)for(const t of this.inspectors)t.active=!1;const t=t=>{t.active?this._active_change(t):t.active=!0};for(const t of(0,l.values)(this.gestures)){t.tools=(0,a.sort_by)(t.tools,(t=>t.default_order));for(const e of t.tools)this.connect(e.properties.active.change,(()=>this._active_change(e)))}for(const[e,s]of(0,l.entries)(this.gestures)){const i=v(e);if(i){const o=this[i];\"auto\"==o?0!=s.tools.length&&h(e)&&t(s.tools[0]):null!=o&&((0,a.includes)(this.tools,o)?t(o):this[i]=null)}}}}s.Toolbar=f,c=f,f.__name__=\"Toolbar\",c.prototype.default_view=p.ToolbarBaseView,c.define((({Or:t,Ref:e,Auto:i,Null:o})=>({active_drag:[t(e(s.Drag),i,o),\"auto\"],active_inspect:[t(e(s.Inspection),i,o),\"auto\"],active_scroll:[t(e(s.Scroll),i,o),\"auto\"],active_tap:[t(e(s.Tap),i,o),\"auto\"],active_multi:[t(e(_.GestureTool),i,o),\"auto\"]})))},\n function _(t,e,n,o,s){var i;o();const a=t(42),r=t(9),l=t(53);class c extends a.View{get plot_view(){return this.parent}get plot_model(){return this.parent.model}connect_signals(){super.connect_signals(),this.connect(this.model.properties.active.change,(()=>{this.model.active?this.activate():this.deactivate()}))}activate(){}deactivate(){}}n.ToolView=c,c.__name__=\"ToolView\";class _ extends l.Model{constructor(t){super(t)}get synthetic_renderers(){return[]}_get_dim_limits([t,e],[n,o],s,i){const a=s.bbox.h_range;let l;\"width\"==i||\"both\"==i?(l=[(0,r.min)([t,n]),(0,r.max)([t,n])],l=[(0,r.max)([l[0],a.start]),(0,r.min)([l[1],a.end])]):l=[a.start,a.end];const c=s.bbox.v_range;let _;return\"height\"==i||\"both\"==i?(_=[(0,r.min)([e,o]),(0,r.max)([e,o])],_=[(0,r.max)([_[0],c.start]),(0,r.min)([_[1],c.end])]):_=[c.start,c.end],[l,_]}static register_alias(t,e){this.prototype._known_aliases.set(t,e)}static from_string(t){const e=this.prototype._known_aliases.get(t);if(null!=e)return e();{const e=[...this.prototype._known_aliases.keys()];throw new Error(`unexpected tool name '${t}', possible tools are ${e.join(\", \")}`)}}}n.Tool=_,i=_,_.__name__=\"Tool\",i.prototype._known_aliases=new Map,i.define((({String:t,Nullable:e})=>({description:[e(t),null]}))),i.internal((({Boolean:t})=>({active:[t,!1]})))},\n function _(e,o,t,s,n){s();const u=e(224),_=e(231);class l extends u.ButtonToolView{}t.GestureToolView=l,l.__name__=\"GestureToolView\";class i extends u.ButtonTool{constructor(e){super(e),this.button_view=_.OnOffButtonView}}t.GestureTool=i,i.__name__=\"GestureTool\"},\n function _(t,e,o,s,i){s();const n=t(1);var l;const r=(0,n.__importDefault)(t(225)),a=t(226),u=t(222),h=t(43),_=t(34),d=t(8),c=t(9),m=(0,n.__importStar)(t(227)),p=m,v=(0,n.__importDefault)(t(228)),f=(0,n.__importDefault)(t(229)),g=t(230);class b extends a.DOMView{initialize(){super.initialize();const t=this.model.menu;if(null!=t){const e=this.parent.model.toolbar_location,o=\"left\"==e||\"above\"==e,s=this.parent.model.horizontal?\"vertical\":\"horizontal\";this._menu=new g.ContextMenu(o?(0,c.reversed)(t):t,{orientation:s,prevent_hide:t=>t.target==this.el})}this._hammer=new r.default(this.el,{touchAction:\"auto\",inputClass:r.default.TouchMouseInput}),this.connect(this.model.change,(()=>this.render())),this._hammer.on(\"tap\",(t=>{var e;(null===(e=this._menu)||void 0===e?void 0:e.is_open)?this._menu.hide():t.target==this.el&&this._clicked()})),this._hammer.on(\"press\",(()=>this._pressed())),this.el.addEventListener(\"keydown\",(t=>{t.keyCode==h.Keys.Enter&&this._clicked()}))}remove(){var t;this._hammer.destroy(),null===(t=this._menu)||void 0===t||t.remove(),super.remove()}styles(){return[...super.styles(),m.default,v.default,f.default]}css_classes(){return super.css_classes().concat(p.toolbar_button)}render(){(0,h.empty)(this.el);const t=this.model.computed_icon;(0,d.isString)(t)&&((0,_.startsWith)(t,\"data:image\")?this.el.style.backgroundImage=`url(\"${t}\")`:this.el.classList.add(t)),this.el.title=this.model.tooltip,this.el.tabIndex=0,null!=this._menu&&this.root.el.appendChild(this._menu.el)}_pressed(){var t;const e=(()=>{switch(this.parent.model.toolbar_location){case\"right\":return{left_of:this.el};case\"left\":return{right_of:this.el};case\"above\":return{below:this.el};case\"below\":return{above:this.el}}})();null===(t=this._menu)||void 0===t||t.toggle(e)}}o.ButtonToolButtonView=b,b.__name__=\"ButtonToolButtonView\";class w extends u.ToolView{}o.ButtonToolView=w,w.__name__=\"ButtonToolView\";class y extends u.Tool{constructor(t){super(t)}_get_dim_tooltip(t){const{description:e,tool_name:o}=this;return null!=e?e:\"both\"==t?o:`${o} (${\"width\"==t?\"x\":\"y\"}-axis)`}get tooltip(){var t;return null!==(t=this.description)&&void 0!==t?t:this.tool_name}get computed_icon(){return this.icon}get menu(){return null}}o.ButtonTool=y,l=y,y.__name__=\"ButtonTool\",l.internal((({Boolean:t})=>({disabled:[t,!1]})))},\n function _(t,e,i,n,r){\n /*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n !function(t,i,n,r){\"use strict\";var s,o=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],a=i.createElement(\"div\"),h=Math.round,u=Math.abs,c=Date.now;function l(t,e,i){return setTimeout(T(t,i),e)}function p(t,e,i){return!!Array.isArray(t)&&(f(t,i[e],i),!0)}function f(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==r)for(n=0;n\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",s=t.console&&(t.console.warn||t.console.log);return s&&s.call(t.console,r,n),e.apply(this,arguments)}}s=\"function\"!=typeof Object.assign?function(t){if(t===r||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i-1}function S(t){return t.trim().split(/\\s+/g)}function b(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]})):n.sort()),n}function x(t,e){for(var i,n,s=e[0].toUpperCase()+e.slice(1),a=0;a1&&!i.firstMultiple?i.firstMultiple=H(e):1===s&&(i.firstMultiple=!1);var o=i.firstInput,a=i.firstMultiple,h=a?a.center:o.center,l=e.center=L(n);e.timeStamp=c(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=G(h,l),e.distance=j(h,l),function(t,e){var i=e.center,n=t.offsetDelta||{},r=t.prevDelta||{},s=t.prevInput||{};1!==e.eventType&&4!==s.eventType||(r=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y});e.deltaX=r.x+(i.x-n.x),e.deltaY=r.y+(i.y-n.y)}(i,e),e.offsetDirection=V(e.deltaX,e.deltaY);var p=U(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=p.x,e.overallVelocityY=p.y,e.overallVelocity=u(p.x)>u(p.y)?p.x:p.y,e.scale=a?(f=a.pointers,v=n,j(v[0],v[1],W)/j(f[0],f[1],W)):1,e.rotation=a?function(t,e){return G(e[1],e[0],W)+G(t[1],t[0],W)}(a.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,function(t,e){var i,n,s,o,a=t.lastInterval||e,h=e.timeStamp-a.timeStamp;if(8!=e.eventType&&(h>25||a.velocity===r)){var c=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,p=U(h,c,l);n=p.x,s=p.y,i=u(p.x)>u(p.y)?p.x:p.y,o=V(c,l),t.lastInterval=e}else i=a.velocity,n=a.velocityX,s=a.velocityY,o=a.direction;e.velocity=i,e.velocityX=n,e.velocityY=s,e.direction=o}(i,e);var f,v;var d=t.element;_(e.srcEvent.target,d)&&(d=e.srcEvent.target);e.target=d}(t,i),t.emit(\"hammer.input\",i),t.recognize(i),t.session.prevInput=i}function H(t){for(var e=[],i=0;i=u(e)?t<0?2:4:e<0?8:16}function j(t,e,i){i||(i=F);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return Math.sqrt(n*n+r*r)}function G(t,e,i){i||(i=F);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return 180*Math.atan2(r,n)/Math.PI}q.prototype={handler:function(){},init:function(){this.evEl&&I(this.element,this.evEl,this.domHandler),this.evTarget&&I(this.target,this.evTarget,this.domHandler),this.evWin&&I(O(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&A(this.element,this.evEl,this.domHandler),this.evTarget&&A(this.target,this.evTarget,this.domHandler),this.evWin&&A(O(this.element),this.evWin,this.domHandler)}};var Z={mousedown:1,mousemove:2,mouseup:4},B=\"mousedown\",$=\"mousemove mouseup\";function J(){this.evEl=B,this.evWin=$,this.pressed=!1,q.apply(this,arguments)}g(J,q,{handler:function(t){var e=Z[t.type];1&e&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:X,srcEvent:t}))}});var K={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},Q={2:N,3:\"pen\",4:X,5:\"kinect\"},tt=\"pointerdown\",et=\"pointermove pointerup pointercancel\";function it(){this.evEl=tt,this.evWin=et,q.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}t.MSPointerEvent&&!t.PointerEvent&&(tt=\"MSPointerDown\",et=\"MSPointerMove MSPointerUp MSPointerCancel\"),g(it,q,{handler:function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace(\"ms\",\"\"),r=K[n],s=Q[t.pointerType]||t.pointerType,o=s==N,a=b(e,t.pointerId,\"pointerId\");1&r&&(0===t.button||o)?a<0&&(e.push(t),a=e.length-1):12&r&&(i=!0),a<0||(e[a]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var nt={touchstart:1,touchmove:2,touchend:4,touchcancel:8},rt=\"touchstart\",st=\"touchstart touchmove touchend touchcancel\";function ot(){this.evTarget=rt,this.evWin=st,this.started=!1,q.apply(this,arguments)}function at(t,e){var i=P(t.touches),n=P(t.changedTouches);return 12&e&&(i=D(i.concat(n),\"identifier\",!0)),[i,n]}g(ot,q,{handler:function(t){var e=nt[t.type];if(1===e&&(this.started=!0),this.started){var i=at.call(this,t,e);12&e&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:N,srcEvent:t})}}});var ht={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ut=\"touchstart touchmove touchend touchcancel\";function ct(){this.evTarget=ut,this.targetIds={},q.apply(this,arguments)}function lt(t,e){var i=P(t.touches),n=this.targetIds;if(3&e&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,s,o=P(t.changedTouches),a=[],h=this.target;if(s=i.filter((function(t){return _(t.target,h)})),1===e)for(r=0;r-1&&n.splice(t,1)}),2500)}}function dt(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,i=this.state;function n(i){e.manager.emit(i,t)}i<8&&n(e.options.event+Dt(i)),n(e.options.event),t.additionalEvent&&n(t.additionalEvent),i>=8&&n(e.options.event+Dt(i))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=bt},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return Ot.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=xt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),g(Mt,Ot,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[It]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||2&this.state)},emit:function(t){if(1!==t.scale){var e=t.scale<1?\"in\":\"out\";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),g(zt,Pt,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[yt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||12&t.eventType&&!r)this.reset();else if(1&t.eventType)this.reset(),this._timer=l((function(){this.state=8,this.tryEmit()}),e.time,this);else if(4&t.eventType)return 8;return bt},reset:function(){clearTimeout(this._timer)},emit:function(t){8===this.state&&(t&&4&t.eventType?this.manager.emit(this.options.event+\"up\",t):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),g(Nt,Ot,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[It]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||2&this.state)}}),g(Xt,Ot,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Rt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return 30&i?e=t.overallVelocity:6&i?e=t.overallVelocityX:i&Y&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&u(e)>this.options.velocity&&4&t.eventType},emit:function(t){var e=xt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),g(Yt,Pt,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Et]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance .bk-divider{cursor:default;overflow:hidden;background-color:#e5e5e5;}.bk-root .bk-context-menu.bk-horizontal > .bk-divider{width:1px;margin:5px 0;}.bk-root .bk-context-menu.bk-vertical > .bk-divider{height:1px;margin:0 5px;}.bk-root .bk-context-menu > :not(.bk-divider){border:1px solid transparent;}.bk-root .bk-context-menu > :not(.bk-divider).bk-active{border-color:#26aae1;}.bk-root .bk-context-menu > :not(.bk-divider):hover{background-color:#f9f9f9;}.bk-root .bk-context-menu > :not(.bk-divider):focus,.bk-root .bk-context-menu > :not(.bk-divider):focus-visible{outline:1px dotted #26aae1;outline-offset:-1px;}.bk-root .bk-context-menu > :not(.bk-divider)::-moz-focus-inner{border:0;}.bk-root .bk-context-menu.bk-horizontal > :not(.bk-divider):first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;}.bk-root .bk-context-menu.bk-horizontal > :not(.bk-divider):last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;}.bk-root .bk-context-menu.bk-vertical > :not(.bk-divider):first-child{border-top-left-radius:4px;border-top-right-radius:4px;}.bk-root .bk-context-menu.bk-vertical > :not(.bk-divider):last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;}.bk-root .bk-menu{position:absolute;left:0;width:100%;z-index:100;cursor:pointer;font-size:12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);}.bk-root .bk-menu.bk-above{bottom:100%;}.bk-root .bk-menu.bk-below{top:100%;}.bk-root .bk-menu > .bk-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5;}.bk-root .bk-menu > :not(.bk-divider){padding:6px 12px;}.bk-root .bk-menu > :not(.bk-divider):hover,.bk-root .bk-menu > :not(.bk-divider).bk-active{background-color:#e6e6e6;}.bk-root .bk-caret{display:inline-block;vertical-align:middle;width:0;height:0;margin:0 5px;}.bk-root .bk-caret.bk-down{border-top:4px solid;}.bk-root .bk-caret.bk-up{border-bottom:4px solid;}.bk-root .bk-caret.bk-down,.bk-root .bk-caret.bk-up{border-right:4px solid transparent;border-left:4px solid transparent;}.bk-root .bk-caret.bk-left{border-right:4px solid;}.bk-root .bk-caret.bk-right{border-left:4px solid;}.bk-root .bk-caret.bk-left,.bk-root .bk-caret.bk-right{border-top:4px solid transparent;border-bottom:4px solid transparent;}\"},\n function _(t,e,i,n,o){n();const s=t(1),l=t(43),h=t(9),r=(0,s.__importStar)(t(229));class d{constructor(t,e={}){var i,n;this.items=t,this.el=(0,l.div)(),this._open=!1,this._item_click=t=>{var e;null===(e=t.handler)||void 0===e||e.call(t),this.hide()},this._on_mousedown=t=>{var e;const{target:i}=t;i instanceof Node&&this.el.contains(i)||(null===(e=this.prevent_hide)||void 0===e?void 0:e.call(this,t))||this.hide()},this._on_keydown=t=>{t.keyCode==l.Keys.Esc&&this.hide()},this._on_blur=()=>{this.hide()},this.orientation=null!==(i=e.orientation)&&void 0!==i?i:\"vertical\",this.reversed=null!==(n=e.reversed)&&void 0!==n&&n,this.prevent_hide=e.prevent_hide,(0,l.undisplay)(this.el)}get is_open(){return this._open}get can_open(){return 0!=this.items.length}remove(){(0,l.remove)(this.el),this._unlisten()}_listen(){document.addEventListener(\"mousedown\",this._on_mousedown),document.addEventListener(\"keydown\",this._on_keydown),window.addEventListener(\"blur\",this._on_blur)}_unlisten(){document.removeEventListener(\"mousedown\",this._on_mousedown),document.removeEventListener(\"keydown\",this._on_keydown),window.removeEventListener(\"blur\",this._on_blur)}_position(t){const e=this.el.parentElement;if(null!=e){const i=(()=>{if(\"left_of\"in t){const{left:e,top:i}=t.left_of.getBoundingClientRect();return{right:e,top:i}}if(\"right_of\"in t){const{top:e,right:i}=t.right_of.getBoundingClientRect();return{left:i,top:e}}if(\"below\"in t){const{left:e,bottom:i}=t.below.getBoundingClientRect();return{left:e,top:i}}if(\"above\"in t){const{left:e,top:i}=t.above.getBoundingClientRect();return{left:e,bottom:i}}return t})(),n=e.getBoundingClientRect();this.el.style.left=null!=i.left?i.left-n.left+\"px\":\"\",this.el.style.top=null!=i.top?i.top-n.top+\"px\":\"\",this.el.style.right=null!=i.right?n.right-i.right+\"px\":\"\",this.el.style.bottom=null!=i.bottom?n.bottom-i.bottom+\"px\":\"\"}}render(){var t;(0,l.empty)(this.el,!0),(0,l.classes)(this.el).add(\"bk-context-menu\",`bk-${this.orientation}`);const e=this.reversed?(0,h.reversed)(this.items):this.items;for(const i of e){let e;if(null==i)e=(0,l.div)({class:r.divider});else{if(null!=i.if&&!i.if())continue;if(null!=i.content)e=i.content;else{const n=null!=i.icon?(0,l.div)({class:[\"bk-menu-icon\",i.icon]}):null,o=[(null===(t=i.active)||void 0===t?void 0:t.call(i))?\"bk-active\":null,i.class];e=(0,l.div)({class:o,title:i.tooltip,tabIndex:0},n,i.label,i.content),e.addEventListener(\"click\",(()=>{this._item_click(i)})),e.addEventListener(\"keydown\",(t=>{t.keyCode==l.Keys.Enter&&this._item_click(i)}))}}this.el.appendChild(e)}}show(t){if(0!=this.items.length&&!this._open){if(this.render(),0==this.el.children.length)return;this._position(null!=t?t:{left:0,top:0}),(0,l.display)(this.el),this._listen(),this._open=!0}}hide(){this._open&&(this._open=!1,this._unlisten(),(0,l.undisplay)(this.el))}toggle(t){this._open?this.hide():this.show(t)}}i.ContextMenu=d,d.__name__=\"ContextMenu\"},\n function _(t,e,i,n,o){n();const s=t(1),c=t(224),l=(0,s.__importStar)(t(227)),a=t(43);class _ extends c.ButtonToolButtonView{render(){super.render(),(0,a.classes)(this.el).toggle(l.active,this.model.active)}_clicked(){const{active:t}=this.model;this.model.active=!t}}i.OnOffButtonView=_,_.__name__=\"OnOffButtonView\"},\n function _(e,o,t,n,s){var c;n();const l=e(224),_=e(231);class i extends l.ButtonToolView{}t.InspectToolView=i,i.__name__=\"InspectToolView\";class a extends l.ButtonTool{constructor(e){super(e),this.event_type=\"move\"}}t.InspectTool=a,c=a,a.__name__=\"InspectTool\",c.prototype.button_view=_.OnOffButtonView,c.define((({Boolean:e})=>({toggleable:[e,!0]}))),c.override({active:!0})},\n function _(t,o,e,l,i){l();const s=t(1);var n,a;const r=t(19),c=t(43),h=t(113),_=t(226),u=t(20),v=t(9),d=t(234),p=t(13),b=t(8),g=t(235),f=t(65),m=t(53),w=t(222),y=t(223),T=t(238),z=t(239),x=t(232),B=t(230),C=(0,s.__importStar)(t(227)),k=C,L=(0,s.__importStar)(t(240)),M=L;class S extends m.Model{constructor(t){super(t)}get visible(){var t;return!this.autohide||null!==(t=this._visible)&&void 0!==t&&t}}e.ToolbarViewModel=S,n=S,S.__name__=\"ToolbarViewModel\",n.define((({Boolean:t})=>({autohide:[t,!1]}))),n.internal((({Boolean:t,Nullable:o})=>({_visible:[o(t),null]})));class $ extends _.DOMView{constructor(){super(...arguments),this.layout={bbox:new f.BBox}}initialize(){super.initialize(),this._tool_button_views=new Map,this._toolbar_view_model=new S({autohide:this.model.autohide});const{toolbar_location:t}=this.model,o=\"left\"==t||\"above\"==t,e=this.model.horizontal?\"vertical\":\"horizontal\";this._overflow_menu=new B.ContextMenu([],{orientation:e,reversed:o})}async lazy_initialize(){await super.lazy_initialize(),await this._build_tool_button_views()}connect_signals(){super.connect_signals(),this.connect(this.model.properties.tools.change,(async()=>{await this._build_tool_button_views(),this.render()})),this.connect(this.model.properties.autohide.change,(()=>{this._toolbar_view_model.autohide=this.model.autohide,this._on_visible_change()})),this.connect(this._toolbar_view_model.properties._visible.change,(()=>this._on_visible_change()))}styles(){return[...super.styles(),C.default,L.default]}remove(){(0,h.remove_views)(this._tool_button_views),super.remove()}async _build_tool_button_views(){const t=null!=this.model._proxied_tools?this.model._proxied_tools:this.model.tools;await(0,h.build_views)(this._tool_button_views,t,{parent:this},(t=>t.button_view))}set_visibility(t){t!=this._toolbar_view_model._visible&&(this._toolbar_view_model._visible=t)}_on_visible_change(){const{visible:t}=this._toolbar_view_model;(0,c.classes)(this.el).toggle(k.toolbar_hidden,!t)}render(){(0,c.empty)(this.el),this.el.classList.add(k.toolbar),this.el.classList.add(k[this.model.toolbar_location]),this._toolbar_view_model.autohide=this.model.autohide,this._on_visible_change();const{horizontal:t}=this.model;let o=0;if(null!=this.model.logo){const e=\"grey\"===this.model.logo?M.grey:null,l=(0,c.a)({href:\"https://bokeh.org/\",target:\"_blank\",class:[M.logo,M.logo_small,e]});this.el.appendChild(l);const{width:i,height:s}=l.getBoundingClientRect();o+=t?i:s}for(const[,t]of this._tool_button_views)t.render();const e=[],l=t=>this._tool_button_views.get(t).el,{gestures:i}=this.model;for(const t of(0,p.values)(i))e.push(t.tools.map(l));e.push(this.model.actions.map(l)),e.push(this.model.inspectors.filter((t=>t.toggleable)).map(l));const s=e.filter((t=>0!=t.length)),n=()=>(0,c.div)({class:k.divider}),{bbox:a}=this.layout;let r=!1;this.root.el.appendChild(this._overflow_menu.el);const h=(0,c.div)({class:k.tool_overflow,tabIndex:0},t?\"\\u22ee\":\"\\u22ef\"),_=()=>{const t=(()=>{switch(this.model.toolbar_location){case\"right\":return{left_of:h};case\"left\":return{right_of:h};case\"above\":return{below:h};case\"below\":return{above:h}}})();this._overflow_menu.toggle(t)};h.addEventListener(\"click\",(()=>{_()})),h.addEventListener(\"keydown\",(t=>{t.keyCode==c.Keys.Enter&&_()}));for(const e of(0,d.join)(s,n))if(r)this._overflow_menu.items.push({content:e,class:t?k.right:k.above});else{this.el.appendChild(e);const{width:l,height:i}=e.getBoundingClientRect();if(o+=t?l:i,r=t?o>a.width-15:o>a.height-15,r){this.el.removeChild(e),this.el.appendChild(h);const{items:t}=this._overflow_menu;t.splice(0,t.length),t.push({content:e})}}}update_layout(){}update_position(){}after_layout(){this._has_finished=!0}export(t,o=!0){const e=\"png\"==t?\"canvas\":\"svg\",l=new g.CanvasLayer(e,o);return l.resize(0,0),l}}function V(){return{pan:{tools:[],active:null},scroll:{tools:[],active:null},pinch:{tools:[],active:null},tap:{tools:[],active:null},doubletap:{tools:[],active:null},press:{tools:[],active:null},pressup:{tools:[],active:null},rotate:{tools:[],active:null},move:{tools:[],active:null},multi:{tools:[],active:null}}}e.ToolbarBaseView=$,$.__name__=\"ToolbarBaseView\";class A extends m.Model{constructor(t){super(t)}initialize(){super.initialize(),this._init_tools()}_init_tools(){const t=function(t,o){if(t.length!=o.length)return!0;const e=new Set(o.map((t=>t.id)));return(0,v.some)(t,(t=>!e.has(t.id)))},o=this.tools.filter((t=>t instanceof x.InspectTool));t(this.inspectors,o)&&(this.inspectors=o);const e=this.tools.filter((t=>t instanceof z.HelpTool));t(this.help,e)&&(this.help=e);const l=this.tools.filter((t=>t instanceof T.ActionTool));t(this.actions,l)&&(this.actions=l);const i=(t,o)=>{t in this.gestures||r.logger.warn(`Toolbar: unknown event type '${t}' for tool: ${o}`)},s={pan:{tools:[],active:null},scroll:{tools:[],active:null},pinch:{tools:[],active:null},tap:{tools:[],active:null},doubletap:{tools:[],active:null},press:{tools:[],active:null},pressup:{tools:[],active:null},rotate:{tools:[],active:null},move:{tools:[],active:null},multi:{tools:[],active:null}};for(const t of this.tools)if(t instanceof y.GestureTool&&t.event_type)if((0,b.isString)(t.event_type))s[t.event_type].tools.push(t),i(t.event_type,t);else{s.multi.tools.push(t);for(const o of t.event_type)i(o,t)}for(const o of Object.keys(s)){const e=this.gestures[o];t(e.tools,s[o].tools)&&(e.tools=s[o].tools),e.active&&(0,v.every)(e.tools,(t=>t.id!=e.active.id))&&(e.active=null)}}get horizontal(){return\"above\"===this.toolbar_location||\"below\"===this.toolbar_location}get vertical(){return\"left\"===this.toolbar_location||\"right\"===this.toolbar_location}_active_change(t){const{event_type:o}=t;if(null==o)return;const e=(0,b.isString)(o)?[o]:o;for(const o of e)if(t.active){const e=this.gestures[o].active;null!=e&&t!=e&&(r.logger.debug(`Toolbar: deactivating tool: ${e} for event type '${o}'`),e.active=!1),this.gestures[o].active=t,r.logger.debug(`Toolbar: activating tool: ${t} for event type '${o}'`)}else this.gestures[o].active=null}}e.ToolbarBase=A,a=A,A.__name__=\"ToolbarBase\",a.prototype.default_view=$,a.define((({Boolean:t,Array:o,Ref:e,Nullable:l})=>({tools:[o(e(w.Tool)),[]],logo:[l(u.Logo),\"normal\"],autohide:[t,!1]}))),a.internal((({Array:t,Struct:o,Ref:e,Nullable:l})=>{const i=o({tools:t(e(y.GestureTool)),active:l(e(w.Tool))});return{gestures:[o({pan:i,scroll:i,pinch:i,tap:i,doubletap:i,press:i,pressup:i,rotate:i,move:i,multi:i}),V],actions:[t(e(T.ActionTool)),[]],inspectors:[t(e(x.InspectTool)),[]],help:[t(e(z.HelpTool)),[]],toolbar_location:[u.Location,\"right\"]}}))},\n function _(n,o,e,t,f){t();const r=n(9);function*i(n,o){const e=n.length;if(o>e)return;const t=(0,r.range)(o);for(yield t.map((o=>n[o]));;){let f;for(const n of(0,r.reversed)((0,r.range)(o)))if(t[n]!=n+e-o){f=n;break}if(null==f)return;t[f]+=1;for(const n of(0,r.range)(f+1,o))t[n]=t[n-1]+1;yield t.map((o=>n[o]))}}e.enumerate=function*(n){let o=0;for(const e of n)yield[e,o++]},e.join=function*(n,o){let e=!0;for(const t of n)e?e=!1:null!=o&&(yield o()),yield*t},e.combinations=i,e.subsets=function*(n){for(const o of(0,r.range)(n.length+1))yield*i(n,o)}},\n function _(t,e,s,i,n){i();const o=t(236),a=t(65),r=t(43);function h(t){!function(t){void 0===t.lineDash&&Object.defineProperty(t,\"lineDash\",{get:()=>t.getLineDash(),set:e=>t.setLineDash(e)})}(t),function(t){t.setImageSmoothingEnabled=e=>{t.imageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.oImageSmoothingEnabled=e,t.webkitImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e},t.getImageSmoothingEnabled=()=>{const e=t.imageSmoothingEnabled;return null==e||e}}(t),function(t){t.ellipse||(t.ellipse=function(e,s,i,n,o,a,r,h=!1){const l=.551784;t.translate(e,s),t.rotate(o);let c=i,g=n;h&&(c=-i,g=-n),t.moveTo(-c,0),t.bezierCurveTo(-c,g*l,-c*l,g,0,g),t.bezierCurveTo(c*l,g,c,g*l,c,0),t.bezierCurveTo(c,-g*l,c*l,-g,0,-g),t.bezierCurveTo(-c*l,-g,-c,-g*l,-c,0),t.rotate(-o),t.translate(-e,-s)})}(t)}const l={position:\"absolute\",top:\"0\",left:\"0\",width:\"100%\",height:\"100%\"};class c{constructor(t,e){switch(this.backend=t,this.hidpi=e,this.pixel_ratio=1,this.bbox=new a.BBox,t){case\"webgl\":case\"canvas\":{this._el=this._canvas=(0,r.canvas)({style:l});const t=this.canvas.getContext(\"2d\");if(null==t)throw new Error(\"unable to obtain 2D rendering context\");this._ctx=t,e&&(this.pixel_ratio=devicePixelRatio);break}case\"svg\":{const t=new o.SVGRenderingContext2D;this._ctx=t,this._canvas=t.get_svg(),this._el=(0,r.div)({style:l},this._canvas);break}}this._ctx.layer=this,h(this._ctx)}get canvas(){return this._canvas}get ctx(){return this._ctx}get el(){return this._el}resize(t,e){this.bbox=new a.BBox({left:0,top:0,width:t,height:e});const s=this._ctx instanceof o.SVGRenderingContext2D?this._ctx:this.canvas;s.width=t*this.pixel_ratio,s.height=e*this.pixel_ratio}undo_transform(t){const{ctx:e}=this;if(void 0===e.getTransform)t(e);else{const s=e.getTransform();e.setTransform(this._base_transform);try{t(e)}finally{e.setTransform(s)}}}prepare(){const{ctx:t,hidpi:e,pixel_ratio:s}=this;t.save(),e&&(t.scale(s,s),t.translate(.5,.5)),void 0!==t.getTransform&&(this._base_transform=t.getTransform()),this.clear()}clear(){const{x:t,y:e,width:s,height:i}=this.bbox;this.ctx.clearRect(t,e,s,i)}finish(){this.ctx.restore()}to_blob(){const{_canvas:t}=this;if(t instanceof HTMLCanvasElement)return null!=t.msToBlob?Promise.resolve(t.msToBlob()):new Promise(((e,s)=>{t.toBlob((t=>null!=t?e(t):s()),\"image/png\")}));{const t=this._ctx.get_serialized_svg(!0),e=new Blob([t],{type:\"image/svg+xml\"});return Promise.resolve(e)}}}s.CanvasLayer=c,c.__name__=\"CanvasLayer\"},\n function _(t,e,i,s,r){s();const n=t(122),a=t(8),o=t(237),l=t(10),h=t(43);function _(t){var e;const i={left:\"start\",right:\"end\",center:\"middle\",start:\"start\",end:\"end\"};return null!==(e=i[t])&&void 0!==e?e:i.start}function c(t){var e;const i={alphabetic:\"alphabetic\",hanging:\"hanging\",top:\"text-before-edge\",bottom:\"text-after-edge\",middle:\"central\"};return null!==(e=i[t])&&void 0!==e?e:i.alphabetic}const p=function(t,e){const i=new Map,s=t.split(\",\");e=null!=e?e:10;for(let t=0;t=0?Math.acos(e):-Math.acos(e)}const v=b(f),A=b(g);this.lineTo(d+f[0]*r,m+f[1]*r),this.arc(d,m,r,v,A)}stroke(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"fill\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"stroke\"),null!=this._clip_path&&this.__currentElement.setAttribute(\"clip-path\",this._clip_path)}fill(t,e){let i=null;if(t instanceof Path2D)i=t;else{if(\"evenodd\"!=t&&\"nonzero\"!=t&&null!=t||null!=e)throw new Error(\"invalid arguments\");e=t}if(null!=i)throw new Error(\"not implemented\");\"none\"!=this.__currentElement.getAttribute(\"fill\")&&this.__init_element(),\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"stroke\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"fill\"),null!=e&&this.__currentElement.setAttribute(\"fill-rule\",e),null!=this._clip_path&&this.__currentElement.setAttribute(\"clip-path\",this._clip_path)}rect(t,e,i,s){isFinite(t+e+i+s)&&(this.moveTo(t,e),this.lineTo(t+i,e),this.lineTo(t+i,e+s),this.lineTo(t,e+s),this.lineTo(t,e))}fillRect(t,e,i,s){isFinite(t+e+i+s)&&(this.beginPath(),this.rect(t,e,i,s),this.fill())}strokeRect(t,e,i,s){isFinite(t+e+i+s)&&(this.beginPath(),this.rect(t,e,i,s),this.stroke())}__clearCanvas(){(0,h.empty)(this.__defs),(0,h.empty)(this.__root),this.__root.appendChild(this.__defs),this.__currentElement=this.__root}clearRect(t,e,i,s){if(!isFinite(t+e+i+s))return;if(0===t&&0===e&&i===this.width&&s===this.height)return void this.__clearCanvas();const r=this.__createElement(\"rect\",{x:t,y:e,width:i,height:s,fill:\"#FFFFFF\"},!0);this._apply_transform(r),this.__root.appendChild(r)}createLinearGradient(t,e,i,s){if(!isFinite(t+e+i+s))throw new Error(\"The provided double value is non-finite\");const[r,n]=this._transform.apply(t,e),[a,o]=this._transform.apply(i,s),l=this.__createElement(\"linearGradient\",{id:this._random_string(),x1:`${r}px`,x2:`${a}px`,y1:`${n}px`,y2:`${o}px`,gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(l),new d(l,this)}createRadialGradient(t,e,i,s,r,n){if(!isFinite(t+e+i+s+r+n))throw new Error(\"The provided double value is non-finite\");const[a,o]=this._transform.apply(t,e),[l,h]=this._transform.apply(s,r),_=this.__createElement(\"radialGradient\",{id:this._random_string(),cx:`${l}px`,cy:`${h}px`,r:`${n}px`,r0:`${i}px`,fx:`${a}px`,fy:`${o}px`,gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(_),new d(_,this)}__parseFont(){var t,e,i,s,r;const n=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-,\\'\\\"\\sa-z0-9]+?)\\s*$/i.exec(this.font);return{style:null!==(t=n[1])&&void 0!==t?t:\"normal\",size:null!==(e=n[4])&&void 0!==e?e:\"10px\",family:null!==(i=n[6])&&void 0!==i?i:\"sans-serif\",weight:null!==(s=n[3])&&void 0!==s?s:\"normal\",decoration:null!==(r=n[2])&&void 0!==r?r:\"normal\"}}__applyText(t,e,i,s){const r=this.__parseFont(),n=this.__createElement(\"text\",{\"font-family\":r.family,\"font-size\":r.size,\"font-style\":r.style,\"font-weight\":r.weight,\"text-decoration\":r.decoration,x:e,y:i,\"text-anchor\":_(this.textAlign),\"dominant-baseline\":c(this.textBaseline)},!0);n.appendChild(this.__document.createTextNode(t)),this._apply_transform(n),this.__currentElement=n,this.__applyStyleToCurrentElement(s);const a=(()=>{if(null!=this._clip_path){const t=this.__createElement(\"g\");return t.setAttribute(\"clip-path\",this._clip_path),t.appendChild(n),t}return n})();this.__root.appendChild(a)}fillText(t,e,i){null!=t&&isFinite(e+i)&&this.__applyText(t,e,i,\"fill\")}strokeText(t,e,i){null!=t&&isFinite(e+i)&&this.__applyText(t,e,i,\"stroke\")}measureText(t){return this.__ctx.font=this.font,this.__ctx.measureText(t)}arc(t,e,i,s,r,n=!1){this.ellipse(t,e,i,i,0,s,r,n)}ellipse(t,e,i,s,r,n,a,o=!1){if(!isFinite(t+e+i+s+r+n+a))return;if(i<0||s<0)throw new DOMException(\"IndexSizeError, radius can't be negative\");const h=o?a-n:n-a;n%=2*Math.PI,a%=2*Math.PI;const _=t+i*Math.cos(n),c=e+s*Math.sin(n);this.lineTo(_,c);const p=180*r/Math.PI,u=o?0:1;if(Math.abs(n-a)<2*l.float32_epsilon&&!(Math.abs(h)<2*l.float32_epsilon&&h<0)){const r=t+i*Math.cos(n+Math.PI),a=e+s*Math.sin(n+Math.PI),[o,l]=this._transform.apply(_,c),[h,d]=this._transform.apply(r,a);this.__addPathCommand(o,l,`A ${i} ${s} ${p} 0 ${u} ${h} ${d} A ${i} ${s} ${p} 0 ${u} ${o} ${l}`)}else{const r=t+i*Math.cos(a),l=e+s*Math.sin(a);let h=a-n;h<0&&(h+=2*Math.PI);const _=o!==h>Math.PI?1:0,[c,d]=this._transform.apply(r,l);this.__addPathCommand(c,d,`A ${i} ${s} ${p} ${_} ${u} ${c} ${d}`)}}clip(){const t=this.__createElement(\"clipPath\"),e=this._random_string();this.__applyCurrentDefaultPath(),t.setAttribute(\"id\",e),t.appendChild(this.__currentElement),this.__defs.appendChild(t),this._clip_path=`url(#${e})`}drawImage(t,...e){let i,s,r,n,a,o,l,h;if(2==e.length){if([i,s]=e,!isFinite(i+s))return;a=0,o=0,l=t.width,h=t.height,r=l,n=h}else if(4==e.length){if([i,s,r,n]=e,!isFinite(i+s+r+n))return;a=0,o=0,l=t.width,h=t.height}else{if(8!==e.length)throw new Error(`Inavlid number of arguments passed to drawImage: ${arguments.length}`);if([a,o,l,h,i,s,r,n]=e,!isFinite(a+o+l+h+i+s+r+n))return}const _=this.__root,c=this._transform.clone().translate(i,s);if(t instanceof f||t instanceof SVGSVGElement){const e=(t instanceof SVGSVGElement?t:t.get_svg()).cloneNode(!0);let i;c.is_identity&&1==this.globalAlpha&&null==this._clip_path?i=_:(i=this.__createElement(\"g\"),c.is_identity||this._apply_transform(i,c),1!=this.globalAlpha&&i.setAttribute(\"opacity\",`${this.globalAlpha}`),null!=this._clip_path&&i.setAttribute(\"clip-path\",this._clip_path),_.appendChild(i));for(const t of[...e.childNodes])if(t instanceof SVGDefsElement){for(const e of[...t.childNodes])if(e instanceof Element){const t=e.getAttribute(\"id\");this.__ids.add(t),this.__defs.appendChild(e.cloneNode(!0))}}else i.appendChild(t.cloneNode(!0))}else if(t instanceof HTMLImageElement||t instanceof SVGImageElement){const e=this.__createElement(\"image\");if(e.setAttribute(\"width\",`${r}`),e.setAttribute(\"height\",`${n}`),e.setAttribute(\"preserveAspectRatio\",\"none\"),1!=this.globalAlpha&&e.setAttribute(\"opacity\",`${this.globalAlpha}`),a||o||l!==t.width||h!==t.height){const e=this.__document.createElement(\"canvas\");e.width=r,e.height=n;e.getContext(\"2d\").drawImage(t,a,o,l,h,0,0,r,n),t=e}this._apply_transform(e,c);const i=t instanceof HTMLCanvasElement?t.toDataURL():t.getAttribute(\"src\");if(e.setAttribute(\"href\",i),null!=this._clip_path){const t=this.__createElement(\"g\");t.setAttribute(\"clip-path\",this._clip_path),t.appendChild(e),_.appendChild(t)}else _.appendChild(e)}else if(t instanceof HTMLCanvasElement){const e=this.__createElement(\"image\");e.setAttribute(\"width\",`${r}`),e.setAttribute(\"height\",`${n}`),e.setAttribute(\"preserveAspectRatio\",\"none\"),1!=this.globalAlpha&&e.setAttribute(\"opacity\",`${this.globalAlpha}`);const i=this.__document.createElement(\"canvas\");i.width=r,i.height=n;const s=i.getContext(\"2d\");if(s.imageSmoothingEnabled=!1,s.drawImage(t,a,o,l,h,0,0,r,n),t=i,this._apply_transform(e,c),e.setAttribute(\"href\",t.toDataURL()),null!=this._clip_path){const t=this.__createElement(\"g\");t.setAttribute(\"clip-path\",this._clip_path),t.appendChild(e),_.appendChild(t)}else _.appendChild(e)}}createPattern(t,e){const i=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"pattern\"),s=this._random_string();if(i.setAttribute(\"id\",s),i.setAttribute(\"width\",`${this._to_number(t.width)}`),i.setAttribute(\"height\",`${this._to_number(t.height)}`),i.setAttribute(\"patternUnits\",\"userSpaceOnUse\"),t instanceof HTMLCanvasElement||t instanceof HTMLImageElement||t instanceof SVGImageElement){const e=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\"),s=t instanceof HTMLCanvasElement?t.toDataURL():t.getAttribute(\"src\");e.setAttribute(\"href\",s),i.appendChild(e),this.__defs.appendChild(i)}else if(t instanceof f){for(const e of[...t.__root.childNodes])e instanceof SVGDefsElement||i.appendChild(e.cloneNode(!0));this.__defs.appendChild(i)}else{if(!(t instanceof SVGSVGElement))throw new Error(\"unsupported\");for(const e of[...t.childNodes])e instanceof SVGDefsElement||i.appendChild(e.cloneNode(!0));this.__defs.appendChild(i)}return new m(i,this)}getLineDash(){const{lineDash:t}=this;return(0,a.isString)(t)?t.split(\",\").map((t=>parseInt(t))):null==t?[]:t}setLineDash(t){t&&t.length>0?this.lineDash=t.join(\",\"):this.lineDash=null}_to_number(t){return(0,a.isNumber)(t)?t:t.baseVal.value}getTransform(){return this._transform.to_DOMMatrix()}setTransform(...t){let e;e=(0,a.isNumber)(t[0])?new DOMMatrix(t):t[0]instanceof DOMMatrix?t[0]:new DOMMatrix(Object.values(!t[0])),this._transform=n.AffineTransform.from_DOMMatrix(e)}resetTransform(){this._transform=new n.AffineTransform}isPointInPath(...t){throw new Error(\"not implemented\")}isPointInStroke(...t){throw new Error(\"not implemented\")}createImageData(...t){throw new Error(\"not implemented\")}getImageData(t,e,i,s){throw new Error(\"not implemented\")}putImageData(...t){throw new Error(\"not implemented\")}drawFocusIfNeeded(...t){throw new Error(\"not implemented\")}scrollPathIntoView(...t){throw new Error(\"not implemented\")}}i.SVGRenderingContext2D=f,f.__name__=\"SVGRenderingContext2D\",f.__random=o.random},\n function _(e,t,s,n,r){n();const o=2147483647;class i{constructor(e){this.seed=e%o,this.seed<=0&&(this.seed+=2147483646)}integer(){return this.seed=48271*this.seed%o,this.seed}float(){return(this.integer()-1)/2147483646}floats(e,t=0,s=1){const n=new Array(e);for(let r=0;rthis.doit(o)))}}n.ActionToolView=_,_.__name__=\"ActionToolView\";class d extends s.ButtonTool{constructor(o){super(o),this.button_view=l,this.do=new c.Signal(this,\"do\")}}n.ActionTool=d,d.__name__=\"ActionTool\"},\n function _(o,e,t,l,i){var s;l();const n=o(238),r=o(228);class c extends n.ActionToolView{doit(){window.open(this.model.redirect)}}t.HelpToolView=c,c.__name__=\"HelpToolView\";class _ extends n.ActionTool{constructor(o){super(o),this.tool_name=\"Help\",this.icon=r.tool_icon_help}}t.HelpTool=_,s=_,_.__name__=\"HelpTool\",s.prototype.default_view=c,s.define((({String:o})=>({redirect:[o,\"https://docs.bokeh.org/en/latest/docs/user_guide/tools.html\"]}))),s.override({description:\"Click the question mark to learn more about Bokeh plot tools.\"}),s.register_alias(\"help\",(()=>new _))},\n function _(o,l,g,A,r){A(),g.root=\"bk-root\",g.logo=\"bk-logo\",g.grey=\"bk-grey\",g.logo_small=\"bk-logo-small\",g.logo_notebook=\"bk-logo-notebook\",g.default=\".bk-root .bk-logo{margin:5px;position:relative;display:block;background-repeat:no-repeat;}.bk-root .bk-logo.bk-grey{filter:url(\\\"data:image/svg+xml;utf8,#grayscale\\\");filter:gray;-webkit-filter:grayscale(100%);}.bk-root .bk-logo-small{width:20px;height:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAOkSURBVDiNjZRtaJVlGMd/1/08zzln5zjP1LWcU9N0NkN8m2CYjpgQYQXqSs0I84OLIC0hkEKoPtiH3gmKoiJDU7QpLgoLjLIQCpEsNJ1vqUOdO7ppbuec5+V+rj4ctwzd8IIbbi6u+8f1539dt3A78eXC7QizUF7gyV1fD1Yqg4JWz84yffhm0qkFqBogB9rM8tZdtwVsPUhWhGcFJngGeWrPzHm5oaMmkfEg1usvLFyc8jLRqDOMru7AyC8saQr7GG7f5fvDeH7Ej8CM66nIF+8yngt6HWaKh7k49Soy9nXurCi1o3qUbS3zWfrYeQDTB/Qj6kX6Ybhw4B+bOYoLKCC9H3Nu/leUTZ1JdRWkkn2ldcCamzrcf47KKXdAJllSlxAOkRgyHsGC/zRday5Qld9DyoM4/q/rUoy/CXh3jzOu3bHUVZeU+DEn8FInkPBFlu3+nW3Nw0mk6vCDiWg8CeJaxEwuHS3+z5RgY+YBR6V1Z1nxSOfoaPa4LASWxxdNp+VWTk7+4vzaou8v8PN+xo+KY2xsw6une2frhw05CTYOmQvsEhjhWjn0bmXPjpE1+kplmmkP3suftwTubK9Vq22qKmrBhpY4jvd5afdRA3wGjFAgcnTK2s4hY0/GPNIb0nErGMCRxWOOX64Z8RAC4oCXdklmEvcL8o0BfkNK4lUg9HTl+oPlQxdNo3Mg4Nv175e/1LDGzZen30MEjRUtmXSfiTVu1kK8W4txyV6BMKlbgk3lMwYCiusNy9fVfvvwMxv8Ynl6vxoByANLTWplvuj/nF9m2+PDtt1eiHPBr1oIfhCChQMBw6Aw0UulqTKZdfVvfG7VcfIqLG9bcldL/+pdWTLxLUy8Qq38heUIjh4XlzZxzQm19lLFlr8vdQ97rjZVOLf8nclzckbcD4wxXMidpX30sFd37Fv/GtwwhzhxGVAprjbg0gCAEeIgwCZyTV2Z1REEW8O4py0wsjeloKoMr6iCY6dP92H6Vw/oTyICIthibxjm/DfN9lVz8IqtqKYLUXfoKVMVQVVJOElGjrnnUt9T9wbgp8AyYKaGlqingHZU/uG2NTZSVqwHQTWkx9hxjkpWDaCg6Ckj5qebgBVbT3V3NNXMSiWSDdGV3hrtzla7J+duwPOToIg42ChPQOQjspnSlp1V+Gjdged7+8UN5CRAV7a5EdFNwCjEaBR27b3W890TE7g24NAP/mMDXRWrGoFPQI9ls/MWO2dWFAar/xcOIImbbpA3zgAAAABJRU5ErkJggg==);}.bk-root .bk-logo-notebook{display:inline-block;vertical-align:middle;margin-right:5px;}\"},\n function _(e,t,s,i,l){i();const o=e(1);var n;const a=e(40),h=e(20),r=e(43),c=(0,o.__importStar)(e(242)),d=c;class p extends a.AnnotationView{initialize(){super.initialize(),this.el=(0,r.div)({class:d.tooltip}),(0,r.undisplay)(this.el),this.plot_view.canvas_view.add_overlay(this.el)}remove(){(0,r.remove)(this.el),super.remove()}connect_signals(){super.connect_signals(),this.connect(this.model.properties.content.change,(()=>this.render())),this.connect(this.model.properties.position.change,(()=>this._reposition()))}styles(){return[...super.styles(),c.default]}render(){this.model.visible||(0,r.undisplay)(this.el),super.render()}_render(){const{content:e}=this.model;null!=e?((0,r.empty)(this.el),(0,r.classes)(this.el).toggle(\"bk-tooltip-custom\",this.model.custom),this.el.appendChild(e),this.model.show_arrow&&this.el.classList.add(d.tooltip_arrow)):(0,r.undisplay)(this.el)}_reposition(){const{position:e}=this.model;if(null==e)return void(0,r.undisplay)(this.el);const[t,s]=e,i=(()=>{const e=this.parent.layout.bbox.relative(),{attachment:i}=this.model;switch(i){case\"horizontal\":return t({attachment:[h.TooltipAttachment,\"horizontal\"],inner_only:[e,!0],show_arrow:[e,!0]}))),n.internal((({Boolean:e,Number:t,Tuple:s,Ref:i,Nullable:l})=>({position:[l(s(t,t)),null],content:[i(HTMLElement),()=>(0,r.div)()],custom:[e]}))),n.override({level:\"overlay\"})},\n function _(o,t,r,e,l){e(),r.root=\"bk-root\",r.tooltip=\"bk-tooltip\",r.left=\"bk-left\",r.tooltip_arrow=\"bk-tooltip-arrow\",r.right=\"bk-right\",r.above=\"bk-above\",r.below=\"bk-below\",r.tooltip_row_label=\"bk-tooltip-row-label\",r.tooltip_row_value=\"bk-tooltip-row-value\",r.tooltip_color_block=\"bk-tooltip-color-block\",r.default='.bk-root{}.bk-root .bk-tooltip{font-weight:300;font-size:12px;position:absolute;padding:5px;border:1px solid #e5e5e5;color:#2f2f2f;background-color:white;pointer-events:none;opacity:0.95;z-index:100;}.bk-root .bk-tooltip > div:not(:first-child){margin-top:5px;border-top:#e5e5e5 1px dashed;}.bk-root .bk-tooltip.bk-left.bk-tooltip-arrow::before{position:absolute;margin:-7px 0 0 0;top:50%;width:0;height:0;border-style:solid;border-width:7px 0 7px 0;border-color:transparent;content:\" \";display:block;left:-10px;border-right-width:10px;border-right-color:#909599;}.bk-root .bk-tooltip.bk-left::before{left:-10px;border-right-width:10px;border-right-color:#909599;}.bk-root .bk-tooltip.bk-right.bk-tooltip-arrow::after{position:absolute;margin:-7px 0 0 0;top:50%;width:0;height:0;border-style:solid;border-width:7px 0 7px 0;border-color:transparent;content:\" \";display:block;right:-10px;border-left-width:10px;border-left-color:#909599;}.bk-root .bk-tooltip.bk-right::after{right:-10px;border-left-width:10px;border-left-color:#909599;}.bk-root .bk-tooltip.bk-above::before{position:absolute;margin:0 0 0 -7px;left:50%;width:0;height:0;border-style:solid;border-width:0 7px 0 7px;border-color:transparent;content:\" \";display:block;top:-10px;border-bottom-width:10px;border-bottom-color:#909599;}.bk-root .bk-tooltip.bk-below::after{position:absolute;margin:0 0 0 -7px;left:50%;width:0;height:0;border-style:solid;border-width:0 7px 0 7px;border-color:transparent;content:\" \";display:block;bottom:-10px;border-top-width:10px;border-top-color:#909599;}.bk-root .bk-tooltip-row-label{text-align:right;color:#26aae1;}.bk-root .bk-tooltip-row-value{color:default;}.bk-root .bk-tooltip-color-block{width:12px;height:12px;margin-left:5px;margin-right:5px;outline:#dddddd solid 1px;display:inline-block;}'},\n function _(e,t,s,i,r){var a;i();const l=e(115),_=e(112),h=e(113),o=e(48);class n extends l.UpperLowerView{async lazy_initialize(){await super.lazy_initialize();const{lower_head:e,upper_head:t}=this.model;null!=e&&(this.lower_head=await(0,h.build_view)(e,{parent:this})),null!=t&&(this.upper_head=await(0,h.build_view)(t,{parent:this}))}set_data(e){var t,s;super.set_data(e),null===(t=this.lower_head)||void 0===t||t.set_data(e),null===(s=this.upper_head)||void 0===s||s.set_data(e)}paint(e){if(this.visuals.line.doit)for(let t=0,s=this._lower_sx.length;t({lower_head:[t(e(_.ArrowHead)),()=>new _.TeeHead({size:10})],upper_head:[t(e(_.ArrowHead)),()=>new _.TeeHead({size:10})]}))),a.override({level:\"underlay\"})},\n function _(n,o,t,u,e){u(),e(\"CustomJS\",n(245).CustomJS),e(\"OpenURL\",n(247).OpenURL)},\n function _(t,e,s,n,c){var a;n();const r=t(246),u=t(13),o=t(34);class i extends r.Callback{constructor(t){super(t)}get names(){return(0,u.keys)(this.args)}get values(){return(0,u.values)(this.args)}get func(){const t=(0,o.use_strict)(this.code);return new Function(...this.names,\"cb_obj\",\"cb_data\",t)}execute(t,e={}){return this.func.apply(t,this.values.concat(t,e))}}s.CustomJS=i,a=i,i.__name__=\"CustomJS\",a.define((({Unknown:t,String:e,Dict:s})=>({args:[s(t),{}],code:[e,\"\"]})))},\n function _(c,a,l,n,s){n();const e=c(53);class o extends e.Model{constructor(c){super(c)}}l.Callback=o,o.__name__=\"Callback\"},\n function _(e,t,n,o,i){var s;o();const c=e(246),r=e(152),a=e(8);class d extends c.Callback{constructor(e){super(e)}navigate(e){this.same_tab?window.location.href=e:window.open(e)}execute(e,{source:t}){const n=e=>{const n=(0,r.replace_placeholders)(this.url,t,e,void 0,void 0,encodeURI);if(!(0,a.isString)(n))throw new Error(\"HTML output is not supported in this context\");this.navigate(n)},{selected:o}=t;for(const e of o.indices)n(e);for(const e of o.line_indices)n(e)}}n.OpenURL=d,s=d,d.__name__=\"OpenURL\",s.define((({Boolean:e,String:t})=>({url:[t,\"http://\"],same_tab:[e,!1]})))},\n function _(a,n,i,e,r){e(),r(\"Canvas\",a(249).Canvas),r(\"CartesianFrame\",a(126).CartesianFrame),r(\"CoordinateMapping\",a(54).CoordinateMapping)},\n function _(e,t,i,s,a){var l,r=this&&this.__createBinding||(Object.create?function(e,t,i,s){void 0===s&&(s=i),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,s){void 0===s&&(s=i),e[s]=t[i]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)\"default\"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};s();const h=e(14),c=e(28),u=e(226),_=e(19),d=e(43),p=e(20),b=e(13),v=e(250),g=e(65),w=e(138),y=e(235);const f=(()=>{let t;return async()=>void 0!==t?t:t=await async function(){const t=document.createElement(\"canvas\"),i=t.getContext(\"webgl\",{premultipliedAlpha:!0});if(null!=i){const s=await(0,w.load_module)(Promise.resolve().then((()=>o(e(410)))));if(null!=s){const e=s.get_regl(i);if(e.has_webgl)return{canvas:t,regl_wrapper:e};_.logger.trace(\"WebGL is supported, but not the required extensions\")}else _.logger.trace(\"WebGL is supported, but bokehjs(.min).js bundle is not available\")}else _.logger.trace(\"WebGL is not supported\");return null}()})(),m={position:\"absolute\",top:\"0\",left:\"0\",width:\"100%\",height:\"100%\"};class x extends u.DOMView{constructor(){super(...arguments),this.bbox=new g.BBox,this.webgl=null}initialize(){super.initialize(),this.underlays_el=(0,d.div)({style:m}),this.primary=this.create_layer(),this.overlays=this.create_layer(),this.overlays_el=(0,d.div)({style:m}),this.events_el=(0,d.div)({class:\"bk-canvas-events\",style:m});const e=[this.underlays_el,this.primary.el,this.overlays.el,this.overlays_el,this.events_el];(0,b.extend)(this.el.style,m),(0,d.append)(this.el,...e),this.ui_event_bus=new v.UIEventBus(this)}async lazy_initialize(){if(await super.lazy_initialize(),\"webgl\"==this.model.output_backend&&(this.webgl=await f(),c.settings.force_webgl&&null==this.webgl))throw new Error(\"webgl is not available\")}remove(){this.ui_event_bus.destroy(),super.remove()}add_underlay(e){this.underlays_el.appendChild(e)}add_overlay(e){this.overlays_el.appendChild(e)}add_event(e){this.events_el.appendChild(e)}get pixel_ratio(){return this.primary.pixel_ratio}resize(e,t){this.bbox=new g.BBox({left:0,top:0,width:e,height:t}),this.primary.resize(e,t),this.overlays.resize(e,t)}prepare_webgl(e){const{webgl:t}=this;if(null!=t){const{width:i,height:s}=this.bbox;t.canvas.width=this.pixel_ratio*i,t.canvas.height=this.pixel_ratio*s;const[a,l,r,n]=e,{xview:o,yview:h}=this.bbox,c=o.compute(a),u=h.compute(l+n),_=this.pixel_ratio;t.regl_wrapper.set_scissor(_*c,_*u,_*r,_*n),this._clear_webgl()}}blit_webgl(e){const{webgl:t}=this;if(null!=t){if(_.logger.debug(\"Blitting WebGL canvas\"),e.restore(),e.drawImage(t.canvas,0,0),e.save(),this.model.hidpi){const t=this.pixel_ratio;e.scale(t,t),e.translate(.5,.5)}this._clear_webgl()}}_clear_webgl(){const{webgl:e}=this;if(null!=e){const{regl_wrapper:t,canvas:i}=e;t.clear(i.width,i.height)}}compose(){const e=this.create_layer(),{width:t,height:i}=this.bbox;return e.resize(t,i),e.ctx.drawImage(this.primary.canvas,0,0),e.ctx.drawImage(this.overlays.canvas,0,0),e}create_layer(){const{output_backend:e,hidpi:t}=this.model;return new y.CanvasLayer(e,t)}to_blob(){return this.compose().to_blob()}}i.CanvasView=x,x.__name__=\"CanvasView\";class z extends h.HasProps{constructor(e){super(e)}}i.Canvas=z,l=z,z.__name__=\"Canvas\",l.prototype.default_view=x,l.internal((({Boolean:e})=>({hidpi:[e,!0],output_backend:[p.OutputBackend,\"canvas\"]})))},\n function _(t,e,s,n,i){n();const r=t(1),a=(0,r.__importDefault)(t(225)),_=t(15),h=t(19),o=t(43),l=(0,r.__importStar)(t(251)),c=t(252),p=t(9),u=t(8),v=t(27),d=t(230);class g{constructor(t){this.canvas_view=t,this.pan_start=new _.Signal(this,\"pan:start\"),this.pan=new _.Signal(this,\"pan\"),this.pan_end=new _.Signal(this,\"pan:end\"),this.pinch_start=new _.Signal(this,\"pinch:start\"),this.pinch=new _.Signal(this,\"pinch\"),this.pinch_end=new _.Signal(this,\"pinch:end\"),this.rotate_start=new _.Signal(this,\"rotate:start\"),this.rotate=new _.Signal(this,\"rotate\"),this.rotate_end=new _.Signal(this,\"rotate:end\"),this.tap=new _.Signal(this,\"tap\"),this.doubletap=new _.Signal(this,\"doubletap\"),this.press=new _.Signal(this,\"press\"),this.pressup=new _.Signal(this,\"pressup\"),this.move_enter=new _.Signal(this,\"move:enter\"),this.move=new _.Signal(this,\"move\"),this.move_exit=new _.Signal(this,\"move:exit\"),this.scroll=new _.Signal(this,\"scroll\"),this.keydown=new _.Signal(this,\"keydown\"),this.keyup=new _.Signal(this,\"keyup\"),this.hammer=new a.default(this.hit_area,{touchAction:\"auto\",inputClass:a.default.TouchMouseInput}),this._prev_move=null,this._curr_pan=null,this._curr_pinch=null,this._curr_rotate=null,this._configure_hammerjs(),this.hit_area.addEventListener(\"mousemove\",(t=>this._mouse_move(t))),this.hit_area.addEventListener(\"mouseenter\",(t=>this._mouse_enter(t))),this.hit_area.addEventListener(\"mouseleave\",(t=>this._mouse_exit(t))),this.hit_area.addEventListener(\"contextmenu\",(t=>this._context_menu(t))),this.hit_area.addEventListener(\"wheel\",(t=>this._mouse_wheel(t))),document.addEventListener(\"keydown\",this),document.addEventListener(\"keyup\",this),this.menu=new d.ContextMenu([],{prevent_hide:t=>2==t.button&&t.target==this.hit_area}),this.hit_area.appendChild(this.menu.el)}get hit_area(){return this.canvas_view.events_el}destroy(){this.menu.remove(),this.hammer.destroy(),document.removeEventListener(\"keydown\",this),document.removeEventListener(\"keyup\",this)}handleEvent(t){\"keydown\"==t.type?this._key_down(t):\"keyup\"==t.type&&this._key_up(t)}_configure_hammerjs(){this.hammer.get(\"doubletap\").recognizeWith(\"tap\"),this.hammer.get(\"tap\").requireFailure(\"doubletap\"),this.hammer.get(\"doubletap\").dropRequireFailure(\"tap\"),this.hammer.on(\"doubletap\",(t=>this._doubletap(t))),this.hammer.on(\"tap\",(t=>this._tap(t))),this.hammer.on(\"press\",(t=>this._press(t))),this.hammer.on(\"pressup\",(t=>this._pressup(t))),this.hammer.get(\"pan\").set({direction:a.default.DIRECTION_ALL}),this.hammer.on(\"panstart\",(t=>this._pan_start(t))),this.hammer.on(\"pan\",(t=>this._pan(t))),this.hammer.on(\"panend\",(t=>this._pan_end(t))),this.hammer.get(\"pinch\").set({enable:!0}),this.hammer.on(\"pinchstart\",(t=>this._pinch_start(t))),this.hammer.on(\"pinch\",(t=>this._pinch(t))),this.hammer.on(\"pinchend\",(t=>this._pinch_end(t))),this.hammer.get(\"rotate\").set({enable:!0}),this.hammer.on(\"rotatestart\",(t=>this._rotate_start(t))),this.hammer.on(\"rotate\",(t=>this._rotate(t))),this.hammer.on(\"rotateend\",(t=>this._rotate_end(t)))}register_tool(t){const e=t.model.event_type;null!=e&&((0,u.isString)(e)?this._register_tool(t,e):e.forEach(((e,s)=>this._register_tool(t,e,s<1))))}_register_tool(t,e,s=!0){const n=t,{id:i}=n.model,r=t=>e=>{e.id==i&&t(e.e)},a=t=>e=>{t(e.e)};switch(e){case\"pan\":null!=n._pan_start&&n.connect(this.pan_start,r(n._pan_start.bind(n))),null!=n._pan&&n.connect(this.pan,r(n._pan.bind(n))),null!=n._pan_end&&n.connect(this.pan_end,r(n._pan_end.bind(n)));break;case\"pinch\":null!=n._pinch_start&&n.connect(this.pinch_start,r(n._pinch_start.bind(n))),null!=n._pinch&&n.connect(this.pinch,r(n._pinch.bind(n))),null!=n._pinch_end&&n.connect(this.pinch_end,r(n._pinch_end.bind(n)));break;case\"rotate\":null!=n._rotate_start&&n.connect(this.rotate_start,r(n._rotate_start.bind(n))),null!=n._rotate&&n.connect(this.rotate,r(n._rotate.bind(n))),null!=n._rotate_end&&n.connect(this.rotate_end,r(n._rotate_end.bind(n)));break;case\"move\":null!=n._move_enter&&n.connect(this.move_enter,r(n._move_enter.bind(n))),null!=n._move&&n.connect(this.move,r(n._move.bind(n))),null!=n._move_exit&&n.connect(this.move_exit,r(n._move_exit.bind(n)));break;case\"tap\":null!=n._tap&&n.connect(this.tap,r(n._tap.bind(n))),null!=n._doubletap&&n.connect(this.doubletap,r(n._doubletap.bind(n)));break;case\"press\":null!=n._press&&n.connect(this.press,r(n._press.bind(n))),null!=n._pressup&&n.connect(this.pressup,r(n._pressup.bind(n)));break;case\"scroll\":null!=n._scroll&&n.connect(this.scroll,r(n._scroll.bind(n)));break;default:throw new Error(`unsupported event_type: ${e}`)}s&&(null!=n._keydown&&n.connect(this.keydown,a(n._keydown.bind(n))),null!=n._keyup&&n.connect(this.keyup,a(n._keyup.bind(n))),v.is_mobile&&null!=n._scroll&&\"pinch\"==e&&(h.logger.debug(\"Registering scroll on touch screen\"),n.connect(this.scroll,r(n._scroll.bind(n)))))}_hit_test_renderers(t,e,s){var n;const i=t.get_renderer_views();for(const t of(0,p.reversed)(i))if(null===(n=t.interactive_hit)||void 0===n?void 0:n.call(t,e,s))return t;return null}set_cursor(t=\"default\"){this.hit_area.style.cursor=t}_hit_test_frame(t,e,s){return t.frame.bbox.contains(e,s)}_hit_test_canvas(t,e,s){return t.layout.bbox.contains(e,s)}_hit_test_plot(t,e){for(const s of this.canvas_view.plot_views)if(s.layout.bbox.relative().contains(t,e))return s;return null}_trigger(t,e,s){var n;const{sx:i,sy:r}=e,a=this._hit_test_plot(i,r),_=t=>{const[s,n]=[i,r];return Object.assign(Object.assign({},e),{sx:s,sy:n})};if(\"panstart\"==e.type||\"pan\"==e.type||\"panend\"==e.type){let n;if(\"panstart\"==e.type&&null!=a?(this._curr_pan={plot_view:a},n=a):\"pan\"==e.type&&null!=this._curr_pan?n=this._curr_pan.plot_view:\"panend\"==e.type&&null!=this._curr_pan?(n=this._curr_pan.plot_view,this._curr_pan=null):n=null,null!=n){const e=_();this.__trigger(n,t,e,s)}}else if(\"pinchstart\"==e.type||\"pinch\"==e.type||\"pinchend\"==e.type){let n;if(\"pinchstart\"==e.type&&null!=a?(this._curr_pinch={plot_view:a},n=a):\"pinch\"==e.type&&null!=this._curr_pinch?n=this._curr_pinch.plot_view:\"pinchend\"==e.type&&null!=this._curr_pinch?(n=this._curr_pinch.plot_view,this._curr_pinch=null):n=null,null!=n){const e=_();this.__trigger(n,t,e,s)}}else if(\"rotatestart\"==e.type||\"rotate\"==e.type||\"rotateend\"==e.type){let n;if(\"rotatestart\"==e.type&&null!=a?(this._curr_rotate={plot_view:a},n=a):\"rotate\"==e.type&&null!=this._curr_rotate?n=this._curr_rotate.plot_view:\"rotateend\"==e.type&&null!=this._curr_rotate?(n=this._curr_rotate.plot_view,this._curr_rotate=null):n=null,null!=n){const e=_();this.__trigger(n,t,e,s)}}else if(\"mouseenter\"==e.type||\"mousemove\"==e.type||\"mouseleave\"==e.type){const h=null===(n=this._prev_move)||void 0===n?void 0:n.plot_view;if(null!=h&&(\"mouseleave\"==e.type||h!=a)){const{sx:t,sy:e}=_();this.__trigger(h,this.move_exit,{type:\"mouseleave\",sx:t,sy:e,shiftKey:!1,ctrlKey:!1},s)}if(null!=a&&(\"mouseenter\"==e.type||h!=a)){const{sx:t,sy:e}=_();this.__trigger(a,this.move_enter,{type:\"mouseenter\",sx:t,sy:e,shiftKey:!1,ctrlKey:!1},s)}if(null!=a&&\"mousemove\"==e.type){const e=_();this.__trigger(a,t,e,s)}this._prev_move={sx:i,sy:r,plot_view:a}}else if(null!=a){const e=_();this.__trigger(a,t,e,s)}}__trigger(t,e,s,n){var i,r,a;const _=t.model.toolbar.gestures,h=e.name.split(\":\")[0],o=this._hit_test_renderers(t,s.sx,s.sy),l=this._hit_test_canvas(t,s.sx,s.sy);switch(h){case\"move\":{const n=_.move.active;null!=n&&this.trigger(e,s,n.id);const r=t.model.toolbar.inspectors.filter((t=>t.active));let a=\"default\";null!=o?(a=null!==(i=o.cursor(s.sx,s.sy))&&void 0!==i?i:a,(0,p.is_empty)(r)||(e=this.move_exit)):this._hit_test_frame(t,s.sx,s.sy)&&((0,p.is_empty)(r)||(a=\"crosshair\")),this.set_cursor(a),t.set_toolbar_visibility(l),r.map((t=>this.trigger(e,s,t.id)));break}case\"tap\":{const{target:i}=n;if(null!=i&&i!=this.hit_area)return;if(null===(r=null==o?void 0:o.on_hit)||void 0===r||r.call(o,s.sx,s.sy),this._hit_test_frame(t,s.sx,s.sy)){const t=_.tap.active;null!=t&&this.trigger(e,s,t.id)}break}case\"doubletap\":if(this._hit_test_frame(t,s.sx,s.sy)){const t=null!==(a=_.doubletap.active)&&void 0!==a?a:_.tap.active;null!=t&&this.trigger(e,s,t.id)}break;case\"scroll\":{const t=_[v.is_mobile?\"pinch\":\"scroll\"].active;null!=t&&(n.preventDefault(),n.stopPropagation(),this.trigger(e,s,t.id));break}case\"pan\":{const t=_.pan.active;null!=t&&(n.preventDefault(),this.trigger(e,s,t.id));break}default:{const t=_[h].active;null!=t&&this.trigger(e,s,t.id)}}this._trigger_bokeh_event(t,s)}trigger(t,e,s=null){t.emit({id:s,e})}_trigger_bokeh_event(t,e){const s=(()=>{const{sx:s,sy:n}=e,i=t.frame.x_scale.invert(s),r=t.frame.y_scale.invert(n);switch(e.type){case\"wheel\":return new l.MouseWheel(s,n,i,r,e.delta);case\"mousemove\":return new l.MouseMove(s,n,i,r);case\"mouseenter\":return new l.MouseEnter(s,n,i,r);case\"mouseleave\":return new l.MouseLeave(s,n,i,r);case\"tap\":return new l.Tap(s,n,i,r);case\"doubletap\":return new l.DoubleTap(s,n,i,r);case\"press\":return new l.Press(s,n,i,r);case\"pressup\":return new l.PressUp(s,n,i,r);case\"pan\":return new l.Pan(s,n,i,r,e.deltaX,e.deltaY);case\"panstart\":return new l.PanStart(s,n,i,r);case\"panend\":return new l.PanEnd(s,n,i,r);case\"pinch\":return new l.Pinch(s,n,i,r,e.scale);case\"pinchstart\":return new l.PinchStart(s,n,i,r);case\"pinchend\":return new l.PinchEnd(s,n,i,r);case\"rotate\":return new l.Rotate(s,n,i,r,e.rotation);case\"rotatestart\":return new l.RotateStart(s,n,i,r);case\"rotateend\":return new l.RotateEnd(s,n,i,r);default:return}})();null!=s&&t.model.trigger_event(s)}_get_sxy(t){const{pageX:e,pageY:s}=function(t){return\"undefined\"!=typeof TouchEvent&&t instanceof TouchEvent}(t)?(0!=t.touches.length?t.touches:t.changedTouches)[0]:t,{left:n,top:i}=(0,o.offset)(this.hit_area);return{sx:e-n,sy:s-i}}_pan_event(t){return Object.assign(Object.assign({type:t.type},this._get_sxy(t.srcEvent)),{deltaX:t.deltaX,deltaY:t.deltaY,shiftKey:t.srcEvent.shiftKey,ctrlKey:t.srcEvent.ctrlKey})}_pinch_event(t){return Object.assign(Object.assign({type:t.type},this._get_sxy(t.srcEvent)),{scale:t.scale,shiftKey:t.srcEvent.shiftKey,ctrlKey:t.srcEvent.ctrlKey})}_rotate_event(t){return Object.assign(Object.assign({type:t.type},this._get_sxy(t.srcEvent)),{rotation:t.rotation,shiftKey:t.srcEvent.shiftKey,ctrlKey:t.srcEvent.ctrlKey})}_tap_event(t){return Object.assign(Object.assign({type:t.type},this._get_sxy(t.srcEvent)),{shiftKey:t.srcEvent.shiftKey,ctrlKey:t.srcEvent.ctrlKey})}_move_event(t){return Object.assign(Object.assign({type:t.type},this._get_sxy(t)),{shiftKey:t.shiftKey,ctrlKey:t.ctrlKey})}_scroll_event(t){return Object.assign(Object.assign({type:t.type},this._get_sxy(t)),{delta:(0,c.getDeltaY)(t),shiftKey:t.shiftKey,ctrlKey:t.ctrlKey})}_key_event(t){return{type:t.type,keyCode:t.keyCode}}_pan_start(t){const e=this._pan_event(t);e.sx-=t.deltaX,e.sy-=t.deltaY,this._trigger(this.pan_start,e,t.srcEvent)}_pan(t){this._trigger(this.pan,this._pan_event(t),t.srcEvent)}_pan_end(t){this._trigger(this.pan_end,this._pan_event(t),t.srcEvent)}_pinch_start(t){this._trigger(this.pinch_start,this._pinch_event(t),t.srcEvent)}_pinch(t){this._trigger(this.pinch,this._pinch_event(t),t.srcEvent)}_pinch_end(t){this._trigger(this.pinch_end,this._pinch_event(t),t.srcEvent)}_rotate_start(t){this._trigger(this.rotate_start,this._rotate_event(t),t.srcEvent)}_rotate(t){this._trigger(this.rotate,this._rotate_event(t),t.srcEvent)}_rotate_end(t){this._trigger(this.rotate_end,this._rotate_event(t),t.srcEvent)}_tap(t){this._trigger(this.tap,this._tap_event(t),t.srcEvent)}_doubletap(t){this._trigger(this.doubletap,this._tap_event(t),t.srcEvent)}_press(t){this._trigger(this.press,this._tap_event(t),t.srcEvent)}_pressup(t){this._trigger(this.pressup,this._tap_event(t),t.srcEvent)}_mouse_enter(t){this._trigger(this.move_enter,this._move_event(t),t)}_mouse_move(t){this._trigger(this.move,this._move_event(t),t)}_mouse_exit(t){this._trigger(this.move_exit,this._move_event(t),t)}_mouse_wheel(t){this._trigger(this.scroll,this._scroll_event(t),t)}_context_menu(t){!this.menu.is_open&&this.menu.can_open&&t.preventDefault();const{sx:e,sy:s}=this._get_sxy(t);this.menu.toggle({left:e,top:s})}_key_down(t){this.trigger(this.keydown,this._key_event(t))}_key_up(t){this.trigger(this.keyup,this._key_event(t))}}s.UIEventBus=g,g.__name__=\"UIEventBus\"},\n function _(e,t,s,n,_){n();var a=this&&this.__decorate||function(e,t,s,n){var _,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,s):n;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,s,n);else for(var r=e.length-1;r>=0;r--)(_=e[r])&&(o=(a<3?_(o):a>3?_(t,s,o):_(t,s))||o);return a>3&&o&&Object.defineProperty(t,s,o),o};function o(e){return function(t){t.prototype.event_name=e}}class r{to_json(){const{event_name:e}=this;return{event_name:e,event_values:this._to_json()}}}s.BokehEvent=r,r.__name__=\"BokehEvent\";class c extends r{constructor(){super(...arguments),this.origin=null}_to_json(){return{model:this.origin}}}s.ModelEvent=c,c.__name__=\"ModelEvent\";let l=class extends r{_to_json(){return{}}};s.DocumentReady=l,l.__name__=\"DocumentReady\",s.DocumentReady=l=a([o(\"document_ready\")],l);let i=class extends c{};s.ButtonClick=i,i.__name__=\"ButtonClick\",s.ButtonClick=i=a([o(\"button_click\")],i);let u=class extends c{constructor(e){super(),this.item=e}_to_json(){const{item:e}=this;return Object.assign(Object.assign({},super._to_json()),{item:e})}};s.MenuItemClick=u,u.__name__=\"MenuItemClick\",s.MenuItemClick=u=a([o(\"menu_item_click\")],u);class d extends c{}s.UIEvent=d,d.__name__=\"UIEvent\";let m=class extends d{};s.LODStart=m,m.__name__=\"LODStart\",s.LODStart=m=a([o(\"lodstart\")],m);let h=class extends d{};s.LODEnd=h,h.__name__=\"LODEnd\",s.LODEnd=h=a([o(\"lodend\")],h);let p=class extends d{constructor(e,t,s,n){super(),this.x0=e,this.x1=t,this.y0=s,this.y1=n}_to_json(){const{x0:e,x1:t,y0:s,y1:n}=this;return Object.assign(Object.assign({},super._to_json()),{x0:e,x1:t,y0:s,y1:n})}};s.RangesUpdate=p,p.__name__=\"RangesUpdate\",s.RangesUpdate=p=a([o(\"rangesupdate\")],p);let x=class extends d{constructor(e,t){super(),this.geometry=e,this.final=t}_to_json(){const{geometry:e,final:t}=this;return Object.assign(Object.assign({},super._to_json()),{geometry:e,final:t})}};s.SelectionGeometry=x,x.__name__=\"SelectionGeometry\",s.SelectionGeometry=x=a([o(\"selectiongeometry\")],x);let j=class extends d{};s.Reset=j,j.__name__=\"Reset\",s.Reset=j=a([o(\"reset\")],j);class y extends d{constructor(e,t,s,n){super(),this.sx=e,this.sy=t,this.x=s,this.y=n}_to_json(){const{sx:e,sy:t,x:s,y:n}=this;return Object.assign(Object.assign({},super._to_json()),{sx:e,sy:t,x:s,y:n})}}s.PointEvent=y,y.__name__=\"PointEvent\";let g=class extends y{constructor(e,t,s,n,_,a){super(e,t,s,n),this.delta_x=_,this.delta_y=a}_to_json(){const{delta_x:e,delta_y:t}=this;return Object.assign(Object.assign({},super._to_json()),{delta_x:e,delta_y:t})}};s.Pan=g,g.__name__=\"Pan\",s.Pan=g=a([o(\"pan\")],g);let P=class extends y{constructor(e,t,s,n,_){super(e,t,s,n),this.scale=_}_to_json(){const{scale:e}=this;return Object.assign(Object.assign({},super._to_json()),{scale:e})}};s.Pinch=P,P.__name__=\"Pinch\",s.Pinch=P=a([o(\"pinch\")],P);let O=class extends y{constructor(e,t,s,n,_){super(e,t,s,n),this.rotation=_}_to_json(){const{rotation:e}=this;return Object.assign(Object.assign({},super._to_json()),{rotation:e})}};s.Rotate=O,O.__name__=\"Rotate\",s.Rotate=O=a([o(\"rotate\")],O);let b=class extends y{constructor(e,t,s,n,_){super(e,t,s,n),this.delta=_}_to_json(){const{delta:e}=this;return Object.assign(Object.assign({},super._to_json()),{delta:e})}};s.MouseWheel=b,b.__name__=\"MouseWheel\",s.MouseWheel=b=a([o(\"wheel\")],b);let v=class extends y{};s.MouseMove=v,v.__name__=\"MouseMove\",s.MouseMove=v=a([o(\"mousemove\")],v);let E=class extends y{};s.MouseEnter=E,E.__name__=\"MouseEnter\",s.MouseEnter=E=a([o(\"mouseenter\")],E);let R=class extends y{};s.MouseLeave=R,R.__name__=\"MouseLeave\",s.MouseLeave=R=a([o(\"mouseleave\")],R);let M=class extends y{};s.Tap=M,M.__name__=\"Tap\",s.Tap=M=a([o(\"tap\")],M);let f=class extends y{};s.DoubleTap=f,f.__name__=\"DoubleTap\",s.DoubleTap=f=a([o(\"doubletap\")],f);let S=class extends y{};s.Press=S,S.__name__=\"Press\",s.Press=S=a([o(\"press\")],S);let D=class extends y{};s.PressUp=D,D.__name__=\"PressUp\",s.PressUp=D=a([o(\"pressup\")],D);let k=class extends y{};s.PanStart=k,k.__name__=\"PanStart\",s.PanStart=k=a([o(\"panstart\")],k);let L=class extends y{};s.PanEnd=L,L.__name__=\"PanEnd\",s.PanEnd=L=a([o(\"panend\")],L);let U=class extends y{};s.PinchStart=U,U.__name__=\"PinchStart\",s.PinchStart=U=a([o(\"pinchstart\")],U);let C=class extends y{};s.PinchEnd=C,C.__name__=\"PinchEnd\",s.PinchEnd=C=a([o(\"pinchend\")],C);let T=class extends y{};s.RotateStart=T,T.__name__=\"RotateStart\",s.RotateStart=T=a([o(\"rotatestart\")],T);let B=class extends y{};s.RotateEnd=B,B.__name__=\"RotateEnd\",s.RotateEnd=B=a([o(\"rotateend\")],B)},\n function _(t,e,n,l,o){\n /*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n function u(t){const e=getComputedStyle(t).fontSize;return null!=e?parseInt(e,10):null}l(),n.getDeltaY=function(t){let e=-t.deltaY;if(t.target instanceof HTMLElement)switch(t.deltaMode){case t.DOM_DELTA_LINE:e*=(n=t.target,null!==(a=null!==(o=u(null!==(l=n.offsetParent)&&void 0!==l?l:document.body))&&void 0!==o?o:u(n))&&void 0!==a?a:16);break;case t.DOM_DELTA_PAGE:e*=function(t){return t.clientHeight}(t.target)}var n,l,o,a;return e}},\n function _(m,o,n,r,a){r(),a(\"Expression\",m(254).Expression),a(\"CustomJSExpr\",m(255).CustomJSExpr),a(\"Stack\",m(256).Stack),a(\"CumSum\",m(257).CumSum),a(\"ScalarExpression\",m(254).ScalarExpression),a(\"Minimum\",m(258).Minimum),a(\"Maximum\",m(259).Maximum);var s=m(260);a(\"XComponent\",s.XComponent),a(\"YComponent\",s.YComponent),a(\"PolarTransform\",m(261).PolarTransform)},\n function _(e,t,s,i,r){i();const n=e(53);class _ extends n.Model{constructor(e){super(e)}initialize(){super.initialize(),this._result=new Map}v_compute(e){let t=this._result.get(e);return(void 0===t||e.changed_for(this))&&(t=this._v_compute(e),this._result.set(e,t)),t}}s.Expression=_,_.__name__=\"Expression\";class o extends n.Model{constructor(e){super(e)}initialize(){super.initialize(),this._result=new Map}compute(e){let t=this._result.get(e);return(void 0===t||e.changed_for(this))&&(t=this._compute(e),this._result.set(e,t)),t}}s.ScalarExpression=o,o.__name__=\"ScalarExpression\"},\n function _(e,s,t,n,r){var a;n();const o=e(14),c=e(254),i=e(24),u=e(9),l=e(13),h=e(34),g=e(8);class p extends c.Expression{constructor(e){super(e)}connect_signals(){super.connect_signals();for(const e of(0,l.values)(this.args))e instanceof o.HasProps&&e.change.connect((()=>{this._result.clear(),this.change.emit()}))}get names(){return(0,l.keys)(this.args)}get values(){return(0,l.values)(this.args)}get func(){const e=(0,h.use_strict)(this.code);return new i.GeneratorFunction(...this.names,e)}_v_compute(e){const s=this.func.apply(e,this.values);let t=s.next();if(t.done&&void 0!==t.value){const{value:s}=t;return(0,g.isArray)(s)||(0,g.isTypedArray)(s)?s:(0,g.isIterable)(s)?[...s]:(0,u.repeat)(s,e.length)}{const e=[];do{e.push(t.value),t=s.next()}while(!t.done);return e}}}t.CustomJSExpr=p,a=p,p.__name__=\"CustomJSExpr\",a.define((({Unknown:e,String:s,Dict:t})=>({args:[t(e),{}],code:[s,\"\"]})))},\n function _(t,n,e,o,r){var s;o();const a=t(254);class c extends a.Expression{constructor(t){super(t)}_v_compute(t){var n;const e=null!==(n=t.get_length())&&void 0!==n?n:0,o=new Float64Array(e);for(const n of this.fields){const r=t.data[n];if(null!=r){const t=Math.min(e,r.length);for(let n=0;n({fields:[n(t),[]]})))},\n function _(e,n,t,o,r){var i;o();const l=e(254);class u extends l.Expression{constructor(e){super(e)}_v_compute(e){var n;const t=new Float64Array(null!==(n=e.get_length())&&void 0!==n?n:0),o=e.data[this.field],r=this.include_zero?1:0;t[0]=this.include_zero?0:o[0];for(let e=1;e({field:[n],include_zero:[e,!1]})))},\n function _(i,n,l,t,e){var a;t();const u=i(254),r=i(9);class s extends u.ScalarExpression{constructor(i){super(i)}_compute(i){var n,l;const t=null!==(n=i.data[this.field])&&void 0!==n?n:[];return Math.min(null!==(l=this.initial)&&void 0!==l?l:1/0,(0,r.min)(t))}}l.Minimum=s,a=s,s.__name__=\"Minimum\",a.define((({Number:i,String:n,Nullable:l})=>({field:[n],initial:[l(i),null]})))},\n function _(i,a,n,l,t){var e;l();const u=i(254),r=i(9);class s extends u.ScalarExpression{constructor(i){super(i)}_compute(i){var a,n;const l=null!==(a=i.data[this.field])&&void 0!==a?a:[];return Math.max(null!==(n=this.initial)&&void 0!==n?n:-1/0,(0,r.max)(l))}}n.Maximum=s,e=s,s.__name__=\"Maximum\",e.define((({Number:i,String:a,Nullable:n})=>({field:[a],initial:[n(i),null]})))},\n function _(n,e,t,o,r){var s;o();const _=n(254);class m extends _.Expression{constructor(n){super(n)}get x(){return new c({transform:this})}get y(){return new u({transform:this})}}t.CoordinateTransform=m,m.__name__=\"CoordinateTransform\";class a extends _.Expression{constructor(n){super(n)}}t.XYComponent=a,s=a,a.__name__=\"XYComponent\",s.define((({Ref:n})=>({transform:[n(m)]})));class c extends a{constructor(n){super(n)}_v_compute(n){return this.transform.v_compute(n).x}}t.XComponent=c,c.__name__=\"XComponent\";class u extends a{constructor(n){super(n)}_v_compute(n){return this.transform.v_compute(n).y}}t.YComponent=u,u.__name__=\"YComponent\"},\n function _(r,t,n,e,o){e();const i=r(1);var a;const s=r(260),c=r(20),l=(0,i.__importStar)(r(18));class d extends s.CoordinateTransform{constructor(r){super(r)}_v_compute(r){const t=this.properties.radius.uniform(r),n=this.properties.angle.uniform(r),e=\"anticlock\"==this.direction?-1:1,o=Math.min(t.length,n.length),i=new Float64Array(o),a=new Float64Array(o);for(let r=0;r({radius:[l.DistanceSpec,{field:\"radius\"}],angle:[l.AngleSpec,{field:\"angle\"}],direction:[c.Direction,\"anticlock\"]})))},\n function _(e,t,l,r,i){r(),i(\"BooleanFilter\",e(263).BooleanFilter),i(\"CustomJSFilter\",e(264).CustomJSFilter),i(\"Filter\",e(191).Filter),i(\"GroupFilter\",e(265).GroupFilter),i(\"IndexFilter\",e(266).IndexFilter)},\n function _(e,n,l,o,s){var t;o();const a=e(191),r=e(24);class c extends a.Filter{constructor(e){super(e)}compute_indices(e){const n=e.length,{booleans:l}=this;return null==l?r.Indices.all_set(n):r.Indices.from_booleans(n,l)}}l.BooleanFilter=c,t=c,c.__name__=\"BooleanFilter\",t.define((({Boolean:e,Array:n,Nullable:l})=>({booleans:[l(n(e)),null]})))},\n function _(e,n,r,s,t){var i;s();const o=e(191),c=e(24),u=e(13),a=e(8),l=e(34);class f extends o.Filter{constructor(e){super(e)}get names(){return(0,u.keys)(this.args)}get values(){return(0,u.values)(this.args)}get func(){const e=(0,l.use_strict)(this.code);return new Function(...this.names,\"source\",e)}compute_indices(e){const n=e.length,r=this.func(...this.values,e);if(null==r)return c.Indices.all_set(n);if((0,a.isArrayOf)(r,a.isInteger))return c.Indices.from_indices(n,r);if((0,a.isArrayOf)(r,a.isBoolean))return c.Indices.from_booleans(n,r);throw new Error(`expect an array of integers or booleans, or null, got ${r}`)}}r.CustomJSFilter=f,i=f,f.__name__=\"CustomJSFilter\",i.define((({Unknown:e,String:n,Dict:r})=>({args:[r(e),{}],code:[n,\"\"]})))},\n function _(n,e,t,o,r){var u;o();const s=n(191),c=n(24),i=n(19);class l extends s.Filter{constructor(n){super(n)}compute_indices(n){const e=n.get_column(this.column_name);if(null==e)return i.logger.warn(`${this}: groupby column '${this.column_name}' not found in the data source`),new c.Indices(n.length,1);{const t=new c.Indices(n.length);for(let n=0;n({column_name:[n],group:[n]})))},\n function _(e,n,i,s,t){var l;s();const c=e(191),r=e(24);class d extends c.Filter{constructor(e){super(e)}compute_indices(e){const n=e.length,{indices:i}=this;return null==i?r.Indices.all_set(n):r.Indices.from_indices(n,i)}}i.IndexFilter=d,l=d,d.__name__=\"IndexFilter\",l.define((({Int:e,Array:n,Nullable:i})=>({indices:[i(n(e)),null]})))},\n function _(e,a,l,i,t){i(),t(\"AnnularWedge\",e(268).AnnularWedge),t(\"Annulus\",e(269).Annulus),t(\"Arc\",e(270).Arc),t(\"Bezier\",e(271).Bezier),t(\"Circle\",e(272).Circle),t(\"Ellipse\",e(273).Ellipse),t(\"EllipseOval\",e(274).EllipseOval),t(\"Glyph\",e(179).Glyph),t(\"HArea\",e(187).HArea),t(\"HBar\",e(276).HBar),t(\"HexTile\",e(278).HexTile),t(\"Image\",e(279).Image),t(\"ImageRGBA\",e(281).ImageRGBA),t(\"ImageURL\",e(282).ImageURL),t(\"Line\",e(177).Line),t(\"MultiLine\",e(283).MultiLine),t(\"MultiPolygons\",e(284).MultiPolygons),t(\"Oval\",e(285).Oval),t(\"Patch\",e(186).Patch),t(\"Patches\",e(286).Patches),t(\"Quad\",e(287).Quad),t(\"Quadratic\",e(288).Quadratic),t(\"Ray\",e(289).Ray),t(\"Rect\",e(290).Rect),t(\"Scatter\",e(291).Scatter),t(\"Segment\",e(294).Segment),t(\"Spline\",e(295).Spline),t(\"Step\",e(297).Step),t(\"Text\",e(298).Text),t(\"VArea\",e(189).VArea),t(\"VBar\",e(299).VBar),t(\"Wedge\",e(300).Wedge)},\n function _(e,s,t,i,r){i();const n=e(1);var a;const _=e(178),o=e(184),d=e(48),u=e(24),h=e(20),c=(0,n.__importStar)(e(18)),l=e(10),g=e(72),p=e(12);class x extends _.XYGlyphView{_map_data(){\"data\"==this.model.properties.inner_radius.units?this.sinner_radius=this.sdist(this.renderer.xscale,this._x,this.inner_radius):this.sinner_radius=(0,u.to_screen)(this.inner_radius),\"data\"==this.model.properties.outer_radius.units?this.souter_radius=this.sdist(this.renderer.xscale,this._x,this.outer_radius):this.souter_radius=(0,u.to_screen)(this.outer_radius),this.max_souter_radius=(0,p.max)(this.souter_radius)}_render(e,s,t){const{sx:i,sy:r,start_angle:n,end_angle:a,sinner_radius:_,souter_radius:o}=null!=t?t:this,d=\"anticlock\"==this.model.direction;for(const t of s){const s=i[t],u=r[t],h=_[t],c=o[t],l=n.get(t),g=a.get(t);if(!isFinite(s+u+h+c+l+g))continue;const p=g-l;e.translate(s,u),e.rotate(l),e.beginPath(),e.moveTo(c,0),e.arc(0,0,c,0,p,d),e.rotate(p),e.lineTo(h,0),e.arc(0,0,h,0,-p,!d),e.closePath(),e.rotate(-p-l),e.translate(-s,-u),this.visuals.fill.apply(e,t),this.visuals.hatch.apply(e,t),this.visuals.line.apply(e,t)}}_hit_point(e){const{sx:s,sy:t}=e,i=this.renderer.xscale.invert(s),r=this.renderer.yscale.invert(t),n=s-this.max_souter_radius,a=s+this.max_souter_radius,[_,o]=this.renderer.xscale.r_invert(n,a),d=t-this.max_souter_radius,u=t+this.max_souter_radius,[h,c]=this.renderer.yscale.r_invert(d,u),p=[];for(const e of this.index.indices({x0:_,x1:o,y0:h,y1:c})){const s=this.souter_radius[e]**2,t=this.sinner_radius[e]**2,[n,a]=this.renderer.xscale.r_compute(i,this._x[e]),[_,o]=this.renderer.yscale.r_compute(r,this._y[e]),d=(n-a)**2+(_-o)**2;d<=s&&d>=t&&p.push(e)}const x=\"anticlock\"==this.model.direction,m=[];for(const e of p){const i=Math.atan2(t-this.sy[e],s-this.sx[e]);(0,l.angle_between)(-i,-this.start_angle.get(e),-this.end_angle.get(e),x)&&m.push(e)}return new g.Selection({indices:m})}draw_legend_for_index(e,s,t){(0,o.generic_area_vector_legend)(this.visuals,e,s,t)}scenterxy(e){const s=(this.sinner_radius[e]+this.souter_radius[e])/2,t=(this.start_angle.get(e)+this.end_angle.get(e))/2;return[this.sx[e]+s*Math.cos(t),this.sy[e]+s*Math.sin(t)]}}t.AnnularWedgeView=x,x.__name__=\"AnnularWedgeView\";class m extends _.XYGlyph{constructor(e){super(e)}}t.AnnularWedge=m,a=m,m.__name__=\"AnnularWedge\",a.prototype.default_view=x,a.mixins([d.LineVector,d.FillVector,d.HatchVector]),a.define((({})=>({direction:[h.Direction,\"anticlock\"],inner_radius:[c.DistanceSpec,{field:\"inner_radius\"}],outer_radius:[c.DistanceSpec,{field:\"outer_radius\"}],start_angle:[c.AngleSpec,{field:\"start_angle\"}],end_angle:[c.AngleSpec,{field:\"end_angle\"}]})))},\n function _(s,e,i,r,t){r();const n=s(1);var a;const u=s(178),o=s(24),_=s(48),d=(0,n.__importStar)(s(18)),h=s(27),c=s(72);class l extends u.XYGlyphView{_map_data(){\"data\"==this.model.properties.inner_radius.units?this.sinner_radius=this.sdist(this.renderer.xscale,this._x,this.inner_radius):this.sinner_radius=(0,o.to_screen)(this.inner_radius),\"data\"==this.model.properties.outer_radius.units?this.souter_radius=this.sdist(this.renderer.xscale,this._x,this.outer_radius):this.souter_radius=(0,o.to_screen)(this.outer_radius)}_render(s,e,i){const{sx:r,sy:t,sinner_radius:n,souter_radius:a}=null!=i?i:this;for(const i of e){const e=r[i],u=t[i],o=n[i],_=a[i];if(isFinite(e+u+o+_)){if(s.beginPath(),h.is_ie)for(const i of[!1,!0])s.moveTo(e,u),s.arc(e,u,o,0,Math.PI,i),s.moveTo(e+_,u),s.arc(e,u,_,Math.PI,0,!i);else s.arc(e,u,o,0,2*Math.PI,!0),s.moveTo(e+_,u),s.arc(e,u,_,2*Math.PI,0,!1);this.visuals.fill.apply(s,i),this.visuals.hatch.apply(s,i),this.visuals.line.apply(s,i)}}}_hit_point(s){const{sx:e,sy:i}=s,r=this.renderer.xscale.invert(e),t=this.renderer.yscale.invert(i);let n,a,u,o;if(\"data\"==this.model.properties.outer_radius.units)n=r-this.max_outer_radius,u=r+this.max_outer_radius,a=t-this.max_outer_radius,o=t+this.max_outer_radius;else{const s=e-this.max_outer_radius,r=e+this.max_outer_radius;[n,u]=this.renderer.xscale.r_invert(s,r);const t=i-this.max_outer_radius,_=i+this.max_outer_radius;[a,o]=this.renderer.yscale.r_invert(t,_)}const _=[];for(const s of this.index.indices({x0:n,x1:u,y0:a,y1:o})){const e=this.souter_radius[s]**2,i=this.sinner_radius[s]**2,[n,a]=this.renderer.xscale.r_compute(r,this._x[s]),[u,o]=this.renderer.yscale.r_compute(t,this._y[s]),d=(n-a)**2+(u-o)**2;d<=e&&d>=i&&_.push(s)}return new c.Selection({indices:_})}draw_legend_for_index(s,{x0:e,y0:i,x1:r,y1:t},n){const a=n+1,u=new Array(a);u[n]=(e+r)/2;const o=new Array(a);o[n]=(i+t)/2;const _=.5*Math.min(Math.abs(r-e),Math.abs(t-i)),d=new Array(a);d[n]=.4*_;const h=new Array(a);h[n]=.8*_,this._render(s,[n],{sx:u,sy:o,sinner_radius:d,souter_radius:h})}}i.AnnulusView=l,l.__name__=\"AnnulusView\";class x extends u.XYGlyph{constructor(s){super(s)}}i.Annulus=x,a=x,x.__name__=\"Annulus\",a.prototype.default_view=l,a.mixins([_.LineVector,_.FillVector,_.HatchVector]),a.define((({})=>({inner_radius:[d.DistanceSpec,{field:\"inner_radius\"}],outer_radius:[d.DistanceSpec,{field:\"outer_radius\"}]})))},\n function _(e,i,s,t,n){t();const r=e(1);var a;const c=e(178),d=e(184),l=e(48),_=e(24),o=e(20),u=(0,r.__importStar)(e(18));class h extends c.XYGlyphView{_map_data(){\"data\"==this.model.properties.radius.units?this.sradius=this.sdist(this.renderer.xscale,this._x,this.radius):this.sradius=(0,_.to_screen)(this.radius)}_render(e,i,s){if(this.visuals.line.doit){const{sx:t,sy:n,sradius:r,start_angle:a,end_angle:c}=null!=s?s:this,d=\"anticlock\"==this.model.direction;for(const s of i){const i=t[s],l=n[s],_=r[s],o=a.get(s),u=c.get(s);isFinite(i+l+_+o+u)&&(e.beginPath(),e.arc(i,l,_,o,u,d),this.visuals.line.set_vectorize(e,s),e.stroke())}}}draw_legend_for_index(e,i,s){(0,d.generic_line_vector_legend)(this.visuals,e,i,s)}}s.ArcView=h,h.__name__=\"ArcView\";class g extends c.XYGlyph{constructor(e){super(e)}}s.Arc=g,a=g,g.__name__=\"Arc\",a.prototype.default_view=h,a.mixins(l.LineVector),a.define((({})=>({direction:[o.Direction,\"anticlock\"],radius:[u.DistanceSpec,{field:\"radius\"}],start_angle:[u.AngleSpec,{field:\"start_angle\"}],end_angle:[u.AngleSpec,{field:\"end_angle\"}]})))},\n function _(e,t,i,n,s){n();const o=e(1);var c;const r=e(48),a=e(179),_=e(184),d=e(78),l=(0,o.__importStar)(e(18));function x(e,t,i,n,s,o,c,r){const a=[],_=[[],[]];for(let _=0;_<=2;_++){let d,l,x;if(0===_?(l=6*e-12*i+6*s,d=-3*e+9*i-9*s+3*c,x=3*i-3*e):(l=6*t-12*n+6*o,d=-3*t+9*n-9*o+3*r,x=3*n-3*t),Math.abs(d)<1e-12){if(Math.abs(l)<1e-12)continue;const e=-x/l;0({x0:[l.XCoordinateSpec,{field:\"x0\"}],y0:[l.YCoordinateSpec,{field:\"y0\"}],x1:[l.XCoordinateSpec,{field:\"x1\"}],y1:[l.YCoordinateSpec,{field:\"y1\"}],cx0:[l.XCoordinateSpec,{field:\"cx0\"}],cy0:[l.YCoordinateSpec,{field:\"cy0\"}],cx1:[l.XCoordinateSpec,{field:\"cx1\"}],cy1:[l.YCoordinateSpec,{field:\"cy1\"}]}))),c.mixins(r.LineVector)},\n function _(s,i,e,t,r){t();const a=s(1);var n;const h=s(178),d=s(48),l=s(24),_=s(20),c=(0,a.__importStar)(s(185)),u=(0,a.__importStar)(s(18)),o=s(9),x=s(12),m=s(72);class p extends h.XYGlyphView{async lazy_initialize(){await super.lazy_initialize();const{webgl:i}=this.renderer.plot_view.canvas_view;if(null!=i&&i.regl_wrapper.has_webgl){const{CircleGL:e}=await Promise.resolve().then((()=>(0,a.__importStar)(s(423))));this.glglyph=new e(i.regl_wrapper,this)}}get use_radius(){return!(this.radius.is_Scalar()&&isNaN(this.radius.value))}_set_data(s){super._set_data(s);const i=(()=>{if(this.use_radius)return 2*this.max_radius;{const{size:s}=this;return s.is_Scalar()?s.value:(0,x.max)(s.array)}})();this._configure(\"max_size\",{value:i})}_map_data(){if(this.use_radius)if(\"data\"==this.model.properties.radius.units)switch(this.model.radius_dimension){case\"x\":this.sradius=this.sdist(this.renderer.xscale,this._x,this.radius);break;case\"y\":this.sradius=this.sdist(this.renderer.yscale,this._y,this.radius);break;case\"max\":{const s=this.sdist(this.renderer.xscale,this._x,this.radius),i=this.sdist(this.renderer.yscale,this._y,this.radius);this.sradius=(0,x.map)(s,((s,e)=>Math.max(s,i[e])));break}case\"min\":{const s=this.sdist(this.renderer.xscale,this._x,this.radius),i=this.sdist(this.renderer.yscale,this._y,this.radius);this.sradius=(0,x.map)(s,((s,e)=>Math.min(s,i[e])));break}}else this.sradius=(0,l.to_screen)(this.radius);else{const s=l.ScreenArray.from(this.size);this.sradius=(0,x.map)(s,(s=>s/2))}}_mask_data(){const{frame:s}=this.renderer.plot_view,i=s.x_target,e=s.y_target;let t,r;return this.use_radius&&\"data\"==this.model.properties.radius.units?(t=i.map((s=>this.renderer.xscale.invert(s))).widen(this.max_radius),r=e.map((s=>this.renderer.yscale.invert(s))).widen(this.max_radius)):(t=i.widen(this.max_size).map((s=>this.renderer.xscale.invert(s))),r=e.widen(this.max_size).map((s=>this.renderer.yscale.invert(s)))),this.index.indices({x0:t.start,x1:t.end,y0:r.start,y1:r.end})}_render(s,i,e){const{sx:t,sy:r,sradius:a}=null!=e?e:this;for(const e of i){const i=t[e],n=r[e],h=a[e];isFinite(i+n+h)&&(s.beginPath(),s.arc(i,n,h,0,2*Math.PI,!1),this.visuals.fill.apply(s,e),this.visuals.hatch.apply(s,e),this.visuals.line.apply(s,e))}}_hit_point(s){const{sx:i,sy:e}=s,t=this.renderer.xscale.invert(i),r=this.renderer.yscale.invert(e),{hit_dilation:a}=this.model;let n,h,d,l;if(this.use_radius&&\"data\"==this.model.properties.radius.units)n=t-this.max_radius*a,h=t+this.max_radius*a,d=r-this.max_radius*a,l=r+this.max_radius*a;else{const s=i-this.max_size*a,t=i+this.max_size*a;[n,h]=this.renderer.xscale.r_invert(s,t);const r=e-this.max_size*a,_=e+this.max_size*a;[d,l]=this.renderer.yscale.r_invert(r,_)}const _=this.index.indices({x0:n,x1:h,y0:d,y1:l}),c=[];if(this.use_radius&&\"data\"==this.model.properties.radius.units)for(const s of _){const i=(this.sradius[s]*a)**2,[e,n]=this.renderer.xscale.r_compute(t,this._x[s]),[h,d]=this.renderer.yscale.r_compute(r,this._y[s]);(e-n)**2+(h-d)**2<=i&&c.push(s)}else for(const s of _){const t=(this.sradius[s]*a)**2;(this.sx[s]-i)**2+(this.sy[s]-e)**2<=t&&c.push(s)}return new m.Selection({indices:c})}_hit_span(s){const{sx:i,sy:e}=s,t=this.bounds();let r,a,n,h;if(\"h\"==s.direction){let s,e;if(n=t.y0,h=t.y1,this.use_radius&&\"data\"==this.model.properties.radius.units)s=i-this.max_radius,e=i+this.max_radius,[r,a]=this.renderer.xscale.r_invert(s,e);else{const t=this.max_size/2;s=i-t,e=i+t,[r,a]=this.renderer.xscale.r_invert(s,e)}}else{let s,i;if(r=t.x0,a=t.x1,this.use_radius&&\"data\"==this.model.properties.radius.units)s=e-this.max_radius,i=e+this.max_radius,[n,h]=this.renderer.yscale.r_invert(s,i);else{const t=this.max_size/2;s=e-t,i=e+t,[n,h]=this.renderer.yscale.r_invert(s,i)}}const d=[...this.index.indices({x0:r,x1:a,y0:n,y1:h})];return new m.Selection({indices:d})}_hit_rect(s){const{sx0:i,sx1:e,sy0:t,sy1:r}=s,[a,n]=this.renderer.xscale.r_invert(i,e),[h,d]=this.renderer.yscale.r_invert(t,r),l=[...this.index.indices({x0:a,x1:n,y0:h,y1:d})];return new m.Selection({indices:l})}_hit_poly(s){const{sx:i,sy:e}=s,t=(0,o.range)(0,this.sx.length),r=[];for(let s=0,a=t.length;s({angle:[u.AngleSpec,0],size:[u.ScreenSizeSpec,{value:4}],radius:[u.NullDistanceSpec,null],radius_dimension:[_.RadiusDimension,\"x\"],hit_dilation:[s,1]})))},\n function _(e,l,s,i,_){var p;i();const t=e(274);class a extends t.EllipseOvalView{}s.EllipseView=a,a.__name__=\"EllipseView\";class n extends t.EllipseOval{constructor(e){super(e)}}s.Ellipse=n,p=n,n.__name__=\"Ellipse\",p.prototype.default_view=a},\n function _(t,s,e,i,h){i();const n=t(1),r=t(275),a=(0,n.__importStar)(t(185)),l=t(24),_=t(72),o=(0,n.__importStar)(t(18));class d extends r.CenterRotatableView{_map_data(){\"data\"==this.model.properties.width.units?this.sw=this.sdist(this.renderer.xscale,this._x,this.width,\"center\"):this.sw=(0,l.to_screen)(this.width),\"data\"==this.model.properties.height.units?this.sh=this.sdist(this.renderer.yscale,this._y,this.height,\"center\"):this.sh=(0,l.to_screen)(this.height)}_render(t,s,e){const{sx:i,sy:h,sw:n,sh:r,angle:a}=null!=e?e:this;for(const e of s){const s=i[e],l=h[e],_=n[e],o=r[e],d=a.get(e);isFinite(s+l+_+o+d)&&(t.beginPath(),t.ellipse(s,l,_/2,o/2,d,0,2*Math.PI),this.visuals.fill.apply(t,e),this.visuals.hatch.apply(t,e),this.visuals.line.apply(t,e))}}_hit_point(t){let s,e,i,h,n,r,l,o,d;const{sx:c,sy:p}=t,w=this.renderer.xscale.invert(c),x=this.renderer.yscale.invert(p);\"data\"==this.model.properties.width.units?(s=w-this.max_width,e=w+this.max_width):(r=c-this.max_width,l=c+this.max_width,[s,e]=this.renderer.xscale.r_invert(r,l)),\"data\"==this.model.properties.height.units?(i=x-this.max_height,h=x+this.max_height):(o=p-this.max_height,d=p+this.max_height,[i,h]=this.renderer.yscale.r_invert(o,d));const m=this.index.indices({x0:s,x1:e,y0:i,y1:h}),y=[];for(const t of m)n=a.point_in_ellipse(c,p,this.angle.get(t),this.sh[t]/2,this.sw[t]/2,this.sx[t],this.sy[t]),n&&y.push(t);return new _.Selection({indices:y})}draw_legend_for_index(t,{x0:s,y0:e,x1:i,y1:h},n){const r=n+1,a=new Array(r);a[n]=(s+i)/2;const l=new Array(r);l[n]=(e+h)/2;const _=this.sw[n]/this.sh[n],d=.8*Math.min(Math.abs(i-s),Math.abs(h-e)),c=new Array(r),p=new Array(r);_>1?(c[n]=d,p[n]=d/_):(c[n]=d*_,p[n]=d);const w=new o.UniformScalar(0,r);this._render(t,[n],{sx:a,sy:l,sw:c,sh:p,angle:w})}}e.EllipseOvalView=d,d.__name__=\"EllipseOvalView\";class c extends r.CenterRotatable{constructor(t){super(t)}}e.EllipseOval=c,c.__name__=\"EllipseOval\"},\n function _(e,t,i,a,n){a();const s=e(1);var r;const h=e(178),o=e(48),_=(0,s.__importStar)(e(18));class c extends h.XYGlyphView{get max_w2(){return\"data\"==this.model.properties.width.units?this.max_width/2:0}get max_h2(){return\"data\"==this.model.properties.height.units?this.max_height/2:0}_bounds({x0:e,x1:t,y0:i,y1:a}){const{max_w2:n,max_h2:s}=this;return{x0:e-n,x1:t+n,y0:i-s,y1:a+s}}}i.CenterRotatableView=c,c.__name__=\"CenterRotatableView\";class l extends h.XYGlyph{constructor(e){super(e)}}i.CenterRotatable=l,r=l,l.__name__=\"CenterRotatable\",r.mixins([o.LineVector,o.FillVector,o.HatchVector]),r.define((({})=>({angle:[_.AngleSpec,0],width:[_.DistanceSpec,{field:\"width\"}],height:[_.DistanceSpec,{field:\"height\"}]})))},\n function _(t,e,s,i,r){i();const h=t(1);var a;const n=t(277),_=t(24),o=(0,h.__importStar)(t(18));class l extends n.BoxView{async lazy_initialize(){await super.lazy_initialize();const{webgl:e}=this.renderer.plot_view.canvas_view;if(null!=e&&e.regl_wrapper.has_webgl){const{LRTBGL:s}=await Promise.resolve().then((()=>(0,h.__importStar)(t(427))));this.glglyph=new s(e.regl_wrapper,this)}}scenterxy(t){return[(this.sleft[t]+this.sright[t])/2,this.sy[t]]}_lrtb(t){const e=this._left[t],s=this._right[t],i=this._y[t],r=this.height.get(t)/2;return[Math.min(e,s),Math.max(e,s),i+r,i-r]}_map_data(){this.sy=this.renderer.yscale.v_compute(this._y),this.sh=this.sdist(this.renderer.yscale,this._y,this.height,\"center\"),this.sleft=this.renderer.xscale.v_compute(this._left),this.sright=this.renderer.xscale.v_compute(this._right);const t=this.sy.length;this.stop=new _.ScreenArray(t),this.sbottom=new _.ScreenArray(t);for(let e=0;e({left:[o.XCoordinateSpec,{value:0}],y:[o.YCoordinateSpec,{field:\"y\"}],height:[o.NumberSpec,{value:1}],right:[o.XCoordinateSpec,{field:\"right\"}]})))},\n function _(t,e,s,r,i){var n;r();const a=t(48),h=t(179),o=t(184),c=t(72);class _ extends h.GlyphView{get_anchor_point(t,e,s){const r=Math.min(this.sleft[e],this.sright[e]),i=Math.max(this.sright[e],this.sleft[e]),n=Math.min(this.stop[e],this.sbottom[e]),a=Math.max(this.sbottom[e],this.stop[e]);switch(t){case\"top_left\":return{x:r,y:n};case\"top\":case\"top_center\":return{x:(r+i)/2,y:n};case\"top_right\":return{x:i,y:n};case\"bottom_left\":return{x:r,y:a};case\"bottom\":case\"bottom_center\":return{x:(r+i)/2,y:a};case\"bottom_right\":return{x:i,y:a};case\"left\":case\"center_left\":return{x:r,y:(n+a)/2};case\"center\":case\"center_center\":return{x:(r+i)/2,y:(n+a)/2};case\"right\":case\"center_right\":return{x:i,y:(n+a)/2}}}_index_data(t){const{min:e,max:s}=Math,{data_size:r}=this;for(let i=0;i(0,n.__importStar)(e(425))));this.glglyph=new s(t.regl_wrapper,this)}}scenterxy(e){return[this.sx[e],this.sy[e]]}_set_data(){const{orientation:e,size:t,aspect_scale:s}=this.model,{q:i,r}=this,n=this.q.length;this._x=new Float64Array(n),this._y=new Float64Array(n);const{_x:a,_y:l}=this,o=Math.sqrt(3);if(\"pointytop\"==e)for(let e=0;e({r:[c.NumberSpec,{field:\"r\"}],q:[c.NumberSpec,{field:\"q\"}],scale:[c.NumberSpec,1],size:[e,1],aspect_scale:[e,1],orientation:[_.HexTileOrientation,\"pointytop\"]}))),a.override({line_color:null})},\n function _(e,a,t,_,r){var n;_();const s=e(280),o=e(173),i=e(201);class p extends s.ImageBaseView{connect_signals(){super.connect_signals(),this.connect(this.model.color_mapper.change,(()=>this._update_image()))}_update_image(){null!=this.image_data&&(this._set_data(null),this.renderer.request_render())}_flat_img_to_buf8(e){return this.model.color_mapper.rgba_mapper.v_compute(e)}}t.ImageView=p,p.__name__=\"ImageView\";class m extends s.ImageBase{constructor(e){super(e)}}t.Image=m,n=m,m.__name__=\"Image\",n.prototype.default_view=p,n.define((({Ref:e})=>({color_mapper:[e(o.ColorMapper),()=>new i.LinearColorMapper({palette:[\"#000000\",\"#252525\",\"#525252\",\"#737373\",\"#969696\",\"#bdbdbd\",\"#d9d9d9\",\"#f0f0f0\",\"#ffffff\"]})]})))},\n function _(e,t,i,s,a){s();const h=e(1);var n;const r=e(178),_=e(24),d=(0,h.__importStar)(e(18)),l=e(72),g=e(9),o=e(29),c=e(11);class m extends r.XYGlyphView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.global_alpha.change,(()=>this.renderer.request_render()))}_render(e,t,i){const{image_data:s,sx:a,sy:h,sw:n,sh:r,global_alpha:_}=null!=i?i:this,d=e.getImageSmoothingEnabled();e.setImageSmoothingEnabled(!1);const l=_.is_Scalar();l&&(e.globalAlpha=_.value);for(const i of t){const t=s[i],_=a[i],d=h[i],g=n[i],o=r[i],c=this.global_alpha.get(i);if(null==t||!isFinite(_+d+g+o+c))continue;l||(e.globalAlpha=c);const m=d;e.translate(0,m),e.scale(1,-1),e.translate(0,-m),e.drawImage(t,0|_,0|d,g,o),e.translate(0,m),e.scale(1,-1),e.translate(0,-m)}e.setImageSmoothingEnabled(d)}_set_data(e){this._set_width_heigh_data();for(let t=0,i=this.image.length;t({image:[d.NDArraySpec,{field:\"image\"}],dw:[d.DistanceSpec,{field:\"dw\"}],dh:[d.DistanceSpec,{field:\"dh\"}],global_alpha:[d.NumberSpec,{value:1}],dilate:[e,!1]})))},\n function _(e,a,t,r,_){var n;r();const s=e(280),m=e(8);class i extends s.ImageBaseView{_flat_img_to_buf8(e){let a;return a=(0,m.isArray)(e)?new Uint32Array(e):e,new Uint8ClampedArray(a.buffer)}}t.ImageRGBAView=i,i.__name__=\"ImageRGBAView\";class g extends s.ImageBase{constructor(e){super(e)}}t.ImageRGBA=g,n=g,g.__name__=\"ImageRGBA\",n.prototype.default_view=i},\n function _(e,t,s,r,a){r();const i=e(1);var n;const o=e(178),c=e(24),_=e(20),h=(0,i.__importStar)(e(18)),l=e(12),d=e(136);class m extends o.XYGlyphView{constructor(){super(...arguments),this._images_rendered=!1,this._set_data_iteration=0}connect_signals(){super.connect_signals(),this.connect(this.model.properties.global_alpha.change,(()=>this.renderer.request_render()))}_index_data(e){const{data_size:t}=this;for(let s=0;s{this._set_data_iteration==r&&(this.image[a]=e,this.renderer.request_render())},attempts:t+1,timeout:s})}const a=\"data\"==this.model.properties.w.units,i=\"data\"==this.model.properties.h.units,n=this._x.length,o=new c.ScreenArray(a?2*n:n),_=new c.ScreenArray(i?2*n:n),{anchor:h}=this.model;function m(e,t){switch(h){case\"top_left\":case\"bottom_left\":case\"left\":case\"center_left\":return[e,e+t];case\"top\":case\"top_center\":case\"bottom\":case\"bottom_center\":case\"center\":case\"center_center\":return[e-t/2,e+t/2];case\"top_right\":case\"bottom_right\":case\"right\":case\"center_right\":return[e-t,e]}}function g(e,t){switch(h){case\"top_left\":case\"top\":case\"top_center\":case\"top_right\":return[e,e-t];case\"bottom_left\":case\"bottom\":case\"bottom_center\":case\"bottom_right\":return[e+t,e];case\"left\":case\"center_left\":case\"center\":case\"center_center\":case\"right\":case\"center_right\":return[e+t/2,e-t/2]}}if(a)for(let e=0;e({url:[h.StringSpec,{field:\"url\"}],anchor:[_.Anchor,\"top_left\"],global_alpha:[h.NumberSpec,{value:1}],angle:[h.AngleSpec,0],w:[h.NullDistanceSpec,null],h:[h.NullDistanceSpec,null],dilate:[e,!1],retry_attempts:[t,0],retry_timeout:[t,0]})))},\n function _(e,t,s,i,n){i();const o=e(1);var r;const l=e(78),_=e(48),c=(0,o.__importStar)(e(185)),h=(0,o.__importStar)(e(18)),a=e(12),d=e(13),x=e(179),y=e(184),g=e(72);class p extends x.GlyphView{_project_data(){l.inplace.project_xy(this._xs.array,this._ys.array)}_index_data(e){const{data_size:t}=this;for(let s=0;s0&&o.set(e,s)}return new g.Selection({indices:[...o.keys()],multiline_indices:(0,d.to_object)(o)})}get_interpolation_hit(e,t,s){const i=this._xs.get(e),n=this._ys.get(e),o=i[t],r=n[t],l=i[t+1],_=n[t+1];return(0,y.line_interpolation)(this.renderer,s,o,r,l,_)}draw_legend_for_index(e,t,s){(0,y.generic_line_vector_legend)(this.visuals,e,t,s)}scenterxy(){throw new Error(`${this}.scenterxy() is not implemented`)}}s.MultiLineView=p,p.__name__=\"MultiLineView\";class u extends x.Glyph{constructor(e){super(e)}}s.MultiLine=u,r=u,u.__name__=\"MultiLine\",r.prototype.default_view=p,r.define((({})=>({xs:[h.XCoordinateSeqSpec,{field:\"xs\"}],ys:[h.YCoordinateSeqSpec,{field:\"ys\"}]}))),r.mixins(_.LineVector)},\n function _(t,e,s,n,i){n();const o=t(1);var r;const l=t(181),h=t(179),a=t(184),_=t(12),c=t(12),d=t(48),x=(0,o.__importStar)(t(185)),y=(0,o.__importStar)(t(18)),f=t(72),g=t(11);class p extends h.GlyphView{_project_data(){}_index_data(t){const{min:e,max:s}=Math,{data_size:n}=this;for(let i=0;i1&&c.length>1)for(let s=1,n=i.length;s1){let r=!1;for(let t=1;t({xs:[y.XCoordinateSeqSeqSeqSpec,{field:\"xs\"}],ys:[y.YCoordinateSeqSeqSeqSpec,{field:\"ys\"}]}))),r.mixins([d.LineVector,d.FillVector,d.HatchVector])},\n function _(a,e,l,s,_){var t;s();const i=a(274),n=a(12);class p extends i.EllipseOvalView{_map_data(){super._map_data(),(0,n.mul)(this.sw,.75)}}l.OvalView=p,p.__name__=\"OvalView\";class v extends i.EllipseOval{constructor(a){super(a)}}l.Oval=v,t=v,v.__name__=\"Oval\",t.prototype.default_view=p},\n function _(e,t,s,i,n){i();const r=e(1);var a;const o=e(179),c=e(184),_=e(12),h=e(48),l=(0,r.__importStar)(e(185)),d=(0,r.__importStar)(e(18)),y=e(72),p=e(11),x=e(78);class f extends o.GlyphView{_project_data(){x.inplace.project_xy(this._xs.array,this._ys.array)}_index_data(e){const{data_size:t}=this;for(let s=0;s({xs:[d.XCoordinateSeqSpec,{field:\"xs\"}],ys:[d.YCoordinateSeqSpec,{field:\"ys\"}]}))),a.mixins([h.LineVector,h.FillVector,h.HatchVector])},\n function _(t,e,i,o,r){o();const s=t(1);var a;const n=t(277),l=(0,s.__importStar)(t(18));class _ extends n.BoxView{async lazy_initialize(){await super.lazy_initialize();const{webgl:e}=this.renderer.plot_view.canvas_view;if(null!=e&&e.regl_wrapper.has_webgl){const{LRTBGL:i}=await Promise.resolve().then((()=>(0,s.__importStar)(t(427))));this.glglyph=new i(e.regl_wrapper,this)}}scenterxy(t){return[this.sleft[t]/2+this.sright[t]/2,this.stop[t]/2+this.sbottom[t]/2]}_lrtb(t){return[this._left[t],this._right[t],this._top[t],this._bottom[t]]}}i.QuadView=_,_.__name__=\"QuadView\";class p extends n.Box{constructor(t){super(t)}}i.Quad=p,a=p,p.__name__=\"Quad\",a.prototype.default_view=_,a.define((({})=>({right:[l.XCoordinateSpec,{field:\"right\"}],bottom:[l.YCoordinateSpec,{field:\"bottom\"}],left:[l.XCoordinateSpec,{field:\"left\"}],top:[l.YCoordinateSpec,{field:\"top\"}]})))},\n function _(e,t,i,n,s){n();const c=e(1);var o;const r=e(48),a=e(78),_=e(179),d=e(184),l=(0,c.__importStar)(e(18));function x(e,t,i){if(t==(e+i)/2)return[e,i];{const n=(e-t)/(e-2*t+i),s=e*(1-n)**2+2*t*(1-n)*n+i*n**2;return[Math.min(e,i,s),Math.max(e,i,s)]}}class y extends _.GlyphView{_project_data(){a.inplace.project_xy(this._x0,this._y0),a.inplace.project_xy(this._x1,this._y1)}_index_data(e){const{_x0:t,_x1:i,_y0:n,_y1:s,_cx:c,_cy:o,data_size:r}=this;for(let a=0;a({x0:[l.XCoordinateSpec,{field:\"x0\"}],y0:[l.YCoordinateSpec,{field:\"y0\"}],x1:[l.XCoordinateSpec,{field:\"x1\"}],y1:[l.YCoordinateSpec,{field:\"y1\"}],cx:[l.XCoordinateSpec,{field:\"cx\"}],cy:[l.YCoordinateSpec,{field:\"cy\"}]}))),o.mixins(r.LineVector)},\n function _(e,t,s,i,n){i();const l=e(1);var a;const r=e(178),o=e(184),h=e(48),_=e(24),c=(0,l.__importStar)(e(18));class g extends r.XYGlyphView{_map_data(){\"data\"==this.model.properties.length.units?this.slength=this.sdist(this.renderer.xscale,this._x,this.length):this.slength=(0,_.to_screen)(this.length);const{width:e,height:t}=this.renderer.plot_view.frame.bbox,s=2*(e+t),{slength:i}=this;for(let e=0,t=i.length;e({length:[c.DistanceSpec,0],angle:[c.AngleSpec,0]})))},\n function _(t,e,s,i,r){var n,h=this&&this.__createBinding||(Object.create?function(t,e,s,i){void 0===i&&(i=s),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[s]}})}:function(t,e,s,i){void 0===i&&(i=s),t[i]=e[s]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),l=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var s in t)\"default\"!==s&&Object.prototype.hasOwnProperty.call(t,s)&&h(e,t,s);return a(e,t),e};i();const o=t(275),c=t(184),_=t(24),d=t(12),f=t(72);class y extends o.CenterRotatableView{async lazy_initialize(){await super.lazy_initialize();const{webgl:e}=this.renderer.plot_view.canvas_view;if(null==e?void 0:e.regl_wrapper.has_webgl){const{RectGL:s}=await Promise.resolve().then((()=>l(t(429))));this.glglyph=new s(e.regl_wrapper,this)}}_map_data(){if(\"data\"==this.model.properties.width.units)[this.sw,this.sx0]=this._map_dist_corner_for_data_side_length(this._x,this.width,this.renderer.xscale);else{this.sw=(0,_.to_screen)(this.width);const t=this.sx.length;this.sx0=new _.ScreenArray(t);for(let e=0;e({dilate:[t,!1]})))},\n function _(e,t,r,a,s){a();const i=e(1);var n;const l=e(292),_=e(293),c=(0,i.__importStar)(e(18));class o extends l.MarkerView{async lazy_initialize(){await super.lazy_initialize();const{webgl:t}=this.renderer.plot_view.canvas_view;if(null!=t&&t.regl_wrapper.has_webgl){const{MultiMarkerGL:r}=await Promise.resolve().then((()=>(0,i.__importStar)(e(428))));this.glglyph=new r(t.regl_wrapper,this)}}_render(e,t,r){const{sx:a,sy:s,size:i,angle:n,marker:l}=null!=r?r:this;for(const r of t){const t=a[r],c=s[r],o=i.get(r),g=n.get(r),w=l.get(r);if(!isFinite(t+c+o+g)||null==w)continue;const p=o/2;e.beginPath(),e.translate(t,c),g&&e.rotate(g),_.marker_funcs[w](e,r,p,this.visuals),g&&e.rotate(-g),e.translate(-t,-c)}}draw_legend_for_index(e,{x0:t,x1:r,y0:a,y1:s},i){const n=i+1,l=this.marker.get(i),_=Object.assign(Object.assign({},this._get_legend_args({x0:t,x1:r,y0:a,y1:s},i)),{marker:new c.UniformScalar(l,n)});this._render(e,[i],_)}}r.ScatterView=o,o.__name__=\"ScatterView\";class g extends l.Marker{constructor(e){super(e)}}r.Scatter=g,n=g,g.__name__=\"Scatter\",n.prototype.default_view=o,n.define((()=>({marker:[c.MarkerSpec,{value:\"circle\"}]})))},\n function _(e,t,s,n,i){n();const r=e(1);var a;const c=e(178),o=e(48),_=(0,r.__importStar)(e(185)),h=(0,r.__importStar)(e(18)),l=e(9),x=e(72);class d extends c.XYGlyphView{_render(e,t,s){const{sx:n,sy:i,size:r,angle:a}=null!=s?s:this;for(const s of t){const t=n[s],c=i[s],o=r.get(s),_=a.get(s);if(!isFinite(t+c+o+_))continue;const h=o/2;e.beginPath(),e.translate(t,c),_&&e.rotate(_),this._render_one(e,s,h,this.visuals),_&&e.rotate(-_),e.translate(-t,-c)}}_mask_data(){const{x_target:e,y_target:t}=this.renderer.plot_view.frame,s=e.widen(this.max_size).map((e=>this.renderer.xscale.invert(e))),n=t.widen(this.max_size).map((e=>this.renderer.yscale.invert(e)));return this.index.indices({x0:s.start,x1:s.end,y0:n.start,y1:n.end})}_hit_point(e){const{sx:t,sy:s}=e,{max_size:n}=this,{hit_dilation:i}=this.model,r=t-n*i,a=t+n*i,[c,o]=this.renderer.xscale.r_invert(r,a),_=s-n*i,h=s+n*i,[l,d]=this.renderer.yscale.r_invert(_,h),y=this.index.indices({x0:c,x1:o,y0:l,y1:d}),g=[];for(const e of y){const n=this.size.get(e)/2*i;Math.abs(this.sx[e]-t)<=n&&Math.abs(this.sy[e]-s)<=n&&g.push(e)}return new x.Selection({indices:g})}_hit_span(e){const{sx:t,sy:s}=e,n=this.bounds(),i=this.max_size/2;let r,a,c,o;if(\"h\"==e.direction){c=n.y0,o=n.y1;const e=t-i,s=t+i;[r,a]=this.renderer.xscale.r_invert(e,s)}else{r=n.x0,a=n.x1;const e=s-i,t=s+i;[c,o]=this.renderer.yscale.r_invert(e,t)}const _=[...this.index.indices({x0:r,x1:a,y0:c,y1:o})];return new x.Selection({indices:_})}_hit_rect(e){const{sx0:t,sx1:s,sy0:n,sy1:i}=e,[r,a]=this.renderer.xscale.r_invert(t,s),[c,o]=this.renderer.yscale.r_invert(n,i),_=[...this.index.indices({x0:r,x1:a,y0:c,y1:o})];return new x.Selection({indices:_})}_hit_poly(e){const{sx:t,sy:s}=e,n=(0,l.range)(0,this.sx.length),i=[];for(let e=0,r=n.length;e({size:[h.ScreenSizeSpec,{value:4}],angle:[h.AngleSpec,0],hit_dilation:[e,1]})))},\n function _(l,o,n,t,i){t();const e=Math.sqrt(3),a=Math.sqrt(5),c=(a+1)/4,p=Math.sqrt((5-a)/8),r=(a-1)/4,h=Math.sqrt((5+a)/8);function u(l,o){l.rotate(Math.PI/4),s(l,o),l.rotate(-Math.PI/4)}function f(l,o){const n=o*e,t=n/3;l.moveTo(-n/2,-t),l.lineTo(0,0),l.lineTo(n/2,-t),l.lineTo(0,0),l.lineTo(0,o)}function s(l,o){l.moveTo(0,o),l.lineTo(0,-o),l.moveTo(-o,0),l.lineTo(o,0)}function T(l,o){l.moveTo(0,o),l.lineTo(o/1.5,0),l.lineTo(0,-o),l.lineTo(-o/1.5,0),l.closePath()}function y(l,o){const n=o*e,t=n/3;l.moveTo(-o,t),l.lineTo(o,t),l.lineTo(0,t-n),l.closePath()}function v(l,o,n,t){l.arc(0,0,n,0,2*Math.PI,!1),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)}function d(l,o,n,t){T(l,n),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)}function _(l,o,n,t){!function(l,o){l.beginPath(),l.arc(0,0,o/4,0,2*Math.PI,!1),l.closePath()}(l,n),t.line.set_vectorize(l,o),l.fillStyle=l.strokeStyle,l.fill()}function P(l,o,n,t){!function(l,o){const n=o/2,t=e*n;l.moveTo(o,0),l.lineTo(n,-t),l.lineTo(-n,-t),l.lineTo(-o,0),l.lineTo(-n,t),l.lineTo(n,t),l.closePath()}(l,n),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)}function m(l,o,n,t){const i=2*n;l.rect(-n,-n,i,i),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)}function q(l,o,n,t){!function(l,o){const n=Math.sqrt(5-2*a)*o;l.moveTo(0,-o),l.lineTo(n*r,n*h-o),l.lineTo(n*(1+r),n*h-o),l.lineTo(n*(1+r-c),n*(h+p)-o),l.lineTo(n*(1+2*r-c),n*(2*h+p)-o),l.lineTo(0,2*n*h-o),l.lineTo(-n*(1+2*r-c),n*(2*h+p)-o),l.lineTo(-n*(1+r-c),n*(h+p)-o),l.lineTo(-n*(1+r),n*h-o),l.lineTo(-n*r,n*h-o),l.closePath()}(l,n),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)}function M(l,o,n,t){y(l,n),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)}n.marker_funcs={asterisk:function(l,o,n,t){s(l,n),u(l,n),t.line.apply(l,o)},circle:v,circle_cross:function(l,o,n,t){l.arc(0,0,n,0,2*Math.PI,!1),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.doit&&(t.line.set_vectorize(l,o),s(l,n),l.stroke())},circle_dot:function(l,o,n,t){v(l,o,n,t),_(l,o,n,t)},circle_y:function(l,o,n,t){l.arc(0,0,n,0,2*Math.PI,!1),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.doit&&(t.line.set_vectorize(l,o),f(l,n),l.stroke())},circle_x:function(l,o,n,t){l.arc(0,0,n,0,2*Math.PI,!1),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.doit&&(t.line.set_vectorize(l,o),u(l,n),l.stroke())},cross:function(l,o,n,t){s(l,n),t.line.apply(l,o)},diamond:d,diamond_dot:function(l,o,n,t){d(l,o,n,t),_(l,o,n,t)},diamond_cross:function(l,o,n,t){T(l,n),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.doit&&(t.line.set_vectorize(l,o),l.moveTo(0,n),l.lineTo(0,-n),l.moveTo(-n/1.5,0),l.lineTo(n/1.5,0),l.stroke())},dot:_,hex:P,hex_dot:function(l,o,n,t){P(l,o,n,t),_(l,o,n,t)},inverted_triangle:function(l,o,n,t){l.rotate(Math.PI),y(l,n),l.rotate(-Math.PI),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)},plus:function(l,o,n,t){const i=3*n/8,e=[i,i,n,n,i,i,-i,-i,-n,-n,-i,-i],a=[n,i,i,-i,-i,-n,-n,-i,-i,i,i,n];l.beginPath();for(let o=0;o<12;o++)l.lineTo(e[o],a[o]);l.closePath(),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)},square:m,square_cross:function(l,o,n,t){const i=2*n;l.rect(-n,-n,i,i),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.doit&&(t.line.set_vectorize(l,o),s(l,n),l.stroke())},square_dot:function(l,o,n,t){m(l,o,n,t),_(l,o,n,t)},square_pin:function(l,o,n,t){const i=3*n/8;l.moveTo(-n,-n),l.quadraticCurveTo(0,-i,n,-n),l.quadraticCurveTo(i,0,n,n),l.quadraticCurveTo(0,i,-n,n),l.quadraticCurveTo(-i,0,-n,-n),l.closePath(),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)},square_x:function(l,o,n,t){const i=2*n;l.rect(-n,-n,i,i),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.doit&&(t.line.set_vectorize(l,o),l.moveTo(-n,n),l.lineTo(n,-n),l.moveTo(-n,-n),l.lineTo(n,n),l.stroke())},star:q,star_dot:function(l,o,n,t){q(l,o,n,t),_(l,o,n,t)},triangle:M,triangle_dot:function(l,o,n,t){M(l,o,n,t),_(l,o,n,t)},triangle_pin:function(l,o,n,t){const i=n*e,a=i/3,c=3*a/8;l.moveTo(-n,a),l.quadraticCurveTo(0,c,n,a),l.quadraticCurveTo(e*c/2,c/2,0,a-i),l.quadraticCurveTo(-e*c/2,c/2,-n,a),l.closePath(),t.fill.apply(l,o),t.hatch.apply(l,o),t.line.apply(l,o)},dash:function(l,o,n,t){!function(l,o){l.moveTo(-o,0),l.lineTo(o,0)}(l,n),t.line.apply(l,o)},x:function(l,o,n,t){u(l,n),t.line.apply(l,o)},y:function(l,o,n,t){f(l,n),t.line.apply(l,o)}}},\n function _(e,t,s,i,n){i();const r=e(1);var o;const _=(0,r.__importStar)(e(185)),h=(0,r.__importStar)(e(18)),c=e(48),a=e(78),d=e(179),x=e(184),l=e(72);class y extends d.GlyphView{_project_data(){a.inplace.project_xy(this._x0,this._y0),a.inplace.project_xy(this._x1,this._y1)}_index_data(e){const{min:t,max:s}=Math,{_x0:i,_x1:n,_y0:r,_y1:o,data_size:_}=this;for(let h=0;h<_;h++){const _=i[h],c=n[h],a=r[h],d=o[h];e.add_rect(t(_,c),t(a,d),s(_,c),s(a,d))}}_render(e,t,s){if(this.visuals.line.doit){const{sx0:i,sy0:n,sx1:r,sy1:o}=null!=s?s:this;for(const s of t){const t=i[s],_=n[s],h=r[s],c=o[s];isFinite(t+_+h+c)&&(e.beginPath(),e.moveTo(t,_),e.lineTo(h,c),this.visuals.line.set_vectorize(e,s),e.stroke())}}}_hit_point(e){const{sx:t,sy:s}=e,i={x:t,y:s},[n,r]=this.renderer.xscale.r_invert(t-2,t+2),[o,h]=this.renderer.yscale.r_invert(s-2,s+2),c=this.index.indices({x0:n,y0:o,x1:r,y1:h}),a=[];for(const e of c){const t=Math.max(2,this.line_width.get(e)/2)**2,s={x:this.sx0[e],y:this.sy0[e]},n={x:this.sx1[e],y:this.sy1[e]};_.dist_to_segment_squared(i,s,n)({x0:[h.XCoordinateSpec,{field:\"x0\"}],y0:[h.YCoordinateSpec,{field:\"y0\"}],x1:[h.XCoordinateSpec,{field:\"x1\"}],y1:[h.YCoordinateSpec,{field:\"y1\"}]}))),o.mixins(c.LineVector)},\n function _(t,e,s,i,n){i();const o=t(1);var _;const l=t(178),a=(0,o.__importStar)(t(48)),c=t(296);class r extends l.XYGlyphView{_set_data(){const{tension:t,closed:e}=this.model;[this._xt,this._yt]=(0,c.catmullrom_spline)(this._x,this._y,20,t,e)}_map_data(){const{x_scale:t,y_scale:e}=this.renderer.coordinates;this.sxt=t.v_compute(this._xt),this.syt=e.v_compute(this._yt)}_render(t,e,s){const{sxt:i,syt:n}=null!=s?s:this;let o=!0;t.beginPath();const _=i.length;for(let e=0;e<_;e++){const s=i[e],_=n[e];isFinite(s+_)?o?(t.moveTo(s,_),o=!1):t.lineTo(s,_):o=!0}this.visuals.line.set_value(t),t.stroke()}}s.SplineView=r,r.__name__=\"SplineView\";class h extends l.XYGlyph{constructor(t){super(t)}}s.Spline=h,_=h,h.__name__=\"Spline\",_.prototype.default_view=r,_.mixins(a.LineScalar),_.define((({Boolean:t,Number:e})=>({tension:[e,.5],closed:[t,!1]})))},\n function _(n,t,e,o,s){o();const c=n(24),l=n(11);e.catmullrom_spline=function(n,t,e=10,o=.5,s=!1){(0,l.assert)(n.length==t.length);const r=n.length,f=s?r+1:r,w=(0,c.infer_type)(n,t),i=new w(f+2),u=new w(f+2);i.set(n,1),u.set(t,1),s?(i[0]=n[r-1],u[0]=t[r-1],i[f]=n[0],u[f]=t[0],i[f+1]=n[1],u[f+1]=t[1]):(i[0]=n[0],u[0]=t[0],i[f+1]=n[r-1],u[f+1]=t[r-1]);const g=new w(4*(e+1));for(let n=0,t=0;n<=e;n++){const o=n/e,s=o**2,c=o*s;g[t++]=2*c-3*s+1,g[t++]=-2*c+3*s,g[t++]=c-2*s+o,g[t++]=c-s}const h=new w((f-1)*(e+1)),_=new w((f-1)*(e+1));for(let n=1,t=0;n1&&(e.stroke(),o=!1)}o?(e.lineTo(t,r),e.lineTo(a,c)):(e.beginPath(),e.moveTo(s[n],i[n]),o=!0),l=n}e.lineTo(s[a-1],i[a-1]),e.stroke()}}draw_legend_for_index(e,t,n){(0,r.generic_line_scalar_legend)(this.visuals,e,t)}}n.StepView=f,f.__name__=\"StepView\";class u extends a.XYGlyph{constructor(e){super(e)}}n.Step=u,l=u,u.__name__=\"Step\",l.prototype.default_view=f,l.mixins(c.LineScalar),l.define((()=>({mode:[_.StepMode,\"before\"]})))},\n function _(t,e,s,i,n){i();const o=t(1);var _;const h=t(178),l=t(48),r=(0,o.__importStar)(t(185)),a=(0,o.__importStar)(t(18)),c=t(121),x=t(11),u=t(72);class f extends h.XYGlyphView{_rotate_point(t,e,s,i,n){return[(t-s)*Math.cos(n)-(e-i)*Math.sin(n)+s,(t-s)*Math.sin(n)+(e-i)*Math.cos(n)+i]}_text_bounds(t,e,s,i){return[[t,t+s,t+s,t,t],[e,e,e-i,e-i,e]]}_render(t,e,s){const{sx:i,sy:n,x_offset:o,y_offset:_,angle:h,text:l}=null!=s?s:this;this._sys=[],this._sxs=[];for(const s of e){const e=this._sxs[s]=[],r=this._sys[s]=[],a=i[s],x=n[s],u=o.get(s),f=_.get(s),p=h.get(s),g=l.get(s);if(isFinite(a+x+u+f+p)&&null!=g&&this.visuals.text.doit){const i=`${g}`;t.save(),t.translate(a+u,x+f),t.rotate(p),this.visuals.text.set_vectorize(t,s);const n=this.visuals.text.font_value(s),{height:o}=(0,c.font_metrics)(n),_=this.text_line_height.get(s)*o;if(-1==i.indexOf(\"\\n\")){t.fillText(i,0,0);const s=a+u,n=x+f,o=t.measureText(i).width,[h,l]=this._text_bounds(s,n,o,_);e.push(h),r.push(l)}else{const n=i.split(\"\\n\"),o=_*n.length,h=this.text_baseline.get(s);let l;switch(h){case\"top\":l=0;break;case\"middle\":l=-o/2+_/2;break;case\"bottom\":l=-o+_;break;default:l=0,console.warn(`'${h}' baseline not supported with multi line text`)}for(const s of n){t.fillText(s,0,l);const i=a+u,n=l+x+f,o=t.measureText(s).width,[h,c]=this._text_bounds(i,n,o,_);e.push(h),r.push(c),l+=_}}t.restore()}}}_hit_point(t){const{sx:e,sy:s}=t,i=[];for(let t=0;t({text:[a.NullStringSpec,{field:\"text\"}],angle:[a.AngleSpec,0],x_offset:[a.NumberSpec,0],y_offset:[a.NumberSpec,0]})))},\n function _(t,e,s,i,r){i();const h=t(1);var o;const a=t(277),n=t(24),_=(0,h.__importStar)(t(18));class l extends a.BoxView{async lazy_initialize(){await super.lazy_initialize();const{webgl:e}=this.renderer.plot_view.canvas_view;if(null!=e&&e.regl_wrapper.has_webgl){const{LRTBGL:s}=await Promise.resolve().then((()=>(0,h.__importStar)(t(427))));this.glglyph=new s(e.regl_wrapper,this)}}scenterxy(t){return[this.sx[t],(this.stop[t]+this.sbottom[t])/2]}_lrtb(t){const e=this.width.get(t)/2,s=this._x[t],i=this._top[t],r=this._bottom[t];return[s-e,s+e,Math.max(i,r),Math.min(i,r)]}_map_data(){this.sx=this.renderer.xscale.v_compute(this._x),this.sw=this.sdist(this.renderer.xscale,this._x,this.width,\"center\"),this.stop=this.renderer.yscale.v_compute(this._top),this.sbottom=this.renderer.yscale.v_compute(this._bottom);const t=this.sx.length;this.sleft=new n.ScreenArray(t),this.sright=new n.ScreenArray(t);for(let e=0;e({x:[_.XCoordinateSpec,{field:\"x\"}],bottom:[_.YCoordinateSpec,{value:0}],width:[_.NumberSpec,{value:1}],top:[_.YCoordinateSpec,{field:\"top\"}]})))},\n function _(e,s,t,i,n){i();const r=e(1);var a;const c=e(178),d=e(184),l=e(48),h=e(24),o=e(20),_=(0,r.__importStar)(e(18)),u=e(10),g=e(72),x=e(12);class p extends c.XYGlyphView{_map_data(){\"data\"==this.model.properties.radius.units?this.sradius=this.sdist(this.renderer.xscale,this._x,this.radius):this.sradius=(0,h.to_screen)(this.radius),this.max_sradius=(0,x.max)(this.sradius)}_render(e,s,t){const{sx:i,sy:n,sradius:r,start_angle:a,end_angle:c}=null!=t?t:this,d=\"anticlock\"==this.model.direction;for(const t of s){const s=i[t],l=n[t],h=r[t],o=a.get(t),_=c.get(t);isFinite(s+l+h+o+_)&&(e.beginPath(),e.arc(s,l,h,o,_,d),e.lineTo(s,l),e.closePath(),this.visuals.fill.apply(e,t),this.visuals.hatch.apply(e,t),this.visuals.line.apply(e,t))}}_hit_point(e){let s,t,i,n,r;const{sx:a,sy:c}=e,d=this.renderer.xscale.invert(a),l=this.renderer.yscale.invert(c);t=a-this.max_sradius,i=a+this.max_sradius;const[h,o]=this.renderer.xscale.r_invert(t,i);n=c-this.max_sradius,r=c+this.max_sradius;const[_,x]=this.renderer.yscale.r_invert(n,r),p=[];for(const e of this.index.indices({x0:h,x1:o,y0:_,y1:x})){const a=this.sradius[e]**2;[t,i]=this.renderer.xscale.r_compute(d,this._x[e]),[n,r]=this.renderer.yscale.r_compute(l,this._y[e]),s=(t-i)**2+(n-r)**2,s<=a&&p.push(e)}const y=\"anticlock\"==this.model.direction,m=[];for(const e of p){const s=Math.atan2(c-this.sy[e],a-this.sx[e]);(0,u.angle_between)(-s,-this.start_angle.get(e),-this.end_angle.get(e),y)&&m.push(e)}return new g.Selection({indices:m})}draw_legend_for_index(e,s,t){(0,d.generic_area_vector_legend)(this.visuals,e,s,t)}scenterxy(e){const s=this.sradius[e]/2,t=(this.start_angle.get(e)+this.end_angle.get(e))/2;return[this.sx[e]+s*Math.cos(t),this.sy[e]+s*Math.sin(t)]}}t.WedgeView=p,p.__name__=\"WedgeView\";class y extends c.XYGlyph{constructor(e){super(e)}}t.Wedge=y,a=y,y.__name__=\"Wedge\",a.prototype.default_view=p,a.mixins([l.LineVector,l.FillVector,l.HatchVector]),a.define((({})=>({direction:[o.Direction,\"anticlock\"],radius:[_.DistanceSpec,{field:\"radius\"}],start_angle:[_.AngleSpec,{field:\"start_angle\"}],end_angle:[_.AngleSpec,{field:\"end_angle\"}]})))},\n function _(t,_,r,o,a){o();const e=t(1);(0,e.__exportStar)(t(302),r),(0,e.__exportStar)(t(303),r),(0,e.__exportStar)(t(304),r)},\n function _(e,t,d,n,s){n();const o=e(53),r=e(12),_=e(9),i=e(72);class c extends o.Model{constructor(e){super(e)}_hit_test(e,t,d){if(!t.model.visible)return null;const n=d.glyph.hit_test(e);return null==n?null:d.model.view.convert_selection_from_subset(n)}}d.GraphHitTestPolicy=c,c.__name__=\"GraphHitTestPolicy\";class a extends c{constructor(e){super(e)}hit_test(e,t){return this._hit_test(e,t,t.edge_view)}do_selection(e,t,d,n){if(null==e)return!1;const s=t.edge_renderer.data_source.selected;return s.update(e,d,n),t.edge_renderer.data_source._select.emit(),!s.is_empty()}do_inspection(e,t,d,n,s){if(null==e)return!1;const{edge_renderer:o}=d.model,r=o.get_selection_manager().get_or_create_inspector(d.edge_view.model);return r.update(e,n,s),d.edge_view.model.data_source.setv({inspected:r},{silent:!0}),d.edge_view.model.data_source.inspect.emit([d.edge_view.model,{geometry:t}]),!r.is_empty()}}d.EdgesOnly=a,a.__name__=\"EdgesOnly\";class l extends c{constructor(e){super(e)}hit_test(e,t){return this._hit_test(e,t,t.node_view)}do_selection(e,t,d,n){if(null==e)return!1;const s=t.node_renderer.data_source.selected;return s.update(e,d,n),t.node_renderer.data_source._select.emit(),!s.is_empty()}do_inspection(e,t,d,n,s){if(null==e)return!1;const{node_renderer:o}=d.model,r=o.get_selection_manager().get_or_create_inspector(d.node_view.model);return r.update(e,n,s),d.node_view.model.data_source.setv({inspected:r},{silent:!0}),d.node_view.model.data_source.inspect.emit([d.node_view.model,{geometry:t}]),!r.is_empty()}}d.NodesOnly=l,l.__name__=\"NodesOnly\";class u extends c{constructor(e){super(e)}hit_test(e,t){return this._hit_test(e,t,t.node_view)}get_linked_edges(e,t,d){let n=[];\"selection\"==d?n=e.selected.indices.map((t=>e.data.index[t])):\"inspection\"==d&&(n=e.inspected.indices.map((t=>e.data.index[t])));const s=[];for(let e=0;e(0,r.indexOf)(e.data.index,t)));return new i.Selection({indices:o})}do_selection(e,t,d,n){if(null==e)return!1;const s=t.edge_renderer.data_source.selected;s.update(e,d,n);const o=t.node_renderer.data_source.selected,r=this.get_linked_nodes(t.node_renderer.data_source,t.edge_renderer.data_source,\"selection\");return o.update(r,d,n),t.edge_renderer.data_source._select.emit(),!s.is_empty()}do_inspection(e,t,d,n,s){if(null==e)return!1;const o=d.edge_view.model.data_source.selection_manager.get_or_create_inspector(d.edge_view.model);o.update(e,n,s),d.edge_view.model.data_source.setv({inspected:o},{silent:!0});const r=d.node_view.model.data_source.selection_manager.get_or_create_inspector(d.node_view.model),_=this.get_linked_nodes(d.node_view.model.data_source,d.edge_view.model.data_source,\"inspection\");return r.update(_,n,s),d.node_view.model.data_source.setv({inspected:r},{silent:!0}),d.edge_view.model.data_source.inspect.emit([d.edge_view.model,{geometry:t}]),!o.is_empty()}}d.EdgesAndLinkedNodes=m,m.__name__=\"EdgesAndLinkedNodes\"},\n function _(e,o,t,r,n){var s;r();const a=e(53),d=e(260);class _ extends a.Model{constructor(e){super(e)}get node_coordinates(){return new u({layout:this})}get edge_coordinates(){return new i({layout:this})}}t.LayoutProvider=_,_.__name__=\"LayoutProvider\";class c extends d.CoordinateTransform{constructor(e){super(e)}}t.GraphCoordinates=c,s=c,c.__name__=\"GraphCoordinates\",s.define((({Ref:e})=>({layout:[e(_)]})));class u extends c{constructor(e){super(e)}_v_compute(e){const[o,t]=this.layout.get_node_coordinates(e);return{x:o,y:t}}}t.NodeCoordinates=u,u.__name__=\"NodeCoordinates\";class i extends c{constructor(e){super(e)}_v_compute(e){const[o,t]=this.layout.get_edge_coordinates(e);return{x:o,y:t}}}t.EdgeCoordinates=i,i.__name__=\"EdgeCoordinates\"},\n function _(t,a,l,e,n){var o;e();const r=t(303);class u extends r.LayoutProvider{constructor(t){super(t)}get_node_coordinates(t){var a;const l=null!==(a=t.data.index)&&void 0!==a?a:[],e=l.length,n=new Float64Array(e),o=new Float64Array(e);for(let t=0;t({graph_layout:[l(a(t,t)),{}]})))},\n function _(i,d,n,r,G){r(),G(\"Grid\",i(306).Grid)},\n function _(i,e,n,s,t){s();const r=i(1);var o;const d=i(127),_=i(129),a=i(130),l=(0,r.__importStar)(i(48)),h=i(8);class c extends _.GuideRendererView{_render(){const i=this.layer.ctx;i.save(),this._draw_regions(i),this._draw_minor_grids(i),this._draw_grids(i),i.restore()}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.request_render()))}_draw_regions(i){if(!this.visuals.band_fill.doit&&!this.visuals.band_hatch.doit)return;const[e,n]=this.grid_coords(\"major\",!1);for(let s=0;sn[1]&&(t=n[1]);else{[s,t]=n;for(const i of this.plot_view.axis_views)i.dimension==this.model.dimension&&i.model.x_range_name==this.model.x_range_name&&i.model.y_range_name==this.model.y_range_name&&([s,t]=i.computed_bounds)}return[s,t]}grid_coords(i,e=!0){const n=this.model.dimension,s=(n+1)%2,[t,r]=this.ranges();let[o,d]=this.computed_bounds();[o,d]=[Math.min(o,d),Math.max(o,d)];const _=[[],[]],a=this.model.get_ticker();if(null==a)return _;const l=a.get_ticks(o,d,t,r.min)[i],h=t.min,c=t.max,u=r.min,m=r.max;e||(l[0]!=h&&l.splice(0,0,h),l[l.length-1]!=c&&l.push(c));for(let i=0;i({bounds:[r(t(i,i),e),\"auto\"],dimension:[n(0,1),0],axis:[o(s(d.Axis)),null],ticker:[o(s(a.Ticker)),null]}))),o.override({level:\"underlay\",band_fill_color:null,band_fill_alpha:0,grid_line_color:\"#e5e5e5\",minor_grid_line_color:null})},\n function _(o,a,x,B,e){B(),e(\"Box\",o(308).Box),e(\"Column\",o(310).Column),e(\"GridBox\",o(311).GridBox),e(\"HTMLBox\",o(312).HTMLBox),e(\"LayoutDOM\",o(309).LayoutDOM),e(\"Panel\",o(313).Panel),e(\"Row\",o(314).Row),e(\"Spacer\",o(315).Spacer),e(\"Tabs\",o(316).Tabs),e(\"WidgetBox\",o(319).WidgetBox)},\n function _(e,n,s,t,c){var i;t();const o=e(309);class r extends o.LayoutDOMView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.children.change,(()=>this.rebuild()))}get child_models(){return this.model.children}}s.BoxView=r,r.__name__=\"BoxView\";class a extends o.LayoutDOM{constructor(e){super(e)}}s.Box=a,i=a,a.__name__=\"Box\",i.define((({Number:e,Array:n,Ref:s})=>({children:[n(s(o.LayoutDOM)),[]],spacing:[e,0]})))},\n function _(t,i,e,s,o){var l;s();const n=t(53),h=t(20),a=t(43),r=t(19),_=t(8),c=t(22),u=t(121),d=t(113),p=t(226),m=t(207),g=t(44),w=t(235);class f extends p.DOMView{constructor(){super(...arguments),this._offset_parent=null,this._viewport={}}get is_layout_root(){return this.is_root||!(this.parent instanceof f)}get base_font_size(){const t=getComputedStyle(this.el).fontSize,i=(0,u.parse_css_font_size)(t);if(null!=i){const{value:t,unit:e}=i;if(\"px\"==e)return t}return null}initialize(){super.initialize(),this.el.style.position=this.is_layout_root?\"relative\":\"absolute\",this._child_views=new Map}async lazy_initialize(){await super.lazy_initialize(),await this.build_child_views()}remove(){for(const t of this.child_views)t.remove();this._child_views.clear(),super.remove()}connect_signals(){super.connect_signals(),this.is_layout_root&&(this._on_resize=()=>this.resize_layout(),window.addEventListener(\"resize\",this._on_resize),this._parent_observer=setInterval((()=>{const t=this.el.offsetParent;this._offset_parent!=t&&(this._offset_parent=t,null!=t&&(this.compute_viewport(),this.invalidate_layout()))}),250));const t=this.model.properties;this.on_change([t.width,t.height,t.min_width,t.min_height,t.max_width,t.max_height,t.margin,t.width_policy,t.height_policy,t.sizing_mode,t.aspect_ratio,t.visible],(()=>this.invalidate_layout())),this.on_change([t.background,t.css_classes],(()=>this.invalidate_render()))}disconnect_signals(){null!=this._parent_observer&&clearTimeout(this._parent_observer),null!=this._on_resize&&window.removeEventListener(\"resize\",this._on_resize),super.disconnect_signals()}css_classes(){return super.css_classes().concat(this.model.css_classes)}get child_views(){return this.child_models.map((t=>this._child_views.get(t)))}async build_child_views(){await(0,d.build_views)(this._child_views,this.child_models,{parent:this})}render(){super.render(),(0,a.empty)(this.el);const{background:t}=this.model;this.el.style.backgroundColor=null!=t?(0,c.color2css)(t):\"\",(0,a.classes)(this.el).clear().add(...this.css_classes());for(const t of this.child_views)this.el.appendChild(t.el),t.render()}update_layout(){for(const t of this.child_views)t.update_layout();this._update_layout()}update_position(){this.el.style.display=this.model.visible?\"block\":\"none\";const t=this.is_layout_root?this.layout.sizing.margin:void 0;(0,a.position)(this.el,this.layout.bbox,t);for(const t of this.child_views)t.update_position()}after_layout(){for(const t of this.child_views)t.after_layout();this._has_finished=!0}compute_viewport(){this._viewport=this._viewport_size()}renderTo(t){t.appendChild(this.el),this._offset_parent=this.el.offsetParent,this.compute_viewport(),this.build(),this.notify_finished()}build(){if(!this.is_layout_root)throw new Error(`${this.toString()} is not a root layout`);return this.render(),this.update_layout(),this.compute_layout(),this}async rebuild(){await this.build_child_views(),this.invalidate_render()}compute_layout(){const t=Date.now();this.layout.compute(this._viewport),this.update_position(),this.after_layout(),r.logger.debug(`layout computed in ${Date.now()-t} ms`)}resize_layout(){this.root.compute_viewport(),this.root.compute_layout()}invalidate_layout(){this.root.update_layout(),this.root.compute_layout()}invalidate_render(){this.render(),this.invalidate_layout()}has_finished(){if(!super.has_finished())return!1;for(const t of this.child_views)if(!t.has_finished())return!1;return!0}_width_policy(){return null!=this.model.width?\"fixed\":\"fit\"}_height_policy(){return null!=this.model.height?\"fixed\":\"fit\"}box_sizing(){let{width_policy:t,height_policy:i,aspect_ratio:e}=this.model;\"auto\"==t&&(t=this._width_policy()),\"auto\"==i&&(i=this._height_policy());const{sizing_mode:s}=this.model;if(null!=s)if(\"fixed\"==s)t=i=\"fixed\";else if(\"stretch_both\"==s)t=i=\"max\";else if(\"stretch_width\"==s)t=\"max\";else if(\"stretch_height\"==s)i=\"max\";else switch(null==e&&(e=\"auto\"),s){case\"scale_width\":t=\"max\",i=\"min\";break;case\"scale_height\":t=\"min\",i=\"max\";break;case\"scale_both\":t=\"max\",i=\"max\"}const o={width_policy:t,height_policy:i},{min_width:l,min_height:n}=this.model;null!=l&&(o.min_width=l),null!=n&&(o.min_height=n);const{width:h,height:a}=this.model;null!=h&&(o.width=h),null!=a&&(o.height=a);const{max_width:r,max_height:c}=this.model;null!=r&&(o.max_width=r),null!=c&&(o.max_height=c),\"auto\"==e&&null!=h&&null!=a?o.aspect=h/a:(0,_.isNumber)(e)&&(o.aspect=e);const{margin:u}=this.model;if(null!=u)if((0,_.isNumber)(u))o.margin={top:u,right:u,bottom:u,left:u};else if(2==u.length){const[t,i]=u;o.margin={top:t,right:i,bottom:t,left:i}}else{const[t,i,e,s]=u;o.margin={top:t,right:i,bottom:e,left:s}}o.visible=this.model.visible;const{align:d}=this.model;return(0,_.isArray)(d)?[o.halign,o.valign]=d:o.halign=o.valign=d,o}_viewport_size(){return(0,a.undisplayed)(this.el,(()=>{let t=this.el;for(;t=t.parentElement;){if(t.classList.contains(g.root))continue;if(t==document.body){const{margin:{left:t,right:i,top:e,bottom:s}}=(0,a.extents)(document.body);return{width:Math.ceil(document.documentElement.clientWidth-t-i),height:Math.ceil(document.documentElement.clientHeight-e-s)}}const{padding:{left:i,right:e,top:s,bottom:o}}=(0,a.extents)(t),{width:l,height:n}=t.getBoundingClientRect(),h=Math.ceil(l-i-e),r=Math.ceil(n-s-o);if(h>0||r>0)return{width:h>0?h:void 0,height:r>0?r:void 0}}return{}}))}export(t,i=!0){const e=\"png\"==t?\"canvas\":\"svg\",s=new w.CanvasLayer(e,i),{width:o,height:l}=this.layout.bbox;s.resize(o,l);for(const e of this.child_views){const o=e.export(t,i),{x:l,y:n}=e.layout.bbox;s.ctx.drawImage(o.canvas,l,n)}return s}serializable_state(){return Object.assign(Object.assign({},super.serializable_state()),{bbox:this.layout.bbox.box,children:this.child_views.map((t=>t.serializable_state()))})}}e.LayoutDOMView=f,f.__name__=\"LayoutDOMView\";class y extends n.Model{constructor(t){super(t)}}e.LayoutDOM=y,l=y,y.__name__=\"LayoutDOM\",l.define((t=>{const{Boolean:i,Number:e,String:s,Auto:o,Color:l,Array:n,Tuple:a,Or:r,Null:_,Nullable:c}=t,u=a(e,e),d=a(e,e,e,e);return{width:[c(e),null],height:[c(e),null],min_width:[c(e),null],min_height:[c(e),null],max_width:[c(e),null],max_height:[c(e),null],margin:[c(r(e,u,d)),[0,0,0,0]],width_policy:[r(m.SizingPolicy,o),\"auto\"],height_policy:[r(m.SizingPolicy,o),\"auto\"],aspect_ratio:[r(e,o,_),null],sizing_mode:[c(h.SizingMode),null],visible:[i,!0],disabled:[i,!1],align:[r(h.Align,a(h.Align,h.Align)),\"start\"],background:[c(l),null],css_classes:[n(s),[]]}}))},\n function _(o,s,t,i,e){var n;i();const a=o(308),l=o(209);class u extends a.BoxView{_update_layout(){const o=this.child_views.map((o=>o.layout));this.layout=new l.Column(o),this.layout.rows=this.model.rows,this.layout.spacing=[this.model.spacing,0],this.layout.set_sizing(this.box_sizing())}}t.ColumnView=u,u.__name__=\"ColumnView\";class _ extends a.Box{constructor(o){super(o)}}t.Column=_,n=_,_.__name__=\"Column\",n.prototype.default_view=u,n.define((({Any:o})=>({rows:[o,\"auto\"]})))},\n function _(s,o,t,i,e){var n;i();const l=s(309),a=s(209);class r extends l.LayoutDOMView{connect_signals(){super.connect_signals();const{children:s,rows:o,cols:t,spacing:i}=this.model.properties;this.on_change([s,o,t,i],(()=>this.rebuild()))}get child_models(){return this.model.children.map((([s])=>s))}_update_layout(){this.layout=new a.Grid,this.layout.rows=this.model.rows,this.layout.cols=this.model.cols,this.layout.spacing=this.model.spacing;for(const[s,o,t,i,e]of this.model.children){const n=this._child_views.get(s);this.layout.items.push({layout:n.layout,row:o,col:t,row_span:i,col_span:e})}this.layout.set_sizing(this.box_sizing())}}t.GridBoxView=r,r.__name__=\"GridBoxView\";class c extends l.LayoutDOM{constructor(s){super(s)}}t.GridBox=c,n=c,c.__name__=\"GridBox\",n.prototype.default_view=r,n.define((({Any:s,Int:o,Number:t,Tuple:i,Array:e,Ref:n,Or:a,Opt:r})=>({children:[e(i(n(l.LayoutDOM),o,o,r(o),r(o))),[]],rows:[s,\"auto\"],cols:[s,\"auto\"],spacing:[a(t,i(t,t)),0]})))},\n function _(t,e,o,s,n){s();const _=t(309),i=t(207);class a extends _.LayoutDOMView{get child_models(){return[]}_update_layout(){this.layout=new i.ContentBox(this.el),this.layout.set_sizing(this.box_sizing())}}o.HTMLBoxView=a,a.__name__=\"HTMLBoxView\";class u extends _.LayoutDOM{constructor(t){super(t)}}o.HTMLBox=u,u.__name__=\"HTMLBox\"},\n function _(e,n,l,a,o){var t;a();const s=e(53),c=e(309);class d extends s.Model{constructor(e){super(e)}}l.Panel=d,t=d,d.__name__=\"Panel\",t.define((({Boolean:e,String:n,Ref:l})=>({title:[n,\"\"],child:[l(c.LayoutDOM)],closable:[e,!1],disabled:[e,!1]})))},\n function _(o,s,t,i,e){var a;i();const n=o(308),l=o(209);class _ extends n.BoxView{_update_layout(){const o=this.child_views.map((o=>o.layout));this.layout=new l.Row(o),this.layout.cols=this.model.cols,this.layout.spacing=[0,this.model.spacing],this.layout.set_sizing(this.box_sizing())}}t.RowView=_,_.__name__=\"RowView\";class c extends n.Box{constructor(o){super(o)}}t.Row=c,a=c,c.__name__=\"Row\",a.prototype.default_view=_,a.define((({Any:o})=>({cols:[o,\"auto\"]})))},\n function _(e,t,a,s,_){var o;s();const i=e(309),n=e(207);class u extends i.LayoutDOMView{get child_models(){return[]}_update_layout(){this.layout=new n.LayoutItem,this.layout.set_sizing(this.box_sizing())}}a.SpacerView=u,u.__name__=\"SpacerView\";class c extends i.LayoutDOM{constructor(e){super(e)}}a.Spacer=c,o=c,c.__name__=\"Spacer\",o.prototype.default_view=u},\n function _(e,t,s,i,l){i();const h=e(1);var a;const o=e(207),d=e(43),r=e(9),c=e(10),n=e(20),_=e(309),p=e(313),b=(0,h.__importStar)(e(317)),m=b,u=(0,h.__importStar)(e(318)),g=u,v=(0,h.__importStar)(e(229)),w=v;class f extends _.LayoutDOMView{constructor(){super(...arguments),this._scroll_index=0}connect_signals(){super.connect_signals(),this.connect(this.model.properties.tabs.change,(()=>this.rebuild())),this.connect(this.model.properties.active.change,(()=>this.on_active_change()))}styles(){return[...super.styles(),u.default,v.default,b.default]}get child_models(){return this.model.tabs.map((e=>e.child))}_update_layout(){const e=this.model.tabs_location,t=\"above\"==e||\"below\"==e,{scroll_el:s,headers_el:i}=this;this.header=new class extends o.ContentBox{_measure(e){const l=(0,d.size)(s),h=(0,d.children)(i).slice(0,3).map((e=>(0,d.size)(e))),{width:a,height:o}=super._measure(e);if(t){const t=l.width+(0,r.sum)(h.map((e=>e.width)));return{width:e.width!=1/0?e.width:t,height:o}}{const t=l.height+(0,r.sum)(h.map((e=>e.height)));return{width:a,height:e.height!=1/0?e.height:t}}}}(this.header_el),t?this.header.set_sizing({width_policy:\"fit\",height_policy:\"fixed\"}):this.header.set_sizing({width_policy:\"fixed\",height_policy:\"fit\"});let l=1,h=1;switch(e){case\"above\":l-=1;break;case\"below\":l+=1;break;case\"left\":h-=1;break;case\"right\":h+=1}const a={layout:this.header,row:l,col:h},c=this.child_views.map((e=>({layout:e.layout,row:1,col:1})));this.layout=new o.Grid([a,...c]),this.layout.set_sizing(this.box_sizing())}update_position(){super.update_position(),this.header_el.style.position=\"absolute\",(0,d.position)(this.header_el,this.header.bbox);const e=this.model.tabs_location,t=\"above\"==e||\"below\"==e,s=(0,d.size)(this.scroll_el),i=(0,d.scroll_size)(this.headers_el);if(t){const{width:e}=this.header.bbox;i.width>e?(this.wrapper_el.style.maxWidth=e-s.width+\"px\",(0,d.display)(this.scroll_el),this.do_scroll(this.model.active)):(this.wrapper_el.style.maxWidth=\"\",(0,d.undisplay)(this.scroll_el))}else{const{height:e}=this.header.bbox;i.height>e?(this.wrapper_el.style.maxHeight=e-s.height+\"px\",(0,d.display)(this.scroll_el),this.do_scroll(this.model.active)):(this.wrapper_el.style.maxHeight=\"\",(0,d.undisplay)(this.scroll_el))}const{child_views:l}=this;for(const e of l)(0,d.hide)(e.el);const h=l[this.model.active];null!=h&&(0,d.show)(h.el)}render(){super.render();const{active:e}=this.model,t=this.model.tabs.map(((t,s)=>{const i=(0,d.div)({class:[m.tab,s==e?m.active:null]},t.title);if(i.addEventListener(\"click\",(e=>{this.model.disabled||e.target==e.currentTarget&&this.change_active(s)})),t.closable){const e=(0,d.div)({class:m.close});e.addEventListener(\"click\",(e=>{if(e.target==e.currentTarget){this.model.tabs=(0,r.remove_at)(this.model.tabs,s);const e=this.model.tabs.length;this.model.active>e-1&&(this.model.active=e-1)}})),i.appendChild(e)}return(this.model.disabled||t.disabled)&&i.classList.add(m.disabled),i}));this.headers_el=(0,d.div)({class:[m.headers]},t),this.wrapper_el=(0,d.div)({class:m.headers_wrapper},this.headers_el),this.left_el=(0,d.div)({class:[g.btn,g.btn_default],disabled:\"\"},(0,d.div)({class:[w.caret,m.left]})),this.right_el=(0,d.div)({class:[g.btn,g.btn_default]},(0,d.div)({class:[w.caret,m.right]})),this.left_el.addEventListener(\"click\",(()=>this.do_scroll(\"left\"))),this.right_el.addEventListener(\"click\",(()=>this.do_scroll(\"right\"))),this.scroll_el=(0,d.div)({class:g.btn_group},this.left_el,this.right_el);const s=this.model.tabs_location;this.header_el=(0,d.div)({class:[m.tabs_header,m[s]]},this.scroll_el,this.wrapper_el),this.el.appendChild(this.header_el)}do_scroll(e){const t=this.model.tabs.length;\"left\"==e?this._scroll_index-=1:\"right\"==e?this._scroll_index+=1:this._scroll_index=e,this._scroll_index=(0,c.clamp)(this._scroll_index,0,t-1),0==this._scroll_index?this.left_el.setAttribute(\"disabled\",\"\"):this.left_el.removeAttribute(\"disabled\"),this._scroll_index==t-1?this.right_el.setAttribute(\"disabled\",\"\"):this.right_el.removeAttribute(\"disabled\");const s=(0,d.children)(this.headers_el).slice(0,this._scroll_index).map((e=>e.getBoundingClientRect())),i=this.model.tabs_location;if(\"above\"==i||\"below\"==i){const e=-(0,r.sum)(s.map((e=>e.width)));this.headers_el.style.left=`${e}px`}else{const e=-(0,r.sum)(s.map((e=>e.height)));this.headers_el.style.top=`${e}px`}}change_active(e){e!=this.model.active&&(this.model.active=e)}on_active_change(){const e=this.model.active,t=(0,d.children)(this.headers_el);for(const e of t)e.classList.remove(m.active);t[e].classList.add(m.active);const{child_views:s}=this;for(const e of s)(0,d.hide)(e.el);(0,d.show)(s[e].el)}}s.TabsView=f,f.__name__=\"TabsView\";class x extends _.LayoutDOM{constructor(e){super(e)}}s.Tabs=x,a=x,x.__name__=\"Tabs\",a.prototype.default_view=f,a.define((({Int:e,Array:t,Ref:s})=>({tabs:[t(s(p.Panel)),[]],tabs_location:[n.Location,\"above\"],active:[e,0]})))},\n function _(e,r,b,o,t){o(),b.root=\"bk-root\",b.tabs_header=\"bk-tabs-header\",b.btn_group=\"bk-btn-group\",b.btn=\"bk-btn\",b.headers_wrapper=\"bk-headers-wrapper\",b.above=\"bk-above\",b.right=\"bk-right\",b.below=\"bk-below\",b.left=\"bk-left\",b.headers=\"bk-headers\",b.tab=\"bk-tab\",b.active=\"bk-active\",b.close=\"bk-close\",b.disabled=\"bk-disabled\",b.default='.bk-root .bk-tabs-header{display:flex;flex-wrap:nowrap;align-items:center;overflow:hidden;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;}.bk-root .bk-tabs-header .bk-btn-group{height:auto;margin-right:5px;}.bk-root .bk-tabs-header .bk-btn-group > .bk-btn{flex-grow:0;height:auto;padding:4px 4px;}.bk-root .bk-tabs-header .bk-headers-wrapper{flex-grow:1;overflow:hidden;color:#666666;}.bk-root .bk-tabs-header.bk-above .bk-headers-wrapper{border-bottom:1px solid #e6e6e6;}.bk-root .bk-tabs-header.bk-right .bk-headers-wrapper{border-left:1px solid #e6e6e6;}.bk-root .bk-tabs-header.bk-below .bk-headers-wrapper{border-top:1px solid #e6e6e6;}.bk-root .bk-tabs-header.bk-left .bk-headers-wrapper{border-right:1px solid #e6e6e6;}.bk-root .bk-tabs-header.bk-above,.bk-root .bk-tabs-header.bk-below{flex-direction:row;}.bk-root .bk-tabs-header.bk-above .bk-headers,.bk-root .bk-tabs-header.bk-below .bk-headers{flex-direction:row;}.bk-root .bk-tabs-header.bk-left,.bk-root .bk-tabs-header.bk-right{flex-direction:column;}.bk-root .bk-tabs-header.bk-left .bk-headers,.bk-root .bk-tabs-header.bk-right .bk-headers{flex-direction:column;}.bk-root .bk-tabs-header .bk-headers{position:relative;display:flex;flex-wrap:nowrap;align-items:center;}.bk-root .bk-tabs-header .bk-tab{padding:4px 8px;border:solid transparent;white-space:nowrap;cursor:pointer;}.bk-root .bk-tabs-header .bk-tab:hover{background-color:#f2f2f2;}.bk-root .bk-tabs-header .bk-tab.bk-active{color:#4d4d4d;background-color:white;border-color:#e6e6e6;}.bk-root .bk-tabs-header .bk-tab .bk-close{margin-left:10px;}.bk-root .bk-tabs-header .bk-tab.bk-disabled{cursor:not-allowed;pointer-events:none;opacity:0.65;}.bk-root .bk-tabs-header.bk-above .bk-tab{border-width:3px 1px 0px 1px;border-radius:4px 4px 0 0;}.bk-root .bk-tabs-header.bk-right .bk-tab{border-width:1px 3px 1px 0px;border-radius:0 4px 4px 0;}.bk-root .bk-tabs-header.bk-below .bk-tab{border-width:0px 1px 3px 1px;border-radius:0 0 4px 4px;}.bk-root .bk-tabs-header.bk-left .bk-tab{border-width:1px 0px 1px 3px;border-radius:4px 0 0 4px;}.bk-root .bk-close{display:inline-block;width:10px;height:10px;vertical-align:middle;background-image:url(\\'data:image/svg+xml;utf8, \\');}.bk-root .bk-close:hover{background-image:url(\\'data:image/svg+xml;utf8, \\');}'},\n function _(o,b,r,t,e){t(),r.root=\"bk-root\",r.btn=\"bk-btn\",r.active=\"bk-active\",r.btn_default=\"bk-btn-default\",r.btn_primary=\"bk-btn-primary\",r.btn_success=\"bk-btn-success\",r.btn_warning=\"bk-btn-warning\",r.btn_danger=\"bk-btn-danger\",r.btn_light=\"bk-btn-light\",r.btn_group=\"bk-btn-group\",r.vertical=\"bk-vertical\",r.horizontal=\"bk-horizontal\",r.dropdown_toggle=\"bk-dropdown-toggle\",r.default=\".bk-root .bk-btn{height:100%;display:inline-block;text-align:center;vertical-align:middle;white-space:nowrap;cursor:pointer;padding:6px 12px;font-size:12px;border:1px solid transparent;border-radius:4px;outline:0;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;}.bk-root .bk-btn:hover,.bk-root .bk-btn:focus{text-decoration:none;}.bk-root .bk-btn:active,.bk-root .bk-btn.bk-active{background-image:none;box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);}.bk-root .bk-btn[disabled]{cursor:not-allowed;pointer-events:none;opacity:0.65;box-shadow:none;}.bk-root .bk-btn-default{color:#333;background-color:#fff;border-color:#ccc;}.bk-root .bk-btn-default:hover{background-color:#f5f5f5;border-color:#b8b8b8;}.bk-root .bk-btn-default.bk-active{background-color:#ebebeb;border-color:#adadad;}.bk-root .bk-btn-default[disabled],.bk-root .bk-btn-default[disabled]:hover,.bk-root .bk-btn-default[disabled]:focus,.bk-root .bk-btn-default[disabled]:active,.bk-root .bk-btn-default[disabled].bk-active{background-color:#e6e6e6;border-color:#ccc;}.bk-root .bk-btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd;}.bk-root .bk-btn-primary:hover{background-color:#3681c1;border-color:#2c699e;}.bk-root .bk-btn-primary.bk-active{background-color:#3276b1;border-color:#285e8e;}.bk-root .bk-btn-primary[disabled],.bk-root .bk-btn-primary[disabled]:hover,.bk-root .bk-btn-primary[disabled]:focus,.bk-root .bk-btn-primary[disabled]:active,.bk-root .bk-btn-primary[disabled].bk-active{background-color:#506f89;border-color:#357ebd;}.bk-root .bk-btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c;}.bk-root .bk-btn-success:hover{background-color:#4eb24e;border-color:#409240;}.bk-root .bk-btn-success.bk-active{background-color:#47a447;border-color:#398439;}.bk-root .bk-btn-success[disabled],.bk-root .bk-btn-success[disabled]:hover,.bk-root .bk-btn-success[disabled]:focus,.bk-root .bk-btn-success[disabled]:active,.bk-root .bk-btn-success[disabled].bk-active{background-color:#667b66;border-color:#4cae4c;}.bk-root .bk-btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236;}.bk-root .bk-btn-warning:hover{background-color:#eea43b;border-color:#e89014;}.bk-root .bk-btn-warning.bk-active{background-color:#ed9c28;border-color:#d58512;}.bk-root .bk-btn-warning[disabled],.bk-root .bk-btn-warning[disabled]:hover,.bk-root .bk-btn-warning[disabled]:focus,.bk-root .bk-btn-warning[disabled]:active,.bk-root .bk-btn-warning[disabled].bk-active{background-color:#c89143;border-color:#eea236;}.bk-root .bk-btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a;}.bk-root .bk-btn-danger:hover{background-color:#d5433e;border-color:#bd2d29;}.bk-root .bk-btn-danger.bk-active{background-color:#d2322d;border-color:#ac2925;}.bk-root .bk-btn-danger[disabled],.bk-root .bk-btn-danger[disabled]:hover,.bk-root .bk-btn-danger[disabled]:focus,.bk-root .bk-btn-danger[disabled]:active,.bk-root .bk-btn-danger[disabled].bk-active{background-color:#a55350;border-color:#d43f3a;}.bk-root .bk-btn-light{color:#333;background-color:#fff;border-color:#ccc;border-color:transparent;}.bk-root .bk-btn-light:hover{background-color:#f5f5f5;border-color:#b8b8b8;}.bk-root .bk-btn-light.bk-active{background-color:#ebebeb;border-color:#adadad;}.bk-root .bk-btn-light[disabled],.bk-root .bk-btn-light[disabled]:hover,.bk-root .bk-btn-light[disabled]:focus,.bk-root .bk-btn-light[disabled]:active,.bk-root .bk-btn-light[disabled].bk-active{background-color:#e6e6e6;border-color:#ccc;}.bk-root .bk-btn-group{height:100%;display:flex;flex-wrap:nowrap;align-items:center;}.bk-root .bk-btn-group:not(.bk-vertical),.bk-root .bk-btn-group.bk-horizontal{flex-direction:row;}.bk-root .bk-btn-group.bk-vertical{flex-direction:column;}.bk-root .bk-btn-group > .bk-btn{flex-grow:1;}.bk-root .bk-btn-group:not(.bk-vertical) > .bk-btn + .bk-btn{margin-left:-1px;}.bk-root .bk-btn-group.bk-vertical > .bk-btn + .bk-btn{margin-top:-1px;}.bk-root .bk-btn-group:not(.bk-vertical) > .bk-btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;}.bk-root .bk-btn-group.bk-vertical > .bk-btn:first-child:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0;}.bk-root .bk-btn-group:not(.bk-vertical) > .bk-btn:not(:first-child):last-child{border-bottom-left-radius:0;border-top-left-radius:0;}.bk-root .bk-btn-group.bk-vertical > .bk-btn:not(:first-child):last-child{border-top-left-radius:0;border-top-right-radius:0;}.bk-root .bk-btn-group > .bk-btn:not(:first-child):not(:last-child){border-radius:0;}.bk-root .bk-btn-group.bk-vertical > .bk-btn{width:100%;}.bk-root .bk-btn-group .bk-dropdown-toggle{flex:0 0 0;padding:6px 6px;}\"},\n function _(e,t,o,n,_){var i;n();const s=e(310);class d extends s.ColumnView{}o.WidgetBoxView=d,d.__name__=\"WidgetBoxView\";class a extends s.Column{constructor(e){super(e)}}o.WidgetBox=a,i=a,a.__name__=\"WidgetBox\",i.prototype.default_view=d},\n function _(t,a,i,e,M){e();var T=t(135);M(\"MathText\",T.MathText),M(\"Ascii\",T.Ascii),M(\"MathML\",T.MathML),M(\"TeX\",T.TeX),M(\"PlainText\",t(139).PlainText)},\n function _(r,o,t,e,n){e(),n(\"CustomJSTransform\",r(322).CustomJSTransform),n(\"Dodge\",r(323).Dodge),n(\"Interpolator\",r(325).Interpolator),n(\"Jitter\",r(326).Jitter),n(\"LinearInterpolator\",r(327).LinearInterpolator),n(\"StepInterpolator\",r(328).StepInterpolator),n(\"Transform\",r(56).Transform)},\n function _(r,t,s,n,e){var a;n();const u=r(56),o=r(13),m=r(34);class _ extends u.Transform{constructor(r){super(r)}get names(){return(0,o.keys)(this.args)}get values(){return(0,o.values)(this.args)}_make_transform(r,t){return new Function(...this.names,r,(0,m.use_strict)(t))}get scalar_transform(){return this._make_transform(\"x\",this.func)}get vector_transform(){return this._make_transform(\"xs\",this.v_func)}compute(r){return this.scalar_transform(...this.values,r)}v_compute(r){return this.vector_transform(...this.values,r)}}s.CustomJSTransform=_,a=_,_.__name__=\"CustomJSTransform\",a.define((({Unknown:r,String:t,Dict:s})=>({args:[s(r),{}],func:[t,\"\"],v_func:[t,\"\"]})))},\n function _(e,n,r,o,s){var t;o();const u=e(324);class a extends u.RangeTransform{constructor(e){super(e)}_compute(e){return e+this.value}}r.Dodge=a,t=a,a.__name__=\"Dodge\",t.define((({Number:e})=>({value:[e,0]})))},\n function _(e,n,t,r,a){var s;r();const c=e(56),o=e(57),i=e(67),u=e(24),h=e(8),l=e(11);class g extends c.Transform{constructor(e){super(e)}v_compute(e){let n;this.range instanceof i.FactorRange?n=this.range.v_synthetic(e):(0,h.isArrayableOf)(e,h.isNumber)?n=e:(0,l.unreachable)();const t=new((0,u.infer_type)(n))(n.length);for(let e=0;e({range:[n(e(o.Range)),null]})))},\n function _(t,e,r,n,s){var o;n();const i=t(56),a=t(70),h=t(24),l=t(9),d=t(8);class c extends i.Transform{constructor(t){super(t),this._sorted_dirty=!0}connect_signals(){super.connect_signals(),this.connect(this.change,(()=>this._sorted_dirty=!0))}v_compute(t){const e=new((0,h.infer_type)(t))(t.length);for(let r=0;ro*(e[t]-e[r]))),this._x_sorted=new((0,h.infer_type)(e))(n),this._y_sorted=new((0,h.infer_type)(r))(n);for(let t=0;t({x:[o(r,s(e))],y:[o(r,s(e))],data:[i(n(a.ColumnarDataSource)),null],clip:[t,!0]})))},\n function _(t,s,e,i,r){i();const n=t(1);var o;const a=t(324),u=t(67),h=t(20),c=t(8),m=t(12),f=(0,n.__importStar)(t(10)),_=t(11);class p extends a.RangeTransform{constructor(t){super(t)}v_compute(t){var s;let e;this.range instanceof u.FactorRange?e=this.range.v_synthetic(t):(0,c.isArrayableOf)(t,c.isNumber)?e=t:(0,_.unreachable)();const i=e.length;(null===(s=this.previous_offsets)||void 0===s?void 0:s.length)!=i&&(this.previous_offsets=new Array(i),this.previous_offsets=(0,m.map)(this.previous_offsets,(()=>this._compute())));const r=this.previous_offsets;return(0,m.map)(e,((t,s)=>r[s]+t))}_compute(){switch(this.distribution){case\"uniform\":return this.mean+(f.random()-.5)*this.width;case\"normal\":return f.rnorm(this.mean,this.width)}}}e.Jitter=p,o=p,p.__name__=\"Jitter\",o.define((({Number:t})=>({mean:[t,0],width:[t,1],distribution:[h.Distribution,\"uniform\"]})))},\n function _(t,s,_,r,e){r();const i=t(9),o=t(325);class n extends o.Interpolator{constructor(t){super(t)}compute(t){if(this.sort(!1),this.clip){if(tthis._x_sorted[this._x_sorted.length-1])return NaN}else{if(tthis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}if(t==this._x_sorted[0])return this._y_sorted[0];const s=(0,i.find_last_index)(this._x_sorted,(s=>sthis._x_sorted[this._x_sorted.length-1])return NaN}else{if(tthis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}let e;switch(this.mode){case\"after\":e=(0,d.find_last_index)(this._x_sorted,(e=>t>=e));break;case\"before\":e=(0,d.find_index)(this._x_sorted,(e=>t<=e));break;case\"center\":{const s=(0,d.map)(this._x_sorted,(e=>Math.abs(e-t))),r=(0,d.min)(s);e=(0,d.find_index)(s,(t=>r===t));break}default:throw new Error(`unknown mode: ${this.mode}`)}return-1!=e?this._y_sorted[e]:NaN}}s.StepInterpolator=h,_=h,h.__name__=\"StepInterpolator\",_.define((()=>({mode:[n.StepMode,\"after\"]})))},\n function _(p,o,t,a,n){a(),n(\"MapOptions\",p(330).MapOptions),n(\"GMapOptions\",p(330).GMapOptions),n(\"GMapPlot\",p(330).GMapPlot),n(\"Plot\",p(331).Plot)},\n function _(e,t,n,o,a){var s,p,_;o();const i=e(331),r=e(53),l=e(58),c=e(336);a(\"GMapPlotView\",c.GMapPlotView);class d extends r.Model{constructor(e){super(e)}}n.MapOptions=d,s=d,d.__name__=\"MapOptions\",s.define((({Int:e,Number:t})=>({lat:[t],lng:[t],zoom:[e,12]})));class u extends d{constructor(e){super(e)}}n.GMapOptions=u,p=u,u.__name__=\"GMapOptions\",p.define((({Boolean:e,Int:t,String:n})=>({map_type:[n,\"roadmap\"],scale_control:[e,!1],styles:[n],tilt:[t,45]})));class M extends i.Plot{constructor(e){super(e),this.use_map=!0}}n.GMapPlot=M,_=M,M.__name__=\"GMapPlot\",_.prototype.default_view=c.GMapPlotView,_.define((({String:e,Ref:t})=>({map_options:[t(u)],api_key:[e],api_version:[e,\"weekly\"]}))),_.override({x_range:()=>new l.Range1d,y_range:()=>new l.Range1d})},\n function _(e,t,r,n,i){n();const o=e(1);var a;const s=(0,o.__importStar)(e(48)),l=(0,o.__importStar)(e(18)),_=e(15),c=e(20),h=e(9),d=e(13),u=e(8),g=e(309),p=e(128),f=e(306),b=e(40),w=e(118),y=e(59),m=e(221),x=e(57),v=e(55),A=e(75),S=e(41),R=e(176),D=e(175),L=e(63),P=e(332);i(\"PlotView\",P.PlotView);class k extends g.LayoutDOM{constructor(e){super(e),this.use_map=!1}_doc_attached(){super._doc_attached(),this._push_changes([[this.properties.inner_height,null,this.inner_height],[this.properties.inner_width,null,this.inner_width]])}initialize(){super.initialize(),this.reset=new _.Signal0(this,\"reset\");for(const e of(0,d.values)(this.extra_x_ranges).concat(this.x_range)){let t=e.plots;(0,u.isArray)(t)&&(t=t.concat(this),e.setv({plots:t},{silent:!0}))}for(const e of(0,d.values)(this.extra_y_ranges).concat(this.y_range)){let t=e.plots;(0,u.isArray)(t)&&(t=t.concat(this),e.setv({plots:t},{silent:!0}))}}add_layout(e,t=\"center\"){const r=this.properties[t].get_value();this.setv({[t]:[...r,e]})}remove_layout(e){const t=t=>{(0,h.remove_by)(t,(t=>t==e))};t(this.left),t(this.right),t(this.above),t(this.below),t(this.center)}get data_renderers(){return this.renderers.filter((e=>e instanceof R.DataRenderer))}add_renderers(...e){this.renderers=this.renderers.concat(e)}add_glyph(e,t=new A.ColumnDataSource,r={}){const n=new D.GlyphRenderer(Object.assign(Object.assign({},r),{data_source:t,glyph:e}));return this.add_renderers(n),n}add_tools(...e){this.toolbar.tools=this.toolbar.tools.concat(e)}get panels(){return[...this.side_panels,...this.center]}get side_panels(){const{above:e,below:t,left:r,right:n}=this;return(0,h.concat)([e,t,r,n])}}r.Plot=k,a=k,k.__name__=\"Plot\",a.prototype.default_view=P.PlotView,a.mixins([[\"outline_\",s.Line],[\"background_\",s.Fill],[\"border_\",s.Fill]]),a.define((({Boolean:e,Number:t,String:r,Array:n,Dict:i,Or:o,Ref:a,Null:s,Nullable:_})=>({toolbar:[a(m.Toolbar),()=>new m.Toolbar],toolbar_location:[_(c.Location),\"right\"],toolbar_sticky:[e,!0],plot_width:[l.Alias(\"width\")],plot_height:[l.Alias(\"height\")],frame_width:[_(t),null],frame_height:[_(t),null],title:[o(a(w.Title),r,s),\"\",{convert:e=>(0,u.isString)(e)?new w.Title({text:e}):e}],title_location:[_(c.Location),\"above\"],above:[n(o(a(b.Annotation),a(p.Axis))),[]],below:[n(o(a(b.Annotation),a(p.Axis))),[]],left:[n(o(a(b.Annotation),a(p.Axis))),[]],right:[n(o(a(b.Annotation),a(p.Axis))),[]],center:[n(o(a(b.Annotation),a(f.Grid))),[]],renderers:[n(a(S.Renderer)),[]],x_range:[a(x.Range),()=>new L.DataRange1d],y_range:[a(x.Range),()=>new L.DataRange1d],x_scale:[a(v.Scale),()=>new y.LinearScale],y_scale:[a(v.Scale),()=>new y.LinearScale],extra_x_ranges:[i(a(x.Range)),{}],extra_y_ranges:[i(a(x.Range)),{}],extra_x_scales:[i(a(v.Scale)),{}],extra_y_scales:[i(a(v.Scale)),{}],lod_factor:[t,10],lod_interval:[t,300],lod_threshold:[_(t),2e3],lod_timeout:[t,500],hidpi:[e,!0],output_backend:[c.OutputBackend,\"canvas\"],min_border:[_(t),5],min_border_top:[_(t),null],min_border_left:[_(t),null],min_border_bottom:[_(t),null],min_border_right:[_(t),null],inner_width:[t,0],inner_height:[t,0],outer_width:[t,0],outer_height:[t,0],match_aspect:[e,!1],aspect_scale:[t,1],reset_policy:[c.ResetPolicy,\"standard\"]}))),a.override({width:600,height:600,outline_line_color:\"#e5e5e5\",border_fill_color:\"#ffffff\",background_fill_color:\"#ffffff\"})},\n function _(e,t,i,s,a){s();const n=e(1),o=e(126),l=e(249),r=e(309),_=e(40),h=e(118),d=e(128),u=e(220),c=e(251),p=e(113),v=e(45),g=e(19),b=e(251),m=e(333),y=e(8),w=e(9),f=e(235),x=e(208),z=e(211),k=e(209),q=e(123),M=e(65),R=e(334),V=e(335),S=e(28);class O extends r.LayoutDOMView{constructor(){super(...arguments),this._outer_bbox=new M.BBox,this._inner_bbox=new M.BBox,this._needs_paint=!0,this._needs_layout=!1,this._invalidated_painters=new Set,this._invalidate_all=!0,this._needs_notify=!1}get canvas(){return this.canvas_view}get state(){return this._state_manager}set invalidate_dataranges(e){this._range_manager.invalidate_dataranges=e}renderer_view(e){const t=this.renderer_views.get(e);if(null==t)for(const[,t]of this.renderer_views){const i=t.renderer_view(e);if(null!=i)return i}return t}get is_paused(){return null!=this._is_paused&&0!==this._is_paused}get child_models(){return[]}pause(){null==this._is_paused?this._is_paused=1:this._is_paused+=1}unpause(e=!1){if(null==this._is_paused)throw new Error(\"wasn't paused\");this._is_paused-=1,0!=this._is_paused||e||this.request_paint(\"everything\")}notify_finished_after_paint(){this._needs_notify=!0}request_render(){this.request_paint(\"everything\")}request_paint(e){this.invalidate_painters(e),this.schedule_paint()}invalidate_painters(e){if(\"everything\"==e)this._invalidate_all=!0;else if((0,y.isArray)(e))for(const t of e)this._invalidated_painters.add(t);else this._invalidated_painters.add(e)}schedule_paint(){if(!this.is_paused){const e=this.throttled_paint();this._ready=this._ready.then((()=>e))}}request_layout(){this._needs_layout=!0,this.request_paint(\"everything\")}reset(){\"standard\"==this.model.reset_policy&&(this.state.clear(),this.reset_range(),this.reset_selection()),this.model.trigger_event(new c.Reset)}remove(){(0,p.remove_views)(this.renderer_views),(0,p.remove_views)(this.tool_views),this.canvas_view.remove(),super.remove()}render(){super.render(),this.el.appendChild(this.canvas_view.el),this.canvas_view.render()}initialize(){this.pause(),super.initialize(),this.lod_started=!1,this.visuals=new v.Visuals(this),this._initial_state={selection:new Map,dimensions:{width:0,height:0}},this.visibility_callbacks=[],this.renderer_views=new Map,this.tool_views=new Map,this.frame=new o.CartesianFrame(this.model.x_scale,this.model.y_scale,this.model.x_range,this.model.y_range,this.model.extra_x_ranges,this.model.extra_y_ranges,this.model.extra_x_scales,this.model.extra_y_scales),this._range_manager=new R.RangeManager(this),this._state_manager=new V.StateManager(this,this._initial_state),this.throttled_paint=(0,m.throttle)((()=>this.repaint()),1e3/60);const{title_location:e,title:t}=this.model;null!=e&&null!=t&&(this._title=t instanceof h.Title?t:new h.Title({text:t}));const{toolbar_location:i,toolbar:s}=this.model;null!=i&&null!=s&&(this._toolbar=new u.ToolbarPanel({toolbar:s}),s.toolbar_location=i)}async lazy_initialize(){await super.lazy_initialize();const{hidpi:e,output_backend:t}=this.model,i=new l.Canvas({hidpi:e,output_backend:t});this.canvas_view=await(0,p.build_view)(i,{parent:this}),this.canvas_view.plot_views=[this],await this.build_renderer_views(),await this.build_tool_views(),this._range_manager.update_dataranges(),this.unpause(!0),g.logger.debug(\"PlotView initialized\")}_width_policy(){return null==this.model.frame_width?super._width_policy():\"min\"}_height_policy(){return null==this.model.frame_height?super._height_policy():\"min\"}_update_layout(){var e,t,i,s,a;this.layout=new z.BorderLayout,this.layout.set_sizing(this.box_sizing());const n=(0,w.copy)(this.model.above),o=(0,w.copy)(this.model.below),l=(0,w.copy)(this.model.left),r=(0,w.copy)(this.model.right),d=e=>{switch(e){case\"above\":return n;case\"below\":return o;case\"left\":return l;case\"right\":return r}},{title_location:c,title:p}=this.model;null!=c&&null!=p&&d(c).push(this._title);const{toolbar_location:v,toolbar:g}=this.model;if(null!=v&&null!=g){const e=d(v);let t=!0;if(this.model.toolbar_sticky)for(let i=0;i{var i;const s=this.renderer_view(t);return s.panel=new q.Panel(e),null===(i=s.update_layout)||void 0===i||i.call(s),s.layout},m=(e,t)=>{const i=\"above\"==e||\"below\"==e,s=[];for(const a of t)if((0,y.isArray)(a)){const t=a.map((t=>{const s=b(e,t);if(t instanceof u.ToolbarPanel){const e=i?\"width_policy\":\"height_policy\";s.set_sizing(Object.assign(Object.assign({},s.sizing),{[e]:\"min\"}))}return s}));let n;i?(n=new k.Row(t),n.set_sizing({width_policy:\"max\",height_policy:\"min\"})):(n=new k.Column(t),n.set_sizing({width_policy:\"min\",height_policy:\"max\"})),n.absolute=!0,s.push(n)}else s.push(b(e,a));return s},f=null!==(e=this.model.min_border)&&void 0!==e?e:0;this.layout.min_border={left:null!==(t=this.model.min_border_left)&&void 0!==t?t:f,top:null!==(i=this.model.min_border_top)&&void 0!==i?i:f,right:null!==(s=this.model.min_border_right)&&void 0!==s?s:f,bottom:null!==(a=this.model.min_border_bottom)&&void 0!==a?a:f};const M=new x.NodeLayout,R=new x.VStack,V=new x.VStack,S=new x.HStack,O=new x.HStack;M.absolute=!0,R.absolute=!0,V.absolute=!0,S.absolute=!0,O.absolute=!0,M.children=this.model.center.filter((e=>e instanceof _.Annotation)).map((e=>{var t;const i=this.renderer_view(e);return null===(t=i.update_layout)||void 0===t||t.call(i),i.layout})).filter((e=>null!=e));const{frame_width:P,frame_height:j}=this.model;M.set_sizing(Object.assign(Object.assign({},null!=P?{width_policy:\"fixed\",width:P}:{width_policy:\"fit\"}),null!=j?{height_policy:\"fixed\",height:j}:{height_policy:\"fit\"})),M.on_resize((e=>this.frame.set_geometry(e))),R.children=(0,w.reversed)(m(\"above\",n)),V.children=m(\"below\",o),S.children=(0,w.reversed)(m(\"left\",l)),O.children=m(\"right\",r),R.set_sizing({width_policy:\"fit\",height_policy:\"min\"}),V.set_sizing({width_policy:\"fit\",height_policy:\"min\"}),S.set_sizing({width_policy:\"min\",height_policy:\"fit\"}),O.set_sizing({width_policy:\"min\",height_policy:\"fit\"}),this.layout.center_panel=M,this.layout.top_panel=R,this.layout.bottom_panel=V,this.layout.left_panel=S,this.layout.right_panel=O}get axis_views(){const e=[];for(const[,t]of this.renderer_views)t instanceof d.AxisView&&e.push(t);return e}set_toolbar_visibility(e){for(const t of this.visibility_callbacks)t(e)}update_range(e,t){this.pause(),this._range_manager.update(e,t),this.unpause()}reset_range(){this.update_range(null),this.trigger_ranges_update_event()}trigger_ranges_update_event(){const{x_range:e,y_range:t}=this.model;this.model.trigger_event(new b.RangesUpdate(e.start,e.end,t.start,t.end))}get_selection(){const e=new Map;for(const t of this.model.data_renderers){const{selected:i}=t.selection_manager.source;e.set(t,i)}return e}update_selection(e){for(const t of this.model.data_renderers){const i=t.selection_manager.source;if(null!=e){const s=e.get(t);null!=s&&i.selected.update(s,!0)}else i.selection_manager.clear()}}reset_selection(){this.update_selection(null)}_invalidate_layout(){(()=>{var e;for(const t of this.model.side_panels){const i=this.renderer_views.get(t);if(null===(e=i.layout)||void 0===e?void 0:e.has_size_changed())return this.invalidate_painters(i),!0}return!1})()&&this.root.compute_layout()}get_renderer_views(){return this.computed_renderers.map((e=>this.renderer_views.get(e)))}*_compute_renderers(){const{above:e,below:t,left:i,right:s,center:a,renderers:n}=this.model;yield*n,yield*e,yield*t,yield*i,yield*s,yield*a,null!=this._title&&(yield this._title),null!=this._toolbar&&(yield this._toolbar);for(const e of this.model.toolbar.tools)null!=e.overlay&&(yield e.overlay),yield*e.synthetic_renderers}async build_renderer_views(){this.computed_renderers=[...this._compute_renderers()],await(0,p.build_views)(this.renderer_views,this.computed_renderers,{parent:this})}async build_tool_views(){const e=this.model.toolbar.tools;(await(0,p.build_views)(this.tool_views,e,{parent:this})).map((e=>this.canvas_view.ui_event_bus.register_tool(e)))}connect_signals(){super.connect_signals();const{x_ranges:e,y_ranges:t}=this.frame;for(const[,t]of e)this.connect(t.change,(()=>{this._needs_layout=!0,this.request_paint(\"everything\")}));for(const[,e]of t)this.connect(e.change,(()=>{this._needs_layout=!0,this.request_paint(\"everything\")}));const{above:i,below:s,left:a,right:n,center:o,renderers:l}=this.model.properties;this.on_change([i,s,a,n,o,l],(async()=>await this.build_renderer_views())),this.connect(this.model.toolbar.properties.tools.change,(async()=>{await this.build_renderer_views(),await this.build_tool_views()})),this.connect(this.model.change,(()=>this.request_paint(\"everything\"))),this.connect(this.model.reset,(()=>this.reset()))}has_finished(){if(!super.has_finished())return!1;if(this.model.visible)for(const[,e]of this.renderer_views)if(!e.has_finished())return!1;return!0}after_layout(){var e;super.after_layout();for(const[,t]of this.renderer_views)t instanceof _.AnnotationView&&(null===(e=t.after_layout)||void 0===e||e.call(t));if(this._needs_layout=!1,this.model.setv({inner_width:Math.round(this.frame.bbox.width),inner_height:Math.round(this.frame.bbox.height),outer_width:Math.round(this.layout.bbox.width),outer_height:Math.round(this.layout.bbox.height)},{no_change:!0}),!1!==this.model.match_aspect&&(this.pause(),this._range_manager.update_dataranges(),this.unpause(!0)),!this._outer_bbox.equals(this.layout.bbox)){const{width:e,height:t}=this.layout.bbox;this.canvas_view.resize(e,t),this._outer_bbox=this.layout.bbox,this._invalidate_all=!0,this._needs_paint=!0}const{inner_bbox:t}=this.layout;this._inner_bbox.equals(t)||(this._inner_bbox=t,this._needs_paint=!0),this._needs_paint&&this.paint()}repaint(){this._needs_layout&&this._invalidate_layout(),this.paint()}paint(){this.is_paused||(this.model.visible&&(g.logger.trace(`${this.toString()}.paint()`),this._actual_paint()),this._needs_notify&&(this._needs_notify=!1,this.notify_finished()))}_actual_paint(){var e;const{document:t}=this.model;if(null!=t){const e=t.interactive_duration();e>=0&&e{t.interactive_duration()>this.model.lod_timeout&&t.interactive_stop(),this.request_paint(\"everything\")}),this.model.lod_timeout):t.interactive_stop()}this._range_manager.invalidate_dataranges&&(this._range_manager.update_dataranges(),this._invalidate_layout());let i=!1,s=!1;if(this._invalidate_all)i=!0,s=!0;else for(const e of this._invalidated_painters){const{level:t}=e.model;if(\"overlay\"!=t?i=!0:s=!0,i&&s)break}this._invalidated_painters.clear(),this._invalidate_all=!1;const a=[this.frame.bbox.left,this.frame.bbox.top,this.frame.bbox.width,this.frame.bbox.height],{primary:n,overlays:o}=this.canvas_view;i&&(n.prepare(),this.canvas_view.prepare_webgl(a),this._map_hook(n.ctx,a),this._paint_empty(n.ctx,a),this._paint_outline(n.ctx,a),this._paint_levels(n.ctx,\"image\",a,!0),this._paint_levels(n.ctx,\"underlay\",a,!0),this._paint_levels(n.ctx,\"glyph\",a,!0),this._paint_levels(n.ctx,\"guide\",a,!1),this._paint_levels(n.ctx,\"annotation\",a,!1),n.finish()),(s||S.settings.wireframe)&&(o.prepare(),this._paint_levels(o.ctx,\"overlay\",a,!1),S.settings.wireframe&&this._paint_layout(o.ctx,this.layout),o.finish()),null==this._initial_state.range&&(this._initial_state.range=null!==(e=this._range_manager.compute_initial())&&void 0!==e?e:void 0),this._needs_paint=!1}_paint_levels(e,t,i,s){for(const a of this.computed_renderers){if(a.level!=t)continue;const n=this.renderer_views.get(a);e.save(),(s||n.needs_clip)&&(e.beginPath(),e.rect(...i),e.clip()),n.render(),e.restore(),n.has_webgl&&n.needs_webgl_blit&&this.canvas_view.blit_webgl(e)}}_paint_layout(e,t){const{x:i,y:s,width:a,height:n}=t.bbox;e.strokeStyle=\"blue\",e.strokeRect(i,s,a,n);for(const a of t)e.save(),t.absolute||e.translate(i,s),this._paint_layout(e,a),e.restore()}_map_hook(e,t){}_paint_empty(e,t){const[i,s,a,n]=[0,0,this.layout.bbox.width,this.layout.bbox.height],[o,l,r,_]=t;this.visuals.border_fill.doit&&(this.visuals.border_fill.set_value(e),e.fillRect(i,s,a,n),e.clearRect(o,l,r,_)),this.visuals.background_fill.doit&&(this.visuals.background_fill.set_value(e),e.fillRect(o,l,r,_))}_paint_outline(e,t){if(this.visuals.outline_line.doit){e.save(),this.visuals.outline_line.set_value(e);let[i,s,a,n]=t;i+a==this.layout.bbox.width&&(a-=1),s+n==this.layout.bbox.height&&(n-=1),e.strokeRect(i,s,a,n),e.restore()}}to_blob(){return this.canvas_view.to_blob()}export(e,t=!0){const i=\"png\"==e?\"canvas\":\"svg\",s=new f.CanvasLayer(i,t),{width:a,height:n}=this.layout.bbox;s.resize(a,n);const{canvas:o}=this.canvas_view.compose();return s.ctx.drawImage(o,0,0),s}serializable_state(){const e=super.serializable_state(),{children:t}=e,i=(0,n.__rest)(e,[\"children\"]),s=this.get_renderer_views().map((e=>e.serializable_state())).filter((e=>null!=e.bbox));return Object.assign(Object.assign({},i),{children:[...null!=t?t:[],...s]})}}i.PlotView=O,O.__name__=\"PlotView\"},\n function _(t,n,e,o,u){o(),e.throttle=function(t,n){let e=null,o=0,u=!1;return function(){return new Promise(((r,i)=>{const l=function(){o=Date.now(),e=null,u=!1;try{t(),r()}catch(t){i(t)}},a=Date.now(),c=n-(a-o);c<=0&&!u?(null!=e&&clearTimeout(e),u=!0,requestAnimationFrame(l)):e||u?r():e=setTimeout((()=>requestAnimationFrame(l)),c)}))}}},\n function _(t,n,e,a,s){a();const o=t(63),r=t(19);class l{constructor(t){this.parent=t,this.invalidate_dataranges=!0}get frame(){return this.parent.frame}update(t,n){const{x_ranges:e,y_ranges:a}=this.frame;if(null==t){for(const[,t]of e)t.reset();for(const[,t]of a)t.reset();this.update_dataranges()}else{const s=[];for(const[n,a]of e)s.push([a,t.xrs.get(n)]);for(const[n,e]of a)s.push([e,t.yrs.get(n)]);(null==n?void 0:n.scrolling)&&this._update_ranges_together(s),this._update_ranges_individually(s,n)}}reset(){this.update(null)}_update_dataranges(t){const n=new Map,e=new Map;let a=!1;for(const[,n]of t.x_ranges)n instanceof o.DataRange1d&&\"log\"==n.scale_hint&&(a=!0);for(const[,n]of t.y_ranges)n instanceof o.DataRange1d&&\"log\"==n.scale_hint&&(a=!0);for(const t of this.parent.model.data_renderers){const s=this.parent.renderer_view(t);if(null==s)continue;const o=s.glyph_view.bounds();if(null!=o&&n.set(t,o),a){const n=s.glyph_view.log_bounds();null!=n&&e.set(t,n)}}let s=!1,l=!1;const i=t.x_target.span,d=t.y_target.span;let u;!1!==this.parent.model.match_aspect&&0!=i&&0!=d&&(u=1/this.parent.model.aspect_scale*(i/d));for(const[,a]of t.x_ranges){if(a instanceof o.DataRange1d){const t=\"log\"==a.scale_hint?e:n;a.update(t,0,this.parent.model,u),a.follow&&(s=!0)}null!=a.bounds&&(l=!0)}for(const[,a]of t.y_ranges){if(a instanceof o.DataRange1d){const t=\"log\"==a.scale_hint?e:n;a.update(t,1,this.parent.model,u),a.follow&&(s=!0)}null!=a.bounds&&(l=!0)}if(s&&l){r.logger.warn(\"Follow enabled so bounds are unset.\");for(const[,n]of t.x_ranges)n.bounds=null;for(const[,n]of t.y_ranges)n.bounds=null}}update_dataranges(){this._update_dataranges(this.frame);for(const t of this.parent.model.renderers){const{coordinates:n}=t;null!=n&&this._update_dataranges(n)}null!=this.compute_initial()&&(this.invalidate_dataranges=!1)}compute_initial(){let t=!0;const{x_ranges:n,y_ranges:e}=this.frame,a=new Map,s=new Map;for(const[e,s]of n){const{start:n,end:o}=s;if(null==n||null==o||isNaN(n+o)){t=!1;break}a.set(e,{start:n,end:o})}if(t)for(const[n,a]of e){const{start:e,end:o}=a;if(null==e||null==o||isNaN(e+o)){t=!1;break}s.set(n,{start:e,end:o})}return t?{xrs:a,yrs:s}:(r.logger.warn(\"could not set initial ranges\"),null)}_update_ranges_together(t){let n=1;for(const[e,a]of t)n=Math.min(n,this._get_weight_to_constrain_interval(e,a));if(n<1)for(const[e,a]of t)a.start=n*a.start+(1-n)*e.start,a.end=n*a.end+(1-n)*e.end}_update_ranges_individually(t,n){const e=!!(null==n?void 0:n.panning),a=!!(null==n?void 0:n.scrolling);let s=!1;for(const[n,o]of t){if(!a){const t=this._get_weight_to_constrain_interval(n,o);t<1&&(o.start=t*o.start+(1-t)*n.start,o.end=t*o.end+(1-t)*n.end)}if(null!=n.bounds&&\"auto\"!=n.bounds){const[t,r]=n.bounds,l=Math.abs(o.end-o.start);n.is_reversed?(null!=t&&t>o.end&&(s=!0,o.end=t,(e||a)&&(o.start=t+l)),null!=r&&ro.start&&(s=!0,o.start=t,(e||a)&&(o.end=t+l)),null!=r&&r0&&r0&&r>a&&(s=(a-o)/(r-o)),s=Math.max(0,Math.min(1,s))}return s}}e.RangeManager=l,l.__name__=\"RangeManager\"},\n function _(t,i,s,e,n){e();const h=t(15);class a{constructor(t,i){this.parent=t,this.initial_state=i,this.changed=new h.Signal0(this.parent,\"state_changed\"),this.history=[],this.index=-1}_do_state_change(t){const i=null!=this.history[t]?this.history[t].state:this.initial_state;return null!=i.range&&this.parent.update_range(i.range),null!=i.selection&&this.parent.update_selection(i.selection),i}push(t,i){const{history:s,index:e}=this,n=null!=s[e]?s[e].state:{},h=Object.assign(Object.assign(Object.assign({},this.initial_state),n),i);this.history=this.history.slice(0,this.index+1),this.history.push({type:t,state:h}),this.index=this.history.length-1,this.changed.emit()}clear(){this.history=[],this.index=-1,this.changed.emit()}undo(){if(this.can_undo){this.index-=1;const t=this._do_state_change(this.index);return this.changed.emit(),t}return null}redo(){if(this.can_redo){this.index+=1;const t=this._do_state_change(this.index);return this.changed.emit(),t}return null}get can_undo(){return this.index>=0}get can_redo(){return this.indexm.emit();const s=encodeURIComponent,o=document.createElement(\"script\");o.type=\"text/javascript\",o.src=`https://maps.googleapis.com/maps/api/js?v=${s(e)}&key=${s(t)}&callback=_bokeh_gmaps_callback`,document.body.appendChild(o)}(t,e)}m.connect((()=>this.request_paint(\"everything\")))}this.unpause()}remove(){(0,p.remove)(this.map_el),super.remove()}update_range(t,e){var s,o;if(null==t)this.map.setCenter({lat:this.initial_lat,lng:this.initial_lng}),this.map.setOptions({zoom:this.initial_zoom}),super.update_range(null,e);else if(null!=t.sdx||null!=t.sdy)this.map.panBy(null!==(s=t.sdx)&&void 0!==s?s:0,null!==(o=t.sdy)&&void 0!==o?o:0),super.update_range(t,e);else if(null!=t.factor){if(10!==this.zoom_count)return void(this.zoom_count+=1);this.zoom_count=0,this.pause(),super.update_range(t,e);const s=t.factor<0?-1:1,o=this.map.getZoom();if(null!=o){const t=o+s;if(t>=2){this.map.setZoom(t);const[e,s]=this._get_projected_bounds();s-e<0&&this.map.setZoom(o)}}this.unpause()}this._set_bokeh_ranges()}_build_map(){const{maps:t}=google;this.map_types={satellite:t.MapTypeId.SATELLITE,terrain:t.MapTypeId.TERRAIN,roadmap:t.MapTypeId.ROADMAP,hybrid:t.MapTypeId.HYBRID};const e=this.model.map_options,s={center:new t.LatLng(e.lat,e.lng),zoom:e.zoom,disableDefaultUI:!0,mapTypeId:this.map_types[e.map_type],scaleControl:e.scale_control,tilt:e.tilt};null!=e.styles&&(s.styles=JSON.parse(e.styles)),this.map_el=(0,p.div)({style:{position:\"absolute\"}}),this.canvas_view.add_underlay(this.map_el),this.map=new t.Map(this.map_el,s),t.event.addListener(this.map,\"idle\",(()=>this._set_bokeh_ranges())),t.event.addListener(this.map,\"bounds_changed\",(()=>this._set_bokeh_ranges())),t.event.addListenerOnce(this.map,\"tilesloaded\",(()=>this._render_finished())),this.connect(this.model.properties.map_options.change,(()=>this._update_options())),this.connect(this.model.map_options.properties.styles.change,(()=>this._update_styles())),this.connect(this.model.map_options.properties.lat.change,(()=>this._update_center(\"lat\"))),this.connect(this.model.map_options.properties.lng.change,(()=>this._update_center(\"lng\"))),this.connect(this.model.map_options.properties.zoom.change,(()=>this._update_zoom())),this.connect(this.model.map_options.properties.map_type.change,(()=>this._update_map_type())),this.connect(this.model.map_options.properties.scale_control.change,(()=>this._update_scale_control())),this.connect(this.model.map_options.properties.tilt.change,(()=>this._update_tilt()))}_render_finished(){this._tiles_loaded=!0,this.notify_finished()}has_finished(){return super.has_finished()&&!0===this._tiles_loaded}_get_latlon_bounds(){const t=this.map.getBounds(),e=t.getNorthEast(),s=t.getSouthWest();return[s.lng(),e.lng(),s.lat(),e.lat()]}_get_projected_bounds(){const[t,e,s,o]=this._get_latlon_bounds(),[i,a]=l.wgs84_mercator.compute(t,s),[n,p]=l.wgs84_mercator.compute(e,o);return[i,n,a,p]}_set_bokeh_ranges(){const[t,e,s,o]=this._get_projected_bounds();this.frame.x_range.setv({start:t,end:e}),this.frame.y_range.setv({start:s,end:o})}_update_center(t){var e;const s=null===(e=this.map.getCenter())||void 0===e?void 0:e.toJSON();null!=s&&(s[t]=this.model.map_options[t],this.map.setCenter(s),this._set_bokeh_ranges())}_update_map_type(){this.map.setOptions({mapTypeId:this.map_types[this.model.map_options.map_type]})}_update_scale_control(){this.map.setOptions({scaleControl:this.model.map_options.scale_control})}_update_tilt(){this.map.setOptions({tilt:this.model.map_options.tilt})}_update_options(){this._update_styles(),this._update_center(\"lat\"),this._update_center(\"lng\"),this._update_zoom(),this._update_map_type()}_update_styles(){this.map.setOptions({styles:JSON.parse(this.model.map_options.styles)})}_update_zoom(){this.map.setOptions({zoom:this.model.map_options.zoom}),this._set_bokeh_ranges()}_map_hook(t,e){if(null==this.map&&\"undefined\"!=typeof google&&null!=google.maps&&this._build_map(),null!=this.map_el){const[t,s,o,i]=e;this.map_el.style.top=`${s}px`,this.map_el.style.left=`${t}px`,this.map_el.style.width=`${o}px`,this.map_el.style.height=`${i}px`}}_paint_empty(t,e){const s=this.layout.bbox.width,o=this.layout.bbox.height,[i,a,n,p]=e;t.clearRect(0,0,s,o),t.beginPath(),t.moveTo(0,0),t.lineTo(0,o),t.lineTo(s,o),t.lineTo(s,0),t.lineTo(0,0),t.moveTo(i,a),t.lineTo(i+n,a),t.lineTo(i+n,a+p),t.lineTo(i,a+p),t.lineTo(i,a),t.closePath(),null!=this.model.border_fill_color&&(t.fillStyle=(0,_.color2css)(this.model.border_fill_color),t.fill())}}s.GMapPlotView=d,d.__name__=\"GMapPlotView\"},\n function _(t,_,n,o,r){o();(0,t(1).__exportStar)(t(132),n)},\n function _(e,r,d,n,R){n(),R(\"GlyphRenderer\",e(175).GlyphRenderer),R(\"GraphRenderer\",e(339).GraphRenderer),R(\"GuideRenderer\",e(129).GuideRenderer);var G=e(41);R(\"Renderer\",G.Renderer),R(\"RendererGroup\",G.RendererGroup)},\n function _(e,r,i,n,t){var o;n();const s=e(176),d=e(175),a=e(303),p=e(302),l=e(113),_=e(178),h=e(283),y=e(286);class c extends s.DataRendererView{get glyph_view(){return this.node_view.glyph}async lazy_initialize(){await super.lazy_initialize(),this.apply_coordinates();const{parent:e}=this,{edge_renderer:r,node_renderer:i}=this.model;this.edge_view=await(0,l.build_view)(r,{parent:e}),this.node_view=await(0,l.build_view)(i,{parent:e})}connect_signals(){super.connect_signals(),this.connect(this.model.layout_provider.change,(()=>{this.apply_coordinates(),this.edge_view.set_data(),this.node_view.set_data(),this.request_render()}))}apply_coordinates(){const{edge_renderer:e,node_renderer:r}=this.model;if(!(e.glyph instanceof h.MultiLine||e.glyph instanceof y.Patches))throw new Error(`${this}.edge_renderer.glyph must be a MultiLine glyph`);if(!(r.glyph instanceof _.XYGlyph))throw new Error(`${this}.node_renderer.glyph must be a XYGlyph glyph`);const i=this.model.layout_provider.edge_coordinates,n=this.model.layout_provider.node_coordinates;e.glyph.properties.xs.internal=!0,e.glyph.properties.ys.internal=!0,r.glyph.properties.x.internal=!0,r.glyph.properties.y.internal=!0,e.glyph.xs={expr:i.x},e.glyph.ys={expr:i.y},r.glyph.x={expr:n.x},r.glyph.y={expr:n.y}}remove(){this.edge_view.remove(),this.node_view.remove(),super.remove()}_render(){this.edge_view.render(),this.node_view.render()}renderer_view(e){if(e instanceof d.GlyphRenderer){if(e==this.edge_view.model)return this.edge_view;if(e==this.node_view.model)return this.node_view}return super.renderer_view(e)}}i.GraphRendererView=c,c.__name__=\"GraphRendererView\";class g extends s.DataRenderer{constructor(e){super(e)}get_selection_manager(){return this.node_renderer.data_source.selection_manager}}i.GraphRenderer=g,o=g,g.__name__=\"GraphRenderer\",o.prototype.default_view=c,o.define((({Ref:e})=>({layout_provider:[e(a.LayoutProvider)],node_renderer:[e(d.GlyphRenderer)],edge_renderer:[e(d.GlyphRenderer)],selection_policy:[e(p.GraphHitTestPolicy),()=>new p.NodesOnly],inspection_policy:[e(p.GraphHitTestPolicy),()=>new p.NodesOnly]})))},\n function _(e,t,n,o,c){o();(0,e(1).__exportStar)(e(74),n),c(\"Selection\",e(72).Selection)},\n function _(a,e,S,o,r){o(),r(\"ServerSentDataSource\",a(342).ServerSentDataSource),r(\"AjaxDataSource\",a(344).AjaxDataSource),r(\"ColumnDataSource\",a(75).ColumnDataSource),r(\"ColumnarDataSource\",a(70).ColumnarDataSource),r(\"CDSView\",a(190).CDSView),r(\"DataSource\",a(71).DataSource),r(\"GeoJSONDataSource\",a(345).GeoJSONDataSource),r(\"WebDataSource\",a(343).WebDataSource)},\n function _(e,t,i,a,s){a();const n=e(343);class r extends n.WebDataSource{constructor(e){super(e),this.initialized=!1}setup(){if(!this.initialized){this.initialized=!0;new EventSource(this.data_url).onmessage=e=>{var t;this.load_data(JSON.parse(e.data),this.mode,null!==(t=this.max_size)&&void 0!==t?t:void 0)}}}}i.ServerSentDataSource=r,r.__name__=\"ServerSentDataSource\"},\n function _(e,t,a,n,r){var s;n();const l=e(75),o=e(20);class c extends l.ColumnDataSource{constructor(e){super(e)}get_column(e){const t=this.data[e];return null!=t?t:[]}get_length(){var e;return null!==(e=super.get_length())&&void 0!==e?e:0}initialize(){super.initialize(),this.setup()}load_data(e,t,a){const{adapter:n}=this;let r;switch(r=null!=n?n.execute(this,{response:e}):e,t){case\"replace\":this.data=r;break;case\"append\":{const e=this.data;for(const t of this.columns()){const n=Array.from(e[t]),s=Array.from(r[t]),l=n.concat(s);r[t]=null!=a?l.slice(-a):l}this.data=r;break}}}}a.WebDataSource=c,s=c,c.__name__=\"WebDataSource\",s.define((({Any:e,Int:t,String:a,Nullable:n})=>({max_size:[n(t),null],mode:[o.UpdateMode,\"replace\"],adapter:[n(e),null],data_url:[a]})))},\n function _(t,e,i,s,a){var n;s();const r=t(343),o=t(20),l=t(19),d=t(13);class h extends r.WebDataSource{constructor(t){super(t),this.interval=null,this.initialized=!1}destroy(){null!=this.interval&&clearInterval(this.interval),super.destroy()}setup(){if(!this.initialized&&(this.initialized=!0,this.get_data(this.mode),null!=this.polling_interval)){const t=()=>this.get_data(this.mode,this.max_size,this.if_modified);this.interval=setInterval(t,this.polling_interval)}}get_data(t,e=null,i=!1){const s=this.prepare_request();s.addEventListener(\"load\",(()=>this.do_load(s,t,null!=e?e:void 0))),s.addEventListener(\"error\",(()=>this.do_error(s))),s.send()}prepare_request(){const t=new XMLHttpRequest;t.open(this.method,this.data_url,!0),t.withCredentials=!1,t.setRequestHeader(\"Content-Type\",this.content_type);const e=this.http_headers;for(const[i,s]of(0,d.entries)(e))t.setRequestHeader(i,s);return t}do_load(t,e,i){if(200===t.status){const s=JSON.parse(t.responseText);this.load_data(s,e,i)}}do_error(t){l.logger.error(`Failed to fetch JSON from ${this.data_url} with code ${t.status}`)}}i.AjaxDataSource=h,n=h,h.__name__=\"AjaxDataSource\",n.define((({Boolean:t,Int:e,String:i,Dict:s,Nullable:a})=>({polling_interval:[a(e),null],content_type:[i,\"application/json\"],http_headers:[s(i),{}],method:[o.HTTPMethod,\"POST\"],if_modified:[t,!1]})))},\n function _(e,t,o,r,n){var s;r();const a=e(70),i=e(19),l=e(9),c=e(13);function _(e){return null!=e?e:NaN}const{hasOwnProperty:g}=Object.prototype;class u extends a.ColumnarDataSource{constructor(e){super(e)}initialize(){super.initialize(),this._update_data()}connect_signals(){super.connect_signals(),this.connect(this.properties.geojson.change,(()=>this._update_data()))}_update_data(){this.data=this.geojson_to_column_data()}_get_new_list_array(e){return(0,l.range)(0,e).map((e=>[]))}_get_new_nan_array(e){return(0,l.range)(0,e).map((e=>NaN))}_add_properties(e,t,o,r){var n;const s=null!==(n=e.properties)&&void 0!==n?n:{};for(const[e,n]of(0,c.entries)(s))g.call(t,e)||(t[e]=this._get_new_nan_array(r)),t[e][o]=_(n)}_add_geometry(e,t,o){function r(e,t){return e.concat([[NaN,NaN,NaN]]).concat(t)}switch(e.type){case\"Point\":{const[r,n,s]=e.coordinates;t.x[o]=r,t.y[o]=n,t.z[o]=_(s);break}case\"LineString\":{const{coordinates:r}=e;for(let e=0;e1&&i.logger.warn(\"Bokeh does not support Polygons with holes in, only exterior ring used.\");const r=e.coordinates[0];for(let e=0;e1&&i.logger.warn(\"Bokeh does not support Polygons with holes in, only exterior ring used.\"),n.push(t[0]);const s=n.reduce(r);for(let e=0;e({geojson:[e]}))),s.internal((({Dict:e,Arrayable:t})=>({data:[e(t),{}]})))},\n function _(e,r,T,o,S){o(),S(\"BBoxTileSource\",e(347).BBoxTileSource),S(\"MercatorTileSource\",e(348).MercatorTileSource),S(\"QUADKEYTileSource\",e(351).QUADKEYTileSource),S(\"TileRenderer\",e(352).TileRenderer),S(\"TileSource\",e(349).TileSource),S(\"TMSTileSource\",e(355).TMSTileSource),S(\"WMTSTileSource\",e(353).WMTSTileSource)},\n function _(e,t,r,o,l){var i;o();const n=e(348);class s extends n.MercatorTileSource{constructor(e){super(e)}get_image_url(e,t,r){const o=this.string_lookup_replace(this.url,this.extra_url_vars);let l,i,n,s;return this.use_latlon?[i,s,l,n]=this.get_tile_geographic_bounds(e,t,r):[i,s,l,n]=this.get_tile_meter_bounds(e,t,r),o.replace(\"{XMIN}\",i.toString()).replace(\"{YMIN}\",s.toString()).replace(\"{XMAX}\",l.toString()).replace(\"{YMAX}\",n.toString())}}r.BBoxTileSource=s,i=s,s.__name__=\"BBoxTileSource\",i.define((({Boolean:e})=>({use_latlon:[e,!1]})))},\n function _(t,e,i,_,s){var r;_();const o=t(349),n=t(9),l=t(350);class u extends o.TileSource{constructor(t){super(t)}initialize(){super.initialize(),this._resolutions=(0,n.range)(this.min_zoom,this.max_zoom+1).map((t=>this.get_resolution(t)))}_computed_initial_resolution(){return null!=this.initial_resolution?this.initial_resolution:2*Math.PI*6378137/this.tile_size}is_valid_tile(t,e,i){return!(!this.wrap_around&&(t<0||t>=2**i))&&!(e<0||e>=2**i)}parent_by_tile_xyz(t,e,i){const _=this.tile_xyz_to_quadkey(t,e,i),s=_.substring(0,_.length-1);return this.quadkey_to_tile_xyz(s)}get_resolution(t){return this._computed_initial_resolution()/2**t}get_resolution_by_extent(t,e,i){return[(t[2]-t[0])/i,(t[3]-t[1])/e]}get_level_by_extent(t,e,i){const _=(t[2]-t[0])/i,s=(t[3]-t[1])/e,r=Math.max(_,s);let o=0;for(const t of this._resolutions){if(r>t){if(0==o)return 0;if(o>0)return o-1}o+=1}return o-1}get_closest_level_by_extent(t,e,i){const _=(t[2]-t[0])/i,s=(t[3]-t[1])/e,r=Math.max(_,s),o=this._resolutions.reduce((function(t,e){return Math.abs(e-r)e?(u=o-s,a*=t):(u*=e,a=n-r)}const h=(u-(o-s))/2,c=(a-(n-r))/2;return[s-h,r-c,o+h,n+c]}tms_to_wmts(t,e,i){return[t,2**i-1-e,i]}wmts_to_tms(t,e,i){return[t,2**i-1-e,i]}pixels_to_meters(t,e,i){const _=this.get_resolution(i);return[t*_-this.x_origin_offset,e*_-this.y_origin_offset]}meters_to_pixels(t,e,i){const _=this.get_resolution(i);return[(t+this.x_origin_offset)/_,(e+this.y_origin_offset)/_]}pixels_to_tile(t,e){let i=Math.ceil(t/this.tile_size);i=0===i?i:i-1;return[i,Math.max(Math.ceil(e/this.tile_size)-1,0)]}pixels_to_raster(t,e,i){return[t,(this.tile_size<=l;t--)for(let i=n;i<=u;i++)this.is_valid_tile(i,t,e)&&h.push([i,t,e,this.get_tile_meter_bounds(i,t,e)]);return this.sort_tiles_from_center(h,[n,l,u,a]),h}quadkey_to_tile_xyz(t){let e=0,i=0;const _=t.length;for(let s=_;s>0;s--){const r=1<0;s--){const i=1<0;)if(s=s.substring(0,s.length-1),[t,e,i]=this.quadkey_to_tile_xyz(s),[t,e,i]=this.denormalize_xyz(t,e,i,_),this.tiles.has(this.tile_xyz_to_key(t,e,i)))return[t,e,i];return[0,0,0]}normalize_xyz(t,e,i){if(this.wrap_around){const _=2**i;return[(t%_+_)%_,e,i]}return[t,e,i]}denormalize_xyz(t,e,i,_){return[t+_*2**i,e,i]}denormalize_meters(t,e,i,_){return[t+2*_*Math.PI*6378137,e]}calculate_world_x_by_tile_xyz(t,e,i){return Math.floor(t/2**i)}}i.MercatorTileSource=u,r=u,u.__name__=\"MercatorTileSource\",r.define((({Boolean:t})=>({snap_to_zoom:[t,!1],wrap_around:[t,!0]}))),r.override({x_origin_offset:20037508.34,y_origin_offset:20037508.34,initial_resolution:156543.03392804097})},\n function _(e,t,r,i,n){var l;i();const a=e(53),s=e(13);class c extends a.Model{constructor(e){super(e)}initialize(){super.initialize(),this.tiles=new Map,this._normalize_case()}connect_signals(){super.connect_signals(),this.connect(this.change,(()=>this._clear_cache()))}string_lookup_replace(e,t){let r=e;for(const[e,i]of(0,s.entries)(t))r=r.replace(`{${e}}`,i);return r}_normalize_case(){const e=this.url.replace(\"{x}\",\"{X}\").replace(\"{y}\",\"{Y}\").replace(\"{z}\",\"{Z}\").replace(\"{q}\",\"{Q}\").replace(\"{xmin}\",\"{XMIN}\").replace(\"{ymin}\",\"{YMIN}\").replace(\"{xmax}\",\"{XMAX}\").replace(\"{ymax}\",\"{YMAX}\");this.url=e}_clear_cache(){this.tiles=new Map}tile_xyz_to_key(e,t,r){return`${e}:${t}:${r}`}key_to_tile_xyz(e){const[t,r,i]=e.split(\":\").map((e=>parseInt(e)));return[t,r,i]}sort_tiles_from_center(e,t){const[r,i,n,l]=t,a=(n-r)/2+r,s=(l-i)/2+i;e.sort((function(e,t){return Math.sqrt((a-e[0])**2+(s-e[1])**2)-Math.sqrt((a-t[0])**2+(s-t[1])**2)}))}get_image_url(e,t,r){return this.string_lookup_replace(this.url,this.extra_url_vars).replace(\"{X}\",e.toString()).replace(\"{Y}\",t.toString()).replace(\"{Z}\",r.toString())}}r.TileSource=c,l=c,c.__name__=\"TileSource\",l.define((({Number:e,String:t,Dict:r,Nullable:i})=>({url:[t,\"\"],tile_size:[e,256],max_zoom:[e,30],min_zoom:[e,0],extra_url_vars:[r(t),{}],attribution:[t,\"\"],x_origin_offset:[e],y_origin_offset:[e],initial_resolution:[i(e),null]})))},\n function _(t,e,r,n,o){n();const c=t(78);function _(t,e){return c.wgs84_mercator.compute(t,e)}function g(t,e){return c.wgs84_mercator.invert(t,e)}r.geographic_to_meters=_,r.meters_to_geographic=g,r.geographic_extent_to_meters=function(t){const[e,r,n,o]=t,[c,g]=_(e,r),[i,u]=_(n,o);return[c,g,i,u]},r.meters_extent_to_geographic=function(t){const[e,r,n,o]=t,[c,_]=g(e,r),[i,u]=g(n,o);return[c,_,i,u]}},\n function _(e,t,r,s,_){s();const o=e(348);class c extends o.MercatorTileSource{constructor(e){super(e)}get_image_url(e,t,r){const s=this.string_lookup_replace(this.url,this.extra_url_vars),[_,o,c]=this.tms_to_wmts(e,t,r),i=this.tile_xyz_to_quadkey(_,o,c);return s.replace(\"{Q}\",i)}}r.QUADKEYTileSource=c,c.__name__=\"QUADKEYTileSource\"},\n function _(t,e,i,s,_){s();const n=t(1);var a;const o=t(349),r=t(353),h=t(41),l=t(58),d=t(43),m=t(136),c=t(9),u=t(8),p=(0,n.__importStar)(t(354));class g extends h.RendererView{initialize(){this._tiles=[],super.initialize()}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.request_render())),this.connect(this.model.tile_source.change,(()=>this.request_render()))}remove(){null!=this.attribution_el&&(0,d.removeElement)(this.attribution_el),super.remove()}styles(){return[...super.styles(),p.default]}get_extent(){return[this.x_range.start,this.y_range.start,this.x_range.end,this.y_range.end]}get map_plot(){return this.plot_model}get map_canvas(){return this.layer.ctx}get map_frame(){return this.plot_view.frame}get x_range(){return this.map_plot.x_range}get y_range(){return this.map_plot.y_range}_set_data(){this.extent=this.get_extent(),this._last_height=void 0,this._last_width=void 0}_update_attribution(){null!=this.attribution_el&&(0,d.removeElement)(this.attribution_el);const{attribution:t}=this.model.tile_source;if((0,u.isString)(t)&&t.length>0){const{layout:e,frame:i}=this.plot_view,s=e.bbox.width-i.bbox.right,_=e.bbox.height-i.bbox.bottom,n=i.bbox.width;this.attribution_el=(0,d.div)({class:p.tile_attribution,style:{position:\"absolute\",right:`${s}px`,bottom:`${_}px`,\"max-width\":n-4+\"px\",padding:\"2px\",\"background-color\":\"rgba(255,255,255,0.5)\",\"font-size\":\"9px\",\"line-height\":\"1.05\",\"white-space\":\"nowrap\",overflow:\"hidden\",\"text-overflow\":\"ellipsis\"}}),this.plot_view.canvas_view.add_event(this.attribution_el),this.attribution_el.innerHTML=t,this.attribution_el.title=this.attribution_el.textContent.replace(/\\s*\\n\\s*/g,\" \")}}_map_data(){this.initial_extent=this.get_extent();const t=this.model.tile_source.get_level_by_extent(this.initial_extent,this.map_frame.bbox.height,this.map_frame.bbox.width),e=this.model.tile_source.snap_to_zoom_level(this.initial_extent,this.map_frame.bbox.height,this.map_frame.bbox.width,t);this.x_range.start=e[0],this.y_range.start=e[1],this.x_range.end=e[2],this.y_range.end=e[3],this.x_range instanceof l.Range1d&&(this.x_range.reset_start=e[0],this.x_range.reset_end=e[2]),this.y_range instanceof l.Range1d&&(this.y_range.reset_start=e[1],this.y_range.reset_end=e[3]),this._update_attribution()}_create_tile(t,e,i,s,_=!1){const n=this.model.tile_source.tile_xyz_to_quadkey(t,e,i),a=this.model.tile_source.tile_xyz_to_key(t,e,i);if(this.model.tile_source.tiles.has(a))return;const[o,r,h]=this.model.tile_source.normalize_xyz(t,e,i),l=this.model.tile_source.get_image_url(o,r,h),d={img:void 0,tile_coords:[t,e,i],normalized_coords:[o,r,h],quadkey:n,cache_key:a,bounds:s,loaded:!1,finished:!1,x_coord:s[0],y_coord:s[3]};this.model.tile_source.tiles.set(a,d),this._tiles.push(d),new m.ImageLoader(l,{loaded:t=>{Object.assign(d,{img:t,loaded:!0}),_?(d.finished=!0,this.notify_finished()):this.request_render()},failed(){d.finished=!0}})}_enforce_aspect_ratio(){if(this._last_height!==this.map_frame.bbox.height||this._last_width!==this.map_frame.bbox.width){const t=this.get_extent(),e=this.model.tile_source.get_level_by_extent(t,this.map_frame.bbox.height,this.map_frame.bbox.width),i=this.model.tile_source.snap_to_zoom_level(t,this.map_frame.bbox.height,this.map_frame.bbox.width,e);this.x_range.setv({start:i[0],end:i[2]}),this.y_range.setv({start:i[1],end:i[3]}),this.extent=i,this._last_height=this.map_frame.bbox.height,this._last_width=this.map_frame.bbox.width}}has_finished(){if(!super.has_finished())return!1;if(0==this._tiles.length)return!1;for(const t of this._tiles)if(!t.finished)return!1;return!0}_render(){null==this.map_initialized&&(this._set_data(),this._map_data(),this.map_initialized=!0),this._enforce_aspect_ratio(),this._update(),null!=this.prefetch_timer&&clearTimeout(this.prefetch_timer),this.prefetch_timer=setTimeout(this._prefetch_tiles.bind(this),500),this.has_finished()&&this.notify_finished()}_draw_tile(t){const e=this.model.tile_source.tiles.get(t);if(null!=e&&e.loaded){const[[t],[i]]=this.coordinates.map_to_screen([e.bounds[0]],[e.bounds[3]]),[[s],[_]]=this.coordinates.map_to_screen([e.bounds[2]],[e.bounds[1]]),n=s-t,a=_-i,o=t,r=i,h=this.map_canvas.getImageSmoothingEnabled();this.map_canvas.setImageSmoothingEnabled(this.model.smoothing),this.map_canvas.drawImage(e.img,o,r,n,a),this.map_canvas.setImageSmoothingEnabled(h),e.finished=!0}}_set_rect(){const t=this.plot_model.outline_line_width,e=this.map_frame.bbox.left+t/2,i=this.map_frame.bbox.top+t/2,s=this.map_frame.bbox.width-t,_=this.map_frame.bbox.height-t;this.map_canvas.rect(e,i,s,_),this.map_canvas.clip()}_render_tiles(t){this.map_canvas.save(),this._set_rect(),this.map_canvas.globalAlpha=this.model.alpha;for(const e of t)this._draw_tile(e);this.map_canvas.restore()}_prefetch_tiles(){const{tile_source:t}=this.model,e=this.get_extent(),i=this.map_frame.bbox.height,s=this.map_frame.bbox.width,_=this.model.tile_source.get_level_by_extent(e,i,s),n=this.model.tile_source.get_tiles_by_extent(e,_);for(let e=0,i=Math.min(10,n.length);ei&&(s=this.extent,o=i,r=!0),r&&(this.x_range.setv({start:s[0],end:s[2]}),this.y_range.setv({start:s[1],end:s[3]})),this.extent=s;const h=t.get_tiles_by_extent(s,o),l=[],d=[],m=[],u=[];for(const e of h){const[i,s,n]=e,a=t.tile_xyz_to_key(i,s,n),o=t.tiles.get(a);if(null!=o&&o.loaded)d.push(a);else if(this.model.render_parents){const[e,a,o]=t.get_closest_parent_by_tile_xyz(i,s,n),r=t.tile_xyz_to_key(e,a,o),h=t.tiles.get(r);if(null!=h&&h.loaded&&!(0,c.includes)(m,r)&&m.push(r),_){const e=t.children_by_tile_xyz(i,s,n);for(const[i,s,_]of e){const e=t.tile_xyz_to_key(i,s,_);t.tiles.has(e)&&u.push(e)}}}null==o&&l.push(e)}this._render_tiles(m),this._render_tiles(u),this._render_tiles(d),null!=this.render_timer&&clearTimeout(this.render_timer),this.render_timer=setTimeout((()=>this._fetch_tiles(l)),65)}}i.TileRendererView=g,g.__name__=\"TileRendererView\";class b extends h.Renderer{constructor(t){super(t)}}i.TileRenderer=b,a=b,b.__name__=\"TileRenderer\",a.prototype.default_view=g,a.define((({Boolean:t,Number:e,Ref:i})=>({alpha:[e,1],smoothing:[t,!0],tile_source:[i(o.TileSource),()=>new r.WMTSTileSource],render_parents:[t,!0]}))),a.override({level:\"image\"})},\n function _(t,e,r,o,s){o();const c=t(348);class i extends c.MercatorTileSource{constructor(t){super(t)}get_image_url(t,e,r){const o=this.string_lookup_replace(this.url,this.extra_url_vars),[s,c,i]=this.tms_to_wmts(t,e,r);return o.replace(\"{X}\",s.toString()).replace(\"{Y}\",c.toString()).replace(\"{Z}\",i.toString())}}r.WMTSTileSource=i,i.__name__=\"WMTSTileSource\"},\n function _(t,o,i,b,r){b(),i.root=\"bk-root\",i.tile_attribution=\"bk-tile-attribution\",i.default=\".bk-root .bk-tile-attribution a{color:black;}\"},\n function _(e,r,t,c,o){c();const i=e(348);class l extends i.MercatorTileSource{constructor(e){super(e)}get_image_url(e,r,t){return this.string_lookup_replace(this.url,this.extra_url_vars).replace(\"{X}\",e.toString()).replace(\"{Y}\",r.toString()).replace(\"{Z}\",t.toString())}}t.TMSTileSource=l,l.__name__=\"TMSTileSource\"},\n function _(e,t,u,a,r){a(),r(\"CanvasTexture\",e(357).CanvasTexture),r(\"ImageURLTexture\",e(359).ImageURLTexture),r(\"Texture\",e(358).Texture)},\n function _(t,e,n,c,s){var r;c();const o=t(358),a=t(34);class u extends o.Texture{constructor(t){super(t)}get func(){const t=(0,a.use_strict)(this.code);return new Function(\"ctx\",\"color\",\"scale\",\"weight\",t)}get_pattern(t,e,n){const c=document.createElement(\"canvas\");c.width=e,c.height=e;const s=c.getContext(\"2d\");return this.func.call(this,s,t,e,n),c}}n.CanvasTexture=u,r=u,u.__name__=\"CanvasTexture\",r.define((({String:t})=>({code:[t]})))},\n function _(e,t,n,r,o){var i;r();const s=e(53),u=e(20);class c extends s.Model{constructor(e){super(e)}}n.Texture=c,i=c,c.__name__=\"Texture\",i.define((()=>({repetition:[u.TextureRepetition,\"repeat\"]})))},\n function _(e,t,i,r,n){var a;r();const s=e(358),o=e(136);class u extends s.Texture{constructor(e){super(e)}initialize(){super.initialize(),this._loader=new o.ImageLoader(this.url)}get_pattern(e,t,i){const{_loader:r}=this;return this._loader.finished?r.image:r.promise}}i.ImageURLTexture=u,a=u,u.__name__=\"ImageURLTexture\",a.define((({String:e})=>({url:[e]})))},\n function _(o,l,T,e,t){e(),t(\"ActionTool\",o(238).ActionTool),t(\"CustomAction\",o(361).CustomAction),t(\"HelpTool\",o(239).HelpTool),t(\"RedoTool\",o(362).RedoTool),t(\"ResetTool\",o(363).ResetTool),t(\"SaveTool\",o(364).SaveTool),t(\"UndoTool\",o(365).UndoTool),t(\"ZoomInTool\",o(366).ZoomInTool),t(\"ZoomOutTool\",o(369).ZoomOutTool),t(\"ButtonTool\",o(224).ButtonTool),t(\"EditTool\",o(370).EditTool),t(\"BoxEditTool\",o(371).BoxEditTool),t(\"FreehandDrawTool\",o(372).FreehandDrawTool),t(\"PointDrawTool\",o(373).PointDrawTool),t(\"PolyDrawTool\",o(374).PolyDrawTool),t(\"PolyTool\",o(375).PolyTool),t(\"PolyEditTool\",o(376).PolyEditTool),t(\"BoxSelectTool\",o(377).BoxSelectTool),t(\"BoxZoomTool\",o(379).BoxZoomTool),t(\"GestureTool\",o(223).GestureTool),t(\"LassoSelectTool\",o(380).LassoSelectTool),t(\"LineEditTool\",o(382).LineEditTool),t(\"PanTool\",o(384).PanTool),t(\"PolySelectTool\",o(381).PolySelectTool),t(\"RangeTool\",o(385).RangeTool),t(\"SelectTool\",o(378).SelectTool),t(\"TapTool\",o(386).TapTool),t(\"WheelPanTool\",o(387).WheelPanTool),t(\"WheelZoomTool\",o(388).WheelZoomTool),t(\"CrosshairTool\",o(389).CrosshairTool),t(\"CustomJSHover\",o(390).CustomJSHover),t(\"HoverTool\",o(391).HoverTool),t(\"InspectTool\",o(232).InspectTool),t(\"Tool\",o(222).Tool),t(\"ToolProxy\",o(394).ToolProxy),t(\"Toolbar\",o(221).Toolbar),t(\"ToolbarBase\",o(233).ToolbarBase),t(\"ProxyToolbar\",o(395).ProxyToolbar),t(\"ToolbarBox\",o(395).ToolbarBox)},\n function _(t,o,e,s,n){var c;s();const i=t(238);class u extends i.ActionToolButtonView{css_classes(){return super.css_classes().concat(\"bk-toolbar-button-custom-action\")}}e.CustomActionButtonView=u,u.__name__=\"CustomActionButtonView\";class l extends i.ActionToolView{doit(){var t;null===(t=this.model.callback)||void 0===t||t.execute(this.model)}}e.CustomActionView=l,l.__name__=\"CustomActionView\";class a extends i.ActionTool{constructor(t){super(t),this.tool_name=\"Custom Action\",this.button_view=u}}e.CustomAction=a,c=a,a.__name__=\"CustomAction\",c.prototype.default_view=l,c.define((({Any:t,String:o,Nullable:e})=>({callback:[e(t)],icon:[o]}))),c.override({description:\"Perform a Custom Action\"})},\n function _(e,o,t,i,s){var n;i();const l=e(238),_=e(228);class d extends l.ActionToolView{connect_signals(){super.connect_signals(),this.connect(this.plot_view.state.changed,(()=>this.model.disabled=!this.plot_view.state.can_redo))}doit(){const e=this.plot_view.state.redo();null!=(null==e?void 0:e.range)&&this.plot_view.trigger_ranges_update_event()}}t.RedoToolView=d,d.__name__=\"RedoToolView\";class a extends l.ActionTool{constructor(e){super(e),this.tool_name=\"Redo\",this.icon=_.tool_icon_redo}}t.RedoTool=a,n=a,a.__name__=\"RedoTool\",n.prototype.default_view=d,n.override({disabled:!0}),n.register_alias(\"redo\",(()=>new a))},\n function _(e,o,t,s,i){var _;s();const n=e(238),l=e(228);class c extends n.ActionToolView{doit(){this.plot_view.reset()}}t.ResetToolView=c,c.__name__=\"ResetToolView\";class r extends n.ActionTool{constructor(e){super(e),this.tool_name=\"Reset\",this.icon=l.tool_icon_reset}}t.ResetTool=r,_=r,r.__name__=\"ResetTool\",_.prototype.default_view=c,_.register_alias(\"reset\",(()=>new r))},\n function _(e,o,t,a,i){var s;a();const c=e(238),n=e(228);class l extends c.ActionToolView{async copy(){const e=await this.plot_view.to_blob(),o=new ClipboardItem({[e.type]:Promise.resolve(e)});await navigator.clipboard.write([o])}async save(e){const o=await this.plot_view.to_blob(),t=document.createElement(\"a\");t.href=URL.createObjectURL(o),t.download=e,t.target=\"_blank\",t.dispatchEvent(new MouseEvent(\"click\"))}doit(e=\"save\"){switch(e){case\"save\":this.save(\"bokeh_plot\");break;case\"copy\":this.copy()}}}t.SaveToolView=l,l.__name__=\"SaveToolView\";class r extends c.ActionTool{constructor(e){super(e),this.tool_name=\"Save\",this.icon=n.tool_icon_save}get menu(){return[{icon:\"bk-tool-icon-copy-to-clipboard\",tooltip:\"Copy image to clipboard\",if:()=>\"undefined\"!=typeof ClipboardItem,handler:()=>{this.do.emit(\"copy\")}}]}}t.SaveTool=r,s=r,r.__name__=\"SaveTool\",s.prototype.default_view=l,s.register_alias(\"save\",(()=>new r))},\n function _(o,e,t,n,i){var s;n();const l=o(238),_=o(228);class d extends l.ActionToolView{connect_signals(){super.connect_signals(),this.connect(this.plot_view.state.changed,(()=>this.model.disabled=!this.plot_view.state.can_undo))}doit(){const o=this.plot_view.state.undo();null!=(null==o?void 0:o.range)&&this.plot_view.trigger_ranges_update_event()}}t.UndoToolView=d,d.__name__=\"UndoToolView\";class a extends l.ActionTool{constructor(o){super(o),this.tool_name=\"Undo\",this.icon=_.tool_icon_undo}}t.UndoTool=a,s=a,a.__name__=\"UndoTool\",s.prototype.default_view=d,s.override({disabled:!0}),s.register_alias(\"undo\",(()=>new a))},\n function _(o,n,e,i,s){var t;i();const _=o(367),m=o(228);class a extends _.ZoomBaseToolView{}e.ZoomInToolView=a,a.__name__=\"ZoomInToolView\";class l extends _.ZoomBaseTool{constructor(o){super(o),this.sign=1,this.tool_name=\"Zoom In\",this.icon=m.tool_icon_zoom_in}}e.ZoomInTool=l,t=l,l.__name__=\"ZoomInTool\",t.prototype.default_view=a,t.register_alias(\"zoom_in\",(()=>new l({dimensions:\"both\"}))),t.register_alias(\"xzoom_in\",(()=>new l({dimensions:\"width\"}))),t.register_alias(\"yzoom_in\",(()=>new l({dimensions:\"height\"})))},\n function _(o,t,e,i,s){var n;i();const a=o(238),_=o(20),l=o(368);class m extends a.ActionToolView{doit(){var o;const t=this.plot_view.frame,e=this.model.dimensions,i=\"width\"==e||\"both\"==e,s=\"height\"==e||\"both\"==e,n=(0,l.scale_range)(t,this.model.sign*this.model.factor,i,s);this.plot_view.state.push(\"zoom_out\",{range:n}),this.plot_view.update_range(n,{scrolling:!0,maintain_focus:this.model.maintain_focus}),null===(o=this.model.document)||void 0===o||o.interactive_start(this.plot_model),this.plot_view.trigger_ranges_update_event()}}e.ZoomBaseToolView=m,m.__name__=\"ZoomBaseToolView\";class h extends a.ActionTool{constructor(o){super(o),this.maintain_focus=!0}get tooltip(){return this._get_dim_tooltip(this.dimensions)}}e.ZoomBaseTool=h,n=h,h.__name__=\"ZoomBaseTool\",n.define((({Percent:o})=>({factor:[o,.1],dimensions:[_.Dimensions,\"both\"]})))},\n function _(n,t,o,r,s){r();const c=n(10);function e(n,t,o){const[r,s]=[n.start,n.end],c=null!=o?o:(s+r)/2;return[r-(r-c)*t,s-(s-c)*t]}function a(n,[t,o]){const r=new Map;for(const[s,c]of n){const[n,e]=c.r_invert(t,o);r.set(s,{start:n,end:e})}return r}o.scale_highlow=e,o.get_info=a,o.scale_range=function(n,t,o=!0,r=!0,s){t=(0,c.clamp)(t,-.9,.9);const l=o?t:0,[u,i]=e(n.bbox.h_range,l,null!=s?s.x:void 0),_=a(n.x_scales,[u,i]),f=r?t:0,[g,x]=e(n.bbox.v_range,f,null!=s?s.y:void 0);return{xrs:_,yrs:a(n.y_scales,[g,x]),factor:t}}},\n function _(o,e,t,i,s){var n;i();const _=o(367),a=o(228);class m extends _.ZoomBaseToolView{}t.ZoomOutToolView=m,m.__name__=\"ZoomOutToolView\";class l extends _.ZoomBaseTool{constructor(o){super(o),this.sign=-1,this.tool_name=\"Zoom Out\",this.icon=a.tool_icon_zoom_out}}t.ZoomOutTool=l,n=l,l.__name__=\"ZoomOutTool\",n.prototype.default_view=m,n.define((({Boolean:o})=>({maintain_focus:[o,!0]}))),n.register_alias(\"zoom_out\",(()=>new l({dimensions:\"both\"}))),n.register_alias(\"xzoom_out\",(()=>new l({dimensions:\"width\"}))),n.register_alias(\"yzoom_out\",(()=>new l({dimensions:\"height\"})))},\n function _(e,t,s,o,n){var r;o();const i=e(9),c=e(8),a=e(11),_=e(175),l=e(223);class d extends l.GestureToolView{constructor(){super(...arguments),this._mouse_in_frame=!0}_select_mode(e){const{shiftKey:t,ctrlKey:s}=e;return t||s?t&&!s?\"append\":!t&&s?\"intersect\":t&&s?\"subtract\":void(0,a.unreachable)():\"replace\"}_move_enter(e){this._mouse_in_frame=!0}_move_exit(e){this._mouse_in_frame=!1}_map_drag(e,t,s){if(!this.plot_view.frame.bbox.contains(e,t))return null;const o=this.plot_view.renderer_view(s);if(null==o)return null;return[o.coordinates.x_scale.invert(e),o.coordinates.y_scale.invert(t)]}_delete_selected(e){const t=e.data_source,s=t.selected.indices;s.sort();for(const e of t.columns()){const o=t.get_array(e);for(let e=0;e({custom_icon:[n(t),null],empty_value:[e],renderers:[s(o(_.GlyphRenderer)),[]]})))},\n function _(e,t,s,i,_){var o;i();const n=e(43),a=e(20),d=e(370),l=e(228);class r extends d.EditToolView{_tap(e){null==this._draw_basepoint&&null==this._basepoint&&this._select_event(e,this._select_mode(e),this.model.renderers)}_keyup(e){if(this.model.active&&this._mouse_in_frame)for(const t of this.model.renderers)if(e.keyCode===n.Keys.Backspace)this._delete_selected(t);else if(e.keyCode==n.Keys.Esc){t.data_source.selection_manager.clear()}}_set_extent([e,t],[s,i],_,o=!1){const n=this.model.renderers[0],a=this.plot_view.renderer_view(n);if(null==a)return;const d=n.glyph,l=n.data_source,[r,h]=a.coordinates.x_scale.r_invert(e,t),[p,u]=a.coordinates.y_scale.r_invert(s,i),[c,m]=[(r+h)/2,(p+u)/2],[f,b]=[h-r,u-p],[y,x]=[d.x.field,d.y.field],[w,v]=[d.width.field,d.height.field];if(_)this._pop_glyphs(l,this.model.num_objects),y&&l.get_array(y).push(c),x&&l.get_array(x).push(m),w&&l.get_array(w).push(f),v&&l.get_array(v).push(b),this._pad_empty_columns(l,[y,x,w,v]);else{const e=l.data[y].length-1;y&&(l.data[y][e]=c),x&&(l.data[x][e]=m),w&&(l.data[w][e]=f),v&&(l.data[v][e]=b)}this._emit_cds_changes(l,!0,!1,o)}_update_box(e,t=!1,s=!1){if(null==this._draw_basepoint)return;const i=[e.sx,e.sy],_=this.plot_view.frame,o=this.model.dimensions,n=this.model._get_dim_limits(this._draw_basepoint,i,_,o);if(null!=n){const[e,i]=n;this._set_extent(e,i,t,s)}}_doubletap(e){this.model.active&&(null!=this._draw_basepoint?(this._update_box(e,!1,!0),this._draw_basepoint=null):(this._draw_basepoint=[e.sx,e.sy],this._select_event(e,\"append\",this.model.renderers),this._update_box(e,!0,!1)))}_move(e){this._update_box(e,!1,!1)}_pan_start(e){if(e.shiftKey){if(null!=this._draw_basepoint)return;this._draw_basepoint=[e.sx,e.sy],this._update_box(e,!0,!1)}else{if(null!=this._basepoint)return;this._select_event(e,\"append\",this.model.renderers),this._basepoint=[e.sx,e.sy]}}_pan(e,t=!1,s=!1){if(e.shiftKey){if(null==this._draw_basepoint)return;this._update_box(e,t,s)}else{if(null==this._basepoint)return;this._drag_points(e,this.model.renderers)}}_pan_end(e){if(this._pan(e,!1,!0),e.shiftKey)this._draw_basepoint=null;else{this._basepoint=null;for(const e of this.model.renderers)this._emit_cds_changes(e.data_source,!1,!0,!0)}}}s.BoxEditToolView=r,r.__name__=\"BoxEditToolView\";class h extends d.EditTool{constructor(e){super(e),this.tool_name=\"Box Edit Tool\",this.icon=l.tool_icon_box_edit,this.event_type=[\"tap\",\"pan\",\"move\"],this.default_order=1}}s.BoxEditTool=h,o=h,h.__name__=\"BoxEditTool\",o.prototype.default_view=r,o.define((({Int:e})=>({dimensions:[a.Dimensions,\"both\"],num_objects:[e,0]})))},\n function _(e,t,a,s,r){var _;s();const d=e(43),o=e(8),n=e(370),i=e(228);class l extends n.EditToolView{_draw(e,t,a=!1){if(!this.model.active)return;const s=this.model.renderers[0],r=this._map_drag(e.sx,e.sy,s);if(null==r)return;const[_,d]=r,n=s.data_source,i=s.glyph,[l,h]=[i.xs.field,i.ys.field];if(\"new\"==t)this._pop_glyphs(n,this.model.num_objects),l&&n.get_array(l).push([_]),h&&n.get_array(h).push([d]),this._pad_empty_columns(n,[l,h]);else if(\"add\"==t){if(l){const e=n.data[l].length-1;let t=n.get_array(l)[e];(0,o.isArray)(t)||(t=Array.from(t),n.data[l][e]=t),t.push(_)}if(h){const e=n.data[h].length-1;let t=n.get_array(h)[e];(0,o.isArray)(t)||(t=Array.from(t),n.data[h][e]=t),t.push(d)}}this._emit_cds_changes(n,!0,!0,a)}_pan_start(e){this._draw(e,\"new\")}_pan(e){this._draw(e,\"add\")}_pan_end(e){this._draw(e,\"add\",!0)}_tap(e){this._select_event(e,this._select_mode(e),this.model.renderers)}_keyup(e){if(this.model.active&&this._mouse_in_frame)for(const t of this.model.renderers)e.keyCode===d.Keys.Esc?t.data_source.selection_manager.clear():e.keyCode===d.Keys.Backspace&&this._delete_selected(t)}}a.FreehandDrawToolView=l,l.__name__=\"FreehandDrawToolView\";class h extends n.EditTool{constructor(e){super(e),this.tool_name=\"Freehand Draw Tool\",this.icon=i.tool_icon_freehand_draw,this.event_type=[\"pan\",\"tap\"],this.default_order=3}}a.FreehandDrawTool=h,_=h,h.__name__=\"FreehandDrawTool\",_.prototype.default_view=l,_.define((({Int:e})=>({num_objects:[e,0]}))),_.register_alias(\"freehand_draw\",(()=>new h))},\n function _(e,t,s,o,a){var i;o();const n=e(43),_=e(370),r=e(228);class d extends _.EditToolView{_tap(e){if(this._select_event(e,this._select_mode(e),this.model.renderers).length||!this.model.add)return;const t=this.model.renderers[0],s=this._map_drag(e.sx,e.sy,t);if(null==s)return;const o=t.glyph,a=t.data_source,[i,n]=[o.x.field,o.y.field],[_,r]=s;this._pop_glyphs(a,this.model.num_objects),i&&a.get_array(i).push(_),n&&a.get_array(n).push(r),this._pad_empty_columns(a,[i,n]),a.change.emit(),a.data=a.data,a.properties.data.change.emit()}_keyup(e){if(this.model.active&&this._mouse_in_frame)for(const t of this.model.renderers)e.keyCode===n.Keys.Backspace?this._delete_selected(t):e.keyCode==n.Keys.Esc&&t.data_source.selection_manager.clear()}_pan_start(e){this.model.drag&&(this._select_event(e,\"append\",this.model.renderers),this._basepoint=[e.sx,e.sy])}_pan(e){this.model.drag&&null!=this._basepoint&&this._drag_points(e,this.model.renderers)}_pan_end(e){if(this.model.drag){this._pan(e);for(const e of this.model.renderers)this._emit_cds_changes(e.data_source,!1,!0,!0);this._basepoint=null}}}s.PointDrawToolView=d,d.__name__=\"PointDrawToolView\";class l extends _.EditTool{constructor(e){super(e),this.tool_name=\"Point Draw Tool\",this.icon=r.tool_icon_point_draw,this.event_type=[\"tap\",\"pan\",\"move\"],this.default_order=2}}s.PointDrawTool=l,i=l,l.__name__=\"PointDrawTool\",i.prototype.default_view=d,i.define((({Boolean:e,Int:t})=>({add:[e,!0],drag:[e,!0],num_objects:[t,0]})))},\n function _(e,t,s,i,a){var r;i();const o=e(43),n=e(8),d=e(375),_=e(228);class h extends d.PolyToolView{constructor(){super(...arguments),this._drawing=!1,this._initialized=!1}_tap(e){this._drawing?this._draw(e,\"add\",!0):this._select_event(e,this._select_mode(e),this.model.renderers)}_draw(e,t,s=!1){const i=this.model.renderers[0],a=this._map_drag(e.sx,e.sy,i);if(this._initialized||this.activate(),null==a)return;const[r,o]=this._snap_to_vertex(e,...a),d=i.data_source,_=i.glyph,[h,l]=[_.xs.field,_.ys.field];if(\"new\"==t)this._pop_glyphs(d,this.model.num_objects),h&&d.get_array(h).push([r,r]),l&&d.get_array(l).push([o,o]),this._pad_empty_columns(d,[h,l]);else if(\"edit\"==t){if(h){const e=d.data[h][d.data[h].length-1];e[e.length-1]=r}if(l){const e=d.data[l][d.data[l].length-1];e[e.length-1]=o}}else if(\"add\"==t){if(h){const e=d.data[h].length-1;let t=d.get_array(h)[e];const s=t[t.length-1];t[t.length-1]=r,(0,n.isArray)(t)||(t=Array.from(t),d.data[h][e]=t),t.push(s)}if(l){const e=d.data[l].length-1;let t=d.get_array(l)[e];const s=t[t.length-1];t[t.length-1]=o,(0,n.isArray)(t)||(t=Array.from(t),d.data[l][e]=t),t.push(s)}}this._emit_cds_changes(d,!0,!1,s)}_show_vertices(){if(!this.model.active)return;const e=[],t=[];for(let s=0;sthis._show_vertices()))}this._initialized=!0}}deactivate(){this._drawing&&(this._remove(),this._drawing=!1),this.model.vertex_renderer&&this._hide_vertices()}}s.PolyDrawToolView=h,h.__name__=\"PolyDrawToolView\";class l extends d.PolyTool{constructor(e){super(e),this.tool_name=\"Polygon Draw Tool\",this.icon=_.tool_icon_poly_draw,this.event_type=[\"pan\",\"tap\",\"move\"],this.default_order=3}}s.PolyDrawTool=l,r=l,l.__name__=\"PolyDrawTool\",r.prototype.default_view=h,r.define((({Boolean:e,Int:t})=>({drag:[e,!0],num_objects:[t,0]})))},\n function _(e,r,t,s,o){var _;s();const d=e(8),i=e(370);class l extends i.EditToolView{_set_vertices(e,r){const t=this.model.vertex_renderer.glyph,s=this.model.vertex_renderer.data_source,[o,_]=[t.x.field,t.y.field];o&&((0,d.isArray)(e)?s.data[o]=e:t.x={value:e}),_&&((0,d.isArray)(r)?s.data[_]=r:t.y={value:r}),this._emit_cds_changes(s,!0,!0,!1)}_hide_vertices(){this._set_vertices([],[])}_snap_to_vertex(e,r,t){if(this.model.vertex_renderer){const s=this._select_event(e,\"replace\",[this.model.vertex_renderer]),o=this.model.vertex_renderer.data_source,_=this.model.vertex_renderer.glyph,[d,i]=[_.x.field,_.y.field];if(s.length){const e=o.selected.indices[0];d&&(r=o.data[d][e]),i&&(t=o.data[i][e]),o.selection_manager.clear()}}return[r,t]}}t.PolyToolView=l,l.__name__=\"PolyToolView\";class n extends i.EditTool{constructor(e){super(e)}}t.PolyTool=n,_=n,n.__name__=\"PolyTool\",_.define((({AnyRef:e})=>({vertex_renderer:[e()]})))},\n function _(e,t,s,r,i){var _;r();const d=e(43),n=e(8),l=e(375),a=e(228);class c extends l.PolyToolView{constructor(){super(...arguments),this._drawing=!1,this._cur_index=null}_doubletap(e){if(!this.model.active)return;const t=this._map_drag(e.sx,e.sy,this.model.vertex_renderer);if(null==t)return;const[s,r]=t,i=this._select_event(e,\"replace\",[this.model.vertex_renderer]),_=this.model.vertex_renderer.data_source,d=this.model.vertex_renderer.glyph,[n,l]=[d.x.field,d.y.field];if(i.length&&null!=this._selected_renderer){const e=_.selected.indices[0];this._drawing?(this._drawing=!1,_.selection_manager.clear()):(_.selected.indices=[e+1],n&&_.get_array(n).splice(e+1,0,s),l&&_.get_array(l).splice(e+1,0,r),this._drawing=!0),_.change.emit(),this._emit_cds_changes(this._selected_renderer.data_source)}else this._show_vertices(e)}_show_vertices(e){if(!this.model.active)return;const t=this.model.renderers[0],s=()=>this._update_vertices(t),r=null==t?void 0:t.data_source,i=this._select_event(e,\"replace\",this.model.renderers);if(!i.length)return this._set_vertices([],[]),this._selected_renderer=null,this._drawing=!1,this._cur_index=null,void(null!=r&&r.disconnect(r.properties.data.change,s));null!=r&&r.connect(r.properties.data.change,s),this._cur_index=i[0].data_source.selected.indices[0],this._update_vertices(i[0])}_update_vertices(e){const t=e.glyph,s=e.data_source,r=this._cur_index,[i,_]=[t.xs.field,t.ys.field];if(this._drawing)return;if(null==r&&(i||_))return;let d,l;i&&null!=r?(d=s.data[i][r],(0,n.isArray)(d)||(s.data[i][r]=d=Array.from(d))):d=t.xs.value,_&&null!=r?(l=s.data[_][r],(0,n.isArray)(l)||(s.data[_][r]=l=Array.from(l))):l=t.ys.value,this._selected_renderer=e,this._set_vertices(d,l)}_move(e){if(this._drawing&&null!=this._selected_renderer){const t=this.model.vertex_renderer,s=t.data_source,r=t.glyph,i=this._map_drag(e.sx,e.sy,t);if(null==i)return;let[_,d]=i;const n=s.selected.indices;[_,d]=this._snap_to_vertex(e,_,d),s.selected.indices=n;const[l,a]=[r.x.field,r.y.field],c=n[0];l&&(s.data[l][c]=_),a&&(s.data[a][c]=d),s.change.emit(),this._selected_renderer.data_source.change.emit()}}_tap(e){const t=this.model.vertex_renderer,s=this._map_drag(e.sx,e.sy,t);if(null==s)return;if(this._drawing&&this._selected_renderer){let[r,i]=s;const _=t.data_source,d=t.glyph,[n,l]=[d.x.field,d.y.field],a=_.selected.indices;[r,i]=this._snap_to_vertex(e,r,i);const c=a[0];if(_.selected.indices=[c+1],n){const e=_.get_array(n),t=e[c];e[c]=r,e.splice(c+1,0,t)}if(l){const e=_.get_array(l),t=e[c];e[c]=i,e.splice(c+1,0,t)}return _.change.emit(),void this._emit_cds_changes(this._selected_renderer.data_source,!0,!1,!0)}const r=this._select_mode(e);this._select_event(e,r,[t]),this._select_event(e,r,this.model.renderers)}_remove_vertex(){if(!this._drawing||!this._selected_renderer)return;const e=this.model.vertex_renderer,t=e.data_source,s=e.glyph,r=t.selected.indices[0],[i,_]=[s.x.field,s.y.field];i&&t.get_array(i).splice(r,1),_&&t.get_array(_).splice(r,1),t.change.emit(),this._emit_cds_changes(this._selected_renderer.data_source)}_pan_start(e){this._select_event(e,\"append\",[this.model.vertex_renderer]),this._basepoint=[e.sx,e.sy]}_pan(e){null!=this._basepoint&&(this._drag_points(e,[this.model.vertex_renderer]),this._selected_renderer&&this._selected_renderer.data_source.change.emit())}_pan_end(e){null!=this._basepoint&&(this._drag_points(e,[this.model.vertex_renderer]),this._emit_cds_changes(this.model.vertex_renderer.data_source,!1,!0,!0),this._selected_renderer&&this._emit_cds_changes(this._selected_renderer.data_source),this._basepoint=null)}_keyup(e){if(!this.model.active||!this._mouse_in_frame)return;let t;t=this._selected_renderer?[this.model.vertex_renderer]:this.model.renderers;for(const s of t)e.keyCode===d.Keys.Backspace?(this._delete_selected(s),this._selected_renderer&&this._emit_cds_changes(this._selected_renderer.data_source)):e.keyCode==d.Keys.Esc&&(this._drawing?(this._remove_vertex(),this._drawing=!1):this._selected_renderer&&this._hide_vertices(),s.data_source.selection_manager.clear())}deactivate(){this._selected_renderer&&(this._drawing&&(this._remove_vertex(),this._drawing=!1),this._hide_vertices())}}s.PolyEditToolView=c,c.__name__=\"PolyEditToolView\";class o extends l.PolyTool{constructor(e){super(e),this.tool_name=\"Poly Edit Tool\",this.icon=a.tool_icon_poly_edit,this.event_type=[\"tap\",\"pan\",\"move\"],this.default_order=4}}s.PolyEditTool=o,_=o,o.__name__=\"PolyEditTool\",_.prototype.default_view=c},\n function _(e,t,o,s,i){var l;s();const n=e(378),_=e(116),c=e(20),r=e(228);class a extends n.SelectToolView{_compute_limits(e){const t=this.plot_view.frame,o=this.model.dimensions;let s=this._base_point;if(\"center\"==this.model.origin){const[t,o]=s,[i,l]=e;s=[t-(i-t),o-(l-o)]}return this.model._get_dim_limits(s,e,t,o)}_pan_start(e){const{sx:t,sy:o}=e;this._base_point=[t,o]}_pan(e){const{sx:t,sy:o}=e,s=[t,o],[i,l]=this._compute_limits(s);this.model.overlay.update({left:i[0],right:i[1],top:l[0],bottom:l[1]}),this.model.select_every_mousemove&&this._do_select(i,l,!1,this._select_mode(e))}_pan_end(e){const{sx:t,sy:o}=e,s=[t,o],[i,l]=this._compute_limits(s);this._do_select(i,l,!0,this._select_mode(e)),this.model.overlay.update({left:null,right:null,top:null,bottom:null}),this._base_point=null,this.plot_view.state.push(\"box_select\",{selection:this.plot_view.get_selection()})}_do_select([e,t],[o,s],i,l=\"replace\"){const n={type:\"rect\",sx0:e,sx1:t,sy0:o,sy1:s};this._select(n,i,l)}}o.BoxSelectToolView=a,a.__name__=\"BoxSelectToolView\";const h=()=>new _.BoxAnnotation({level:\"overlay\",top_units:\"screen\",left_units:\"screen\",bottom_units:\"screen\",right_units:\"screen\",fill_color:\"lightgrey\",fill_alpha:.5,line_color:\"black\",line_alpha:1,line_width:2,line_dash:[4,4]});class m extends n.SelectTool{constructor(e){super(e),this.tool_name=\"Box Select\",this.icon=r.tool_icon_box_select,this.event_type=\"pan\",this.default_order=30}get tooltip(){return this._get_dim_tooltip(this.dimensions)}}o.BoxSelectTool=m,l=m,m.__name__=\"BoxSelectTool\",l.prototype.default_view=a,l.define((({Boolean:e,Ref:t})=>({dimensions:[c.Dimensions,\"both\"],select_every_mousemove:[e,!1],overlay:[t(_.BoxAnnotation),h],origin:[c.BoxOrigin,\"corner\"]}))),l.register_alias(\"box_select\",(()=>new m)),l.register_alias(\"xbox_select\",(()=>new m({dimensions:\"width\"}))),l.register_alias(\"ybox_select\",(()=>new m({dimensions:\"height\"})))},\n function _(e,t,s,n,r){var o;n();const c=e(223),i=e(175),a=e(339),l=e(176),d=e(66),_=e(20),h=e(43),p=e(251),u=e(15),m=e(11);class v extends c.GestureToolView{connect_signals(){super.connect_signals(),this.model.clear.connect((()=>this._clear()))}get computed_renderers(){const{renderers:e,names:t}=this.model,s=this.plot_model.data_renderers;return(0,d.compute_renderers)(e,s,t)}_computed_renderers_by_data_source(){var e;const t=new Map;for(const s of this.computed_renderers){let n;if(s instanceof i.GlyphRenderer)n=s.data_source;else{if(!(s instanceof a.GraphRenderer))continue;n=s.node_renderer.data_source}const r=null!==(e=t.get(n))&&void 0!==e?e:[];t.set(n,[...r,s])}return t}_select_mode(e){const{shiftKey:t,ctrlKey:s}=e;return t||s?t&&!s?\"append\":!t&&s?\"intersect\":t&&s?\"subtract\":void(0,m.unreachable)():this.model.mode}_keyup(e){e.keyCode==h.Keys.Esc&&this._clear()}_clear(){for(const e of this.computed_renderers)e.get_selection_manager().clear();const e=this.computed_renderers.map((e=>this.plot_view.renderer_view(e)));this.plot_view.request_paint(e)}_select(e,t,s){const n=this._computed_renderers_by_data_source();for(const[,r]of n){const n=r[0].get_selection_manager(),o=[];for(const e of r){const t=this.plot_view.renderer_view(e);null!=t&&o.push(t)}n.select(o,e,t,s)}null!=this.model.callback&&this._emit_callback(e),this._emit_selection_event(e,t)}_emit_selection_event(e,t=!0){const{x_scale:s,y_scale:n}=this.plot_view.frame;let r;switch(e.type){case\"point\":{const{sx:t,sy:o}=e,c=s.invert(t),i=n.invert(o);r=Object.assign(Object.assign({},e),{x:c,y:i});break}case\"span\":{const{sx:t,sy:o}=e,c=s.invert(t),i=n.invert(o);r=Object.assign(Object.assign({},e),{x:c,y:i});break}case\"rect\":{const{sx0:t,sx1:o,sy0:c,sy1:i}=e,[a,l]=s.r_invert(t,o),[d,_]=n.r_invert(c,i);r=Object.assign(Object.assign({},e),{x0:a,y0:d,x1:l,y1:_});break}case\"poly\":{const{sx:t,sy:o}=e,c=s.v_invert(t),i=n.v_invert(o);r=Object.assign(Object.assign({},e),{x:c,y:i});break}}this.plot_model.trigger_event(new p.SelectionGeometry(r,t))}}s.SelectToolView=v,v.__name__=\"SelectToolView\";class b extends c.GestureTool{constructor(e){super(e)}initialize(){super.initialize(),this.clear=new u.Signal0(this,\"clear\")}get menu(){return[{icon:\"bk-tool-icon-replace-mode\",tooltip:\"Replace the current selection\",active:()=>\"replace\"==this.mode,handler:()=>{this.mode=\"replace\",this.active=!0}},{icon:\"bk-tool-icon-append-mode\",tooltip:\"Append to the current selection (Shift)\",active:()=>\"append\"==this.mode,handler:()=>{this.mode=\"append\",this.active=!0}},{icon:\"bk-tool-icon-intersect-mode\",tooltip:\"Intersect with the current selection (Ctrl)\",active:()=>\"intersect\"==this.mode,handler:()=>{this.mode=\"intersect\",this.active=!0}},{icon:\"bk-tool-icon-subtract-mode\",tooltip:\"Subtract from the current selection (Shift+Ctrl)\",active:()=>\"subtract\"==this.mode,handler:()=>{this.mode=\"subtract\",this.active=!0}},null,{icon:\"bk-tool-icon-clear-selection\",tooltip:\"Clear the current selection (Esc)\",handler:()=>{this.clear.emit()}}]}}s.SelectTool=b,o=b,b.__name__=\"SelectTool\",o.define((({String:e,Array:t,Ref:s,Or:n,Auto:r})=>({renderers:[n(t(s(l.DataRenderer)),r),\"auto\"],names:[t(e),[]],mode:[_.SelectionMode,\"replace\"]})))},\n function _(t,o,e,s,i){var n;s();const _=t(223),a=t(116),l=t(20),r=t(228);class h extends _.GestureToolView{_match_aspect(t,o,e){const s=e.bbox.aspect,i=e.bbox.h_range.end,n=e.bbox.h_range.start,_=e.bbox.v_range.end,a=e.bbox.v_range.start;let l=Math.abs(t[0]-o[0]),r=Math.abs(t[1]-o[1]);const h=0==r?0:l/r,[c]=h>=s?[1,h/s]:[s/h,1];let m,p,d,b;return t[0]<=o[0]?(m=t[0],p=t[0]+l*c,p>i&&(p=i)):(p=t[0],m=t[0]-l*c,m_&&(d=_)):(d=t[1],b=t[1]-l/s,bnew a.BoxAnnotation({level:\"overlay\",top_units:\"screen\",left_units:\"screen\",bottom_units:\"screen\",right_units:\"screen\",fill_color:\"lightgrey\",fill_alpha:.5,line_color:\"black\",line_alpha:1,line_width:2,line_dash:[4,4]});class m extends _.GestureTool{constructor(t){super(t),this.tool_name=\"Box Zoom\",this.icon=r.tool_icon_box_zoom,this.event_type=\"pan\",this.default_order=20}get tooltip(){return this._get_dim_tooltip(this.dimensions)}}e.BoxZoomTool=m,n=m,m.__name__=\"BoxZoomTool\",n.prototype.default_view=h,n.define((({Boolean:t,Ref:o})=>({dimensions:[l.Dimensions,\"both\"],overlay:[o(a.BoxAnnotation),c],match_aspect:[t,!1],origin:[l.BoxOrigin,\"corner\"]}))),n.register_alias(\"box_zoom\",(()=>new m({dimensions:\"both\"}))),n.register_alias(\"xbox_zoom\",(()=>new m({dimensions:\"width\"}))),n.register_alias(\"ybox_zoom\",(()=>new m({dimensions:\"height\"})))},\n function _(s,e,t,o,_){var l;o();const i=s(378),a=s(217),c=s(381),n=s(43),h=s(228);class r extends i.SelectToolView{constructor(){super(...arguments),this.sxs=[],this.sys=[]}connect_signals(){super.connect_signals(),this.connect(this.model.properties.active.change,(()=>this._active_change()))}_active_change(){this.model.active||this._clear_overlay()}_keyup(s){s.keyCode==n.Keys.Enter&&this._clear_overlay()}_pan_start(s){this.sxs=[],this.sys=[];const{sx:e,sy:t}=s;this._append_overlay(e,t)}_pan(s){const[e,t]=this.plot_view.frame.bbox.clip(s.sx,s.sy);this._append_overlay(e,t),this.model.select_every_mousemove&&this._do_select(this.sxs,this.sys,!1,this._select_mode(s))}_pan_end(s){const{sxs:e,sys:t}=this;this._clear_overlay(),this._do_select(e,t,!0,this._select_mode(s)),this.plot_view.state.push(\"lasso_select\",{selection:this.plot_view.get_selection()})}_append_overlay(s,e){const{sxs:t,sys:o}=this;t.push(s),o.push(e),this.model.overlay.update({xs:t,ys:o})}_clear_overlay(){this.sxs=[],this.sys=[],this.model.overlay.update({xs:this.sxs,ys:this.sys})}_do_select(s,e,t,o){const _={type:\"poly\",sx:s,sy:e};this._select(_,t,o)}}t.LassoSelectToolView=r,r.__name__=\"LassoSelectToolView\";class y extends i.SelectTool{constructor(s){super(s),this.tool_name=\"Lasso Select\",this.icon=h.tool_icon_lasso_select,this.event_type=\"pan\",this.default_order=12}}t.LassoSelectTool=y,l=y,y.__name__=\"LassoSelectTool\",l.prototype.default_view=r,l.define((({Boolean:s,Ref:e})=>({select_every_mousemove:[s,!0],overlay:[e(a.PolyAnnotation),c.DEFAULT_POLY_OVERLAY]}))),l.register_alias(\"lasso_select\",(()=>new y))},\n function _(e,t,s,l,o){var i;l();const a=e(378),_=e(217),c=e(43),n=e(9),h=e(228);class y extends a.SelectToolView{initialize(){super.initialize(),this.data={sx:[],sy:[]}}connect_signals(){super.connect_signals(),this.connect(this.model.properties.active.change,(()=>this._active_change()))}_active_change(){this.model.active||this._clear_data()}_keyup(e){e.keyCode==c.Keys.Enter&&this._clear_data()}_doubletap(e){this._do_select(this.data.sx,this.data.sy,!0,this._select_mode(e)),this.plot_view.state.push(\"poly_select\",{selection:this.plot_view.get_selection()}),this._clear_data()}_clear_data(){this.data={sx:[],sy:[]},this.model.overlay.update({xs:[],ys:[]})}_tap(e){const{sx:t,sy:s}=e;this.plot_view.frame.bbox.contains(t,s)&&(this.data.sx.push(t),this.data.sy.push(s),this.model.overlay.update({xs:(0,n.copy)(this.data.sx),ys:(0,n.copy)(this.data.sy)}))}_do_select(e,t,s,l){const o={type:\"poly\",sx:e,sy:t};this._select(o,s,l)}}s.PolySelectToolView=y,y.__name__=\"PolySelectToolView\";s.DEFAULT_POLY_OVERLAY=()=>new _.PolyAnnotation({level:\"overlay\",xs_units:\"screen\",ys_units:\"screen\",fill_color:\"lightgrey\",fill_alpha:.5,line_color:\"black\",line_alpha:1,line_width:2,line_dash:[4,4]});class d extends a.SelectTool{constructor(e){super(e),this.tool_name=\"Poly Select\",this.icon=h.tool_icon_polygon_select,this.event_type=\"tap\",this.default_order=11}}s.PolySelectTool=d,i=d,d.__name__=\"PolySelectTool\",i.prototype.default_view=y,i.define((({Ref:e})=>({overlay:[e(_.PolyAnnotation),s.DEFAULT_POLY_OVERLAY]}))),i.register_alias(\"poly_select\",(()=>new d))},\n function _(e,t,s,i,r){var n;i();const _=e(20),d=e(383),o=e(228);class l extends d.LineToolView{constructor(){super(...arguments),this._drawing=!1}_doubletap(e){if(!this.model.active)return;const t=this.model.renderers;for(const s of t){1==this._select_event(e,\"replace\",[s]).length&&(this._selected_renderer=s)}this._show_intersections(),this._update_line_cds()}_show_intersections(){if(!this.model.active)return;if(null==this._selected_renderer)return;if(!this.model.renderers.length)return this._set_intersection([],[]),this._selected_renderer=null,void(this._drawing=!1);const e=this._selected_renderer.data_source,t=this._selected_renderer.glyph,[s,i]=[t.x.field,t.y.field],r=e.get_array(s),n=e.get_array(i);this._set_intersection(r,n)}_tap(e){const t=this.model.intersection_renderer;if(null==this._map_drag(e.sx,e.sy,t))return;if(this._drawing&&this._selected_renderer){const s=this._select_mode(e);if(0==this._select_event(e,s,[t]).length)return}const s=this._select_mode(e);this._select_event(e,s,[t]),this._select_event(e,s,this.model.renderers)}_update_line_cds(){if(null==this._selected_renderer)return;const e=this.model.intersection_renderer.glyph,t=this.model.intersection_renderer.data_source,[s,i]=[e.x.field,e.y.field];if(s&&i){const e=t.data[s],r=t.data[i];this._selected_renderer.data_source.data[s]=e,this._selected_renderer.data_source.data[i]=r}this._emit_cds_changes(this._selected_renderer.data_source,!0,!0,!1)}_pan_start(e){this._select_event(e,\"append\",[this.model.intersection_renderer]),this._basepoint=[e.sx,e.sy]}_pan(e){null!=this._basepoint&&(this._drag_points(e,[this.model.intersection_renderer],this.model.dimensions),this._selected_renderer&&this._selected_renderer.data_source.change.emit())}_pan_end(e){null!=this._basepoint&&(this._drag_points(e,[this.model.intersection_renderer]),this._emit_cds_changes(this.model.intersection_renderer.data_source,!1,!0,!0),this._selected_renderer&&this._emit_cds_changes(this._selected_renderer.data_source),this._basepoint=null)}activate(){this._drawing=!0}deactivate(){this._selected_renderer&&(this._drawing&&(this._drawing=!1),this._hide_intersections())}}s.LineEditToolView=l,l.__name__=\"LineEditToolView\";class h extends d.LineTool{constructor(e){super(e),this.tool_name=\"Line Edit Tool\",this.icon=o.tool_icon_line_edit,this.event_type=[\"tap\",\"pan\",\"move\"],this.default_order=4}get tooltip(){return this._get_dim_tooltip(this.dimensions)}}s.LineEditTool=h,n=h,h.__name__=\"LineEditTool\",n.prototype.default_view=l,n.define((()=>({dimensions:[_.Dimensions,\"both\"]})))},\n function _(e,i,n,t,s){var o;t();const r=e(8),_=e(370);class d extends _.EditToolView{_set_intersection(e,i){const n=this.model.intersection_renderer.glyph,t=this.model.intersection_renderer.data_source,[s,o]=[n.x.field,n.y.field];s&&((0,r.isArray)(e)?t.data[s]=e:n.x={value:e}),o&&((0,r.isArray)(i)?t.data[o]=i:n.y={value:i}),this._emit_cds_changes(t,!0,!0,!1)}_hide_intersections(){this._set_intersection([],[])}}n.LineToolView=d,d.__name__=\"LineToolView\";class a extends _.EditTool{constructor(e){super(e)}}n.LineTool=a,o=a,a.__name__=\"LineTool\",o.define((({AnyRef:e})=>({intersection_renderer:[e()]})))},\n function _(t,s,n,e,i){e();const o=t(1);var a;const _=t(223),l=t(20),r=(0,o.__importStar)(t(228));function h(t,s,n){const e=new Map;for(const[i,o]of t){const[t,a]=o.r_invert(s,n);e.set(i,{start:t,end:a})}return e}n.update_ranges=h;class d extends _.GestureToolView{_pan_start(t){var s;this.last_dx=0,this.last_dy=0;const{sx:n,sy:e}=t,i=this.plot_view.frame.bbox;if(!i.contains(n,e)){const t=i.h_range,s=i.v_range;(nt.end)&&(this.v_axis_only=!0),(es.end)&&(this.h_axis_only=!0)}null===(s=this.model.document)||void 0===s||s.interactive_start(this.plot_model)}_pan(t){var s;this._update(t.deltaX,t.deltaY),null===(s=this.model.document)||void 0===s||s.interactive_start(this.plot_model)}_pan_end(t){this.h_axis_only=!1,this.v_axis_only=!1,null!=this.pan_info&&this.plot_view.state.push(\"pan\",{range:this.pan_info}),this.plot_view.trigger_ranges_update_event()}_update(t,s){const n=this.plot_view.frame,e=t-this.last_dx,i=s-this.last_dy,o=n.bbox.h_range,a=o.start-e,_=o.end-e,l=n.bbox.v_range,r=l.start-i,d=l.end-i,p=this.model.dimensions;let c,u,m,v,x,g;\"width\"!=p&&\"both\"!=p||this.v_axis_only?(c=o.start,u=o.end,m=0):(c=a,u=_,m=-e),\"height\"!=p&&\"both\"!=p||this.h_axis_only?(v=l.start,x=l.end,g=0):(v=r,x=d,g=-i),this.last_dx=t,this.last_dy=s;const{x_scales:w,y_scales:y}=n,f=h(w,c,u),b=h(y,v,x);this.pan_info={xrs:f,yrs:b,sdx:m,sdy:g},this.plot_view.update_range(this.pan_info,{panning:!0})}}n.PanToolView=d,d.__name__=\"PanToolView\";class p extends _.GestureTool{constructor(t){super(t),this.tool_name=\"Pan\",this.event_type=\"pan\",this.default_order=10}get tooltip(){return this._get_dim_tooltip(this.dimensions)}}n.PanTool=p,a=p,p.__name__=\"PanTool\",a.prototype.default_view=d,a.define((()=>({dimensions:[l.Dimensions,\"both\",{on_update(t,s){switch(t){case\"both\":s.icon=r.tool_icon_pan;break;case\"width\":s.icon=r.tool_icon_xpan;break;case\"height\":s.icon=r.tool_icon_ypan}}}]}))),a.register_alias(\"pan\",(()=>new p({dimensions:\"both\"}))),a.register_alias(\"xpan\",(()=>new p({dimensions:\"width\"}))),a.register_alias(\"ypan\",(()=>new p({dimensions:\"height\"})))},\n function _(e,t,i,s,n){var l;s();const a=e(116),r=e(58),o=e(19),_=e(223),h=e(228);function d(e){switch(e){case 1:return 2;case 2:return 1;case 4:return 5;case 5:return 4;default:return e}}function u(e,t,i,s){if(null==t)return!1;const n=i.compute(t);return Math.abs(e-n)n.right)&&(l=!1)}if(null!=n.bottom&&null!=n.top){const e=s.invert(t);(en.top)&&(l=!1)}return l}function g(e,t,i){let s=0;return e>=i.start&&e<=i.end&&(s+=1),t>=i.start&&t<=i.end&&(s+=1),s}function y(e,t,i,s){const n=t.compute(e),l=t.invert(n+i);return l>=s.start&&l<=s.end?l:e}function f(e,t,i){return e>t.start?(t.end=e,i):(t.end=t.start,t.start=e,d(i))}function v(e,t,i){return e=o&&(e.start=a,e.end=r)}i.flip_side=d,i.is_near=u,i.is_inside=c,i.sides_inside=g,i.compute_value=y,i.update_range_end_side=f,i.update_range_start_side=v,i.update_range=m;class p extends _.GestureToolView{initialize(){super.initialize(),this.side=0,this.model.update_overlay_from_ranges()}connect_signals(){super.connect_signals(),null!=this.model.x_range&&this.connect(this.model.x_range.change,(()=>this.model.update_overlay_from_ranges())),null!=this.model.y_range&&this.connect(this.model.y_range.change,(()=>this.model.update_overlay_from_ranges()))}_pan_start(e){this.last_dx=0,this.last_dy=0;const t=this.model.x_range,i=this.model.y_range,{frame:s}=this.plot_view,n=s.x_scale,l=s.y_scale,r=this.model.overlay,{left:o,right:_,top:h,bottom:d}=r,g=this.model.overlay.line_width+a.EDGE_TOLERANCE;null!=t&&this.model.x_interaction&&(u(e.sx,o,n,g)?this.side=1:u(e.sx,_,n,g)?this.side=2:c(e.sx,e.sy,n,l,r)&&(this.side=3)),null!=i&&this.model.y_interaction&&(0==this.side&&u(e.sy,d,l,g)&&(this.side=4),0==this.side&&u(e.sy,h,l,g)?this.side=5:c(e.sx,e.sy,n,l,this.model.overlay)&&(3==this.side?this.side=7:this.side=6))}_pan(e){const t=this.plot_view.frame,i=e.deltaX-this.last_dx,s=e.deltaY-this.last_dy,n=this.model.x_range,l=this.model.y_range,a=t.x_scale,r=t.y_scale;if(null!=n)if(3==this.side||7==this.side)m(n,a,i,t.x_range);else if(1==this.side){const e=y(n.start,a,i,t.x_range);this.side=v(e,n,this.side)}else if(2==this.side){const e=y(n.end,a,i,t.x_range);this.side=f(e,n,this.side)}if(null!=l)if(6==this.side||7==this.side)m(l,r,s,t.y_range);else if(4==this.side){const e=y(l.start,r,s,t.y_range);this.side=v(e,l,this.side)}else if(5==this.side){const e=y(l.end,r,s,t.y_range);this.side=f(e,l,this.side)}this.last_dx=e.deltaX,this.last_dy=e.deltaY}_pan_end(e){this.side=0,this.plot_view.trigger_ranges_update_event()}}i.RangeToolView=p,p.__name__=\"RangeToolView\";const x=()=>new a.BoxAnnotation({level:\"overlay\",fill_color:\"lightgrey\",fill_alpha:.5,line_color:\"black\",line_alpha:1,line_width:.5,line_dash:[2,2]});class w extends _.GestureTool{constructor(e){super(e),this.tool_name=\"Range Tool\",this.icon=h.tool_icon_range,this.event_type=\"pan\",this.default_order=1}initialize(){super.initialize(),this.overlay.in_cursor=\"grab\",this.overlay.ew_cursor=null!=this.x_range&&this.x_interaction?\"ew-resize\":null,this.overlay.ns_cursor=null!=this.y_range&&this.y_interaction?\"ns-resize\":null}update_overlay_from_ranges(){null==this.x_range&&null==this.y_range&&(this.overlay.left=null,this.overlay.right=null,this.overlay.bottom=null,this.overlay.top=null,o.logger.warn(\"RangeTool not configured with any Ranges.\")),null==this.x_range?(this.overlay.left=null,this.overlay.right=null):(this.overlay.left=this.x_range.start,this.overlay.right=this.x_range.end),null==this.y_range?(this.overlay.bottom=null,this.overlay.top=null):(this.overlay.bottom=this.y_range.start,this.overlay.top=this.y_range.end)}}i.RangeTool=w,l=w,w.__name__=\"RangeTool\",l.prototype.default_view=p,l.define((({Boolean:e,Ref:t,Nullable:i})=>({x_range:[i(t(r.Range1d)),null],x_interaction:[e,!0],y_range:[i(t(r.Range1d)),null],y_interaction:[e,!0],overlay:[t(a.BoxAnnotation),x]})))},\n function _(e,t,s,o,i){var l;o();const a=e(378),n=e(20),c=e(228);class _ extends a.SelectToolView{_tap(e){\"tap\"==this.model.gesture&&this._handle_tap(e)}_doubletap(e){\"doubletap\"==this.model.gesture&&this._handle_tap(e)}_handle_tap(e){const{sx:t,sy:s}=e,o={type:\"point\",sx:t,sy:s};this._select(o,!0,this._select_mode(e))}_select(e,t,s){const{callback:o}=this.model;if(\"select\"==this.model.behavior){const i=this._computed_renderers_by_data_source();for(const[,l]of i){const i=l[0].get_selection_manager(),a=l.map((e=>this.plot_view.renderer_view(e))).filter((e=>null!=e));if(i.select(a,e,t,s)&&null!=o){const t=a[0].coordinates.x_scale.invert(e.sx),s=a[0].coordinates.y_scale.invert(e.sy),l={geometries:Object.assign(Object.assign({},e),{x:t,y:s}),source:i.source};o.execute(this.model,l)}}this._emit_selection_event(e),this.plot_view.state.push(\"tap\",{selection:this.plot_view.get_selection()})}else for(const t of this.computed_renderers){const s=this.plot_view.renderer_view(t);if(null==s)continue;const i=t.get_selection_manager();if(i.inspect(s,e)&&null!=o){const t=s.coordinates.x_scale.invert(e.sx),l=s.coordinates.y_scale.invert(e.sy),a={geometries:Object.assign(Object.assign({},e),{x:t,y:l}),source:i.source};o.execute(this.model,a)}}}}s.TapToolView=_,_.__name__=\"TapToolView\";class r extends a.SelectTool{constructor(e){super(e),this.tool_name=\"Tap\",this.icon=c.tool_icon_tap_select,this.event_type=\"tap\",this.default_order=10}}s.TapTool=r,l=r,r.__name__=\"TapTool\",l.prototype.default_view=_,l.define((({Any:e,Enum:t,Nullable:s})=>({behavior:[n.TapBehavior,\"select\"],gesture:[t(\"tap\",\"doubletap\"),\"tap\"],callback:[s(e)]}))),l.register_alias(\"click\",(()=>new r({behavior:\"inspect\"}))),l.register_alias(\"tap\",(()=>new r)),l.register_alias(\"doubletap\",(()=>new r({gesture:\"doubletap\"})))},\n function _(e,t,s,n,i){var a;n();const o=e(223),l=e(20),_=e(228),r=e(384);class h extends o.GestureToolView{_scroll(e){let t=this.model.speed*e.delta;t>.9?t=.9:t<-.9&&(t=-.9),this._update_ranges(t)}_update_ranges(e){var t;const{frame:s}=this.plot_view,n=s.bbox.h_range,i=s.bbox.v_range,[a,o]=[n.start,n.end],[l,_]=[i.start,i.end];let h,d,p,c;switch(this.model.dimension){case\"height\":{const t=Math.abs(_-l);h=a,d=o,p=l-t*e,c=_-t*e;break}case\"width\":{const t=Math.abs(o-a);h=a-t*e,d=o-t*e,p=l,c=_;break}}const{x_scales:g,y_scales:u}=s,w={xrs:(0,r.update_ranges)(g,h,d),yrs:(0,r.update_ranges)(u,p,c),factor:e};this.plot_view.state.push(\"wheel_pan\",{range:w}),this.plot_view.update_range(w,{scrolling:!0}),null===(t=this.model.document)||void 0===t||t.interactive_start(this.plot_model,(()=>this.plot_view.trigger_ranges_update_event()))}}s.WheelPanToolView=h,h.__name__=\"WheelPanToolView\";class d extends o.GestureTool{constructor(e){super(e),this.tool_name=\"Wheel Pan\",this.icon=_.tool_icon_wheel_pan,this.event_type=\"scroll\",this.default_order=12}get tooltip(){return this._get_dim_tooltip(this.dimension)}}s.WheelPanTool=d,a=d,d.__name__=\"WheelPanTool\",a.prototype.default_view=h,a.define((()=>({dimension:[l.Dimension,\"width\"]}))),a.internal((({Number:e})=>({speed:[e,.001]}))),a.register_alias(\"xwheel_pan\",(()=>new d({dimension:\"width\"}))),a.register_alias(\"ywheel_pan\",(()=>new d({dimension:\"height\"})))},\n function _(e,o,t,s,i){var n;s();const l=e(223),_=e(368),h=e(20),a=e(27),r=e(228);class m extends l.GestureToolView{_pinch(e){const{sx:o,sy:t,scale:s,ctrlKey:i,shiftKey:n}=e;let l;l=s>=1?20*(s-1):-20/s,this._scroll({type:\"wheel\",sx:o,sy:t,delta:l,ctrlKey:i,shiftKey:n})}_scroll(e){var o;const{frame:t}=this.plot_view,s=t.bbox.h_range,i=t.bbox.v_range,{sx:n,sy:l}=e,h=this.model.dimensions,a=(\"width\"==h||\"both\"==h)&&s.startthis.plot_view.trigger_ranges_update_event()))}}t.WheelZoomToolView=m,m.__name__=\"WheelZoomToolView\";class d extends l.GestureTool{constructor(e){super(e),this.tool_name=\"Wheel Zoom\",this.icon=r.tool_icon_wheel_zoom,this.event_type=a.is_mobile?\"pinch\":\"scroll\",this.default_order=10}get tooltip(){return this._get_dim_tooltip(this.dimensions)}}t.WheelZoomTool=d,n=d,d.__name__=\"WheelZoomTool\",n.prototype.default_view=m,n.define((({Boolean:e,Number:o})=>({dimensions:[h.Dimensions,\"both\"],maintain_focus:[e,!0],zoom_on_axis:[e,!0],speed:[o,1/600]}))),n.register_alias(\"wheel_zoom\",(()=>new d({dimensions:\"both\"}))),n.register_alias(\"xwheel_zoom\",(()=>new d({dimensions:\"width\"}))),n.register_alias(\"ywheel_zoom\",(()=>new d({dimensions:\"height\"})))},\n function _(i,e,s,t,o){var n;t();const l=i(232),a=i(219),h=i(20),r=i(13),_=i(228);class c extends l.InspectToolView{_move(i){if(!this.model.active)return;const{sx:e,sy:s}=i;this.plot_view.frame.bbox.contains(e,s)?this._update_spans(e,s):this._update_spans(null,null)}_move_exit(i){this._update_spans(null,null)}_update_spans(i,e){const s=this.model.dimensions;\"width\"!=s&&\"both\"!=s||(this.model.spans.width.location=e),\"height\"!=s&&\"both\"!=s||(this.model.spans.height.location=i)}}s.CrosshairToolView=c,c.__name__=\"CrosshairToolView\";class p extends l.InspectTool{constructor(i){super(i),this.tool_name=\"Crosshair\",this.icon=_.tool_icon_crosshair}get tooltip(){return this._get_dim_tooltip(this.dimensions)}get synthetic_renderers(){return(0,r.values)(this.spans)}}s.CrosshairTool=p,n=p,p.__name__=\"CrosshairTool\",(()=>{function i(i,e){return new a.Span({for_hover:!0,dimension:e,location_units:\"screen\",level:\"overlay\",line_color:i.line_color,line_width:i.line_width,line_alpha:i.line_alpha})}n.prototype.default_view=c,n.define((({Alpha:i,Number:e,Color:s})=>({dimensions:[h.Dimensions,\"both\"],line_color:[s,\"black\"],line_width:[e,1],line_alpha:[i,1]}))),n.internal((({Struct:e,Ref:s})=>({spans:[e({width:s(a.Span),height:s(a.Span)}),e=>({width:i(e,\"width\"),height:i(e,\"height\")})]}))),n.register_alias(\"crosshair\",(()=>new p))})()},\n function _(e,s,t,r,n){var o;r();const a=e(53),u=e(13),c=e(34);class i extends a.Model{constructor(e){super(e)}get values(){return(0,u.values)(this.args)}_make_code(e,s,t,r){return new Function(...(0,u.keys)(this.args),e,s,t,(0,c.use_strict)(r))}format(e,s,t){return this._make_code(\"value\",\"format\",\"special_vars\",this.code)(...this.values,e,s,t)}}t.CustomJSHover=i,o=i,i.__name__=\"CustomJSHover\",o.define((({Unknown:e,String:s,Dict:t})=>({args:[t(e),{}],code:[s,\"\"]})))},\n function _(e,t,n,s,i){s();const o=e(1);var r;const l=e(232),a=e(390),c=e(241),_=e(175),d=e(339),p=e(176),h=e(177),u=e(283),m=e(186),y=e(187),f=e(189),x=(0,o.__importStar)(e(185)),v=e(152),w=e(43),g=e(22),b=e(13),k=e(234),C=e(8),S=e(113),T=e(20),$=e(228),R=e(15),A=e(66),M=(0,o.__importStar)(e(242)),V=e(392);function G(e,t,n,s,i,o){const r={x:i[e],y:o[e]},l={x:i[e+1],y:o[e+1]};let a,c;if(\"span\"==t.type)\"h\"==t.direction?(a=Math.abs(r.x-n),c=Math.abs(l.x-n)):(a=Math.abs(r.y-s),c=Math.abs(l.y-s));else{const e={x:n,y:s};a=x.dist_2_pts(r,e),c=x.dist_2_pts(l,e)}return adelete this._template_el)),this.on_change([e,t,n],(async()=>await this._update_ttmodels()))}async _update_ttmodels(){const{_ttmodels:e,computed_renderers:t}=this;e.clear();const{tooltips:n}=this.model;if(null!=n)for(const t of this.computed_renderers){const s=new c.Tooltip({custom:(0,C.isString)(n)||(0,C.isFunction)(n),attachment:this.model.attachment,show_arrow:this.model.show_arrow});t instanceof _.GlyphRenderer?e.set(t,s):t instanceof d.GraphRenderer&&(e.set(t.node_renderer,s),e.set(t.edge_renderer,s))}const s=await(0,S.build_views)(this._ttviews,[...e.values()],{parent:this.plot_view});for(const e of s)e.render();const i=[...function*(){for(const e of t)e instanceof _.GlyphRenderer?yield e:e instanceof d.GraphRenderer&&(yield e.node_renderer,yield e.edge_renderer)}()],o=this._slots.get(this._update);if(null!=o){const e=new Set(i.map((e=>e.data_source)));R.Signal.disconnect_receiver(this,o,e)}for(const e of i)this.connect(e.data_source.inspect,this._update)}get computed_renderers(){const{renderers:e,names:t}=this.model,n=this.plot_model.data_renderers;return(0,A.compute_renderers)(e,n,t)}get ttmodels(){return this._ttmodels}_clear(){this._inspect(1/0,1/0);for(const[,e]of this.ttmodels)e.clear()}_move(e){if(!this.model.active)return;const{sx:t,sy:n}=e;this.plot_view.frame.bbox.contains(t,n)?this._inspect(t,n):this._clear()}_move_exit(){this._clear()}_inspect(e,t){let n;if(\"mouse\"==this.model.mode)n={type:\"point\",sx:e,sy:t};else{n={type:\"span\",direction:\"vline\"==this.model.mode?\"h\":\"v\",sx:e,sy:t}}for(const e of this.computed_renderers){const t=e.get_selection_manager(),s=this.plot_view.renderer_view(e);null!=s&&t.inspect(s,n)}this._emit_callback(n)}_update([e,{geometry:t}]){var n,s;if(!this.model.active)return;if(\"point\"!=t.type&&\"span\"!=t.type)return;if(!(e instanceof _.GlyphRenderer))return;if(\"ignore\"==this.model.muted_policy&&e.muted)return;const i=this.ttmodels.get(e);if(null==i)return;const o=e.get_selection_manager(),r=o.inspectors.get(e),l=e.view.convert_selection_to_subset(r);if(r.is_empty()&&null==r.view)return void i.clear();const a=o.source,c=this.plot_view.renderer_view(e);if(null==c)return;const{sx:d,sy:p}=t,x=c.coordinates.x_scale,v=c.coordinates.y_scale,g=x.invert(d),k=v.invert(p),{glyph:C}=c,S=[];if(C instanceof m.PatchView){const[t,n]=[d,p],s={x:g,y:k,sx:d,sy:p,rx:t,ry:n,name:e.name};S.push([t,n,this._render_tooltips(a,-1,s)])}if(C instanceof y.HAreaView)for(const t of l.line_indices){const n=C._x1,s=C._x2,i=C._y,[o,r]=[d,p],c={index:t,x:g,y:k,sx:d,sy:p,data_x1:n,data_x2:s,data_y:i,rx:o,ry:r,indices:l.line_indices,name:e.name};S.push([o,r,this._render_tooltips(a,t,c)])}if(C instanceof f.VAreaView)for(const t of l.line_indices){const n=C._x,s=C._y1,i=C._y2,[o,r]=[d,p],c={index:t,x:g,y:k,sx:d,sy:p,data_x:n,data_y1:s,data_y2:i,rx:o,ry:r,indices:l.line_indices,name:e.name};S.push([o,r,this._render_tooltips(a,t,c)])}if(C instanceof h.LineView)for(const n of l.line_indices){let s,i,o=C._x[n+1],r=C._y[n+1],c=n;switch(this.model.line_policy){case\"interp\":[o,r]=C.get_interpolation_hit(n,t),s=x.compute(o),i=v.compute(r);break;case\"prev\":[[s,i],c]=H(C.sx,C.sy,n);break;case\"next\":[[s,i],c]=H(C.sx,C.sy,n+1);break;case\"nearest\":[[s,i],c]=G(n,t,d,p,C.sx,C.sy),o=C._x[c],r=C._y[c];break;default:[s,i]=[d,p]}const _={index:c,x:g,y:k,sx:d,sy:p,data_x:o,data_y:r,rx:s,ry:i,indices:l.line_indices,name:e.name};S.push([s,i,this._render_tooltips(a,c,_)])}for(const t of r.image_indices){const n={index:t.index,x:g,y:k,sx:d,sy:p,name:e.name},s=this._render_tooltips(a,t,n);S.push([d,p,s])}for(const i of l.indices)if(C instanceof u.MultiLineView&&!(0,b.isEmpty)(l.multiline_indices))for(const n of l.multiline_indices[i.toString()]){let s,o,r,c=C._xs.get(i)[n],h=C._ys.get(i)[n],u=n;switch(this.model.line_policy){case\"interp\":[c,h]=C.get_interpolation_hit(i,n,t),s=x.compute(c),o=v.compute(h);break;case\"prev\":[[s,o],u]=H(C.sxs.get(i),C.sys.get(i),n);break;case\"next\":[[s,o],u]=H(C.sxs.get(i),C.sys.get(i),n+1);break;case\"nearest\":[[s,o],u]=G(n,t,d,p,C.sxs.get(i),C.sys.get(i)),c=C._xs.get(i)[u],h=C._ys.get(i)[u];break;default:throw new Error(\"shouldn't have happened\")}r=e instanceof _.GlyphRenderer?e.view.convert_indices_from_subset([i])[0]:i;const m={index:r,x:g,y:k,sx:d,sy:p,data_x:c,data_y:h,segment_index:u,indices:l.multiline_indices,name:e.name};S.push([s,o,this._render_tooltips(a,r,m)])}else{const t=null===(n=C._x)||void 0===n?void 0:n[i],o=null===(s=C._y)||void 0===s?void 0:s[i];let r,c,h;if(\"snap_to_data\"==this.model.point_policy){let e=C.get_anchor_point(this.model.anchor,i,[d,p]);if(null==e&&(e=C.get_anchor_point(\"center\",i,[d,p]),null==e))continue;r=e.x,c=e.y}else[r,c]=[d,p];h=e instanceof _.GlyphRenderer?e.view.convert_indices_from_subset([i])[0]:i;const u={index:h,x:g,y:k,sx:d,sy:p,data_x:t,data_y:o,indices:l.indices,name:e.name};S.push([r,c,this._render_tooltips(a,h,u)])}if(0==S.length)i.clear();else{const{content:e}=i;(0,w.empty)(i.content);for(const[,,t]of S)null!=t&&e.appendChild(t);const[t,n]=S[S.length-1];i.setv({position:[t,n]},{check_eq:!1})}}_emit_callback(e){const{callback:t}=this.model;if(null!=t)for(const n of this.computed_renderers){if(!(n instanceof _.GlyphRenderer))continue;const s=this.plot_view.renderer_view(n);if(null==s)continue;const{x_scale:i,y_scale:o}=s.coordinates,r=i.invert(e.sx),l=o.invert(e.sy),a=n.data_source.inspected;t.execute(this.model,{geometry:Object.assign({x:r,y:l},e),renderer:n,index:a})}}_create_template(e){const t=(0,w.div)({style:{display:\"table\",borderSpacing:\"2px\"}});for(const[n]of e){const e=(0,w.div)({style:{display:\"table-row\"}});t.appendChild(e);const s=(0,w.div)({style:{display:\"table-cell\"},class:M.tooltip_row_label},0!=n.length?`${n}: `:\"\");e.appendChild(s);const i=(0,w.span)();i.dataset.value=\"\";const o=(0,w.span)({class:M.tooltip_color_block},\" \");o.dataset.swatch=\"\",(0,w.undisplay)(o);const r=(0,w.div)({style:{display:\"table-cell\"},class:M.tooltip_row_value},i,o);e.appendChild(r)}return t}_render_template(e,t,n,s,i){const o=e.cloneNode(!0),r=o.querySelectorAll(\"[data-value]\"),l=o.querySelectorAll(\"[data-swatch]\"),a=/\\$color(\\[.*\\])?:(\\w*)/,c=/\\$swatch:(\\w*)/;for(const[[,e],o]of(0,k.enumerate)(t)){const t=e.match(c),_=e.match(a);if(null!=t||null!=_){if(null!=t){const[,e]=t,i=n.get_column(e);if(null==i)r[o].textContent=`${e} unknown`;else{const e=(0,C.isNumber)(s)?i[s]:null;null!=e&&(l[o].style.backgroundColor=(0,g.color2css)(e),(0,w.display)(l[o]))}}if(null!=_){const[,e=\"\",t]=_,i=n.get_column(t);if(null==i){r[o].textContent=`${t} unknown`;continue}const a=e.indexOf(\"hex\")>=0,c=e.indexOf(\"swatch\")>=0,d=(0,C.isNumber)(s)?i[s]:null;if(null==d){r[o].textContent=\"(null)\";continue}r[o].textContent=a?(0,g.color2hex)(d):(0,g.color2css)(d),c&&(l[o].style.backgroundColor=(0,g.color2css)(d),(0,w.display)(l[o]))}}else{const t=(0,v.replace_placeholders)(e.replace(\"$~\",\"$data_\"),n,s,this.model.formatters,i);if((0,C.isString)(t))r[o].textContent=t;else for(const e of t)r[o].appendChild(e)}}return o}_render_tooltips(e,t,n){var s;const{tooltips:i}=this.model;if((0,C.isString)(i)){const s=(0,v.replace_placeholders)({html:i},e,t,this.model.formatters,n);return(0,w.div)(s)}if((0,C.isFunction)(i))return i(e,n);if(i instanceof V.Template)return this._template_view.update(e,t,n),this._template_view.el;if(null!=i){const o=null!==(s=this._template_el)&&void 0!==s?s:this._template_el=this._create_template(i);return this._render_template(o,i,e,t,n)}return null}}n.HoverToolView=z,z.__name__=\"HoverToolView\";class P extends l.InspectTool{constructor(e){super(e),this.tool_name=\"Hover\",this.icon=$.tool_icon_hover}}n.HoverTool=P,r=P,P.__name__=\"HoverTool\",r.prototype.default_view=z,r.define((({Any:e,Boolean:t,String:n,Array:s,Tuple:i,Dict:o,Or:r,Ref:l,Function:c,Auto:_,Nullable:d})=>({tooltips:[d(r(l(V.Template),n,s(i(n,n)),c())),[[\"index\",\"$index\"],[\"data (x, y)\",\"($x, $y)\"],[\"screen (x, y)\",\"($sx, $sy)\"]]],formatters:[o(r(l(a.CustomJSHover),v.FormatterType)),{}],renderers:[r(s(l(p.DataRenderer)),_),\"auto\"],names:[s(n),[]],mode:[T.HoverMode,\"mouse\"],muted_policy:[T.MutedPolicy,\"show\"],point_policy:[T.PointPolicy,\"snap_to_data\"],line_policy:[T.LinePolicy,\"nearest\"],show_arrow:[t,!0],anchor:[T.Anchor,\"center\"],attachment:[T.TooltipAttachment,\"horizontal\"],callback:[d(e)]}))),r.register_alias(\"hover\",(()=>new P))},\n function _(e,t,s,n,a){n();const l=e(1);var i,_,o,r,c,d,p,u,m,w,f,h,x;const v=e(53),y=e(309),V=e(393);a(\"Styles\",V.Styles);const g=e(43),T=e(42),b=e(226),R=e(113),D=e(8),M=e(13),S=(0,l.__importStar)(e(242)),O=e(152);class C extends b.DOMView{}s.DOMNodeView=C,C.__name__=\"DOMNodeView\";class z extends v.Model{constructor(e){super(e)}}s.DOMNode=z,z.__name__=\"DOMNode\",z.__module__=\"bokeh.models.dom\";class P extends C{render(){super.render(),this.el.textContent=this.model.content}_createElement(){return document.createTextNode(\"\")}}s.TextView=P,P.__name__=\"TextView\";class A extends z{constructor(e){super(e)}}s.Text=A,i=A,A.__name__=\"Text\",i.prototype.default_view=P,i.define((({String:e})=>({content:[e,\"\"]})));class N extends C{}s.PlaceholderView=N,N.__name__=\"PlaceholderView\",N.tag_name=\"span\";class E extends z{constructor(e){super(e)}}s.Placeholder=E,_=E,E.__name__=\"Placeholder\",_.define((({})=>({})));class G extends N{update(e,t,s){this.el.textContent=t.toString()}}s.IndexView=G,G.__name__=\"IndexView\";class I extends E{constructor(e){super(e)}}s.Index=I,o=I,I.__name__=\"Index\",o.prototype.default_view=G,o.define((({})=>({})));class k extends N{update(e,t,s){const n=(0,O._get_column_value)(this.model.field,e,t),a=null==n?\"???\":`${n}`;this.el.textContent=a}}s.ValueRefView=k,k.__name__=\"ValueRefView\";class $ extends E{constructor(e){super(e)}}s.ValueRef=$,r=$,$.__name__=\"ValueRef\",r.prototype.default_view=k,r.define((({String:e})=>({field:[e]})));class B extends k{render(){super.render(),this.value_el=(0,g.span)(),this.swatch_el=(0,g.span)({class:S.tooltip_color_block},\" \"),this.el.appendChild(this.value_el),this.el.appendChild(this.swatch_el)}update(e,t,s){const n=(0,O._get_column_value)(this.model.field,e,t),a=null==n?\"???\":`${n}`;this.el.textContent=a}}s.ColorRefView=B,B.__name__=\"ColorRefView\";class L extends ${constructor(e){super(e)}}s.ColorRef=L,c=L,L.__name__=\"ColorRef\",c.prototype.default_view=B,c.define((({Boolean:e})=>({hex:[e,!0],swatch:[e,!0]})));class j extends C{constructor(){super(...arguments),this.child_views=new Map}async lazy_initialize(){await super.lazy_initialize();const e=this.model.children.filter((e=>e instanceof v.Model));await(0,R.build_views)(this.child_views,e,{parent:this})}render(){super.render();const{style:e}=this.model;if(null!=e)if(e instanceof V.Styles)for(const t of e){const e=t.get_value();if((0,D.isString)(e)){const s=t.attr.replace(/_/g,\"-\");this.el.style.hasOwnProperty(s)&&this.el.style.setProperty(s,e)}}else for(const[t,s]of(0,M.entries)(e)){const e=t.replace(/_/g,\"-\");this.el.style.hasOwnProperty(e)&&this.el.style.setProperty(e,s)}for(const e of this.model.children)if((0,D.isString)(e)){const t=document.createTextNode(e);this.el.appendChild(t)}else{this.child_views.get(e).renderTo(this.el)}}}s.DOMElementView=j,j.__name__=\"DOMElementView\";class q extends z{constructor(e){super(e)}}s.DOMElement=q,d=q,q.__name__=\"DOMElement\",d.define((({String:e,Array:t,Dict:s,Or:n,Nullable:a,Ref:l})=>({style:[a(n(l(V.Styles),s(e))),null],children:[t(n(e,l(z),l(y.LayoutDOM))),[]]})));class F extends T.View{}s.ActionView=F,F.__name__=\"ActionView\";class H extends v.Model{constructor(e){super(e)}}s.Action=H,p=H,H.__name__=\"Action\",H.__module__=\"bokeh.models.dom\",p.define((({})=>({})));class J extends j{constructor(){super(...arguments),this.action_views=new Map}async lazy_initialize(){await super.lazy_initialize(),await(0,R.build_views)(this.action_views,this.model.actions,{parent:this})}remove(){(0,R.remove_views)(this.action_views),super.remove()}update(e,t,s={}){!function n(a){for(const l of a.child_views.values())l instanceof N?l.update(e,t,s):l instanceof j&&n(l)}(this);for(const n of this.action_views.values())n.update(e,t,s)}}s.TemplateView=J,J.__name__=\"TemplateView\",J.tag_name=\"div\";class K extends q{}s.Template=K,u=K,K.__name__=\"Template\",u.prototype.default_view=J,u.define((({Array:e,Ref:t})=>({actions:[e(t(H)),[]]})));class Q extends j{}s.SpanView=Q,Q.__name__=\"SpanView\",Q.tag_name=\"span\";class U extends q{}s.Span=U,m=U,U.__name__=\"Span\",m.prototype.default_view=Q;class W extends j{}s.DivView=W,W.__name__=\"DivView\",W.tag_name=\"div\";class X extends q{}s.Div=X,w=X,X.__name__=\"Div\",w.prototype.default_view=W;class Y extends j{}s.TableView=Y,Y.__name__=\"TableView\",Y.tag_name=\"table\";class Z extends q{}s.Table=Z,f=Z,Z.__name__=\"Table\",f.prototype.default_view=Y;class ee extends j{}s.TableRowView=ee,ee.__name__=\"TableRowView\",ee.tag_name=\"tr\";class te extends q{}s.TableRow=te,h=te,te.__name__=\"TableRow\",h.prototype.default_view=ee;const se=e(41),ne=e(234);class ae extends F{update(e,t,s){for(const[e,s]of(0,ne.enumerate)(this.model.groups))e.visible=t==s}}s.ToggleGroupView=ae,ae.__name__=\"ToggleGroupView\";class le extends H{constructor(e){super(e)}}s.ToggleGroup=le,x=le,le.__name__=\"ToggleGroup\",x.prototype.default_view=ae,x.define((({Array:e,Ref:t})=>({groups:[e(t(se.RendererGroup)),[]]})))},\n function _(l,n,u,_,e){var t;_();const o=l(53);class r extends o.Model{constructor(l){super(l)}}u.Styles=r,t=r,r.__name__=\"Styles\",r.__module__=\"bokeh.models.css\",t.define((({String:l,Nullable:n})=>({align_content:[n(l),null],align_items:[n(l),null],align_self:[n(l),null],alignment_baseline:[n(l),null],all:[n(l),null],animation:[n(l),null],animation_delay:[n(l),null],animation_direction:[n(l),null],animation_duration:[n(l),null],animation_fill_mode:[n(l),null],animation_iteration_count:[n(l),null],animation_name:[n(l),null],animation_play_state:[n(l),null],animation_timing_function:[n(l),null],backface_visibility:[n(l),null],background:[n(l),null],background_attachment:[n(l),null],background_clip:[n(l),null],background_color:[n(l),null],background_image:[n(l),null],background_origin:[n(l),null],background_position:[n(l),null],background_position_x:[n(l),null],background_position_y:[n(l),null],background_repeat:[n(l),null],background_size:[n(l),null],baseline_shift:[n(l),null],block_size:[n(l),null],border:[n(l),null],border_block_end:[n(l),null],border_block_end_color:[n(l),null],border_block_end_style:[n(l),null],border_block_end_width:[n(l),null],border_block_start:[n(l),null],border_block_start_color:[n(l),null],border_block_start_style:[n(l),null],border_block_start_width:[n(l),null],border_bottom:[n(l),null],border_bottom_color:[n(l),null],border_bottom_left_radius:[n(l),null],border_bottom_right_radius:[n(l),null],border_bottom_style:[n(l),null],border_bottom_width:[n(l),null],border_collapse:[n(l),null],border_color:[n(l),null],border_image:[n(l),null],border_image_outset:[n(l),null],border_image_repeat:[n(l),null],border_image_slice:[n(l),null],border_image_source:[n(l),null],border_image_width:[n(l),null],border_inline_end:[n(l),null],border_inline_end_color:[n(l),null],border_inline_end_style:[n(l),null],border_inline_end_width:[n(l),null],border_inline_start:[n(l),null],border_inline_start_color:[n(l),null],border_inline_start_style:[n(l),null],border_inline_start_width:[n(l),null],border_left:[n(l),null],border_left_color:[n(l),null],border_left_style:[n(l),null],border_left_width:[n(l),null],border_radius:[n(l),null],border_right:[n(l),null],border_right_color:[n(l),null],border_right_style:[n(l),null],border_right_width:[n(l),null],border_spacing:[n(l),null],border_style:[n(l),null],border_top:[n(l),null],border_top_color:[n(l),null],border_top_left_radius:[n(l),null],border_top_right_radius:[n(l),null],border_top_style:[n(l),null],border_top_width:[n(l),null],border_width:[n(l),null],bottom:[n(l),null],box_shadow:[n(l),null],box_sizing:[n(l),null],break_after:[n(l),null],break_before:[n(l),null],break_inside:[n(l),null],caption_side:[n(l),null],caret_color:[n(l),null],clear:[n(l),null],clip:[n(l),null],clip_path:[n(l),null],clip_rule:[n(l),null],color:[n(l),null],color_interpolation:[n(l),null],color_interpolation_filters:[n(l),null],column_count:[n(l),null],column_fill:[n(l),null],column_gap:[n(l),null],column_rule:[n(l),null],column_rule_color:[n(l),null],column_rule_style:[n(l),null],column_rule_width:[n(l),null],column_span:[n(l),null],column_width:[n(l),null],columns:[n(l),null],content:[n(l),null],counter_increment:[n(l),null],counter_reset:[n(l),null],css_float:[n(l),null],css_text:[n(l),null],cursor:[n(l),null],direction:[n(l),null],display:[n(l),null],dominant_baseline:[n(l),null],empty_cells:[n(l),null],fill:[n(l),null],fill_opacity:[n(l),null],fill_rule:[n(l),null],filter:[n(l),null],flex:[n(l),null],flex_basis:[n(l),null],flex_direction:[n(l),null],flex_flow:[n(l),null],flex_grow:[n(l),null],flex_shrink:[n(l),null],flex_wrap:[n(l),null],float:[n(l),null],flood_color:[n(l),null],flood_opacity:[n(l),null],font:[n(l),null],font_family:[n(l),null],font_feature_settings:[n(l),null],font_kerning:[n(l),null],font_size:[n(l),null],font_size_adjust:[n(l),null],font_stretch:[n(l),null],font_style:[n(l),null],font_synthesis:[n(l),null],font_variant:[n(l),null],font_variant_caps:[n(l),null],font_variant_east_asian:[n(l),null],font_variant_ligatures:[n(l),null],font_variant_numeric:[n(l),null],font_variant_position:[n(l),null],font_weight:[n(l),null],gap:[n(l),null],glyph_orientation_vertical:[n(l),null],grid:[n(l),null],grid_area:[n(l),null],grid_auto_columns:[n(l),null],grid_auto_flow:[n(l),null],grid_auto_rows:[n(l),null],grid_column:[n(l),null],grid_column_end:[n(l),null],grid_column_gap:[n(l),null],grid_column_start:[n(l),null],grid_gap:[n(l),null],grid_row:[n(l),null],grid_row_end:[n(l),null],grid_row_gap:[n(l),null],grid_row_start:[n(l),null],grid_template:[n(l),null],grid_template_areas:[n(l),null],grid_template_columns:[n(l),null],grid_template_rows:[n(l),null],height:[n(l),null],hyphens:[n(l),null],image_orientation:[n(l),null],image_rendering:[n(l),null],inline_size:[n(l),null],justify_content:[n(l),null],justify_items:[n(l),null],justify_self:[n(l),null],left:[n(l),null],letter_spacing:[n(l),null],lighting_color:[n(l),null],line_break:[n(l),null],line_height:[n(l),null],list_style:[n(l),null],list_style_image:[n(l),null],list_style_position:[n(l),null],list_style_type:[n(l),null],margin:[n(l),null],margin_block_end:[n(l),null],margin_block_start:[n(l),null],margin_bottom:[n(l),null],margin_inline_end:[n(l),null],margin_inline_start:[n(l),null],margin_left:[n(l),null],margin_right:[n(l),null],margin_top:[n(l),null],marker:[n(l),null],marker_end:[n(l),null],marker_mid:[n(l),null],marker_start:[n(l),null],mask:[n(l),null],mask_composite:[n(l),null],mask_image:[n(l),null],mask_position:[n(l),null],mask_repeat:[n(l),null],mask_size:[n(l),null],mask_type:[n(l),null],max_block_size:[n(l),null],max_height:[n(l),null],max_inline_size:[n(l),null],max_width:[n(l),null],min_block_size:[n(l),null],min_height:[n(l),null],min_inline_size:[n(l),null],min_width:[n(l),null],object_fit:[n(l),null],object_position:[n(l),null],opacity:[n(l),null],order:[n(l),null],orphans:[n(l),null],outline:[n(l),null],outline_color:[n(l),null],outline_offset:[n(l),null],outline_style:[n(l),null],outline_width:[n(l),null],overflow:[n(l),null],overflow_anchor:[n(l),null],overflow_wrap:[n(l),null],overflow_x:[n(l),null],overflow_y:[n(l),null],overscroll_behavior:[n(l),null],overscroll_behavior_block:[n(l),null],overscroll_behavior_inline:[n(l),null],overscroll_behavior_x:[n(l),null],overscroll_behavior_y:[n(l),null],padding:[n(l),null],padding_block_end:[n(l),null],padding_block_start:[n(l),null],padding_bottom:[n(l),null],padding_inline_end:[n(l),null],padding_inline_start:[n(l),null],padding_left:[n(l),null],padding_right:[n(l),null],padding_top:[n(l),null],page_break_after:[n(l),null],page_break_before:[n(l),null],page_break_inside:[n(l),null],paint_order:[n(l),null],perspective:[n(l),null],perspective_origin:[n(l),null],place_content:[n(l),null],place_items:[n(l),null],place_self:[n(l),null],pointer_events:[n(l),null],position:[n(l),null],quotes:[n(l),null],resize:[n(l),null],right:[n(l),null],rotate:[n(l),null],row_gap:[n(l),null],ruby_align:[n(l),null],ruby_position:[n(l),null],scale:[n(l),null],scroll_behavior:[n(l),null],shape_rendering:[n(l),null],stop_color:[n(l),null],stop_opacity:[n(l),null],stroke:[n(l),null],stroke_dasharray:[n(l),null],stroke_dashoffset:[n(l),null],stroke_linecap:[n(l),null],stroke_linejoin:[n(l),null],stroke_miterlimit:[n(l),null],stroke_opacity:[n(l),null],stroke_width:[n(l),null],tab_size:[n(l),null],table_layout:[n(l),null],text_align:[n(l),null],text_align_last:[n(l),null],text_anchor:[n(l),null],text_combine_upright:[n(l),null],text_decoration:[n(l),null],text_decoration_color:[n(l),null],text_decoration_line:[n(l),null],text_decoration_style:[n(l),null],text_emphasis:[n(l),null],text_emphasis_color:[n(l),null],text_emphasis_position:[n(l),null],text_emphasis_style:[n(l),null],text_indent:[n(l),null],text_justify:[n(l),null],text_orientation:[n(l),null],text_overflow:[n(l),null],text_rendering:[n(l),null],text_shadow:[n(l),null],text_transform:[n(l),null],text_underline_position:[n(l),null],top:[n(l),null],touch_action:[n(l),null],transform:[n(l),null],transform_box:[n(l),null],transform_origin:[n(l),null],transform_style:[n(l),null],transition:[n(l),null],transition_delay:[n(l),null],transition_duration:[n(l),null],transition_property:[n(l),null],transition_timing_function:[n(l),null],translate:[n(l),null],unicode_bidi:[n(l),null],user_select:[n(l),null],vertical_align:[n(l),null],visibility:[n(l),null],white_space:[n(l),null],widows:[n(l),null],width:[n(l),null],will_change:[n(l),null],word_break:[n(l),null],word_spacing:[n(l),null],word_wrap:[n(l),null],writing_mode:[n(l),null],z_index:[n(l),null]})))},\n function _(t,o,e,n,s){var i;n();const l=t(15),c=t(53),r=t(224),a=t(232),u=t(234);class h extends c.Model{constructor(t){super(t)}get button_view(){return this.tools[0].button_view}get event_type(){return this.tools[0].event_type}get tooltip(){return this.tools[0].tooltip}get tool_name(){return this.tools[0].tool_name}get icon(){return this.tools[0].computed_icon}get computed_icon(){return this.icon}get toggleable(){const t=this.tools[0];return t instanceof a.InspectTool&&t.toggleable}initialize(){super.initialize(),this.do=new l.Signal0(this,\"do\")}connect_signals(){super.connect_signals(),this.connect(this.do,(()=>this.doit())),this.connect(this.properties.active.change,(()=>this.set_active()));for(const t of this.tools)this.connect(t.properties.active.change,(()=>{this.active=t.active}))}doit(){for(const t of this.tools)t.do.emit()}set_active(){for(const t of this.tools)t.active=this.active}get menu(){const{menu:t}=this.tools[0];if(null==t)return null;const o=[];for(const[e,n]of(0,u.enumerate)(t))if(null==e)o.push(null);else{const t=()=>{var t,o,e;for(const s of this.tools)null===(e=null===(o=null===(t=s.menu)||void 0===t?void 0:t[n])||void 0===o?void 0:o.handler)||void 0===e||e.call(o)};o.push(Object.assign(Object.assign({},e),{handler:t}))}return o}}e.ToolProxy=h,i=h,h.__name__=\"ToolProxy\",i.define((({Boolean:t,Array:o,Ref:e})=>({tools:[o(e(r.ButtonTool)),[]],active:[t,!1],disabled:[t,!1]})))},\n function _(o,t,s,e,i){var n,r;e();const l=o(20),c=o(9),h=o(13),a=o(233),_=o(221),p=o(394),u=o(309),f=o(207);class y extends a.ToolbarBase{constructor(o){super(o)}initialize(){super.initialize(),this._merge_tools()}_merge_tools(){this._proxied_tools=[];const o={},t={},s={},e=[],i=[];for(const o of this.help)(0,c.includes)(i,o.redirect)||(e.push(o),i.push(o.redirect));this._proxied_tools.push(...e),this.help=e;for(const[o,t]of(0,h.entries)(this.gestures)){o in s||(s[o]={});for(const e of t.tools)e.type in s[o]||(s[o][e.type]=[]),s[o][e.type].push(e)}for(const t of this.inspectors)t.type in o||(o[t.type]=[]),o[t.type].push(t);for(const o of this.actions)o.type in t||(t[o.type]=[]),t[o.type].push(o);const n=(o,t=!1)=>{const s=new p.ToolProxy({tools:o,active:t});return this._proxied_tools.push(s),s};for(const o of(0,h.keys)(s)){const t=this.gestures[o];t.tools=[];for(const e of(0,h.keys)(s[o])){const i=s[o][e];if(i.length>0)if(\"multi\"==o)for(const o of i){const s=n([o]);t.tools.push(s),this.connect(s.properties.active.change,(()=>this._active_change(s)))}else{const o=n(i);t.tools.push(o),this.connect(o.properties.active.change,(()=>this._active_change(o)))}}}this.actions=[];for(const[o,s]of(0,h.entries)(t))if(\"CustomAction\"==o)for(const o of s)this.actions.push(n([o]));else s.length>0&&this.actions.push(n(s));this.inspectors=[];for(const t of(0,h.values)(o))t.length>0&&this.inspectors.push(n(t,!0));for(const[o,t]of(0,h.entries)(this.gestures))0!=t.tools.length&&(t.tools=(0,c.sort_by)(t.tools,(o=>o.default_order)),\"pinch\"!=o&&\"scroll\"!=o&&\"multi\"!=o&&(t.tools[0].active=!0))}}s.ProxyToolbar=y,n=y,y.__name__=\"ProxyToolbar\",n.define((({Array:o,Ref:t})=>({toolbars:[o(t(_.Toolbar)),[]]})));class d extends u.LayoutDOMView{initialize(){this.model.toolbar.toolbar_location=this.model.toolbar_location,super.initialize()}get child_models(){return[this.model.toolbar]}_update_layout(){this.layout=new f.ContentBox(this.child_views[0].el);const{toolbar:o}=this.model;o.horizontal?this.layout.set_sizing({width_policy:\"fit\",min_width:100,height_policy:\"fixed\"}):this.layout.set_sizing({width_policy:\"fixed\",height_policy:\"fit\",min_height:100})}after_layout(){super.after_layout();const o=this.child_views[0];o.layout.bbox=this.layout.bbox,o.render()}}s.ToolbarBoxView=d,d.__name__=\"ToolbarBoxView\";class b extends u.LayoutDOM{constructor(o){super(o)}}s.ToolbarBox=b,r=b,b.__name__=\"ToolbarBox\",r.prototype.default_view=d,r.define((({Ref:o})=>({toolbar:[o(a.ToolbarBase)],toolbar_location:[l.Location,\"right\"]})))},\n function _(e,n,r,t,o){t();const s=e(1),u=e(53),c=(0,s.__importStar)(e(21)),a=e(8),l=e(13);r.resolve_defs=function(e,n){var r,t,o,s;function i(e){return null!=e.module?`${e.module}.${e.name}`:e.name}function f(e){if((0,a.isString)(e))switch(e){case\"Any\":return c.Any;case\"Unknown\":return c.Unknown;case\"Boolean\":return c.Boolean;case\"Number\":return c.Number;case\"Int\":return c.Int;case\"String\":return c.String;case\"Null\":return c.Null}else switch(e[0]){case\"Nullable\":{const[,n]=e;return c.Nullable(f(n))}case\"Or\":{const[,...n]=e;return c.Or(...n.map(f))}case\"Tuple\":{const[,n,...r]=e;return c.Tuple(f(n),...r.map(f))}case\"Array\":{const[,n]=e;return c.Array(f(n))}case\"Struct\":{const[,...n]=e,r=n.map((([e,n])=>[e,f(n)]));return c.Struct((0,l.to_object)(r))}case\"Dict\":{const[,n]=e;return c.Dict(f(n))}case\"Map\":{const[,n,r]=e;return c.Map(f(n),f(r))}case\"Enum\":{const[,...n]=e;return c.Enum(...n)}case\"Ref\":{const[,r]=e,t=n.get(i(r));if(null!=t)return c.Ref(t);throw new Error(`${i(r)} wasn't defined before referencing it`)}case\"AnyRef\":return c.AnyRef()}}for(const c of e){const e=(()=>{if(null==c.extends)return u.Model;{const e=n.get(i(c.extends));if(null!=e)return e;throw new Error(`base model ${i(c.extends)} of ${i(c)} is not defined`)}})(),a=((s=class extends e{}).__name__=c.name,s.__module__=c.module,s);for(const e of null!==(r=c.properties)&&void 0!==r?r:[]){const n=f(null!==(t=e.kind)&&void 0!==t?t:\"Unknown\");a.define({[e.name]:[n,e.default]})}for(const e of null!==(o=c.overrides)&&void 0!==o?o:[])a.override({[e.name]:e.default});n.register(a)}}},\n function _(n,e,t,o,i){o();const d=n(5),c=n(226),s=n(113),a=n(43),l=n(398);t.index={},t.add_document_standalone=async function(n,e,o=[],i=!1){const u=new Map;async function f(i){let d;const f=n.roots().indexOf(i),r=o[f];null!=r?d=r:e.classList.contains(l.BOKEH_ROOT)?d=e:(d=(0,a.div)({class:l.BOKEH_ROOT}),e.appendChild(d));const w=await(0,s.build_view)(i,{parent:null});return w instanceof c.DOMView&&w.renderTo(d),u.set(i,w),t.index[i.id]=w,w}for(const e of n.roots())await f(e);return i&&(window.document.title=n.title()),n.on_change((n=>{n instanceof d.RootAddedEvent?f(n.model):n instanceof d.RootRemovedEvent?function(n){const e=u.get(n);null!=e&&(e.remove(),u.delete(n),delete t.index[n.id])}(n.model):i&&n instanceof d.TitleChangedEvent&&(window.document.title=n.title)})),[...u.values()]}},\n function _(o,e,n,t,r){t();const l=o(43),d=o(44);function u(o){let e=document.getElementById(o);if(null==e)throw new Error(`Error rendering Bokeh model: could not find #${o} HTML tag`);if(!document.body.contains(e))throw new Error(`Error rendering Bokeh model: element #${o} must be under `);if(\"SCRIPT\"==e.tagName){const o=(0,l.div)({class:n.BOKEH_ROOT});(0,l.replaceWith)(e,o),e=o}return e}n.BOKEH_ROOT=d.root,n._resolve_element=function(o){const{elementid:e}=o;return null!=e?u(e):document.body},n._resolve_root_elements=function(o){const e=[];if(null!=o.root_ids&&null!=o.roots)for(const n of o.root_ids)e.push(u(o.roots[n]));return e}},\n function _(n,o,t,s,e){s();const c=n(400),r=n(19),a=n(397);t._get_ws_url=function(n,o){let t,s=\"ws:\";return\"https:\"==window.location.protocol&&(s=\"wss:\"),null!=o?(t=document.createElement(\"a\"),t.href=o):t=window.location,null!=n?\"/\"==n&&(n=\"\"):n=t.pathname.replace(/\\/+$/,\"\"),`${s}//${t.host}${n}/ws`};const i={};t.add_document_from_session=async function(n,o,t,s=[],e=!1){const l=window.location.search.substr(1);let d;try{d=await function(n,o,t){const s=(0,c.parse_token)(o).session_id;n in i||(i[n]={});const e=i[n];return s in e||(e[s]=(0,c.pull_session)(n,o,t)),e[s]}(n,o,l)}catch(n){const t=(0,c.parse_token)(o).session_id;throw r.logger.error(`Failed to load Bokeh session ${t}: ${n}`),n}return(0,a.add_document_standalone)(d.document,t,s,e)}},\n function _(e,s,n,t,o){t();const r=e(19),i=e(5),c=e(401),l=e(402),_=e(403);n.DEFAULT_SERVER_WEBSOCKET_URL=\"ws://localhost:5006/ws\",n.DEFAULT_TOKEN=\"eyJzZXNzaW9uX2lkIjogImRlZmF1bHQifQ\";let h=0;function a(e){let s=e.split(\".\")[0];const n=s.length%4;return 0!=n&&(s+=\"=\".repeat(4-n)),JSON.parse(atob(s.replace(/_/g,\"/\").replace(/-/g,\"+\")))}n.parse_token=a;class d{constructor(e=n.DEFAULT_SERVER_WEBSOCKET_URL,s=n.DEFAULT_TOKEN,t=null){this.url=e,this.token=s,this.args_string=t,this._number=h++,this.socket=null,this.session=null,this.closed_permanently=!1,this._current_handler=null,this._pending_replies=new Map,this._pending_messages=[],this._receiver=new l.Receiver,this.id=a(s).session_id.split(\".\")[0],r.logger.debug(`Creating websocket ${this._number} to '${this.url}' session '${this.id}'`)}async connect(){if(this.closed_permanently)throw new Error(\"Cannot connect() a closed ClientConnection\");if(null!=this.socket)throw new Error(\"Already connected\");this._current_handler=null,this._pending_replies.clear(),this._pending_messages=[];try{let e=`${this.url}`;return null!=this.args_string&&this.args_string.length>0&&(e+=`?${this.args_string}`),this.socket=new WebSocket(e,[\"bokeh\",this.token]),new Promise(((e,s)=>{this.socket.binaryType=\"arraybuffer\",this.socket.onopen=()=>this._on_open(e,s),this.socket.onmessage=e=>this._on_message(e),this.socket.onclose=e=>this._on_close(e,s),this.socket.onerror=()=>this._on_error(s)}))}catch(e){throw r.logger.error(`websocket creation failed to url: ${this.url}`),r.logger.error(` - ${e}`),e}}close(){this.closed_permanently||(r.logger.debug(`Permanently closing websocket connection ${this._number}`),this.closed_permanently=!0,null!=this.socket&&this.socket.close(1e3,`close method called on ClientConnection ${this._number}`),this.session._connection_closed())}_schedule_reconnect(e){setTimeout((()=>{this.closed_permanently||r.logger.info(`Websocket connection ${this._number} disconnected, will not attempt to reconnect`)}),e)}send(e){if(null==this.socket)throw new Error(`not connected so cannot send ${e}`);e.send(this.socket)}async send_with_reply(e){const s=await new Promise(((s,n)=>{this._pending_replies.set(e.msgid(),{resolve:s,reject:n}),this.send(e)}));if(\"ERROR\"===s.msgtype())throw new Error(`Error reply ${s.content.text}`);return s}async _pull_doc_json(){const e=c.Message.create(\"PULL-DOC-REQ\",{}),s=await this.send_with_reply(e);if(!(\"doc\"in s.content))throw new Error(\"No 'doc' field in PULL-DOC-REPLY\");return s.content.doc}async _repull_session_doc(e,s){var n;r.logger.debug(this.session?\"Repulling session\":\"Pulling session for first time\");try{const n=await this._pull_doc_json();if(null==this.session)if(this.closed_permanently)r.logger.debug(\"Got new document after connection was already closed\"),s(new Error(\"The connection has been closed\"));else{const s=i.Document.from_json(n),t=i.Document._compute_patch_since_json(n,s);if(t.events.length>0){r.logger.debug(`Sending ${t.events.length} changes from model construction back to server`);const e=c.Message.create(\"PATCH-DOC\",{},t);this.send(e)}this.session=new _.ClientSession(this,s,this.id);for(const e of this._pending_messages)this.session.handle(e);this._pending_messages=[],r.logger.debug(\"Created a new session from new pulled doc\"),e(this.session)}else this.session.document.replace_with_json(n),r.logger.debug(\"Updated existing session with new pulled doc\")}catch(e){null===(n=console.trace)||void 0===n||n.call(console,e),r.logger.error(`Failed to repull session ${e}`),s(e instanceof Error?e:`${e}`)}}_on_open(e,s){r.logger.info(`Websocket connection ${this._number} is now open`),this._current_handler=n=>{this._awaiting_ack_handler(n,e,s)}}_on_message(e){null==this._current_handler&&r.logger.error(\"Got a message with no current handler set\");try{this._receiver.consume(e.data)}catch(e){this._close_bad_protocol(`${e}`)}const s=this._receiver.message;if(null!=s){const e=s.problem();null!=e&&this._close_bad_protocol(e),this._current_handler(s)}}_on_close(e,s){r.logger.info(`Lost websocket ${this._number} connection, ${e.code} (${e.reason})`),this.socket=null,this._pending_replies.forEach((e=>e.reject(\"Disconnected\"))),this._pending_replies.clear(),this.closed_permanently||this._schedule_reconnect(2e3),s(new Error(`Lost websocket connection, ${e.code} (${e.reason})`))}_on_error(e){r.logger.debug(`Websocket error on socket ${this._number}`);const s=\"Could not open websocket\";r.logger.error(`Failed to connect to Bokeh server: ${s}`),e(new Error(s))}_close_bad_protocol(e){r.logger.error(`Closing connection: ${e}`),null!=this.socket&&this.socket.close(1002,e)}_awaiting_ack_handler(e,s,n){\"ACK\"===e.msgtype()?(this._current_handler=e=>this._steady_state_handler(e),this._repull_session_doc(s,n)):this._close_bad_protocol(\"First message was not an ACK\")}_steady_state_handler(e){const s=e.reqid(),n=this._pending_replies.get(s);n?(this._pending_replies.delete(s),n.resolve(e)):this.session?this.session.handle(e):\"PATCH-DOC\"!=e.msgtype()&&this._pending_messages.push(e)}}n.ClientConnection=d,d.__name__=\"ClientConnection\",n.pull_session=function(e,s,n){return new d(e,s,n).connect()}},\n function _(e,s,t,r,n){r();const i=e(34);class a{constructor(e,s,t){this.header=e,this.metadata=s,this.content=t,this.buffers=new Map}static assemble(e,s,t){const r=JSON.parse(e),n=JSON.parse(s),i=JSON.parse(t);return new a(r,n,i)}assemble_buffer(e,s){const t=null!=this.header.num_buffers?this.header.num_buffers:0;if(t<=this.buffers.size)throw new Error(`too many buffers received, expecting ${t}`);const{id:r}=JSON.parse(e);this.buffers.set(r,s)}static create(e,s,t={}){const r=a.create_header(e);return new a(r,s,t)}static create_header(e){return{msgid:(0,i.uniqueId)(),msgtype:e}}complete(){return null!=this.header&&null!=this.metadata&&null!=this.content&&(null==this.header.num_buffers||this.buffers.size==this.header.num_buffers)}send(e){if((null!=this.header.num_buffers?this.header.num_buffers:0)>0)throw new Error(\"BokehJS only supports receiving buffers, not sending\");const s=JSON.stringify(this.header),t=JSON.stringify(this.metadata),r=JSON.stringify(this.content);e.send(s),e.send(t),e.send(r)}msgid(){return this.header.msgid}msgtype(){return this.header.msgtype}reqid(){return this.header.reqid}problem(){return\"msgid\"in this.header?\"msgtype\"in this.header?null:\"No msgtype in header\":\"No msgid in header\"}}t.Message=a,a.__name__=\"Message\"},\n function _(e,t,s,_,r){_();const i=e(401),h=e(8);class a{constructor(){this.message=null,this._partial=null,this._fragments=[],this._buf_header=null,this._current_consumer=this._HEADER}consume(e){this._current_consumer(e)}_HEADER(e){this._assume_text(e),this.message=null,this._partial=null,this._fragments=[e],this._buf_header=null,this._current_consumer=this._METADATA}_METADATA(e){this._assume_text(e),this._fragments.push(e),this._current_consumer=this._CONTENT}_CONTENT(e){this._assume_text(e),this._fragments.push(e);const[t,s,_]=this._fragments.slice(0,3);this._partial=i.Message.assemble(t,s,_),this._check_complete()}_BUFFER_HEADER(e){this._assume_text(e),this._buf_header=e,this._current_consumer=this._BUFFER_PAYLOAD}_BUFFER_PAYLOAD(e){this._assume_binary(e),this._partial.assemble_buffer(this._buf_header,e),this._check_complete()}_assume_text(e){if(!(0,h.isString)(e))throw new Error(\"Expected text fragment but received binary fragment\")}_assume_binary(e){if(!(e instanceof ArrayBuffer))throw new Error(\"Expected binary fragment but received text fragment\")}_check_complete(){this._partial.complete()?(this.message=this._partial,this._current_consumer=this._HEADER):this._current_consumer=this._BUFFER_HEADER}}s.Receiver=a,a.__name__=\"Receiver\"},\n function _(e,t,n,s,o){s();const c=e(5),i=e(401),_=e(19);class r{constructor(e,t,n){this._connection=e,this.document=t,this.id=n,this._document_listener=e=>{this._document_changed(e)},this.document.on_change(this._document_listener,!0)}handle(e){const t=e.msgtype();\"PATCH-DOC\"===t?this._handle_patch(e):\"OK\"===t?this._handle_ok(e):\"ERROR\"===t?this._handle_error(e):_.logger.debug(`Doing nothing with message ${e.msgtype()}`)}close(){this._connection.close()}_connection_closed(){this.document.remove_on_change(this._document_listener)}async request_server_info(){const e=i.Message.create(\"SERVER-INFO-REQ\",{});return(await this._connection.send_with_reply(e)).content}async force_roundtrip(){await this.request_server_info()}_document_changed(e){if(e.setter_id===this.id)return;const t=e instanceof c.DocumentEventBatch?e.events:[e],n=this.document.create_json_patch(t),s=i.Message.create(\"PATCH-DOC\",{},n);this._connection.send(s)}_handle_patch(e){this.document.apply_json_patch(e.content,e.buffers,this.id)}_handle_ok(e){_.logger.trace(`Unhandled OK reply to ${e.reqid()}`)}_handle_error(e){_.logger.error(`Unhandled ERROR reply to ${e.reqid()}: ${e.content.text}`)}}n.ClientSession=r,r.__name__=\"ClientSession\"},\n function _(e,o,t,n,r){n();const s=e(1),l=e(5),i=e(402),a=e(19),c=e(43),g=e(13),f=e(397),u=e(398),m=(0,s.__importDefault)(e(44)),p=(0,s.__importDefault)(e(240)),d=(0,s.__importDefault)(e(405));function _(e,o){o.buffers.length>0?e.consume(o.buffers[0].buffer):e.consume(o.content.data);const t=e.message;null!=t&&this.apply_json_patch(t.content,t.buffers)}function b(e,o){if(\"undefined\"!=typeof Jupyter&&null!=Jupyter.notebook.kernel){a.logger.info(`Registering Jupyter comms for target ${e}`);const t=Jupyter.notebook.kernel.comm_manager;try{t.register_target(e,(t=>{a.logger.info(`Registering Jupyter comms for target ${e}`);const n=new i.Receiver;t.on_msg(_.bind(o,n))}))}catch(e){a.logger.warn(`Jupyter comms failed to register. push_notebook() will not function. (exception reported: ${e})`)}}else if(o.roots()[0].id in t.kernels){a.logger.info(`Registering JupyterLab comms for target ${e}`);const n=t.kernels[o.roots()[0].id];try{n.registerCommTarget(e,(t=>{a.logger.info(`Registering JupyterLab comms for target ${e}`);const n=new i.Receiver;t.onMsg=_.bind(o,n)}))}catch(e){a.logger.warn(`Jupyter comms failed to register. push_notebook() will not function. (exception reported: ${e})`)}}else if(\"undefined\"!=typeof google&&null!=google.colab.kernel){a.logger.info(`Registering Google Colab comms for target ${e}`);const t=google.colab.kernel.comms;try{t.registerTarget(e,(async t=>{var n,r,l;a.logger.info(`Registering Google Colab comms for target ${e}`);const c=new i.Receiver;try{for(var g,f=(0,s.__asyncValues)(t.messages);!(g=await f.next()).done;){const e=g.value,t={data:e.data},n=[];for(const o of null!==(l=e.buffers)&&void 0!==l?l:[])n.push(new DataView(o));const r={content:t,buffers:n};_.bind(o)(c,r)}}catch(e){n={error:e}}finally{try{g&&!g.done&&(r=f.return)&&await r.call(f)}finally{if(n)throw n.error}}}))}catch(e){a.logger.warn(`Google Colab comms failed to register. push_notebook() will not function. (exception reported: ${e})`)}}else console.warn(\"Jupyter notebooks comms not available. push_notebook() will not function. If running JupyterLab ensure the latest @bokeh/jupyter_bokeh extension is installed. In an exported notebook this warning is expected.\")}c.stylesheet.append(m.default),c.stylesheet.append(p.default),c.stylesheet.append(d.default),t.kernels={},t.embed_items_notebook=function(e,o){if(1!=(0,g.size)(e))throw new Error(\"embed_items_notebook expects exactly one document in docs_json\");const t=l.Document.from_json((0,g.values)(e)[0]);for(const e of o){null!=e.notebook_comms_target&&b(e.notebook_comms_target,t);const o=(0,u._resolve_element)(e),n=(0,u._resolve_root_elements)(e);(0,f.add_document_standalone)(t,o,n)}}},\n function _(t,o,r,e,d){e(),r.root=\"bk-root\",r.tooltip=\"bk-tooltip\",r.default=\".rendered_html .bk-root .bk-tooltip table,.rendered_html .bk-root .bk-tooltip tr,.rendered_html .bk-root .bk-tooltip th,.rendered_html .bk-root .bk-tooltip td{border:none;padding:1px;}\"},\n function _(t,_,o,r,n){r();const a=t(1);(0,a.__exportStar)(t(401),o),(0,a.__exportStar)(t(402),o)},\n function _(e,t,n,s,o){function l(){const e=document.getElementsByTagName(\"body\")[0],t=document.getElementsByClassName(\"bokeh-test-div\");1==t.length&&(e.removeChild(t[0]),delete t[0]);const n=document.createElement(\"div\");n.classList.add(\"bokeh-test-div\"),n.style.display=\"none\",e.insertBefore(n,e.firstChild)}s(),n.results={},n.init=function(){l()},n.record0=function(e,t){n.results[e]=t},n.record=function(e,t){n.results[e]=t,l()},n.count=function(e){null==n.results[e]&&(n.results[e]=0),n.results[e]+=1,l()}},\n function _(e,t,o,n,l){n(),o.safely=function(e,t=!1){try{return e()}catch(e){if(function(e){const t=document.createElement(\"div\");t.style.backgroundColor=\"#f2dede\",t.style.border=\"1px solid #a94442\",t.style.borderRadius=\"4px\",t.style.display=\"inline-block\",t.style.fontFamily=\"sans-serif\",t.style.marginTop=\"5px\",t.style.minWidth=\"200px\",t.style.padding=\"5px 5px 5px 10px\",t.classList.add(\"bokeh-error-box-into-flames\");const o=document.createElement(\"span\");o.style.backgroundColor=\"#a94442\",o.style.borderRadius=\"0px 4px 0px 0px\",o.style.color=\"white\",o.style.cursor=\"pointer\",o.style.cssFloat=\"right\",o.style.fontSize=\"0.8em\",o.style.margin=\"-6px -6px 0px 0px\",o.style.padding=\"2px 5px 4px 5px\",o.title=\"close\",o.setAttribute(\"aria-label\",\"close\"),o.appendChild(document.createTextNode(\"x\")),o.addEventListener(\"click\",(()=>s.removeChild(t)));const n=document.createElement(\"h3\");n.style.color=\"#a94442\",n.style.margin=\"8px 0px 0px 0px\",n.style.padding=\"0px\",n.appendChild(document.createTextNode(\"Bokeh Error\"));const l=document.createElement(\"pre\");l.style.whiteSpace=\"unset\",l.style.overflowX=\"auto\",l.appendChild(document.createTextNode(e)),t.appendChild(o),t.appendChild(n),t.appendChild(l);const s=document.getElementsByTagName(\"body\")[0];s.insertBefore(t,s.firstChild)}(e instanceof Error&&e.stack?e.stack:`${e}`),t)return;throw e}}},\n ], 0, {\"main\":0,\"tslib\":1,\"index\":2,\"version\":3,\"embed/index\":4,\"document/index\":5,\"document/document\":6,\"base\":7,\"core/util/types\":8,\"core/util/array\":9,\"core/util/math\":10,\"core/util/assert\":11,\"core/util/arrayable\":12,\"core/util/object\":13,\"core/has_props\":14,\"core/signaling\":15,\"core/util/defer\":16,\"core/util/refs\":17,\"core/properties\":18,\"core/logging\":19,\"core/enums\":20,\"core/kinds\":21,\"core/util/color\":22,\"core/util/svg_colors\":23,\"core/types\":24,\"core/util/bitset\":25,\"core/util/eq\":26,\"core/util/platform\":27,\"core/settings\":28,\"core/util/ndarray\":29,\"core/serializer\":30,\"core/util/serialization\":31,\"core/util/buffer\":32,\"core/uniforms\":33,\"core/util/string\":34,\"document/events\":35,\"core/util/pretty\":36,\"core/util/cloneable\":37,\"models/index\":38,\"models/annotations/index\":39,\"models/annotations/annotation\":40,\"models/renderers/renderer\":41,\"core/view\":42,\"core/dom\":43,\"styles/root.css\":44,\"core/visuals/index\":45,\"core/visuals/line\":46,\"core/visuals/visual\":47,\"core/property_mixins\":48,\"core/visuals/fill\":49,\"core/visuals/text\":50,\"core/visuals/hatch\":51,\"core/visuals/patterns\":52,\"model\":53,\"models/canvas/coordinates\":54,\"models/scales/scale\":55,\"models/transforms/transform\":56,\"models/ranges/range\":57,\"models/ranges/range1d\":58,\"models/scales/linear_scale\":59,\"models/scales/continuous_scale\":60,\"models/scales/log_scale\":61,\"models/scales/categorical_scale\":62,\"models/ranges/data_range1d\":63,\"models/ranges/data_range\":64,\"core/util/bbox\":65,\"models/util\":66,\"models/ranges/factor_range\":67,\"models/annotations/arrow\":68,\"models/annotations/data_annotation\":69,\"models/sources/columnar_data_source\":70,\"models/sources/data_source\":71,\"models/selections/selection\":72,\"core/selection_manager\":73,\"models/selections/interaction_policy\":74,\"models/sources/column_data_source\":75,\"core/util/typed_array\":76,\"core/util/set\":77,\"core/util/projections\":78,\"models/annotations/arrow_head\":112,\"core/build_views\":113,\"models/annotations/band\":114,\"models/annotations/upper_lower\":115,\"models/annotations/box_annotation\":116,\"models/annotations/color_bar\":117,\"models/annotations/title\":118,\"models/annotations/text_annotation\":119,\"core/graphics\":120,\"core/util/text\":121,\"core/util/affine\":122,\"core/layout/side_panel\":123,\"core/layout/types\":124,\"core/layout/layoutable\":125,\"models/canvas/cartesian_frame\":126,\"models/axes/index\":127,\"models/axes/axis\":128,\"models/renderers/guide_renderer\":129,\"models/tickers/ticker\":130,\"models/formatters/tick_formatter\":131,\"models/policies/labeling\":132,\"models/text/base_text\":133,\"models/text/utils\":134,\"models/text/math_text\":135,\"core/util/image\":136,\"models/text/providers\":137,\"core/util/modules\":138,\"models/text/plain_text\":139,\"models/axes/categorical_axis\":140,\"models/tickers/categorical_ticker\":141,\"models/formatters/categorical_tick_formatter\":142,\"models/axes/continuous_axis\":143,\"models/axes/datetime_axis\":144,\"models/axes/linear_axis\":145,\"models/formatters/basic_tick_formatter\":146,\"models/tickers/basic_ticker\":147,\"models/tickers/adaptive_ticker\":148,\"models/tickers/continuous_ticker\":149,\"models/formatters/datetime_tick_formatter\":150,\"core/util/templating\":152,\"models/tickers/datetime_ticker\":155,\"models/tickers/composite_ticker\":156,\"models/tickers/days_ticker\":157,\"models/tickers/single_interval_ticker\":158,\"models/tickers/util\":159,\"models/tickers/months_ticker\":160,\"models/tickers/years_ticker\":161,\"models/axes/log_axis\":162,\"models/formatters/log_tick_formatter\":163,\"models/tickers/log_ticker\":164,\"models/axes/mercator_axis\":165,\"models/formatters/mercator_tick_formatter\":166,\"models/tickers/mercator_ticker\":167,\"models/tickers/index\":168,\"models/tickers/fixed_ticker\":169,\"models/tickers/binned_ticker\":170,\"models/mappers/scanning_color_mapper\":171,\"models/mappers/continuous_color_mapper\":172,\"models/mappers/color_mapper\":173,\"models/mappers/mapper\":174,\"models/renderers/glyph_renderer\":175,\"models/renderers/data_renderer\":176,\"models/glyphs/line\":177,\"models/glyphs/xy_glyph\":178,\"models/glyphs/glyph\":179,\"core/util/ragged_array\":180,\"core/util/spatial\":181,\"models/glyphs/utils\":184,\"core/hittest\":185,\"models/glyphs/patch\":186,\"models/glyphs/harea\":187,\"models/glyphs/area\":188,\"models/glyphs/varea\":189,\"models/sources/cds_view\":190,\"models/filters/filter\":191,\"models/formatters/index\":192,\"models/formatters/func_tick_formatter\":193,\"models/formatters/numeral_tick_formatter\":194,\"models/formatters/printf_tick_formatter\":195,\"models/mappers/index\":196,\"models/mappers/categorical_color_mapper\":197,\"models/mappers/categorical_mapper\":198,\"models/mappers/categorical_marker_mapper\":199,\"models/mappers/categorical_pattern_mapper\":200,\"models/mappers/linear_color_mapper\":201,\"models/mappers/log_color_mapper\":202,\"models/mappers/eqhist_color_mapper\":203,\"models/scales/index\":204,\"models/scales/linear_interpolation_scale\":205,\"models/ranges/index\":206,\"core/layout/index\":207,\"core/layout/alignments\":208,\"core/layout/grid\":209,\"core/layout/html\":210,\"core/layout/border\":211,\"models/annotations/label\":212,\"models/annotations/label_set\":213,\"models/annotations/legend\":214,\"models/annotations/legend_item\":215,\"core/vectorization\":216,\"models/annotations/poly_annotation\":217,\"models/annotations/slope\":218,\"models/annotations/span\":219,\"models/annotations/toolbar_panel\":220,\"models/tools/toolbar\":221,\"models/tools/tool\":222,\"models/tools/gestures/gesture_tool\":223,\"models/tools/button_tool\":224,\"core/dom_view\":226,\"styles/toolbar.css\":227,\"styles/icons.css\":228,\"styles/menus.css\":229,\"core/util/menus\":230,\"models/tools/on_off_button\":231,\"models/tools/inspectors/inspect_tool\":232,\"models/tools/toolbar_base\":233,\"core/util/iterator\":234,\"core/util/canvas\":235,\"core/util/svg\":236,\"core/util/random\":237,\"models/tools/actions/action_tool\":238,\"models/tools/actions/help_tool\":239,\"styles/logo.css\":240,\"models/annotations/tooltip\":241,\"styles/tooltips.css\":242,\"models/annotations/whisker\":243,\"models/callbacks/index\":244,\"models/callbacks/customjs\":245,\"models/callbacks/callback\":246,\"models/callbacks/open_url\":247,\"models/canvas/index\":248,\"models/canvas/canvas\":249,\"core/ui_events\":250,\"core/bokeh_events\":251,\"core/util/wheel\":252,\"models/expressions/index\":253,\"models/expressions/expression\":254,\"models/expressions/customjs_expr\":255,\"models/expressions/stack\":256,\"models/expressions/cumsum\":257,\"models/expressions/minimum\":258,\"models/expressions/maximum\":259,\"models/expressions/coordinate_transform\":260,\"models/expressions/polar\":261,\"models/filters/index\":262,\"models/filters/boolean_filter\":263,\"models/filters/customjs_filter\":264,\"models/filters/group_filter\":265,\"models/filters/index_filter\":266,\"models/glyphs/index\":267,\"models/glyphs/annular_wedge\":268,\"models/glyphs/annulus\":269,\"models/glyphs/arc\":270,\"models/glyphs/bezier\":271,\"models/glyphs/circle\":272,\"models/glyphs/ellipse\":273,\"models/glyphs/ellipse_oval\":274,\"models/glyphs/center_rotatable\":275,\"models/glyphs/hbar\":276,\"models/glyphs/box\":277,\"models/glyphs/hex_tile\":278,\"models/glyphs/image\":279,\"models/glyphs/image_base\":280,\"models/glyphs/image_rgba\":281,\"models/glyphs/image_url\":282,\"models/glyphs/multi_line\":283,\"models/glyphs/multi_polygons\":284,\"models/glyphs/oval\":285,\"models/glyphs/patches\":286,\"models/glyphs/quad\":287,\"models/glyphs/quadratic\":288,\"models/glyphs/ray\":289,\"models/glyphs/rect\":290,\"models/glyphs/scatter\":291,\"models/glyphs/marker\":292,\"models/glyphs/defs\":293,\"models/glyphs/segment\":294,\"models/glyphs/spline\":295,\"core/util/interpolation\":296,\"models/glyphs/step\":297,\"models/glyphs/text\":298,\"models/glyphs/vbar\":299,\"models/glyphs/wedge\":300,\"models/graphs/index\":301,\"models/graphs/graph_hit_test_policy\":302,\"models/graphs/layout_provider\":303,\"models/graphs/static_layout_provider\":304,\"models/grids/index\":305,\"models/grids/grid\":306,\"models/layouts/index\":307,\"models/layouts/box\":308,\"models/layouts/layout_dom\":309,\"models/layouts/column\":310,\"models/layouts/grid_box\":311,\"models/layouts/html_box\":312,\"models/layouts/panel\":313,\"models/layouts/row\":314,\"models/layouts/spacer\":315,\"models/layouts/tabs\":316,\"styles/tabs.css\":317,\"styles/buttons.css\":318,\"models/layouts/widget_box\":319,\"models/text/index\":320,\"models/transforms/index\":321,\"models/transforms/customjs_transform\":322,\"models/transforms/dodge\":323,\"models/transforms/range_transform\":324,\"models/transforms/interpolator\":325,\"models/transforms/jitter\":326,\"models/transforms/linear_interpolator\":327,\"models/transforms/step_interpolator\":328,\"models/plots/index\":329,\"models/plots/gmap_plot\":330,\"models/plots/plot\":331,\"models/plots/plot_canvas\":332,\"core/util/throttle\":333,\"models/plots/range_manager\":334,\"models/plots/state_manager\":335,\"models/plots/gmap_plot_canvas\":336,\"models/policies/index\":337,\"models/renderers/index\":338,\"models/renderers/graph_renderer\":339,\"models/selections/index\":340,\"models/sources/index\":341,\"models/sources/server_sent_data_source\":342,\"models/sources/web_data_source\":343,\"models/sources/ajax_data_source\":344,\"models/sources/geojson_data_source\":345,\"models/tiles/index\":346,\"models/tiles/bbox_tile_source\":347,\"models/tiles/mercator_tile_source\":348,\"models/tiles/tile_source\":349,\"models/tiles/tile_utils\":350,\"models/tiles/quadkey_tile_source\":351,\"models/tiles/tile_renderer\":352,\"models/tiles/wmts_tile_source\":353,\"styles/tiles.css\":354,\"models/tiles/tms_tile_source\":355,\"models/textures/index\":356,\"models/textures/canvas_texture\":357,\"models/textures/texture\":358,\"models/textures/image_url_texture\":359,\"models/tools/index\":360,\"models/tools/actions/custom_action\":361,\"models/tools/actions/redo_tool\":362,\"models/tools/actions/reset_tool\":363,\"models/tools/actions/save_tool\":364,\"models/tools/actions/undo_tool\":365,\"models/tools/actions/zoom_in_tool\":366,\"models/tools/actions/zoom_base_tool\":367,\"core/util/zoom\":368,\"models/tools/actions/zoom_out_tool\":369,\"models/tools/edit/edit_tool\":370,\"models/tools/edit/box_edit_tool\":371,\"models/tools/edit/freehand_draw_tool\":372,\"models/tools/edit/point_draw_tool\":373,\"models/tools/edit/poly_draw_tool\":374,\"models/tools/edit/poly_tool\":375,\"models/tools/edit/poly_edit_tool\":376,\"models/tools/gestures/box_select_tool\":377,\"models/tools/gestures/select_tool\":378,\"models/tools/gestures/box_zoom_tool\":379,\"models/tools/gestures/lasso_select_tool\":380,\"models/tools/gestures/poly_select_tool\":381,\"models/tools/edit/line_edit_tool\":382,\"models/tools/edit/line_tool\":383,\"models/tools/gestures/pan_tool\":384,\"models/tools/gestures/range_tool\":385,\"models/tools/gestures/tap_tool\":386,\"models/tools/gestures/wheel_pan_tool\":387,\"models/tools/gestures/wheel_zoom_tool\":388,\"models/tools/inspectors/crosshair_tool\":389,\"models/tools/inspectors/customjs_hover\":390,\"models/tools/inspectors/hover_tool\":391,\"models/dom/index\":392,\"models/dom/styles\":393,\"models/tools/tool_proxy\":394,\"models/tools/toolbar_box\":395,\"document/defs\":396,\"embed/standalone\":397,\"embed/dom\":398,\"embed/server\":399,\"client/connection\":400,\"protocol/message\":401,\"protocol/receiver\":402,\"client/session\":403,\"embed/notebook\":404,\"styles/notebook.css\":405,\"protocol/index\":406,\"testing\":407,\"safely\":408}, {});});\n\n /* END bokeh.min.js */\n },\n function(Bokeh) {\n /* BEGIN bokeh-gl.min.js */\n /*!\n * Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n * \n * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * Neither the name of Anaconda nor the names of any contributors\n * may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n * THE POSSIBILITY OF SUCH DAMAGE.\n */\n (function(root, factory) {\n factory(root[\"Bokeh\"], \"2.4.3\");\n })(this, function(Bokeh, version) {\n let define;\n return (function(modules, entry, aliases, externals) {\n const bokeh = typeof Bokeh !== \"undefined\" && (version != null ? Bokeh[version] : Bokeh);\n if (bokeh != null) {\n return bokeh.register_plugin(modules, entry, aliases);\n } else {\n throw new Error(\"Cannot find Bokeh \" + version + \". You have to load it prior to loading plugins.\");\n }\n })\n ({\n 409: function _(n,c,f,i,o){i(),n(410)},\n 410: function _(t,_,r,e,o){e();const a=t(1);o(\"get_regl\",t(411).get_regl),(0,a.__exportStar)(t(419),r),(0,a.__exportStar)(t(423),r),(0,a.__exportStar)(t(425),r),(0,a.__exportStar)(t(426),r),(0,a.__exportStar)(t(427),r),(0,a.__exportStar)(t(428),r),(0,a.__exportStar)(t(429),r),(0,a.__exportStar)(t(424),r)},\n 411: function _(t,i,e,_,a){_();const r=t(1),o=(0,r.__importDefault)(t(412)),n=t(413),s=(0,r.__importDefault)(t(415)),l=(0,r.__importDefault)(t(416)),p=(0,r.__importDefault)(t(417)),h=(0,r.__importDefault)(t(418));let c;e.get_regl=function(t){return null==c&&(c=new u(t)),c};class u{constructor(t){try{this._regl=(0,o.default)({gl:t,extensions:[\"ANGLE_instanced_arrays\",\"EXT_blend_minmax\"]}),this._regl_available=!0,this._line_geometry=this._regl.buffer({usage:\"static\",type:\"float\",data:[[-2,0],[-1,-1],[1,-1],[2,0],[1,1],[-1,1]]}),this._line_triangles=this._regl.elements({usage:\"static\",primitive:\"triangles\",data:[[0,1,5],[1,2,5],[5,2,4],[2,3,4]]})}catch(t){this._regl_available=!1}}buffer(t){return this._regl.buffer(t)}clear(t,i){this._viewport={x:0,y:0,width:t,height:i},this._regl.clear({color:[0,0,0,0]})}get has_webgl(){return this._regl_available}get scissor(){return this._scissor}set_scissor(t,i,e,_){this._scissor={x:t,y:i,width:e,height:_}}get viewport(){return this._viewport}dashed_line(){return null==this._dashed_line&&(this._dashed_line=function(t,i,e){const _={vert:`#define DASHED\\n\\n${s.default}`,frag:`#define DASHED\\n\\n${l.default}`,attributes:{a_position:{buffer:i,divisor:0},a_point_prev:(t,i)=>i.points.to_attribute_config(),a_point_start:(t,i)=>i.points.to_attribute_config(2*Float32Array.BYTES_PER_ELEMENT),a_point_end:(t,i)=>i.points.to_attribute_config(4*Float32Array.BYTES_PER_ELEMENT),a_point_next:(t,i)=>i.points.to_attribute_config(6*Float32Array.BYTES_PER_ELEMENT),a_show_prev:(t,i)=>i.show.to_attribute_config(),a_show_curr:(t,i)=>i.show.to_attribute_config(Uint8Array.BYTES_PER_ELEMENT),a_show_next:(t,i)=>i.show.to_attribute_config(2*Uint8Array.BYTES_PER_ELEMENT),a_length_so_far:(t,i)=>i.length_so_far.to_attribute_config()},uniforms:{u_canvas_size:t.prop(\"canvas_size\"),u_pixel_ratio:t.prop(\"pixel_ratio\"),u_antialias:t.prop(\"antialias\"),u_line_color:t.prop(\"line_color\"),u_linewidth:t.prop(\"linewidth\"),u_miter_limit:t.prop(\"miter_limit\"),u_line_join:t.prop(\"line_join\"),u_line_cap:t.prop(\"line_cap\"),u_dash_tex:t.prop(\"dash_tex\"),u_dash_tex_info:t.prop(\"dash_tex_info\"),u_dash_scale:t.prop(\"dash_scale\"),u_dash_offset:t.prop(\"dash_offset\")},elements:e,instances:t.prop(\"nsegments\"),blend:{enable:!0,equation:\"max\",func:{srcRGB:1,srcAlpha:1,dstRGB:1,dstAlpha:1}},depth:{enable:!1},scissor:{enable:!0,box:t.prop(\"scissor\")},viewport:t.prop(\"viewport\")};return t(_)}(this._regl,this._line_geometry,this._line_triangles)),this._dashed_line}get_dash(t){return null==this._dash_cache&&(this._dash_cache=new n.DashCache(this._regl)),this._dash_cache.get(t)}marker_no_hatch(t){null==this._marker_no_hatch_map&&(this._marker_no_hatch_map=new Map);let i=this._marker_no_hatch_map.get(t);return null==i&&(i=function(t,i){const e={vert:p.default,frag:`#define USE_${i.toUpperCase()}\\n${h.default}`,attributes:{a_position:{buffer:t.buffer([[-.5,-.5],[-.5,.5],[.5,.5],[.5,-.5]]),divisor:0},a_center:(t,i)=>i.center.to_attribute_config(),a_width:(t,i)=>i.width.to_attribute_config(),a_height:(t,i)=>i.height.to_attribute_config(),a_angle:(t,i)=>i.angle.to_attribute_config(),a_linewidth:(t,i)=>i.linewidth.to_attribute_config(),a_line_color:(t,i)=>i.line_color.to_attribute_config(),a_fill_color:(t,i)=>i.fill_color.to_attribute_config(),a_line_cap:(t,i)=>i.line_cap.to_attribute_config(),a_line_join:(t,i)=>i.line_join.to_attribute_config(),a_show:(t,i)=>i.show.to_attribute_config()},uniforms:{u_canvas_size:t.prop(\"canvas_size\"),u_pixel_ratio:t.prop(\"pixel_ratio\"),u_antialias:t.prop(\"antialias\"),u_size_hint:t.prop(\"size_hint\")},count:4,primitive:\"triangle fan\",instances:t.prop(\"nmarkers\"),blend:{enable:!0,func:{srcRGB:\"one\",srcAlpha:\"one\",dstRGB:\"one minus src alpha\",dstAlpha:\"one minus src alpha\"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop(\"scissor\")},viewport:t.prop(\"viewport\")};return t(e)}(this._regl,t),this._marker_no_hatch_map.set(t,i)),i}marker_hatch(t){null==this._marker_hatch_map&&(this._marker_hatch_map=new Map);let i=this._marker_hatch_map.get(t);return null==i&&(i=function(t,i){const e={vert:`#define HATCH\\n${p.default}`,frag:`#define USE_${i.toUpperCase()}\\n#define HATCH\\n${h.default}`,attributes:{a_position:{buffer:t.buffer([[-.5,-.5],[-.5,.5],[.5,.5],[.5,-.5]]),divisor:0},a_center:(t,i)=>i.center.to_attribute_config(),a_width:(t,i)=>i.width.to_attribute_config(),a_height:(t,i)=>i.height.to_attribute_config(),a_angle:(t,i)=>i.angle.to_attribute_config(),a_linewidth:(t,i)=>i.linewidth.to_attribute_config(),a_line_color:(t,i)=>i.line_color.to_attribute_config(),a_fill_color:(t,i)=>i.fill_color.to_attribute_config(),a_line_cap:(t,i)=>i.line_cap.to_attribute_config(),a_line_join:(t,i)=>i.line_join.to_attribute_config(),a_show:(t,i)=>i.show.to_attribute_config(),a_hatch_pattern:(t,i)=>i.hatch_pattern.to_attribute_config(),a_hatch_scale:(t,i)=>i.hatch_scale.to_attribute_config(),a_hatch_weight:(t,i)=>i.hatch_weight.to_attribute_config(),a_hatch_color:(t,i)=>i.hatch_color.to_attribute_config()},uniforms:{u_canvas_size:t.prop(\"canvas_size\"),u_pixel_ratio:t.prop(\"pixel_ratio\"),u_antialias:t.prop(\"antialias\"),u_size_hint:t.prop(\"size_hint\")},count:4,primitive:\"triangle fan\",instances:t.prop(\"nmarkers\"),blend:{enable:!0,func:{srcRGB:\"one\",srcAlpha:\"one\",dstRGB:\"one minus src alpha\",dstAlpha:\"one minus src alpha\"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop(\"scissor\")},viewport:t.prop(\"viewport\")};return t(e)}(this._regl,t),this._marker_hatch_map.set(t,i)),i}solid_line(){return null==this._solid_line&&(this._solid_line=function(t,i,e){const _={vert:s.default,frag:l.default,attributes:{a_position:{buffer:i,divisor:0},a_point_prev:(t,i)=>i.points.to_attribute_config(),a_point_start:(t,i)=>i.points.to_attribute_config(2*Float32Array.BYTES_PER_ELEMENT),a_point_end:(t,i)=>i.points.to_attribute_config(4*Float32Array.BYTES_PER_ELEMENT),a_point_next:(t,i)=>i.points.to_attribute_config(6*Float32Array.BYTES_PER_ELEMENT),a_show_prev:(t,i)=>i.show.to_attribute_config(),a_show_curr:(t,i)=>i.show.to_attribute_config(Uint8Array.BYTES_PER_ELEMENT),a_show_next:(t,i)=>i.show.to_attribute_config(2*Uint8Array.BYTES_PER_ELEMENT)},uniforms:{u_canvas_size:t.prop(\"canvas_size\"),u_pixel_ratio:t.prop(\"pixel_ratio\"),u_antialias:t.prop(\"antialias\"),u_line_color:t.prop(\"line_color\"),u_linewidth:t.prop(\"linewidth\"),u_miter_limit:t.prop(\"miter_limit\"),u_line_join:t.prop(\"line_join\"),u_line_cap:t.prop(\"line_cap\")},elements:e,instances:t.prop(\"nsegments\"),blend:{enable:!0,equation:\"max\",func:{srcRGB:1,srcAlpha:1,dstRGB:1,dstAlpha:1}},depth:{enable:!1},scissor:{enable:!0,box:t.prop(\"scissor\")},viewport:t.prop(\"viewport\")};return t(_)}(this._regl,this._line_geometry,this._line_triangles)),this._solid_line}}e.ReglWrapper=u,u.__name__=\"ReglWrapper\"},\n 412: function _(e,t,r,n,a){var i,o;i=this,o=function(){\"use strict\";var e=function(e){return e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof Uint8ClampedArray},t=function(e,t){for(var r=Object.keys(t),n=0;n=0&&(0|e)===e||n(\"invalid parameter type, (\"+e+\")\"+i(t)+\". must be a nonnegative integer\")},oneOf:f,shaderError:function(e,t,n,i,o){if(!e.getShaderParameter(t,e.COMPILE_STATUS)){var f=e.getShaderInfoLog(t),u=i===e.FRAGMENT_SHADER?\"fragment\":\"vertex\";g(n,\"string\",u+\" shader source must be a string\",o);var c=h(n,o),l=function(e){var t=[];return e.split(\"\\n\").forEach((function(e){if(!(e.length<5)){var r=/^ERROR:\\s+(\\d+):(\\d+):\\s*(.*)$/.exec(e);r?t.push(new d(0|r[1],0|r[2],r[3].trim())):e.length>0&&t.push(new d(\"unknown\",0,e))}})),t}(f);!function(e,t){t.forEach((function(t){var r=e[t.file];if(r){var n=r.index[t.line];if(n)return n.errors.push(t),void(r.hasErrors=!0)}e.unknown.hasErrors=!0,e.unknown.lines[0].errors.push(t)}))}(c,l),Object.keys(c).forEach((function(e){var t=c[e];if(t.hasErrors){var n=[\"\"],a=[\"\"];i(\"file number \"+e+\": \"+t.name+\"\\n\",\"color:red;text-decoration:underline;font-weight:bold\"),t.lines.forEach((function(e){if(e.errors.length>0){i(s(e.number,4)+\"| \",\"background-color:yellow; font-weight:bold\"),i(e.line+r,\"color:red; background-color:yellow; font-weight:bold\");var t=0;e.errors.forEach((function(n){var a=n.message,o=/^\\s*'(.*)'\\s*:\\s*(.*)$/.exec(a);if(o){var f=o[1];a=o[2],\"assign\"===f&&(f=\"=\"),t=Math.max(e.line.indexOf(f,t),0)}else t=0;i(s(\"| \",6)),i(s(\"^^^\",t+3)+r,\"font-weight:bold\"),i(s(\"| \",6)),i(a+r,\"font-weight:bold\")})),i(s(\"| \",6)+r)}else i(s(e.number,4)+\"| \"),i(e.line+r,\"color:red\")})),\"undefined\"==typeof document||window.chrome?console.log(n.join(\"\")):(a[0]=n.join(\"%c\"),console.log.apply(console,a))}function i(e,t){n.push(e),a.push(t||\"\")}})),a.raise(\"Error compiling \"+u+\" shader, \"+c[0].name)}},linkError:function(e,t,n,i,o){if(!e.getProgramParameter(t,e.LINK_STATUS)){var f=e.getProgramInfoLog(t),u=h(n,o),s='Error linking program with vertex shader, \"'+h(i,o)[0].name+'\", and fragment shader \"'+u[0].name+'\"';\"undefined\"!=typeof document?console.log(\"%c\"+s+\"\\n%c\"+f,\"color:red;text-decoration:underline;font-weight:bold\",\"color:red\"):console.log(s+r+f),a.raise(s)}},callSite:p,saveCommandRef:b,saveDrawInfo:function(e,t,r,n){function a(e){return e?n.id(e):0}function i(e,t){Object.keys(t).forEach((function(t){e[n.id(t)]=!0}))}b(e),e._fragId=a(e.static.frag),e._vertId=a(e.static.vert);var o=e._uniformSet={};i(o,t.static),i(o,t.dynamic);var f=e._attributeSet={};i(f,r.static),i(f,r.dynamic),e._hasCount=\"count\"in e.static||\"count\"in e.dynamic||\"elements\"in e.static||\"elements\"in e.dynamic},framebufferFormat:function(e,t,r){e.texture?f(e.texture._texture.internalformat,t,\"unsupported texture format for attachment\"):f(e.renderbuffer._renderbuffer.format,r,\"unsupported renderbuffer format for attachment\")},guessCommand:m,texture2D:function(e,t,r){var n,i=t.width,o=t.height,f=t.channels;a(i>0&&i<=r.maxTextureSize&&o>0&&o<=r.maxTextureSize,\"invalid texture shape\"),e.wrapS===y&&e.wrapT===y||a(A(i)&&A(o),\"incompatible wrap mode for texture, both width and height must be power of 2\"),1===t.mipmask?1!==i&&1!==o&&a(9984!==e.minFilter&&9986!==e.minFilter&&9985!==e.minFilter&&9987!==e.minFilter,\"min filter requires mipmap\"):(a(A(i)&&A(o),\"texture must be a square power of 2 to support mipmapping\"),a(t.mipmask===(i<<1)-1,\"missing or incomplete mipmap data\")),5126===t.type&&(r.extensions.indexOf(\"oes_texture_float_linear\")<0&&a(9728===e.minFilter&&9728===e.magFilter,\"filter not supported, must enable oes_texture_float_linear\"),a(!e.genMipmaps,\"mipmap generation not supported with float textures\"));var u=t.images;for(n=0;n<16;++n)if(u[n]){var s=i>>n,c=o>>n;a(t.mipmask&1<0&&i<=n.maxTextureSize&&o>0&&o<=n.maxTextureSize,\"invalid texture shape\"),a(i===o,\"cube map must be square\"),a(t.wrapS===y&&t.wrapT===y,\"wrap mode not supported by cube map\");for(var u=0;u>l,p=o>>l;a(s.mipmask&1<1&&t===r&&('\"'===t||\"'\"===t))return['\"'+O(e.substr(1,e.length-2))+'\"'];var n=/\\[(false|true|null|\\d+|'[^']*'|\"[^\"]*\")\\]/.exec(e);if(n)return E(e.substr(0,n.index)).concat(E(n[1])).concat(E(e.substr(n.index+n[0].length)));var a=e.split(\".\");if(1===a.length)return['\"'+O(e)+'\"'];for(var i=[],o=0;o0,\"invalid pixel ratio\"))):_.raise(\"invalid arguments to regl\"),r&&(\"canvas\"===r.nodeName.toLowerCase()?a=r:n=r),!i){if(!a){_(\"undefined\"!=typeof document,\"must manually specify webgl context outside of DOM environments\");var h=function(e,r,n){var a,i=document.createElement(\"canvas\");function o(){var t=window.innerWidth,r=window.innerHeight;if(e!==document.body){var a=i.getBoundingClientRect();t=a.right-a.left,r=a.bottom-a.top}i.width=n*t,i.height=n*r}return t(i.style,{border:0,margin:0,padding:0,top:0,left:0,width:\"100%\",height:\"100%\"}),e.appendChild(i),e===document.body&&(i.style.position=\"absolute\",t(e.style,{margin:0,padding:0})),e!==document.body&&\"function\"==typeof ResizeObserver?(a=new ResizeObserver((function(){setTimeout(o)}))).observe(e):window.addEventListener(\"resize\",o,!1),o(),{canvas:i,onDestroy:function(){a?a.disconnect():window.removeEventListener(\"resize\",o),e.removeChild(i)}}}(n||document.body,0,l);if(!h)return null;a=h.canvas,p=h.onDestroy}void 0===u.premultipliedAlpha&&(u.premultipliedAlpha=!0),i=function(e,t){function r(r){try{return e.getContext(r,t)}catch(e){return null}}return r(\"webgl\")||r(\"experimental-webgl\")||r(\"webgl-experimental\")}(a,u)}return i?{gl:i,canvas:a,container:n,extensions:s,optionalExtensions:c,pixelRatio:l,profile:d,onDone:m,onDestroy:p}:(p(),m(\"webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org\"),null)}function V(e,t){for(var r=Array(e),n=0;n65535)<<4,t|=r=((e>>>=t)>255)<<3,t|=r=((e>>>=r)>15)<<2,(t|=r=((e>>>=r)>3)<<1)|(e>>>=r)>>1}function P(){var e=V(8,(function(){return[]}));function t(t){var r=function(e){for(var t=16;t<=1<<28;t*=16)if(e<=t)return t;return 0}(t),n=e[I(r)>>2];return n.length>0?n.pop():new ArrayBuffer(r)}function r(t){e[I(t.byteLength)>>2].push(t)}return{alloc:t,free:r,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(e){r(e.buffer)}}}var L=P();L.zero=P();var R=3553,M=6408,W=5126,U=36160;function G(t){return!!t&&\"object\"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&\"number\"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||e(t.data))}var H=function(e){return Object.keys(e).map((function(t){return e[t]}))},N={shape:function(e){for(var t=[],r=e;r.length;r=r[0])t.push(r.length);return t},flatten:function(e,t,r,n){var a=1;if(t.length)for(var i=0;i>>31<<15,i=(n<<1>>>24)-127,o=n>>13&1023;if(i<-24)t[r]=a;else if(i<-14){var f=-14-i;t[r]=a+(o+1024>>f)}else t[r]=i>15?a+31744:a+(i+15<<10)+o}return t}function me(t){return Array.isArray(t)||e(t)}var pe=function(e){return!(e&e-1||!e)},he=3553,be=34067,ve=34069,ge=6408,ye=6406,xe=6407,we=6409,Ae=6410,_e=32855,ke=6402,Se=34041,Oe=35904,Ee=35906,Te=36193,De=33776,je=33777,Ce=33778,ze=33779,Fe=5121,Be=5123,Ve=5125,Ie=5126,Pe=33071,Le=9728,Re=9984,Me=9987,We=4352,Ue=33984,Ge=[Re,9986,9985,Me],He=[0,we,Ae,xe,ge],Ne={};function qe(e){return\"[object \"+e+\"]\"}Ne[6409]=Ne[6406]=Ne[6402]=1,Ne[34041]=Ne[6410]=2,Ne[6407]=Ne[35904]=3,Ne[6408]=Ne[35906]=4;var Qe=qe(\"HTMLCanvasElement\"),Ye=qe(\"OffscreenCanvas\"),Xe=qe(\"CanvasRenderingContext2D\"),$e=qe(\"ImageBitmap\"),Ke=qe(\"HTMLImageElement\"),Je=qe(\"HTMLVideoElement\"),Ze=Object.keys(Y).concat([Qe,Ye,Xe,$e,Ke,Je]),et=[];et[5121]=1,et[5126]=4,et[36193]=2,et[5123]=2,et[5125]=4;var tt=[];function rt(e){return Array.isArray(e)&&(0===e.length||\"number\"==typeof e[0])}function nt(e){return!!Array.isArray(e)&&!(0===e.length||!me(e[0]))}function at(e){return Object.prototype.toString.call(e)}function it(e){return at(e)===Qe}function ot(e){return at(e)===Ye}function ft(e){if(!e)return!1;var t=at(e);return Ze.indexOf(t)>=0||rt(e)||nt(e)||G(e)}function ut(e){return 0|Y[Object.prototype.toString.call(e)]}function st(e,t){return L.allocType(e.type===Te?Ie:e.type,t)}function ct(e,t){e.type===Te?(e.data=de(t),L.freeType(t)):e.data=t}function lt(e,t,r,n,a,i){var o;if(o=void 0!==tt[e]?tt[e]:Ne[e]*et[t],i&&(o*=6),a){for(var f=0,u=r;u>=1;)f+=o*u*u,u/=2;return f}return o*r*n}function dt(r,n,a,i,o,f,u){var s={\"don't care\":We,\"dont care\":We,nice:4354,fast:4353},c={repeat:10497,clamp:Pe,mirror:33648},l={nearest:Le,linear:9729},d=t({mipmap:Me,\"nearest mipmap nearest\":Re,\"linear mipmap nearest\":9985,\"nearest mipmap linear\":9986,\"linear mipmap linear\":Me},l),m={none:0,browser:37444},p={uint8:Fe,rgba4:32819,rgb565:33635,\"rgb5 a1\":32820},h={alpha:ye,luminance:we,\"luminance alpha\":Ae,rgb:xe,rgba:ge,rgba4:32854,\"rgb5 a1\":_e,rgb565:36194},b={};n.ext_srgb&&(h.srgb=Oe,h.srgba=Ee),n.oes_texture_float&&(p.float32=p.float=Ie),n.oes_texture_half_float&&(p.float16=p[\"half float\"]=Te),n.webgl_depth_texture&&(t(h,{depth:ke,\"depth stencil\":Se}),t(p,{uint16:Be,uint32:Ve,\"depth stencil\":34042})),n.webgl_compressed_texture_s3tc&&t(b,{\"rgb s3tc dxt1\":De,\"rgba s3tc dxt1\":je,\"rgba s3tc dxt3\":Ce,\"rgba s3tc dxt5\":ze}),n.webgl_compressed_texture_atc&&t(b,{\"rgb atc\":35986,\"rgba atc explicit alpha\":35987,\"rgba atc interpolated alpha\":34798}),n.webgl_compressed_texture_pvrtc&&t(b,{\"rgb pvrtc 4bppv1\":35840,\"rgb pvrtc 2bppv1\":35841,\"rgba pvrtc 4bppv1\":35842,\"rgba pvrtc 2bppv1\":35843}),n.webgl_compressed_texture_etc1&&(b[\"rgb etc1\"]=36196);var v=Array.prototype.slice.call(r.getParameter(34467));Object.keys(b).forEach((function(e){var t=b[e];v.indexOf(t)>=0&&(h[e]=t)}));var g=Object.keys(h);a.textureFormats=g;var y=[];Object.keys(h).forEach((function(e){var t=h[e];y[t]=e}));var x=[];Object.keys(p).forEach((function(e){var t=p[e];x[t]=e}));var w=[];Object.keys(l).forEach((function(e){w[l[e]]=e}));var A=[];Object.keys(d).forEach((function(e){var t=d[e];A[t]=e}));var k=[];Object.keys(c).forEach((function(e){k[c[e]]=e}));var S=g.reduce((function(e,t){var r=h[t];return r===we||r===ye||r===we||r===Ae||r===ke||r===Se||n.ext_srgb&&(r===Oe||r===Ee)?e[r]=r:r===_e||t.indexOf(\"rgba\")>=0?e[r]=ge:e[r]=xe,e}),{});function O(){this.internalformat=ge,this.format=ge,this.type=Fe,this.compressed=!1,this.premultiplyAlpha=!1,this.flipY=!1,this.unpackAlignment=1,this.colorSpace=37444,this.width=0,this.height=0,this.channels=0}function E(e,t){e.internalformat=t.internalformat,e.format=t.format,e.type=t.type,e.compressed=t.compressed,e.premultiplyAlpha=t.premultiplyAlpha,e.flipY=t.flipY,e.unpackAlignment=t.unpackAlignment,e.colorSpace=t.colorSpace,e.width=t.width,e.height=t.height,e.channels=t.channels}function T(e,t){if(\"object\"==typeof t&&t){if(\"premultiplyAlpha\"in t&&(_.type(t.premultiplyAlpha,\"boolean\",\"invalid premultiplyAlpha\"),e.premultiplyAlpha=t.premultiplyAlpha),\"flipY\"in t&&(_.type(t.flipY,\"boolean\",\"invalid texture flip\"),e.flipY=t.flipY),\"alignment\"in t&&(_.oneOf(t.alignment,[1,2,4,8],\"invalid texture unpack alignment\"),e.unpackAlignment=t.alignment),\"colorSpace\"in t&&(_.parameter(t.colorSpace,m,\"invalid colorSpace\"),e.colorSpace=m[t.colorSpace]),\"type\"in t){var r=t.type;_(n.oes_texture_float||!(\"float\"===r||\"float32\"===r),\"you must enable the OES_texture_float extension in order to use floating point textures.\"),_(n.oes_texture_half_float||!(\"half float\"===r||\"float16\"===r),\"you must enable the OES_texture_half_float extension in order to use 16-bit floating point textures.\"),_(n.webgl_depth_texture||!(\"uint16\"===r||\"uint32\"===r||\"depth stencil\"===r),\"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures.\"),_.parameter(r,p,\"invalid texture type\"),e.type=p[r]}var i=e.width,o=e.height,f=e.channels,u=!1;\"shape\"in t?(_(Array.isArray(t.shape)&&t.shape.length>=2,\"shape must be an array\"),i=t.shape[0],o=t.shape[1],3===t.shape.length&&(f=t.shape[2],_(f>0&&f<=4,\"invalid number of channels\"),u=!0),_(i>=0&&i<=a.maxTextureSize,\"invalid width\"),_(o>=0&&o<=a.maxTextureSize,\"invalid height\")):(\"radius\"in t&&(i=o=t.radius,_(i>=0&&i<=a.maxTextureSize,\"invalid radius\")),\"width\"in t&&(i=t.width,_(i>=0&&i<=a.maxTextureSize,\"invalid width\")),\"height\"in t&&(o=t.height,_(o>=0&&o<=a.maxTextureSize,\"invalid height\")),\"channels\"in t&&(f=t.channels,_(f>0&&f<=4,\"invalid number of channels\"),u=!0)),e.width=0|i,e.height=0|o,e.channels=0|f;var s=!1;if(\"format\"in t){var c=t.format;_(n.webgl_depth_texture||!(\"depth\"===c||\"depth stencil\"===c),\"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures.\"),_.parameter(c,h,\"invalid texture format\");var l=e.internalformat=h[c];e.format=S[l],c in p&&(\"type\"in t||(e.type=p[c])),c in b&&(e.compressed=!0),s=!0}!u&&s?e.channels=Ne[e.format]:u&&!s?e.channels!==He[e.format]&&(e.format=e.internalformat=He[e.channels]):s&&u&&_(e.channels===Ne[e.format],\"number of channels inconsistent with specified format\")}}function D(e){r.pixelStorei(37440,e.flipY),r.pixelStorei(37441,e.premultiplyAlpha),r.pixelStorei(37443,e.colorSpace),r.pixelStorei(3317,e.unpackAlignment)}function j(){O.call(this),this.xOffset=0,this.yOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function C(t,r){var n=null;if(ft(r)?n=r:r&&(_.type(r,\"object\",\"invalid pixel data type\"),T(t,r),\"x\"in r&&(t.xOffset=0|r.x),\"y\"in r&&(t.yOffset=0|r.y),ft(r.data)&&(n=r.data)),_(!t.compressed||n instanceof Uint8Array,\"compressed texture data must be stored in a uint8array\"),r.copy){_(!n,\"can not specify copy and data field for the same texture\");var i=o.viewportWidth,f=o.viewportHeight;t.width=t.width||i-t.xOffset,t.height=t.height||f-t.yOffset,t.needsCopy=!0,_(t.xOffset>=0&&t.xOffset=0&&t.yOffset0&&t.width<=i&&t.height>0&&t.height<=f,\"copy texture read out of bounds\")}else if(n){if(e(n))t.channels=t.channels||4,t.data=n,\"type\"in r||t.type!==Fe||(t.type=ut(n));else if(rt(n))t.channels=t.channels||4,function(e,t){var r=t.length;switch(e.type){case Fe:case Be:case Ve:case Ie:var n=L.allocType(e.type,r);n.set(t),e.data=n;break;case Te:e.data=de(t);break;default:_.raise(\"unsupported texture type, must specify a typed array\")}}(t,n),t.alignment=1,t.needsFree=!0;else if(G(n)){var u=n.data;Array.isArray(u)||t.type!==Fe||(t.type=ut(u));var s,c,l,d,m,p,h=n.shape,b=n.stride;3===h.length?(l=h[2],p=b[2]):(_(2===h.length,\"invalid ndarray pixel data, must be 2 or 3D\"),l=1,p=1),s=h[0],c=h[1],d=b[0],m=b[1],t.alignment=1,t.width=s,t.height=c,t.channels=l,t.format=t.internalformat=He[l],t.needsFree=!0,function(e,t,r,n,a,i){for(var o=e.width,f=e.height,u=e.channels,s=st(e,o*f*u),c=0,l=0;l=0,\"oes_texture_float extension not enabled\"):t.type===Te&&_(a.extensions.indexOf(\"oes_texture_half_float\")>=0,\"oes_texture_half_float extension not enabled\")}function z(e,t,n){var a=e.element,o=e.data,f=e.internalformat,u=e.format,s=e.type,c=e.width,l=e.height;D(e),a?r.texImage2D(t,n,u,u,s,a):e.compressed?r.compressedTexImage2D(t,n,f,c,l,0,o):e.needsCopy?(i(),r.copyTexImage2D(t,n,u,e.xOffset,e.yOffset,c,l,0)):r.texImage2D(t,n,u,c,l,0,u,s,o||null)}function F(e,t,n,a,o){var f=e.element,u=e.data,s=e.internalformat,c=e.format,l=e.type,d=e.width,m=e.height;D(e),f?r.texSubImage2D(t,o,n,a,c,l,f):e.compressed?r.compressedTexSubImage2D(t,o,n,a,s,d,m,u):e.needsCopy?(i(),r.copyTexSubImage2D(t,o,n,a,e.xOffset,e.yOffset,d,m)):r.texSubImage2D(t,o,n,a,d,m,c,l,u)}var B=[];function V(){return B.pop()||new j}function I(e){e.needsFree&&L.freeType(e.data),j.call(e),B.push(e)}function P(){O.call(this),this.genMipmaps=!1,this.mipmapHint=We,this.mipmask=0,this.images=Array(16)}function R(e,t,r){var n=e.images[0]=V();e.mipmask=1,n.width=e.width=t,n.height=e.height=r,n.channels=e.channels=4}function M(e,t){var r=null;if(ft(t))E(r=e.images[0]=V(),e),C(r,t),e.mipmask=1;else if(T(e,t),Array.isArray(t.mipmap))for(var n=t.mipmap,a=0;a>=a,r.height>>=a,C(r,n[a]),e.mipmask|=1<=0&&!(\"faces\"in t)&&(e.genMipmaps=!0)}if(\"mag\"in t){var n=t.mag;_.parameter(n,l),e.magFilter=l[n]}var i=e.wrapS,o=e.wrapT;if(\"wrap\"in t){var f=t.wrap;\"string\"==typeof f?(_.parameter(f,c),i=o=c[f]):Array.isArray(f)&&(_.parameter(f[0],c),_.parameter(f[1],c),i=c[f[0]],o=c[f[1]])}else{if(\"wrapS\"in t){var u=t.wrapS;_.parameter(u,c),i=c[u]}if(\"wrapT\"in t){var m=t.wrapT;_.parameter(m,c),o=c[m]}}if(e.wrapS=i,e.wrapT=o,\"anisotropic\"in t){var p=t.anisotropic;_(\"number\"==typeof p&&p>=1&&p<=a.maxAnisotropic,\"aniso samples must be between 1 and \"),e.anisotropic=t.anisotropic}if(\"mipmap\"in t){var h=!1;switch(typeof t.mipmap){case\"string\":_.parameter(t.mipmap,s,\"invalid mipmap hint\"),e.mipmapHint=s[t.mipmap],e.genMipmaps=!0,h=!0;break;case\"boolean\":h=e.genMipmaps=t.mipmap;break;case\"object\":_(Array.isArray(t.mipmap),\"invalid mipmap type\"),e.genMipmaps=!1,h=!0;break;default:_.raise(\"invalid mipmap type\")}h&&!(\"min\"in t)&&(e.minFilter=Re)}}function $(e,t){r.texParameteri(t,10241,e.minFilter),r.texParameteri(t,10240,e.magFilter),r.texParameteri(t,10242,e.wrapS),r.texParameteri(t,10243,e.wrapT),n.ext_texture_filter_anisotropic&&r.texParameteri(t,34046,e.anisotropic),e.genMipmaps&&(r.hint(33170,e.mipmapHint),r.generateMipmap(t))}var K=0,J={},Z=a.maxTextureUnits,ee=Array(Z).map((function(){return null}));function te(e){O.call(this),this.mipmask=0,this.internalformat=ge,this.id=K++,this.refCount=1,this.target=e,this.texture=r.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new Y,u.profile&&(this.stats={size:0})}function re(e){r.activeTexture(Ue),r.bindTexture(e.target,e.texture)}function ne(){var e=ee[0];e?r.bindTexture(e.target,e.texture):r.bindTexture(he,null)}function ae(e){var t=e.texture;_(t,\"must not double destroy texture\");var n=e.unit,a=e.target;n>=0&&(r.activeTexture(Ue+n),r.bindTexture(a,null),ee[n]=null),r.deleteTexture(t),e.texture=null,e.params=null,e.pixels=null,e.refCount=0,delete J[e.id],f.textureCount--}return t(te.prototype,{bind:function(){var e=this;e.bindCount+=1;var t=e.unit;if(t<0){for(var n=0;n0)continue;a.unit=-1}ee[n]=e,t=n;break}t>=Z&&_.raise(\"insufficient number of texture units\"),u.profile&&f.maxTextureUnits>u)-o,s.height=s.height||(n.height>>u)-f,_(n.type===s.type&&n.format===s.format&&n.internalformat===s.internalformat,\"incompatible format for texture.subimage\"),_(o>=0&&f>=0&&o+s.width<=n.width&&f+s.height<=n.height,\"texture.subimage write out of bounds\"),_(n.mipmask&1<>f;++f){var s=a>>f,c=o>>f;if(!s||!c)break;r.texImage2D(he,f,n.format,s,c,0,n.format,n.type,null)}return ne(),u.profile&&(n.stats.size=lt(n.internalformat,n.type,a,o,!1,!1)),i},i._reglType=\"texture2d\",i._texture=n,u.profile&&(i.stats=n.stats),i.destroy=function(){n.decRef()},i},createCube:function(e,t,n,i,o,s){var c=new te(be);J[c.id]=c,f.cubeCount++;var l=new Array(6);function d(e,t,r,n,i,o){var f,s=c.texInfo;for(Y.call(s),f=0;f<6;++f)l[f]=q();if(\"number\"!=typeof e&&e)if(\"object\"==typeof e)if(t)M(l[0],e),M(l[1],t),M(l[2],r),M(l[3],n),M(l[4],i),M(l[5],o);else if(X(s,e),T(c,e),\"faces\"in e){var m=e.faces;for(_(Array.isArray(m)&&6===m.length,\"cube faces must be a length 6 array\"),f=0;f<6;++f)_(\"object\"==typeof m[f]&&!!m[f],\"invalid input for cube map face\"),E(l[f],c),M(l[f],m[f])}else for(f=0;f<6;++f)M(l[f],e);else _.raise(\"invalid arguments to cube map\");else{var p=0|e||1;for(f=0;f<6;++f)R(l[f],p,p)}for(E(c,l[0]),_.optional((function(){a.npotTextureCube||_(pe(c.width)&&pe(c.height),\"your browser does not support non power or two texture dimensions\")})),s.genMipmaps?c.mipmask=(l[0].width<<1)-1:c.mipmask=l[0].mipmask,_.textureCube(c,s,l,a),c.internalformat=l[0].internalformat,d.width=l[0].width,d.height=l[0].height,re(c),f=0;f<6;++f)W(l[f],ve+f);for($(s,be),ne(),u.profile&&(c.stats.size=lt(c.internalformat,c.type,d.width,d.height,s.genMipmaps,!0)),d.format=y[c.internalformat],d.type=x[c.type],d.mag=w[s.magFilter],d.min=A[s.minFilter],d.wrapS=k[s.wrapS],d.wrapT=k[s.wrapT],f=0;f<6;++f)Q(l[f]);return d}return d(e,t,n,i,o,s),d.subimage=function(e,t,r,n,a){_(!!t,\"must specify image data\"),_(\"number\"==typeof e&&e===(0|e)&&e>=0&&e<6,\"invalid face\");var i=0|r,o=0|n,f=0|a,u=V();return E(u,c),u.width=0,u.height=0,C(u,t),u.width=u.width||(c.width>>f)-i,u.height=u.height||(c.height>>f)-o,_(c.type===u.type&&c.format===u.format&&c.internalformat===u.internalformat,\"incompatible format for texture.subimage\"),_(i>=0&&o>=0&&i+u.width<=c.width&&o+u.height<=c.height,\"texture.subimage write out of bounds\"),_(c.mipmask&1<>a;++a)r.texImage2D(ve+n,a,c.format,t>>a,t>>a,0,c.format,c.type,null);return ne(),u.profile&&(c.stats.size=lt(c.internalformat,c.type,d.width,d.height,!1,!0)),d}},d._reglType=\"textureCube\",d._texture=c,u.profile&&(d.stats=c.stats),d.destroy=function(){c.decRef()},d},clear:function(){for(var e=0;e>t,e.height>>t,0,e.internalformat,e.type,null);else for(var n=0;n<6;++n)r.texImage2D(ve+n,t,e.internalformat,e.width>>t,e.height>>t,0,e.internalformat,e.type,null);$(e.texInfo,e.target)}))},refresh:function(){for(var e=0;e=0&&c=0&&l0&&d+c<=a.framebufferWidth,\"invalid width for read pixels\"),_(m>0&&m+l<=a.framebufferHeight,\"invalid height for read pixels\"),n();var h=d*m*4;return p||(s===Dt?p=new Uint8Array(h):s===jt&&(p=p||new Float32Array(h))),_.isTypedArray(p,\"data buffer for regl.read() must be a typedarray\"),_(p.byteLength>=h,\"data buffer for regl.read() too small\"),t.pixelStorei(3333,4),t.readPixels(c,l,d,m,6408,s,p),p}return function(e){return e&&\"framebuffer\"in e?function(e){var t;return r.setFBO({framebuffer:e.framebuffer},(function(){t=u(e)})),t}(e):u(e)}}function zt(e){return Array.prototype.slice.call(e)}function Ft(e){return zt(e).join(\"\")}var Bt=\"xyzw\".split(\"\"),Vt=\"dither\",It=\"blend.enable\",Pt=\"blend.color\",Lt=\"blend.equation\",Rt=\"blend.func\",Mt=\"depth.enable\",Wt=\"depth.func\",Ut=\"depth.range\",Gt=\"depth.mask\",Ht=\"colorMask\",Nt=\"cull.enable\",qt=\"cull.face\",Qt=\"frontFace\",Yt=\"lineWidth\",Xt=\"polygonOffset.enable\",$t=\"polygonOffset.offset\",Kt=\"sample.alpha\",Jt=\"sample.enable\",Zt=\"sample.coverage\",er=\"stencil.enable\",tr=\"stencil.mask\",rr=\"stencil.func\",nr=\"stencil.opFront\",ar=\"stencil.opBack\",ir=\"scissor.enable\",or=\"scissor.box\",fr=\"viewport\",ur=\"profile\",sr=\"framebuffer\",cr=\"vert\",lr=\"frag\",dr=\"elements\",mr=\"primitive\",pr=\"count\",hr=\"offset\",br=\"instances\",vr=\"vao\",gr=\"Width\",yr=\"Height\",xr=sr+gr,wr=sr+yr,Ar=\"drawingBufferWidth\",_r=\"drawingBufferHeight\",kr=[Rt,Lt,rr,nr,ar,Zt,fr,or,$t],Sr=34962,Or=34963,Er=5126,Tr=35664,Dr=35665,jr=35666,Cr=5124,zr=35667,Fr=35668,Br=35669,Vr=35670,Ir=35671,Pr=35672,Lr=35673,Rr=35674,Mr=35675,Wr=35676,Ur=35678,Gr=35680,Hr=1028,Nr=1029,qr=2305,Qr=7680,Yr={0:0,1:1,zero:0,one:1,\"src color\":768,\"one minus src color\":769,\"src alpha\":770,\"one minus src alpha\":771,\"dst color\":774,\"one minus dst color\":775,\"dst alpha\":772,\"one minus dst alpha\":773,\"constant color\":32769,\"one minus constant color\":32770,\"constant alpha\":32771,\"one minus constant alpha\":32772,\"src alpha saturate\":776},Xr=[\"constant color, constant alpha\",\"one minus constant color, constant alpha\",\"constant color, one minus constant alpha\",\"one minus constant color, one minus constant alpha\",\"constant alpha, constant color\",\"constant alpha, one minus constant color\",\"one minus constant alpha, constant color\",\"one minus constant alpha, one minus constant color\"],$r={never:512,less:513,\"<\":513,equal:514,\"=\":514,\"==\":514,\"===\":514,lequal:515,\"<=\":515,greater:516,\">\":516,notequal:517,\"!=\":517,\"!==\":517,gequal:518,\">=\":518,always:519},Kr={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,\"increment wrap\":34055,\"decrement wrap\":34056,invert:5386},Jr={frag:35632,vert:35633},Zr={cw:2304,ccw:qr};function en(t){return Array.isArray(t)||e(t)||G(t)}function tn(e){return e.sort((function(e,t){return e===fr?-1:t===fr?1:e=1,n>=2,t)}if(4===r){var a=e.data;return new rn(a.thisDep,a.contextDep,a.propDep,t)}if(5===r)return new rn(!1,!1,!1,t);if(6===r){for(var i=!1,o=!1,f=!1,u=0;u=1&&(o=!0),c>=2&&(f=!0)}else 4===s.type&&(i=i||s.data.thisDep,o=o||s.data.contextDep,f=f||s.data.propDep)}return new rn(i,o,f,t)}return new rn(3===r,2===r,1===r,t)}var fn=new rn(!1,!1,!1,(function(){}));function un(e,r,n,a,i,o,f,u,s,c,l,d,m,p,h){var b=c.Record,v={add:32774,subtract:32778,\"reverse subtract\":32779};n.ext_blend_minmax&&(v.min=32775,v.max=32776);var g=n.angle_instanced_arrays,y=n.webgl_draw_buffers,x=n.oes_vertex_array_object,w={dirty:!0,profile:h.profile},A={},k=[],S={},O={};function E(e){return e.replace(\".\",\"_\")}function T(e,t,r){var n=E(e);k.push(e),A[n]=w[n]=!!r,S[n]=t}function j(e,t,r){var n=E(e);k.push(e),Array.isArray(r)?(w[n]=r.slice(),A[n]=r.slice()):w[n]=A[n]=r,O[n]=t}T(Vt,3024),T(It,3042),j(Pt,\"blendColor\",[0,0,0,0]),j(Lt,\"blendEquationSeparate\",[32774,32774]),j(Rt,\"blendFuncSeparate\",[1,0,1,0]),T(Mt,2929,!0),j(Wt,\"depthFunc\",513),j(Ut,\"depthRange\",[0,1]),j(Gt,\"depthMask\",!0),j(Ht,Ht,[!0,!0,!0,!0]),T(Nt,2884),j(qt,\"cullFace\",Nr),j(Qt,Qt,qr),j(Yt,Yt,1),T(Xt,32823),j($t,\"polygonOffset\",[0,0]),T(Kt,32926),T(Jt,32928),j(Zt,\"sampleCoverage\",[1,!1]),T(er,2960),j(tr,\"stencilMask\",-1),j(rr,\"stencilFunc\",[519,0,-1]),j(nr,\"stencilOpSeparate\",[Hr,Qr,Qr,Qr]),j(ar,\"stencilOpSeparate\",[Nr,Qr,Qr,Qr]),T(ir,3089),j(or,\"scissor\",[0,0,e.drawingBufferWidth,e.drawingBufferHeight]),j(fr,fr,[0,0,e.drawingBufferWidth,e.drawingBufferHeight]);var C={gl:e,context:m,strings:r,next:A,current:w,draw:d,elements:o,buffer:i,shader:l,attributes:c.state,vao:c,uniforms:s,framebuffer:u,extensions:n,timer:p,isBufferArgs:en},z={primTypes:ie,compareFuncs:$r,blendFuncs:Yr,blendEquations:v,stencilOps:Kr,glTypes:X,orientationType:Zr};_.optional((function(){C.isArrayLike=me})),y&&(z.backBuffer=[Nr],z.drawBuffer=V(a.maxDrawbuffers,(function(e){return 0===e?[0]:V(e,(function(e){return 36064+e}))})));var F=0;function B(){var e=function(){var e=0,r=[],n=[];function a(){var r=[],n=[];return t((function(){r.push.apply(r,zt(arguments))}),{def:function(){var t=\"v\"+e++;return n.push(t),arguments.length>0&&(r.push(t,\"=\"),r.push.apply(r,zt(arguments)),r.push(\";\")),t},toString:function(){return Ft([n.length>0?\"var \"+n.join(\",\")+\";\":\"\",Ft(r)])}})}function i(){var e=a(),r=a(),n=e.toString,i=r.toString;function o(t,n){r(t,n,\"=\",e.def(t,n),\";\")}return t((function(){e.apply(e,zt(arguments))}),{def:e.def,entry:e,exit:r,save:o,set:function(t,r,n){o(t,r),e(t,r,\"=\",n,\";\")},toString:function(){return n()+i()}})}var o=a(),f={};return{global:o,link:function(t){for(var a=0;a=0,'unknown parameter \"'+t+'\"',d.commandStr)}))}t(m),t(p)}));var h=function(e,t){var r=e.static;if(\"string\"==typeof r[lr]&&\"string\"==typeof r[cr]){if(Object.keys(t.dynamic).length>0)return null;var n=t.static,a=Object.keys(n);if(a.length>0&&\"number\"==typeof n[a[0]]){for(var i=[],o=0;o=0,\"invalid \"+e,r.commandStr)):u=!1,\"height\"in i?(f=0|i.height,_.command(f>=0,\"invalid \"+e,r.commandStr)):u=!1,new rn(!u&&t&&t.thisDep,!u&&t&&t.contextDep,!u&&t&&t.propDep,(function(e,t){var r=e.shared.context,n=o;\"width\"in i||(n=t.def(r,\".\",xr,\"-\",s));var a=f;return\"height\"in i||(a=t.def(r,\".\",wr,\"-\",c)),[s,c,n,a]}))}if(e in a){var l=a[e],d=on(l,(function(t,r){var n=t.invoke(r,l);_.optional((function(){t.assert(r,n+\"&&typeof \"+n+'===\"object\"',\"invalid \"+e)}));var a=t.shared.context,i=r.def(n,\".x|0\"),o=r.def(n,\".y|0\"),f=r.def('\"width\" in ',n,\"?\",n,\".width|0:\",\"(\",a,\".\",xr,\"-\",i,\")\"),u=r.def('\"height\" in ',n,\"?\",n,\".height|0:\",\"(\",a,\".\",wr,\"-\",o,\")\");return _.optional((function(){t.assert(r,f+\">=0&&\"+u+\">=0\",\"invalid \"+e)})),[i,o,f,u]}));return t&&(d.thisDep=d.thisDep||t.thisDep,d.contextDep=d.contextDep||t.contextDep,d.propDep=d.propDep||t.propDep),d}return t?new rn(t.thisDep,t.contextDep,t.propDep,(function(e,t){var r=e.shared.context;return[0,0,t.def(r,\".\",xr),t.def(r,\".\",wr)]})):null}var o=i(fr);if(o){var f=o;o=new rn(o.thisDep,o.contextDep,o.propDep,(function(e,t){var r=f.append(e,t),n=e.shared.context;return t.set(n,\".viewportWidth\",r[2]),t.set(n,\".viewportHeight\",r[3]),r}))}return{viewport:o,scissor_box:i(or)}}(e,y,d),w=function(e,t){var r=e.static,n=e.dynamic,a={},i=!1,f=function(){if(vr in r){var e=r[vr];return null!==e&&null===c.getVAO(e)&&(e=c.createVAO(e)),i=!0,a.vao=e,an((function(t){var r=c.getVAO(e);return r?t.link(r):\"null\"}))}if(vr in n){i=!0;var t=n[vr];return on(t,(function(e,r){var n=e.invoke(r,t);return r.def(e.shared.vao+\".getVAO(\"+n+\")\")}))}return null}(),u=!1,s=function(){if(dr in r){var e=r[dr];if(a.elements=e,en(e)){var s=a.elements=o.create(e,!0);e=o.getElements(s),u=!0}else e&&(e=o.getElements(e),u=!0,_.command(e,\"invalid elements\",t.commandStr));var c=an((function(t,r){if(e){var n=t.link(e);return t.ELEMENTS=n,n}return t.ELEMENTS=null,null}));return c.value=e,c}if(dr in n){u=!0;var l=n[dr];return on(l,(function(e,t){var r=e.shared,n=r.isBufferArgs,a=r.elements,i=e.invoke(t,l),o=t.def(\"null\"),f=t.def(n,\"(\",i,\")\"),u=e.cond(f).then(o,\"=\",a,\".createStream(\",i,\");\").else(o,\"=\",a,\".getElements(\",i,\");\");return _.optional((function(){e.assert(u.else,\"!\"+i+\"||\"+o,\"invalid elements\")})),t.entry(u),t.exit(e.cond(f).then(a,\".destroyStream(\",o,\");\")),e.ELEMENTS=o,o}))}return i?new rn(f.thisDep,f.contextDep,f.propDep,(function(e,t){return t.def(e.shared.vao+\".currentVAO?\"+e.shared.elements+\".getElements(\"+e.shared.vao+\".currentVAO.elements):null\")})):null}();function l(e,o){if(e in r){var s=0|r[e];return o?a.offset=s:a.instances=s,_.command(!o||s>=0,\"invalid \"+e,t.commandStr),an((function(e,t){return o&&(e.OFFSET=s),s}))}if(e in n){var c=n[e];return on(c,(function(t,r){var n=t.invoke(r,c);return o&&(t.OFFSET=n,_.optional((function(){t.assert(r,n+\">=0\",\"invalid \"+e)}))),n}))}if(o){if(u)return an((function(e,t){return e.OFFSET=0,0}));if(i)return new rn(f.thisDep,f.contextDep,f.propDep,(function(e,t){return t.def(e.shared.vao+\".currentVAO?\"+e.shared.vao+\".currentVAO.offset:0\")}))}else if(i)return new rn(f.thisDep,f.contextDep,f.propDep,(function(e,t){return t.def(e.shared.vao+\".currentVAO?\"+e.shared.vao+\".currentVAO.instances:-1\")}));return null}var d=l(hr,!0),m=function(){if(mr in r){var e=r[mr];return a.primitive=e,_.commandParameter(e,ie,\"invalid primitve\",t.commandStr),an((function(t,r){return ie[e]}))}if(mr in n){var o=n[mr];return on(o,(function(e,t){var r=e.constants.primTypes,n=e.invoke(t,o);return _.optional((function(){e.assert(t,n+\" in \"+r,\"invalid primitive, must be one of \"+Object.keys(ie))})),t.def(r,\"[\",n,\"]\")}))}return u?nn(s)?s.value?an((function(e,t){return t.def(e.ELEMENTS,\".primType\")})):an((function(){return 4})):new rn(s.thisDep,s.contextDep,s.propDep,(function(e,t){var r=e.ELEMENTS;return t.def(r,\"?\",r,\".primType:\",4)})):i?new rn(f.thisDep,f.contextDep,f.propDep,(function(e,t){return t.def(e.shared.vao+\".currentVAO?\"+e.shared.vao+\".currentVAO.primitive:4\")})):null}(),p=function(){if(pr in r){var e=0|r[pr];return a.count=e,_.command(\"number\"==typeof e&&e>=0,\"invalid vertex count\",t.commandStr),an((function(){return e}))}if(pr in n){var o=n[pr];return on(o,(function(e,t){var r=e.invoke(t,o);return _.optional((function(){e.assert(t,\"typeof \"+r+'===\"number\"&&'+r+\">=0&&\"+r+\"===(\"+r+\"|0)\",\"invalid vertex count\")})),r}))}if(u){if(nn(s)){if(s)return d?new rn(d.thisDep,d.contextDep,d.propDep,(function(e,t){var r=t.def(e.ELEMENTS,\".vertCount-\",e.OFFSET);return _.optional((function(){e.assert(t,r+\">=0\",\"invalid vertex offset/element buffer too small\")})),r})):an((function(e,t){return t.def(e.ELEMENTS,\".vertCount\")}));var c=an((function(){return-1}));return _.optional((function(){c.MISSING=!0})),c}var l=new rn(s.thisDep||d.thisDep,s.contextDep||d.contextDep,s.propDep||d.propDep,(function(e,t){var r=e.ELEMENTS;return e.OFFSET?t.def(r,\"?\",r,\".vertCount-\",e.OFFSET,\":-1\"):t.def(r,\"?\",r,\".vertCount:-1\")}));return _.optional((function(){l.DYNAMIC=!0})),l}if(i){var m=new rn(f.thisDep,f.contextDep,f.propDep,(function(e,t){return t.def(e.shared.vao,\".currentVAO?\",e.shared.vao,\".currentVAO.count:-1\")}));return m}return null}(),h=l(br,!1);return{elements:s,primitive:m,count:p,instances:h,offset:d,vao:f,vaoActive:i,elementsActive:u,static:a}}(e,d),A=function(e,t){var r=e.static,n=e.dynamic,i={};return k.forEach((function(e){var o=E(e);function f(t,a){if(e in r){var f=t(r[e]);i[o]=an((function(){return f}))}else if(e in n){var u=n[e];i[o]=on(u,(function(e,t){return a(e,t,e.invoke(t,u))}))}}switch(e){case Nt:case It:case Vt:case er:case Mt:case ir:case Xt:case Kt:case Jt:case Gt:return f((function(r){return _.commandType(r,\"boolean\",e,t.commandStr),r}),(function(t,r,n){return _.optional((function(){t.assert(r,\"typeof \"+n+'===\"boolean\"',\"invalid flag \"+e,t.commandStr)})),n}));case Wt:return f((function(r){return _.commandParameter(r,$r,\"invalid \"+e,t.commandStr),$r[r]}),(function(t,r,n){var a=t.constants.compareFuncs;return _.optional((function(){t.assert(r,n+\" in \"+a,\"invalid \"+e+\", must be one of \"+Object.keys($r))})),r.def(a,\"[\",n,\"]\")}));case Ut:return f((function(e){return _.command(me(e)&&2===e.length&&\"number\"==typeof e[0]&&\"number\"==typeof e[1]&&e[0]<=e[1],\"depth range is 2d array\",t.commandStr),e}),(function(e,t,r){return _.optional((function(){e.assert(t,e.shared.isArrayLike+\"(\"+r+\")&&\"+r+\".length===2&&typeof \"+r+'[0]===\"number\"&&typeof '+r+'[1]===\"number\"&&'+r+\"[0]<=\"+r+\"[1]\",\"depth range must be a 2d array\")})),[t.def(\"+\",r,\"[0]\"),t.def(\"+\",r,\"[1]\")]}));case Rt:return f((function(e){_.commandType(e,\"object\",\"blend.func\",t.commandStr);var r=\"srcRGB\"in e?e.srcRGB:e.src,n=\"srcAlpha\"in e?e.srcAlpha:e.src,a=\"dstRGB\"in e?e.dstRGB:e.dst,i=\"dstAlpha\"in e?e.dstAlpha:e.dst;return _.commandParameter(r,Yr,o+\".srcRGB\",t.commandStr),_.commandParameter(n,Yr,o+\".srcAlpha\",t.commandStr),_.commandParameter(a,Yr,o+\".dstRGB\",t.commandStr),_.commandParameter(i,Yr,o+\".dstAlpha\",t.commandStr),_.command(-1===Xr.indexOf(r+\", \"+a),\"unallowed blending combination (srcRGB, dstRGB) = (\"+r+\", \"+a+\")\",t.commandStr),[Yr[r],Yr[a],Yr[n],Yr[i]]}),(function(t,r,n){var a=t.constants.blendFuncs;function i(i,o){var f=r.def('\"',i,o,'\" in ',n,\"?\",n,\".\",i,o,\":\",n,\".\",i);return _.optional((function(){t.assert(r,f+\" in \"+a,\"invalid \"+e+\".\"+i+o+\", must be one of \"+Object.keys(Yr))})),f}_.optional((function(){t.assert(r,n+\"&&typeof \"+n+'===\"object\"',\"invalid blend func, must be an object\")}));var o=i(\"src\",\"RGB\"),f=i(\"dst\",\"RGB\");_.optional((function(){var e=t.constants.invalidBlendCombinations;t.assert(r,e+\".indexOf(\"+o+'+\", \"+'+f+\") === -1 \",\"unallowed blending combination for (srcRGB, dstRGB)\")}));var u=r.def(a,\"[\",o,\"]\"),s=r.def(a,\"[\",i(\"src\",\"Alpha\"),\"]\");return[u,r.def(a,\"[\",f,\"]\"),s,r.def(a,\"[\",i(\"dst\",\"Alpha\"),\"]\")]}));case Lt:return f((function(r){return\"string\"==typeof r?(_.commandParameter(r,v,\"invalid \"+e,t.commandStr),[v[r],v[r]]):\"object\"==typeof r?(_.commandParameter(r.rgb,v,e+\".rgb\",t.commandStr),_.commandParameter(r.alpha,v,e+\".alpha\",t.commandStr),[v[r.rgb],v[r.alpha]]):void _.commandRaise(\"invalid blend.equation\",t.commandStr)}),(function(t,r,n){var a=t.constants.blendEquations,i=r.def(),o=r.def(),f=t.cond(\"typeof \",n,'===\"string\"');return _.optional((function(){function r(e,r,n){t.assert(e,n+\" in \"+a,\"invalid \"+r+\", must be one of \"+Object.keys(v))}r(f.then,e,n),t.assert(f.else,n+\"&&typeof \"+n+'===\"object\"',\"invalid \"+e),r(f.else,e+\".rgb\",n+\".rgb\"),r(f.else,e+\".alpha\",n+\".alpha\")})),f.then(i,\"=\",o,\"=\",a,\"[\",n,\"];\"),f.else(i,\"=\",a,\"[\",n,\".rgb];\",o,\"=\",a,\"[\",n,\".alpha];\"),r(f),[i,o]}));case Pt:return f((function(e){return _.command(me(e)&&4===e.length,\"blend.color must be a 4d array\",t.commandStr),V(4,(function(t){return+e[t]}))}),(function(e,t,r){return _.optional((function(){e.assert(t,e.shared.isArrayLike+\"(\"+r+\")&&\"+r+\".length===4\",\"blend.color must be a 4d array\")})),V(4,(function(e){return t.def(\"+\",r,\"[\",e,\"]\")}))}));case tr:return f((function(e){return _.commandType(e,\"number\",o,t.commandStr),0|e}),(function(e,t,r){return _.optional((function(){e.assert(t,\"typeof \"+r+'===\"number\"',\"invalid stencil.mask\")})),t.def(r,\"|0\")}));case rr:return f((function(r){_.commandType(r,\"object\",o,t.commandStr);var n=r.cmp||\"keep\",a=r.ref||0,i=\"mask\"in r?r.mask:-1;return _.commandParameter(n,$r,e+\".cmp\",t.commandStr),_.commandType(a,\"number\",e+\".ref\",t.commandStr),_.commandType(i,\"number\",e+\".mask\",t.commandStr),[$r[n],a,i]}),(function(e,t,r){var n=e.constants.compareFuncs;return _.optional((function(){function a(){e.assert(t,Array.prototype.join.call(arguments,\"\"),\"invalid stencil.func\")}a(r+\"&&typeof \",r,'===\"object\"'),a('!(\"cmp\" in ',r,\")||(\",r,\".cmp in \",n,\")\")})),[t.def('\"cmp\" in ',r,\"?\",n,\"[\",r,\".cmp]\",\":\",Qr),t.def(r,\".ref|0\"),t.def('\"mask\" in ',r,\"?\",r,\".mask|0:-1\")]}));case nr:case ar:return f((function(r){_.commandType(r,\"object\",o,t.commandStr);var n=r.fail||\"keep\",a=r.zfail||\"keep\",i=r.zpass||\"keep\";return _.commandParameter(n,Kr,e+\".fail\",t.commandStr),_.commandParameter(a,Kr,e+\".zfail\",t.commandStr),_.commandParameter(i,Kr,e+\".zpass\",t.commandStr),[e===ar?Nr:Hr,Kr[n],Kr[a],Kr[i]]}),(function(t,r,n){var a=t.constants.stencilOps;function i(i){return _.optional((function(){t.assert(r,'!(\"'+i+'\" in '+n+\")||(\"+n+\".\"+i+\" in \"+a+\")\",\"invalid \"+e+\".\"+i+\", must be one of \"+Object.keys(Kr))})),r.def('\"',i,'\" in ',n,\"?\",a,\"[\",n,\".\",i,\"]:\",Qr)}return _.optional((function(){t.assert(r,n+\"&&typeof \"+n+'===\"object\"',\"invalid \"+e)})),[e===ar?Nr:Hr,i(\"fail\"),i(\"zfail\"),i(\"zpass\")]}));case $t:return f((function(e){_.commandType(e,\"object\",o,t.commandStr);var r=0|e.factor,n=0|e.units;return _.commandType(r,\"number\",o+\".factor\",t.commandStr),_.commandType(n,\"number\",o+\".units\",t.commandStr),[r,n]}),(function(t,r,n){return _.optional((function(){t.assert(r,n+\"&&typeof \"+n+'===\"object\"',\"invalid \"+e)})),[r.def(n,\".factor|0\"),r.def(n,\".units|0\")]}));case qt:return f((function(e){var r=0;return\"front\"===e?r=Hr:\"back\"===e&&(r=Nr),_.command(!!r,o,t.commandStr),r}),(function(e,t,r){return _.optional((function(){e.assert(t,r+'===\"front\"||'+r+'===\"back\"',\"invalid cull.face\")})),t.def(r,'===\"front\"?',Hr,\":\",Nr)}));case Yt:return f((function(e){return _.command(\"number\"==typeof e&&e>=a.lineWidthDims[0]&&e<=a.lineWidthDims[1],\"invalid line width, must be a positive number between \"+a.lineWidthDims[0]+\" and \"+a.lineWidthDims[1],t.commandStr),e}),(function(e,t,r){return _.optional((function(){e.assert(t,\"typeof \"+r+'===\"number\"&&'+r+\">=\"+a.lineWidthDims[0]+\"&&\"+r+\"<=\"+a.lineWidthDims[1],\"invalid line width\")})),r}));case Qt:return f((function(e){return _.commandParameter(e,Zr,o,t.commandStr),Zr[e]}),(function(e,t,r){return _.optional((function(){e.assert(t,r+'===\"cw\"||'+r+'===\"ccw\"',\"invalid frontFace, must be one of cw,ccw\")})),t.def(r+'===\"cw\"?2304:'+qr)}));case Ht:return f((function(e){return _.command(me(e)&&4===e.length,\"color.mask must be length 4 array\",t.commandStr),e.map((function(e){return!!e}))}),(function(e,t,r){return _.optional((function(){e.assert(t,e.shared.isArrayLike+\"(\"+r+\")&&\"+r+\".length===4\",\"invalid color.mask\")})),V(4,(function(e){return\"!!\"+r+\"[\"+e+\"]\"}))}));case Zt:return f((function(e){_.command(\"object\"==typeof e&&e,o,t.commandStr);var r=\"value\"in e?e.value:1,n=!!e.invert;return _.command(\"number\"==typeof r&&r>=0&&r<=1,\"sample.coverage.value must be a number between 0 and 1\",t.commandStr),[r,n]}),(function(e,t,r){return _.optional((function(){e.assert(t,r+\"&&typeof \"+r+'===\"object\"',\"invalid sample.coverage\")})),[t.def('\"value\" in ',r,\"?+\",r,\".value:1\"),t.def(\"!!\",r,\".invert\")]}))}})),i}(e,d),S=function(e,t,n){var a=e.static,i=e.dynamic;function o(e){if(e in a){var t=r.id(a[e]);_.optional((function(){l.shader(Jr[e],t,_.guessCommand())}));var n=an((function(){return t}));return n.id=t,n}if(e in i){var o=i[e];return on(o,(function(t,r){var n=t.invoke(r,o),a=r.def(t.shared.strings,\".id(\",n,\")\");return _.optional((function(){r(t.shared.shader,\".shader(\",Jr[e],\",\",a,\",\",t.command,\");\")})),a}))}return null}var f,u=o(lr),s=o(cr),c=null;return nn(u)&&nn(s)?(c=l.program(s.id,u.id,null,n),f=an((function(e,t){return e.link(c)}))):f=new rn(u&&u.thisDep||s&&s.thisDep,u&&u.contextDep||s&&s.contextDep,u&&u.propDep||s&&s.propDep,(function(e,t){var r,n=e.shared.shader;r=u?u.append(e,t):t.def(n,\".\",lr);var a=n+\".program(\"+(s?s.append(e,t):t.def(n,\".\",cr))+\",\"+r;return _.optional((function(){a+=\",\"+e.command})),t.def(a+\")\")})),{frag:u,vert:s,progVar:f,program:c}}(e,0,h);function O(e){var t=x[e];t&&(A[e]=t)}O(fr),O(E(or));var T=Object.keys(A).length>0,D={framebuffer:y,draw:w,shader:S,state:A,dirty:T,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};if(D.profile=function(e){var t,r=e.static,n=e.dynamic;if(ur in r){var a=!!r[ur];(t=an((function(e,t){return a}))).enable=a}else if(ur in n){var i=n[ur];t=on(i,(function(e,t){return e.invoke(t,i)}))}return t}(e),D.uniforms=function(e,t){var r=e.static,n=e.dynamic,a={};return Object.keys(r).forEach((function(e){var n,i=r[e];if(\"number\"==typeof i||\"boolean\"==typeof i)n=an((function(){return i}));else if(\"function\"==typeof i){var o=i._reglType;\"texture2d\"===o||\"textureCube\"===o?n=an((function(e){return e.link(i)})):\"framebuffer\"===o||\"framebufferCube\"===o?(_.command(i.color.length>0,'missing color attachment for framebuffer sent to uniform \"'+e+'\"',t.commandStr),n=an((function(e){return e.link(i.color[0])}))):_.commandRaise('invalid data for uniform \"'+e+'\"',t.commandStr)}else me(i)?n=an((function(t){return t.global.def(\"[\",V(i.length,(function(r){return _.command(\"number\"==typeof i[r]||\"boolean\"==typeof i[r],\"invalid uniform \"+e,t.commandStr),i[r]})),\"]\")})):_.commandRaise('invalid or missing data for uniform \"'+e+'\"',t.commandStr);n.value=i,a[e]=n})),Object.keys(n).forEach((function(e){var t=n[e];a[e]=on(t,(function(e,r){return e.invoke(r,t)}))})),a}(f,d),D.drawVAO=D.scopeVAO=w.vao,!D.drawVAO&&S.program&&!h&&n.angle_instanced_arrays&&w.static.elements){var j=!0,C=S.program.attributes.map((function(e){var r=t.static[e];return j=j&&!!r,r}));if(j&&C.length>0){var z=c.getVAO(c.createVAO({attributes:C,elements:w.static.elements}));D.drawVAO=new rn(null,null,null,(function(e,t){return e.link(z)})),D.useVAO=!0}}return h?D.useVAO=!0:D.attributes=function(e,t){var n=e.static,a=e.dynamic,o={};return Object.keys(n).forEach((function(e){var a=n[e],f=r.id(e),u=new b;if(en(a))u.state=1,u.buffer=i.getBuffer(i.create(a,Sr,!1,!0)),u.type=0;else{var s=i.getBuffer(a);if(s)u.state=1,u.buffer=s,u.type=0;else if(_.command(\"object\"==typeof a&&a,\"invalid data for attribute \"+e,t.commandStr),\"constant\"in a){var c=a.constant;u.buffer=\"null\",u.state=2,\"number\"==typeof c?u.x=c:(_.command(me(c)&&c.length>0&&c.length<=4,\"invalid constant for attribute \"+e,t.commandStr),Bt.forEach((function(e,t){t=0,'invalid offset for attribute \"'+e+'\"',t.commandStr);var d=0|a.stride;_.command(d>=0&&d<256,'invalid stride for attribute \"'+e+'\", must be integer betweeen [0, 255]',t.commandStr);var m=0|a.size;_.command(!(\"size\"in a)||m>0&&m<=4,'invalid size for attribute \"'+e+'\", must be 1,2,3,4',t.commandStr);var p=!!a.normalized,h=0;\"type\"in a&&(_.commandParameter(a.type,X,\"invalid type for attribute \"+e,t.commandStr),h=X[a.type]);var v=0|a.divisor;_.optional((function(){\"divisor\"in a&&(_.command(0===v||g,'cannot specify divisor for attribute \"'+e+'\", instancing not supported',t.commandStr),_.command(v>=0,'invalid divisor for attribute \"'+e+'\"',t.commandStr));var r=t.commandStr,n=[\"buffer\",\"offset\",\"divisor\",\"normalized\",\"type\",\"size\",\"stride\"];Object.keys(a).forEach((function(t){_.command(n.indexOf(t)>=0,'unknown parameter \"'+t+'\" for attribute pointer \"'+e+'\" (valid parameters are '+n+\")\",r)}))})),u.buffer=s,u.state=1,u.size=m,u.normalized=p,u.type=h||s.dtype,u.offset=l,u.stride=d,u.divisor=v}}o[e]=an((function(e,t){var r=e.attribCache;if(f in r)return r[f];var n={isStream:!1};return Object.keys(u).forEach((function(e){n[e]=u[e]})),u.buffer&&(n.buffer=e.link(u.buffer),n.type=n.type||n.buffer+\".dtype\"),r[f]=n,n}))})),Object.keys(a).forEach((function(e){var t=a[e];o[e]=on(t,(function(r,n){var a=r.invoke(n,t),i=r.shared,o=r.constants,f=i.isBufferArgs,u=i.buffer;_.optional((function(){r.assert(n,a+\"&&(typeof \"+a+'===\"object\"||typeof '+a+'===\"function\")&&('+f+\"(\"+a+\")||\"+u+\".getBuffer(\"+a+\")||\"+u+\".getBuffer(\"+a+\".buffer)||\"+f+\"(\"+a+'.buffer)||(\"constant\" in '+a+\"&&(typeof \"+a+'.constant===\"number\"||'+i.isArrayLike+\"(\"+a+\".constant))))\",'invalid dynamic attribute \"'+e+'\"')}));var s={isStream:n.def(!1)},c=new b;c.state=1,Object.keys(c).forEach((function(e){s[e]=n.def(\"\"+c[e])}));var l=s.buffer,d=s.type;function m(e){n(s[e],\"=\",a,\".\",e,\"|0;\")}return n(\"if(\",f,\"(\",a,\")){\",s.isStream,\"=true;\",l,\"=\",u,\".createStream(\",Sr,\",\",a,\");\",d,\"=\",l,\".dtype;\",\"}else{\",l,\"=\",u,\".getBuffer(\",a,\");\",\"if(\",l,\"){\",d,\"=\",l,\".dtype;\",'}else if(\"constant\" in ',a,\"){\",s.state,\"=\",2,\";\",\"if(typeof \"+a+'.constant === \"number\"){',s[Bt[0]],\"=\",a,\".constant;\",Bt.slice(1).map((function(e){return s[e]})).join(\"=\"),\"=0;\",\"}else{\",Bt.map((function(e,t){return s[e]+\"=\"+a+\".constant.length>\"+t+\"?\"+a+\".constant[\"+t+\"]:0;\"})).join(\"\"),\"}}else{\",\"if(\",f,\"(\",a,\".buffer)){\",l,\"=\",u,\".createStream(\",Sr,\",\",a,\".buffer);\",\"}else{\",l,\"=\",u,\".getBuffer(\",a,\".buffer);\",\"}\",d,'=\"type\" in ',a,\"?\",o.glTypes,\"[\",a,\".type]:\",l,\".dtype;\",s.normalized,\"=!!\",a,\".normalized;\"),m(\"size\"),m(\"offset\"),m(\"stride\"),m(\"divisor\"),n(\"}}\"),n.exit(\"if(\",s.isStream,\"){\",u,\".destroyStream(\",l,\");\",\"}\"),s}))})),o}(t,d),D.context=function(e){var t=e.static,r=e.dynamic,n={};return Object.keys(t).forEach((function(e){var r=t[e];n[e]=an((function(e,t){return\"number\"==typeof r||\"boolean\"==typeof r?\"\"+r:e.link(r)}))})),Object.keys(r).forEach((function(e){var t=r[e];n[e]=on(t,(function(e,r){return e.invoke(r,t)}))})),n}(s),D}function P(e,t,r){var n=e.shared.context,a=e.scope();Object.keys(r).forEach((function(i){t.save(n,\".\"+i);var o=r[i].append(e,t);Array.isArray(o)?a(n,\".\",i,\"=[\",o.join(),\"];\"):a(n,\".\",i,\"=\",o,\";\")})),t(a)}function L(e,t,r,n){var a,i=e.shared,o=i.gl,f=i.framebuffer;y&&(a=t.def(i.extensions,\".webgl_draw_buffers\"));var u,s=e.constants,c=s.drawBuffer,l=s.backBuffer;u=r?r.append(e,t):t.def(f,\".next\"),n||t(\"if(\",u,\"!==\",f,\".cur){\"),t(\"if(\",u,\"){\",o,\".bindFramebuffer(\",36160,\",\",u,\".framebuffer);\"),y&&t(a,\".drawBuffersWEBGL(\",c,\"[\",u,\".colorAttachments.length]);\"),t(\"}else{\",o,\".bindFramebuffer(\",36160,\",null);\"),y&&t(a,\".drawBuffersWEBGL(\",l,\");\"),t(\"}\",f,\".cur=\",u,\";\"),n||t(\"}\")}function R(e,t,r){var n=e.shared,a=n.gl,i=e.current,o=e.next,f=n.current,u=n.next,s=e.cond(f,\".dirty\");k.forEach((function(t){var n,c,l=E(t);if(!(l in r.state))if(l in o){n=o[l],c=i[l];var d=V(w[l].length,(function(e){return s.def(n,\"[\",e,\"]\")}));s(e.cond(d.map((function(e,t){return e+\"!==\"+c+\"[\"+t+\"]\"})).join(\"||\")).then(a,\".\",O[l],\"(\",d,\");\",d.map((function(e,t){return c+\"[\"+t+\"]=\"+e})).join(\";\"),\";\"))}else{n=s.def(u,\".\",l);var m=e.cond(n,\"!==\",f,\".\",l);s(m),l in S?m(e.cond(n).then(a,\".enable(\",S[l],\");\").else(a,\".disable(\",S[l],\");\"),f,\".\",l,\"=\",n,\";\"):m(a,\".\",O[l],\"(\",n,\");\",f,\".\",l,\"=\",n,\";\")}})),0===Object.keys(r.state).length&&s(f,\".dirty=false;\"),t(s)}function M(e,t,r,n){var a=e.shared,i=e.current,o=a.current,f=a.gl;tn(Object.keys(r)).forEach((function(a){var u=r[a];if(!n||n(u)){var s=u.append(e,t);if(S[a]){var c=S[a];nn(u)?t(f,s?\".enable(\":\".disable(\",c,\");\"):t(e.cond(s).then(f,\".enable(\",c,\");\").else(f,\".disable(\",c,\");\")),t(o,\".\",a,\"=\",s,\";\")}else if(me(s)){var l=i[a];t(f,\".\",O[a],\"(\",s,\");\",s.map((function(e,t){return l+\"[\"+t+\"]=\"+e})).join(\";\"),\";\")}else t(f,\".\",O[a],\"(\",s,\");\",o,\".\",a,\"=\",s,\";\")}}))}function W(e,t){g&&(e.instancing=t.def(e.shared.extensions,\".angle_instanced_arrays\"))}function U(e,t,r,n,a){var i,o,f,u=e.shared,s=e.stats,c=u.current,l=u.timer,d=r.profile;function m(){return\"undefined\"==typeof performance?\"Date.now()\":\"performance.now()\"}function h(e){e(i=t.def(),\"=\",m(),\";\"),\"string\"==typeof a?e(s,\".count+=\",a,\";\"):e(s,\".count++;\"),p&&(n?e(o=t.def(),\"=\",l,\".getNumPendingQueries();\"):e(l,\".beginQuery(\",s,\");\"))}function b(e){e(s,\".cpuTime+=\",m(),\"-\",i,\";\"),p&&(n?e(l,\".pushScopeStats(\",o,\",\",l,\".getNumPendingQueries(),\",s,\");\"):e(l,\".endQuery();\"))}function v(e){var r=t.def(c,\".profile\");t(c,\".profile=\",e,\";\"),t.exit(c,\".profile=\",r,\";\")}if(d){if(nn(d))return void(d.enable?(h(t),b(t.exit),v(\"true\")):v(\"false\"));v(f=d.append(e,t))}else f=t.def(c,\".profile\");var g=e.block();h(g),t(\"if(\",f,\"){\",g,\"}\");var y=e.block();b(y),t.exit(\"if(\",f,\"){\",y,\"}\")}function G(e,t,r,n,a){var i=e.shared;n.forEach((function(n){var o,f=n.name,u=r.attributes[f];if(u){if(!a(u))return;o=u.append(e,t)}else{if(!a(fn))return;var s=e.scopeAttrib(f);_.optional((function(){e.assert(t,s+\".state\",\"missing attribute \"+f)})),o={},Object.keys(new b).forEach((function(e){o[e]=t.def(s,\".\",e)}))}!function(r,n,a){var o=i.gl,f=t.def(r,\".location\"),u=t.def(i.attributes,\"[\",f,\"]\"),s=a.state,c=a.buffer,l=[a.x,a.y,a.z,a.w],d=[\"buffer\",\"normalized\",\"offset\",\"stride\"];function m(){t(\"if(!\",u,\".buffer){\",o,\".enableVertexAttribArray(\",f,\");}\");var r,i=a.type;if(r=a.size?t.def(a.size,\"||\",n):n,t(\"if(\",u,\".type!==\",i,\"||\",u,\".size!==\",r,\"||\",d.map((function(e){return u+\".\"+e+\"!==\"+a[e]})).join(\"||\"),\"){\",o,\".bindBuffer(\",Sr,\",\",c,\".buffer);\",o,\".vertexAttribPointer(\",[f,r,i,a.normalized,a.stride,a.offset],\");\",u,\".type=\",i,\";\",u,\".size=\",r,\";\",d.map((function(e){return u+\".\"+e+\"=\"+a[e]+\";\"})).join(\"\"),\"}\"),g){var s=a.divisor;t(\"if(\",u,\".divisor!==\",s,\"){\",e.instancing,\".vertexAttribDivisorANGLE(\",[f,s],\");\",u,\".divisor=\",s,\";}\")}}function p(){t(\"if(\",u,\".buffer){\",o,\".disableVertexAttribArray(\",f,\");\",u,\".buffer=null;\",\"}if(\",Bt.map((function(e,t){return u+\".\"+e+\"!==\"+l[t]})).join(\"||\"),\"){\",o,\".vertexAttrib4f(\",f,\",\",l,\");\",Bt.map((function(e,t){return u+\".\"+e+\"=\"+l[t]+\";\"})).join(\"\"),\"}\")}1===s?m():2===s?p():(t(\"if(\",s,\"===\",1,\"){\"),m(),t(\"}else{\"),p(),t(\"}\"))}(e.link(n),function(e){switch(e){case Tr:case zr:case Ir:return 2;case Dr:case Fr:case Pr:return 3;case jr:case Br:case Lr:return 4;default:return 1}}(n.info.type),o)}))}function H(e,t,n,a,i,o){for(var f,u=e.shared,s=u.gl,c={},l=0;l1){if(!b)continue;var v=m.replace(\"[0]\",\"\");if(c[v])continue;c[v]=1}var g,y=e.link(d)+\".location\";if(b){if(!i(b))continue;if(nn(b)){var x=b.value;if(_.command(null!=x,'missing uniform \"'+m+'\"',e.commandStr),p===Ur||p===Gr){_.command(\"function\"==typeof x&&(p===Ur&&(\"texture2d\"===x._reglType||\"framebuffer\"===x._reglType)||p===Gr&&(\"textureCube\"===x._reglType||\"framebufferCube\"===x._reglType)),\"invalid texture for uniform \"+m,e.commandStr);var w=e.link(x._texture||x.color[0]._texture);t(s,\".uniform1i(\",y,\",\",w+\".bind());\"),t.exit(w,\".unbind();\")}else if(p===Rr||p===Mr||p===Wr){_.optional((function(){_.command(me(x),\"invalid matrix for uniform \"+m,e.commandStr),_.command(p===Rr&&4===x.length||p===Mr&&9===x.length||p===Wr&&16===x.length,\"invalid length for matrix uniform \"+m,e.commandStr)}));var A=e.global.def(\"new Float32Array([\"+Array.prototype.slice.call(x)+\"])\"),k=2;p===Mr?k=3:p===Wr&&(k=4),t(s,\".uniformMatrix\",k,\"fv(\",y,\",false,\",A,\");\")}else{switch(p){case Er:1===h?_.commandType(x,\"number\",\"uniform \"+m,e.commandStr):_.command(me(x)&&x.length===h,\"uniform \"+m,e.commandStr),f=\"1f\";break;case Tr:_.command(me(x)&&x.length&&x.length%2==0&&x.length<=2*h,\"uniform \"+m,e.commandStr),f=\"2f\";break;case Dr:_.command(me(x)&&x.length&&x.length%3==0&&x.length<=3*h,\"uniform \"+m,e.commandStr),f=\"3f\";break;case jr:_.command(me(x)&&x.length&&x.length%4==0&&x.length<=4*h,\"uniform \"+m,e.commandStr),f=\"4f\";break;case Vr:1===h?_.commandType(x,\"boolean\",\"uniform \"+m,e.commandStr):_.command(me(x)&&x.length===h,\"uniform \"+m,e.commandStr),f=\"1i\";break;case Cr:1===h?_.commandType(x,\"number\",\"uniform \"+m,e.commandStr):_.command(me(x)&&x.length===h,\"uniform \"+m,e.commandStr),f=\"1i\";break;case Ir:case zr:_.command(me(x)&&x.length&&x.length%2==0&&x.length<=2*h,\"uniform \"+m,e.commandStr),f=\"2i\";break;case Pr:case Fr:_.command(me(x)&&x.length&&x.length%3==0&&x.length<=3*h,\"uniform \"+m,e.commandStr),f=\"3i\";break;case Lr:case Br:_.command(me(x)&&x.length&&x.length%4==0&&x.length<=4*h,\"uniform \"+m,e.commandStr),f=\"4i\"}h>1?(f+=\"v\",x=e.global.def(\"[\"+Array.prototype.slice.call(x)+\"]\")):x=me(x)?Array.prototype.slice.call(x):x,t(s,\".uniform\",f,\"(\",y,\",\",x,\");\")}continue}g=b.append(e,t)}else{if(!i(fn))continue;g=t.def(u.uniforms,\"[\",r.id(m),\"]\")}p===Ur?(_(!Array.isArray(g),\"must specify a scalar prop for textures\"),t(\"if(\",g,\"&&\",g,'._reglType===\"framebuffer\"){',g,\"=\",g,\".color[0];\",\"}\")):p===Gr&&(_(!Array.isArray(g),\"must specify a scalar prop for cube maps\"),t(\"if(\",g,\"&&\",g,'._reglType===\"framebufferCube\"){',g,\"=\",g,\".color[0];\",\"}\")),_.optional((function(){function r(r,n){e.assert(t,r,'bad data or missing for uniform \"'+m+'\". '+n)}function n(e,t){1===t&&_(!Array.isArray(g),\"must not specify an array type for uniform\"),r(\"Array.isArray(\"+g+\") && typeof \"+g+'[0]===\" '+e+'\" || typeof '+g+'===\"'+e+'\"',\"invalid type, expected \"+e)}function a(t,n,a){Array.isArray(g)?_(g.length&&g.length%t==0&&g.length<=t*a,\"must have length of \"+(1===a?\"\":\"n * \")+t):r(u.isArrayLike+\"(\"+g+\")&&\"+g+\".length && \"+g+\".length % \"+t+\" === 0 && \"+g+\".length<=\"+t*a,\"invalid vector, should have length of \"+(1===a?\"\":\"n * \")+t,e.commandStr)}function i(t){_(!Array.isArray(g),\"must not specify a value type\"),r(\"typeof \"+g+'===\"function\"&&'+g+'._reglType===\"texture'+(3553===t?\"2d\":\"Cube\")+'\"',\"invalid texture type\",e.commandStr)}switch(p){case Cr:n(\"number\",h);break;case zr:a(2,0,h);break;case Fr:a(3,0,h);break;case Br:a(4,0,h);break;case Er:n(\"number\",h);break;case Tr:a(2,0,h);break;case Dr:a(3,0,h);break;case jr:a(4,0,h);break;case Vr:n(\"boolean\",h);break;case Ir:a(2,0,h);break;case Pr:a(3,0,h);break;case Lr:case Rr:a(4,0,h);break;case Mr:a(9,0,h);break;case Wr:a(16,0,h);break;case Ur:i(3553);break;case Gr:i(34067)}}));var S=1;switch(p){case Ur:case Gr:var O=t.def(g,\"._texture\");t(s,\".uniform1i(\",y,\",\",O,\".bind());\"),t.exit(O,\".unbind();\");continue;case Cr:case Vr:f=\"1i\";break;case zr:case Ir:f=\"2i\",S=2;break;case Fr:case Pr:f=\"3i\",S=3;break;case Br:case Lr:f=\"4i\",S=4;break;case Er:f=\"1f\";break;case Tr:f=\"2f\",S=2;break;case Dr:f=\"3f\",S=3;break;case jr:f=\"4f\",S=4;break;case Rr:f=\"Matrix2fv\";break;case Mr:f=\"Matrix3fv\";break;case Wr:f=\"Matrix4fv\"}if(-1===f.indexOf(\"Matrix\")&&h>1&&(f+=\"v\",S=1),\"M\"===f.charAt(0)){t(s,\".uniform\",f,\"(\",y,\",\");var E=Math.pow(p-Rr+2,2),T=e.global.def(\"new Float32Array(\",E,\")\");Array.isArray(g)?t(\"false,(\",V(E,(function(e){return T+\"[\"+e+\"]=\"+g[e]})),\",\",T,\")\"):t(\"false,(Array.isArray(\",g,\")||\",g,\" instanceof Float32Array)?\",g,\":(\",V(E,(function(e){return T+\"[\"+e+\"]=\"+g+\"[\"+e+\"]\"})),\",\",T,\")\"),t(\");\")}else if(S>1){for(var D=[],j=[],C=0;C=0\",\"missing vertex count\")}))):(a=u.def(o,\".\",pr),_.optional((function(){e.assert(u,a+\">=0\",\"missing vertex count\")}))),a}();if(\"number\"==typeof p){if(0===p)return}else r(\"if(\",p,\"){\"),r.exit(\"}\");g&&(c=s(br),l=e.instancing);var h=u+\".type\",b=f.elements&&nn(f.elements)&&!f.vaoActive;function v(){function e(){r(l,\".drawElementsInstancedANGLE(\",[d,p,h,m+\"<<((\"+h+\"-5121)>>1)\",c],\");\")}function t(){r(l,\".drawArraysInstancedANGLE(\",[d,m,p,c],\");\")}u&&\"null\"!==u?b?e():(r(\"if(\",u,\"){\"),e(),r(\"}else{\"),t(),r(\"}\")):t()}function y(){function e(){r(i+\".drawElements(\"+[d,p,h,m+\"<<((\"+h+\"-5121)>>1)\"]+\");\")}function t(){r(i+\".drawArrays(\"+[d,m,p]+\");\")}u&&\"null\"!==u?b?e():(r(\"if(\",u,\"){\"),e(),r(\"}else{\"),t(),r(\"}\")):t()}g&&(\"number\"!=typeof c||c>=0)?\"string\"==typeof c?(r(\"if(\",c,\">0){\"),v(),r(\"}else if(\",c,\"<0){\"),y(),r(\"}\")):v():y()}function q(e,t,r,n,a){var i=B(),o=i.proc(\"body\",a);return _.optional((function(){i.commandStr=t.commandStr,i.command=i.link(t.commandStr)})),g&&(i.instancing=o.def(i.shared.extensions,\".angle_instanced_arrays\")),e(i,o,r,n),i.compile().body}function Q(e,t,r,n){W(e,t),r.useVAO?r.drawVAO?t(e.shared.vao,\".setVAO(\",r.drawVAO.append(e,t),\");\"):t(e.shared.vao,\".setVAO(\",e.shared.vao,\".targetVAO);\"):(t(e.shared.vao,\".setVAO(null);\"),G(e,t,r,n.attributes,(function(){return!0}))),H(e,t,r,n.uniforms,(function(){return!0}),!1),N(e,t,t,r)}function Y(e,t,r,n){function a(){return!0}e.batchId=\"a1\",W(e,t),G(e,t,r,n.attributes,a),H(e,t,r,n.uniforms,a,!1),N(e,t,t,r)}function $(e,t,r,n){W(e,t);var a=r.contextDep,i=t.def(),o=t.def();e.shared.props=o,e.batchId=i;var f=e.scope(),u=e.scope();function s(e){return e.contextDep&&a||e.propDep}function c(e){return!s(e)}if(t(f.entry,\"for(\",i,\"=0;\",i,\"<\",\"a1\",\";++\",i,\"){\",o,\"=\",\"a0\",\"[\",i,\"];\",u,\"}\",f.exit),r.needsContext&&P(e,u,r.context),r.needsFramebuffer&&L(e,u,r.framebuffer),M(e,u,r.state,s),r.profile&&s(r.profile)&&U(e,u,r,!1,!0),n)r.useVAO?r.drawVAO?s(r.drawVAO)?u(e.shared.vao,\".setVAO(\",r.drawVAO.append(e,u),\");\"):f(e.shared.vao,\".setVAO(\",r.drawVAO.append(e,f),\");\"):f(e.shared.vao,\".setVAO(\",e.shared.vao,\".targetVAO);\"):(f(e.shared.vao,\".setVAO(null);\"),G(e,f,r,n.attributes,c),G(e,u,r,n.attributes,s)),H(e,f,r,n.uniforms,c,!1),H(e,u,r,n.uniforms,s,!0),N(e,f,u,r);else{var l=e.global.def(\"{}\"),d=r.shader.progVar.append(e,u),m=u.def(d,\".id\"),p=u.def(l,\"[\",m,\"]\");u(e.shared.gl,\".useProgram(\",d,\".program);\",\"if(!\",p,\"){\",p,\"=\",l,\"[\",m,\"]=\",e.link((function(t){return q(Y,e,r,t,2)})),\"(\",d,\");}\",p,\".call(this,a0[\",i,\"],\",i,\");\")}}function K(e,t,r){var n=t.static[r];if(n&&function(e){if(\"object\"==typeof e&&!me(e)){for(var t=Object.keys(e),r=0;r0&&r(e.shared.current,\".dirty=true;\"),e.shared.vao&&r(e.shared.vao,\".setVAO(null);\")}(f,u),function(e,t){var n=e.proc(\"scope\",3);e.batchId=\"a2\";var a=e.shared,i=a.current;function o(r){var i=t.shader[r];i&&n.set(a.shader,\".\"+r,i.append(e,n))}P(e,n,t.context),t.framebuffer&&t.framebuffer.append(e,n),tn(Object.keys(t.state)).forEach((function(r){var i=t.state[r].append(e,n);me(i)?i.forEach((function(t,a){n.set(e.next[r],\"[\"+a+\"]\",t)})):n.set(a.next,\".\"+r,i)})),U(e,n,t,!0,!0),[dr,hr,pr,br,mr].forEach((function(r){var i=t.draw[r];i&&n.set(a.draw,\".\"+r,\"\"+i.append(e,n))})),Object.keys(t.uniforms).forEach((function(i){var o=t.uniforms[i].append(e,n);Array.isArray(o)&&(o=\"[\"+o.join()+\"]\"),n.set(a.uniforms,\"[\"+r.id(i)+\"]\",o)})),Object.keys(t.attributes).forEach((function(r){var a=t.attributes[r].append(e,n),i=e.scopeAttrib(r);Object.keys(new b).forEach((function(e){n.set(i,\".\"+e,a[e])}))})),t.scopeVAO&&n.set(a.vao,\".targetVAO\",t.scopeVAO.append(e,n)),o(cr),o(lr),Object.keys(t.state).length>0&&(n(i,\".dirty=true;\"),n.exit(i,\".dirty=true;\")),n(\"a1(\",e.shared.context,\",a0,\",e.batchId,\");\")}(f,u),function(e,t){var r=e.proc(\"batch\",2);e.batchId=\"0\",W(e,r);var n=!1,a=!0;Object.keys(t.context).forEach((function(e){n=n||t.context[e].propDep})),n||(P(e,r,t.context),a=!1);var i=t.framebuffer,o=!1;function f(e){return e.contextDep&&n||e.propDep}i?(i.propDep?n=o=!0:i.contextDep&&n&&(o=!0),o||L(e,r,i)):L(e,r,null),t.state.viewport&&t.state.viewport.propDep&&(n=!0),R(e,r,t),M(e,r,t.state,(function(e){return!f(e)})),t.profile&&f(t.profile)||U(e,r,t,!1,\"a1\"),t.contextDep=n,t.needsContext=a,t.needsFramebuffer=o;var u=t.shader.progVar;if(u.contextDep&&n||u.propDep)$(e,r,t,null);else{var s=u.append(e,r);if(r(e.shared.gl,\".useProgram(\",s,\".program);\"),t.shader.program)$(e,r,t,t.shader.program);else{r(e.shared.vao,\".setVAO(null);\");var c=e.global.def(\"{}\"),l=r.def(s,\".id\"),d=r.def(c,\"[\",l,\"]\");r(e.cond(d).then(d,\".call(this,a0,a1);\").else(d,\"=\",c,\"[\",l,\"]=\",e.link((function(r){return q($,e,t,r,2)})),\"(\",s,\");\",d,\".call(this,a0,a1);\"))}}Object.keys(t.state).length>0&&r(e.shared.current,\".dirty=true;\"),e.shared.vao&&r(e.shared.vao,\".setVAO(null);\")}(f,u),t(f.compile(),{destroy:function(){u.shader.program.destroy()}})}}}var sn=function(e,t){if(!t.ext_disjoint_timer_query)return null;var r=[];function n(e){r.push(e)}var a=[];function i(){this.startQueryIndex=-1,this.endQueryIndex=-1,this.sum=0,this.stats=null}var o=[];function f(e){o.push(e)}var u=[];function s(e,t,r){var n=o.pop()||new i;n.startQueryIndex=e,n.endQueryIndex=t,n.sum=0,n.stats=r,u.push(n)}var c=[],l=[];return{beginQuery:function(e){var n=r.pop()||t.ext_disjoint_timer_query.createQueryEXT();t.ext_disjoint_timer_query.beginQueryEXT(35007,n),a.push(n),s(a.length-1,a.length,e)},endQuery:function(){t.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:s,update:function(){var e,r,i=a.length;if(0!==i){l.length=Math.max(l.length,i+1),c.length=Math.max(c.length,i+1),c[0]=0,l[0]=0;var o=0;for(e=0,r=0;r0)if(Array.isArray(r[0])){f=J(r);for(var c=1,l=1;l0)if(\"number\"==typeof t[0]){var i=L.allocType(d.dtype,t.length);ne(i,t),p(i,a),L.freeType(i)}else if(Array.isArray(t[0])||e(t[0])){n=J(t);var o=K(t,n,d.dtype);p(o,a),L.freeType(o)}else _.raise(\"invalid buffer data\")}else if(G(t)){n=t.shape;var f=t.stride,u=0,s=0,c=0,l=0;1===n.length?(u=n[0],s=1,c=f[0],l=0):2===n.length?(u=n[0],s=n[1],c=f[0],l=f[1]):_.raise(\"invalid shape\");var h=Array.isArray(t.data)?d.dtype:re(t.data),b=L.allocType(h,u*s);ae(b,t.data,u,s,c,l,t.offset),p(b,a),L.freeType(b)}else _.raise(\"invalid data for buffer subdata\");return m},n.profile&&(m.stats=d.stats),m.destroy=function(){l(d)},m},createStream:function(e,t){var r=u.pop();return r||(r=new f(e)),r.bind(),c(r,t,35040,0,1,!1),r},destroyStream:function(e){u.push(e)},clear:function(){H(o).forEach(l),u.forEach(l)},getBuffer:function(e){return e&&e._buffer instanceof f?e._buffer:null},restore:function(){H(o).forEach((function(e){e.buffer=t.createBuffer(),t.bindBuffer(e.type,e.buffer),t.bufferData(e.type,e.persistentData||e.byteLength,e.usage)}))},_initBuffer:c}}(a,l,n,(function(e){return A.destroyBuffer(e)})),w=function(t,r,n,a){var i={},o=0,f={uint8:oe,uint16:fe};function u(e){this.id=o++,i[this.id]=this,this.buffer=e,this.primType=4,this.vertCount=0,this.type=0}r.oes_element_index_uint&&(f.uint32=ue),u.prototype.bind=function(){this.buffer.bind()};var s=[];function c(a,i,o,f,u,s,c){var l;if(a.buffer.bind(),i){var d=c;c||e(i)&&(!G(i)||e(i.data))||(d=r.oes_element_index_uint?ue:fe),n._initBuffer(a.buffer,i,o,d,3)}else t.bufferData(se,s,o),a.buffer.dtype=l||oe,a.buffer.usage=o,a.buffer.dimension=3,a.buffer.byteLength=s;if(l=c,!c){switch(a.buffer.dtype){case oe:case 5120:l=oe;break;case fe:case 5122:l=fe;break;case ue:case 5124:l=ue;break;default:_.raise(\"unsupported type for element array\")}a.buffer.dtype=l}a.type=l,_(l!==ue||!!r.oes_element_index_uint,\"32 bit element buffers not supported, enable oes_element_index_uint first\");var m=u;m<0&&(m=a.buffer.byteLength,l===fe?m>>=1:l===ue&&(m>>=2)),a.vertCount=m;var p=f;if(f<0){p=4;var h=a.buffer.dimension;1===h&&(p=0),2===h&&(p=1),3===h&&(p=4)}a.primType=p}function l(e){a.elementsCount--,_(null!==e.buffer,\"must not double destroy elements\"),delete i[e.id],e.buffer.destroy(),e.buffer=null}return{create:function(t,r){var i=n.create(null,se,!0),o=new u(i._buffer);function s(t){if(t)if(\"number\"==typeof t)i(t),o.primType=4,o.vertCount=0|t,o.type=oe;else{var r=null,n=35044,a=-1,u=-1,l=0,d=0;Array.isArray(t)||e(t)||G(t)?r=t:(_.type(t,\"object\",\"invalid arguments for elements\"),\"data\"in t&&(r=t.data,_(Array.isArray(r)||e(r)||G(r),\"invalid data for element buffer\")),\"usage\"in t&&(_.parameter(t.usage,$,\"invalid element buffer usage\"),n=$[t.usage]),\"primitive\"in t&&(_.parameter(t.primitive,ie,\"invalid element buffer primitive\"),a=ie[t.primitive]),\"count\"in t&&(_(\"number\"==typeof t.count&&t.count>=0,\"invalid vertex count for elements\"),u=0|t.count),\"type\"in t&&(_.parameter(t.type,f,\"invalid buffer type\"),d=f[t.type]),\"length\"in t?l=0|t.length:(l=u,d===fe||5122===d?l*=2:d!==ue&&5124!==d||(l*=4))),c(o,r,n,a,u,l,d)}else i(),o.primType=4,o.vertCount=0,o.type=oe;return s}return a.elementsCount++,s(t),s._reglType=\"elements\",s._elements=o,s.subdata=function(e,t){return i.subdata(e,t),s},s.destroy=function(){l(o)},s},createStream:function(e){var t=s.pop();return t||(t=new u(n.create(null,se,!0,!1)._buffer)),c(t,e,35040,-1,-1,0,0),t},destroyStream:function(e){s.push(e)},getElements:function(e){return\"function\"==typeof e&&e._elements instanceof u?e._elements:null},clear:function(){H(i).forEach(l)}}}(a,d,x,l),A=function(t,r,n,a,i,o,f){for(var u=n.maxAttributes,s=new Array(u),c=0;c{for(var e=Object.keys(t),r=0;r=0,'invalid option for vao: \"'+e[r]+'\" valid options are '+Et)})),_(Array.isArray(a),\"attributes must be an array\")}_(a.length0,\"must specify at least one attribute\");var c={},l=n.attributes;l.length=a.length;for(var d=0;d=b.byteLength?m.subdata(b):(m.destroy(),n.buffers[d]=null)),n.buffers[d]||(m=n.buffers[d]=i.create(p,34962,!1,!0)),h.buffer=i.getBuffer(m),h.size=0|h.buffer.dimension,h.normalized=!1,h.type=h.buffer.dtype,h.offset=0,h.stride=0,h.divisor=0,h.state=1,c[d]=1):i.getBuffer(p)?(h.buffer=i.getBuffer(p),h.size=0|h.buffer.dimension,h.normalized=!1,h.type=h.buffer.dtype,h.offset=0,h.stride=0,h.divisor=0,h.state=1):i.getBuffer(p.buffer)?(h.buffer=i.getBuffer(p.buffer),h.size=0|(+p.size||h.buffer.dimension),h.normalized=!!p.normalized||!1,\"type\"in p?(_.parameter(p.type,X,\"invalid buffer type\"),h.type=X[p.type]):h.type=h.buffer.dtype,h.offset=0|(p.offset||0),h.stride=0|(p.stride||0),h.divisor=0|(p.divisor||0),h.state=1,_(h.size>=1&&h.size<=4,\"size must be between 1 and 4\"),_(h.offset>=0,\"invalid offset\"),_(h.stride>=0&&h.stride<=255,\"stride must be between 0 and 255\"),_(h.divisor>=0,\"divisor must be positive\"),_(!h.divisor||!!r.angle_instanced_arrays,\"ANGLE_instanced_arrays must be enabled to use divisor\")):\"x\"in p?(_(d>0,\"first attribute must not be a constant\"),h.x=+p.x||0,h.y=+p.y||0,h.z=+p.z||0,h.w=+p.w||0,h.state=2):_(!1,\"invalid attribute spec for location \"+d)}for(var v=0;v1)for(var v=0;v1&&(y=y.replace(\"[0]\",\"\")),u(b,new f(y,r.id(y),e.getUniformLocation(m,y),c))}var x=e.getProgramParameter(m,35721);a.profile&&(t.stats.attributesCount=x);var w=t.attributes;for(o=0;oe&&(e=t.stats.uniformsCount)})),e},n.getMaxAttributesCount=function(){var e=0;return l.forEach((function(t){t.stats.attributesCount>e&&(e=t.stats.attributesCount)})),e}),{clear:function(){var t=e.deleteShader.bind(e);H(i).forEach(t),i={},H(o).forEach(t),o={},l.forEach((function(t){e.deleteProgram(t.program)})),l.length=0,c={},n.shaderCount=0},program:function(r,a,f,u){_.command(r>=0,\"missing vertex shader\",f),_.command(a>=0,\"missing fragment shader\",f);var s=c[a];s||(s=c[a]={});var d=s[r];if(d&&(d.refCount++,!u))return d;var h=new m(a,r);return n.shaderCount++,p(h,f,u),d||(s[r]=h),l.push(h),t(h,{destroy:function(){if(h.refCount--,h.refCount<=0){e.deleteProgram(h.program);var t=l.indexOf(h);l.splice(t,1),n.shaderCount--}s[h.vertId].refCount<=0&&(e.deleteShader(o[h.vertId]),delete o[h.vertId],delete c[h.fragId][h.vertId]),Object.keys(c[h.fragId]).length||(e.deleteShader(i[h.fragId]),delete i[h.fragId],delete c[h.fragId])}})},restore:function(){i={},o={};for(var e=0;e=2,\"invalid renderbuffer shape\"),f=0|m[0],u=0|m[1]}else\"radius\"in d&&(f=u=0|d.radius),\"width\"in d&&(f=0|d.width),\"height\"in d&&(u=0|d.height);\"format\"in d&&(_.parameter(d.format,i,\"invalid renderbuffer format\"),s=i[d.format])}else\"number\"==typeof t?(f=0|t,u=\"number\"==typeof n?0|n:f):t?_.raise(\"invalid arguments to renderbuffer constructor\"):f=u=1;if(_(f>0&&u>0&&f<=r.maxRenderbufferSize&&u<=r.maxRenderbufferSize,\"invalid renderbuffer size\"),f!==c.width||u!==c.height||s!==c.format)return l.width=c.width=f,l.height=c.height=u,c.format=s,e.bindRenderbuffer(mt,c.renderbuffer),e.renderbufferStorage(mt,s,f,u),_(0===e.getError(),\"invalid render buffer format\"),a.profile&&(c.stats.size=bt(c.format,c.width,c.height)),l.format=o[c.format],l}return u[c.id]=c,n.renderbufferCount++,l(t,f),l.resize=function(t,n){var i=0|t,o=0|n||i;return i===c.width&&o===c.height||(_(i>0&&o>0&&i<=r.maxRenderbufferSize&&o<=r.maxRenderbufferSize,\"invalid renderbuffer size\"),l.width=c.width=i,l.height=c.height=o,e.bindRenderbuffer(mt,c.renderbuffer),e.renderbufferStorage(mt,c.format,i,o),_(0===e.getError(),\"invalid render buffer format\"),a.profile&&(c.stats.size=bt(c.format,c.width,c.height))),l},l._reglType=\"renderbuffer\",l._renderbuffer=c,a.profile&&(l.stats=c.stats),l.destroy=function(){c.decRef()},l},clear:function(){H(u).forEach(c)},restore:function(){H(u).forEach((function(t){t.renderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(mt,t.renderbuffer),e.renderbufferStorage(mt,t.format,t.width,t.height)})),e.bindRenderbuffer(mt,null)}}}(a,d,y,l,n),E=function(e,r,n,a,i,o){var f={cur:null,next:null,dirty:!1,setFBO:null},u=[\"rgba\"],s=[\"rgba4\",\"rgb565\",\"rgb5 a1\"];r.ext_srgb&&s.push(\"srgba\"),r.ext_color_buffer_half_float&&s.push(\"rgba16f\",\"rgb16f\"),r.webgl_color_buffer_float&&s.push(\"rgba32f\");var c=[\"uint8\"];function l(e,t,r){this.target=e,this.texture=t,this.renderbuffer=r;var n=0,a=0;t?(n=t.width,a=t.height):r&&(n=r.width,a=r.height),this.width=n,this.height=a}function d(e){e&&(e.texture&&e.texture._texture.decRef(),e.renderbuffer&&e.renderbuffer._renderbuffer.decRef())}function m(e,t,r){if(e)if(e.texture){var n=e.texture._texture,a=Math.max(1,n.width),i=Math.max(1,n.height);_(a===t&&i===r,\"inconsistent width/height for supplied texture\"),n.refCount+=1}else{var o=e.renderbuffer._renderbuffer;_(o.width===t&&o.height===r,\"inconsistent width/height for renderbuffer\"),o.refCount+=1}}function p(t,r){r&&(r.texture?e.framebufferTexture2D(vt,t,r.target,r.texture._texture.texture,0):e.framebufferRenderbuffer(vt,t,gt,r.renderbuffer._renderbuffer.renderbuffer))}function h(e){var t=yt,r=null,n=null,a=e;\"object\"==typeof e&&(a=e.data,\"target\"in e&&(t=0|e.target)),_.type(a,\"function\",\"invalid attachment data\");var i=a._reglType;return\"texture2d\"===i?(r=a,_(t===yt)):\"textureCube\"===i?(r=a,_(t>=xt&&t<34075,\"invalid cube map target\")):\"renderbuffer\"===i?(n=a,t=gt):_.raise(\"invalid regl object for attachment\"),new l(t,r,n)}function b(e,t,r,n,o){if(r){var f=a.create2D({width:e,height:t,format:n,type:o});return f._texture.refCount=0,new l(yt,f,null)}var u=i.create({width:e,height:t,format:n});return u._renderbuffer.refCount=0,new l(gt,null,u)}function v(e){return e&&(e.texture||e.renderbuffer)}function g(e,t,r){e&&(e.texture?e.texture.resize(t,r):e.renderbuffer&&e.renderbuffer.resize(t,r),e.width=t,e.height=r)}r.oes_texture_half_float&&c.push(\"half float\",\"float16\"),r.oes_texture_float&&c.push(\"float\",\"float32\");var y=0,x={};function w(){this.id=y++,x[this.id]=this,this.framebuffer=e.createFramebuffer(),this.width=0,this.height=0,this.colorAttachments=[],this.depthAttachment=null,this.stencilAttachment=null,this.depthStencilAttachment=null}function A(e){e.colorAttachments.forEach(d),d(e.depthAttachment),d(e.stencilAttachment),d(e.depthStencilAttachment)}function k(t){var r=t.framebuffer;_(r,\"must not double destroy framebuffer\"),e.deleteFramebuffer(r),t.framebuffer=null,o.framebufferCount--,delete x[t.id]}function S(t){var r;e.bindFramebuffer(vt,t.framebuffer);var a=t.colorAttachments;for(r=0;r=2,\"invalid shape for framebuffer\"),o=z[0],d=z[1]}else\"radius\"in C&&(o=d=C.radius),\"width\"in C&&(o=C.width),\"height\"in C&&(d=C.height);(\"color\"in C||\"colors\"in C)&&(y=C.color||C.colors,Array.isArray(y)&&_(1===y.length||r.webgl_draw_buffers,\"multiple render targets not supported\")),y||(\"colorCount\"in C&&(O=0|C.colorCount,_(O>0,\"invalid color buffer count\")),\"colorTexture\"in C&&(x=!!C.colorTexture,w=\"rgba4\"),\"colorType\"in C&&(k=C.colorType,x?(_(r.oes_texture_float||!(\"float\"===k||\"float32\"===k),\"you must enable OES_texture_float in order to use floating point framebuffer objects\"),_(r.oes_texture_half_float||!(\"half float\"===k||\"float16\"===k),\"you must enable OES_texture_half_float in order to use 16-bit floating point framebuffer objects\")):\"half float\"===k||\"float16\"===k?(_(r.ext_color_buffer_half_float,\"you must enable EXT_color_buffer_half_float to use 16-bit render buffers\"),w=\"rgba16f\"):\"float\"!==k&&\"float32\"!==k||(_(r.webgl_color_buffer_float,\"you must enable WEBGL_color_buffer_float in order to use 32-bit floating point renderbuffers\"),w=\"rgba32f\"),_.oneOf(k,c,\"invalid color type\")),\"colorFormat\"in C&&(w=C.colorFormat,u.indexOf(w)>=0?x=!0:s.indexOf(w)>=0?x=!1:_.optional((function(){x?_.oneOf(C.colorFormat,u,\"invalid color format for texture\"):_.oneOf(C.colorFormat,s,\"invalid color format for renderbuffer\")})))),(\"depthTexture\"in C||\"depthStencilTexture\"in C)&&(j=!(!C.depthTexture&&!C.depthStencilTexture),_(!j||r.webgl_depth_texture,\"webgl_depth_texture extension not supported\")),\"depth\"in C&&(\"boolean\"==typeof C.depth?p=C.depth:(E=C.depth,g=!1)),\"stencil\"in C&&(\"boolean\"==typeof C.stencil?g=C.stencil:(T=C.stencil,p=!1)),\"depthStencil\"in C&&(\"boolean\"==typeof C.depthStencil?p=g=C.depthStencil:(D=C.depthStencil,p=!1,g=!1))}else o=d=1;var F=null,B=null,V=null,I=null;if(Array.isArray(y))F=y.map(h);else if(y)F=[h(y)];else for(F=new Array(O),a=0;a=0||F[a].renderbuffer&&kt.indexOf(F[a].renderbuffer._renderbuffer.format)>=0,\"framebuffer color attachment \"+a+\" is invalid\"),F[a]&&F[a].texture){var L=At[F[a].texture._texture.format]*_t[F[a].texture._texture.type];null===P?P=L:_(P===L,\"all color attachments much have the same number of bits per pixel.\")}return m(B,o,d),_(!B||B.texture&&6402===B.texture._texture.format||B.renderbuffer&&33189===B.renderbuffer._renderbuffer.format,\"invalid depth attachment for framebuffer object\"),m(V,o,d),_(!V||V.renderbuffer&&36168===V.renderbuffer._renderbuffer.format,\"invalid stencil attachment for framebuffer object\"),m(I,o,d),_(!I||I.texture&&34041===I.texture._texture.format||I.renderbuffer&&34041===I.renderbuffer._renderbuffer.format,\"invalid depth-stencil attachment for framebuffer object\"),A(i),i.width=o,i.height=d,i.colorAttachments=F,i.depthAttachment=B,i.stencilAttachment=V,i.depthStencilAttachment=I,l.color=F.map(v),l.depth=v(B),l.stencil=v(V),l.depthStencil=v(I),l.width=i.width,l.height=i.height,S(i),l}return o.framebufferCount++,l(e,a),t(l,{resize:function(e,t){_(f.next!==i,\"can not resize a framebuffer which is currently in use\");var r=Math.max(0|e,1),n=Math.max(0|t||r,1);if(r===i.width&&n===i.height)return l;for(var a=i.colorAttachments,o=0;o=2,\"invalid shape for framebuffer\"),_(g[0]===g[1],\"cube framebuffer must be square\"),d=g[0]}else\"radius\"in v&&(d=0|v.radius),\"width\"in v?(d=0|v.width,\"height\"in v&&_(v.height===d,\"must be square\")):\"height\"in v&&(d=0|v.height);(\"color\"in v||\"colors\"in v)&&(m=v.color||v.colors,Array.isArray(m)&&_(1===m.length||r.webgl_draw_buffers,\"multiple render targets not supported\")),m||(\"colorCount\"in v&&(b=0|v.colorCount,_(b>0,\"invalid color buffer count\")),\"colorType\"in v&&(_.oneOf(v.colorType,c,\"invalid color type\"),h=v.colorType),\"colorFormat\"in v&&(p=v.colorFormat,_.oneOf(v.colorFormat,u,\"invalid color format for texture\"))),\"depth\"in v&&(l.depth=v.depth),\"stencil\"in v&&(l.stencil=v.stencil),\"depthStencil\"in v&&(l.depthStencil=v.depthStencil)}else d=1;if(m)if(Array.isArray(m))for(s=[],n=0;n0&&(l.depth=i[0].depth,l.stencil=i[0].stencil,l.depthStencil=i[0].depthStencil),i[n]?i[n](l):i[n]=O(l)}return t(o,{width:d,height:d,color:s})}return o(e),t(o,{faces:i,resize:function(e){var t,r=0|e;if(_(r>0&&r<=n.maxCubeMapSize,\"invalid radius for cube fbo\"),r===o.width)return o;var a=o.color;for(t=0;t=0;--e){var t=I[e];t&&t(v,null,0)}a.flush(),m&&m.update()}function ce(){!Q&&I.length>0&&(Q=j.next(Y))}function le(){Q&&(j.cancel(Y),Q=null)}function de(e){e.preventDefault(),o=!0,le(),P.forEach((function(e){e()}))}function me(e){a.getError(),o=!1,f.restore(),k.restore(),x.restore(),S.restore(),O.restore(),E.restore(),A.restore(),m&&m.restore(),T.procs.refresh(),ce(),N.forEach((function(e){e()}))}function pe(e){function r(e,t){var r={},n={};return Object.keys(e).forEach((function(a){var i=e[a];if(D.isDynamic(i))n[a]=D.unbox(i,a);else{if(t&&Array.isArray(i))for(var o=0;o0)return l.call(this,function(e){for(;m.length=0,\"cannot cancel a frame twice\"),I[t]=function e(){var t=dn(I,e);I[t]=I[I.length-1],I.length-=1,I.length<=0&&le()}}}}function ge(){var e=F.viewport,t=F.scissor_box;e[0]=e[1]=t[0]=t[1]=0,v.viewportWidth=v.framebufferWidth=v.drawingBufferWidth=e[2]=t[2]=a.drawingBufferWidth,v.viewportHeight=v.framebufferHeight=v.drawingBufferHeight=e[3]=t[3]=a.drawingBufferHeight}function ye(){v.tick+=1,v.time=we(),ge(),T.procs.poll()}function xe(){S.refresh(),ge(),T.procs.refresh(),m&&m.update()}function we(){return(C()-p)/1e3}xe();var Ae=t(pe,{clear:function(e){if(_(\"object\"==typeof e&&e,\"regl.clear() takes an object as input\"),\"framebuffer\"in e)if(e.framebuffer&&\"framebufferCube\"===e.framebuffer_reglType)for(var r=0;r<6;++r)he(t({framebuffer:e.framebuffer.faces[r]},e),be);else he(e,be);else be(0,e)},prop:D.define.bind(null,1),context:D.define.bind(null,2),this:D.define.bind(null,3),draw:pe({}),buffer:function(e){return x.create(e,34962,!1,!1)},elements:function(e){return w.create(e,!1)},texture:S.create2D,cube:S.createCube,renderbuffer:O.create,framebuffer:E.create,framebufferCube:E.createCube,vao:A.createVAO,attributes:i,frame:ve,on:function(e,t){var r;switch(_.type(t,\"function\",\"listener callback must be a function\"),e){case\"frame\":return ve(t);case\"lost\":r=P;break;case\"restore\":r=N;break;case\"destroy\":r=q;break;default:_.raise(\"invalid event, must be one of frame,lost,restore,destroy\")}return r.push(t),{cancel:function(){for(var e=0;e=0},read:z,destroy:function(){I.length=0,le(),V&&(V.removeEventListener(cn,de),V.removeEventListener(ln,me)),k.clear(),E.clear(),O.clear(),A.clear(),S.clear(),w.clear(),x.clear(),m&&m.clear(),q.forEach((function(e){e()}))},_gl:a,_refresh:xe,poll:function(){ye(),m&&m.update()},now:we,stats:l});return n.onDone(null,Ae),Ae}},\"object\"==typeof r&&void 0!==t?t.exports=o():\"function\"==typeof define&&define.amd?define(o):i.createREGL=o()},\n 413: function _(t,e,a,s,r){s();const n=t(414),_=t(9),o=t(12);class c{constructor(t){this._regl=t,this._map=new Map}_create_texture(t){const e=t.length;let a=0;const s=[];let r=0,_=0;for(let n=0;nc[f+1]&&f++;const s=t[f],n=c[f]+.5*s;let o=.5*s-Math.abs(a-n);f%2==1&&(o=-o),m[e]=Math.round(255*(o-r)/(_-r))}return[[a,u,r,_],this._regl.texture({shape:[l,1,1],data:m,wrapS:\"repeat\",format:\"alpha\",type:\"uint8\",mag:\"linear\",min:\"linear\"})]}_get_key(t){return t.join(\",\")}_get_or_create(t){const e=this._get_key(t);let a=this._map.get(e);if(null==a){const s=(0,n.gcd)(t);if(s>1){t=(0,o.map)(t,(t=>t/s)),a=this._get_or_create(t);const[r,n,_]=a;a=[r,n,s],this._map.set(e,a)}else{const[r,n]=this._create_texture(t);a=[r,n,s],this._map.set(e,a)}}return a}get(t){return t.length%2==1&&(t=(0,_.concat)([t,t])),this._get_or_create(t)}}a.DashCache=c,c.__name__=\"DashCache\"},\n 414: function _(n,t,e,r,o){function u(n,t){let e,r;n>t?(e=n,r=t):(e=t,r=n);let o=e%r;for(;0!=o;)e=r,r=o,o=e%r;return r}r(),e.gcd=function(n){let t=n[0];for(let e=1;e= 0.0 ? 1.0 : -1.0;\\n}\\n\\nvoid main()\\n{\\n if (a_show_curr < 0.5) {\\n // Line segment has non-finite value at one or both ends, do not render.\\n gl_Position = vec4(-2.0, -2.0, 0.0, 1.0);\\n return;\\n }\\n\\n const float min_miter_factor_round_join_mesh = sqrt(2.0);\\n\\n int join_type = int(u_line_join + 0.5);\\n int cap_type = int(u_line_cap + 0.5);\\n float halfwidth = 0.5*(u_linewidth + u_antialias);\\n vec2 segment_along = normalize(a_point_end - a_point_start); // unit vector.\\n v_segment_length = length(a_point_end - a_point_start);\\n vec2 segment_right = right_vector(segment_along); // unit vector.\\n vec2 xy;\\n\\n bool miter_too_large_start = false;\\n bool miter_too_large_end = false;\\n\\n v_coords.y = a_position.y*halfwidth; // Overwritten later for end points.\\n\\n bool has_start_cap = a_show_prev < 0.5;\\n bool has_end_cap = a_show_next < 0.5;\\n\\n vec2 point_normal_start;\\n float cos_theta_start;\\n float turn_right_start;\\n if (has_start_cap)\\n point_normal_start = segment_right;\\n else {\\n vec2 prev_right = right_vector(normalize(a_point_start - a_point_prev));\\n point_normal_start = normalize(segment_right + prev_right);\\n cos_theta_start = dot(segment_right, point_normal_start); // Always +ve\\n turn_right_start = sign_no_zero(dot(segment_right, a_point_prev - a_point_start));\\n }\\n\\n vec2 point_normal_end;\\n float cos_theta_end;\\n float turn_right_end;\\n if (has_end_cap)\\n point_normal_end = segment_right;\\n else {\\n vec2 next_right = right_vector(normalize(a_point_next - a_point_end));\\n point_normal_end = normalize(segment_right + next_right);\\n cos_theta_end = dot(segment_right, point_normal_end); // Always +ve\\n turn_right_end = sign_no_zero(dot(segment_right, a_point_next - a_point_end));\\n }\\n\\n float miter_factor_start = 1.0 / dot(segment_right, point_normal_start);\\n float miter_factor_end = 1.0 / dot(segment_right, point_normal_end);\\n if (join_type == miter_join) {\\n // If miter too large, use bevel join instead.\\n miter_too_large_start = (miter_factor_start > u_miter_limit);\\n miter_too_large_end = (miter_factor_end > u_miter_limit);\\n }\\n\\n float sign_at_start = -sign(a_position.x); // +ve at segment start, -ve end.\\n vec2 point = sign_at_start > 0.0 ? a_point_start : a_point_end;\\n vec2 adjacent_point =\\n sign_at_start > 0.0 ? (has_start_cap ? a_point_start : a_point_prev)\\n : (has_end_cap ? a_point_end : a_point_next);\\n\\n if ( (has_start_cap && sign_at_start > 0.0) ||\\n (has_end_cap && sign_at_start < 0.0) ) {\\n // Cap.\\n xy = point - segment_right*(halfwidth*a_position.y);\\n if (cap_type == butt_cap)\\n xy -= sign_at_start*0.5*u_antialias*segment_along;\\n else\\n xy -= sign_at_start*halfwidth*segment_along;\\n }\\n else { // Join.\\n // +ve if turning to right, -ve if to left.\\n float turn_sign = sign_at_start > 0.0 ? turn_right_start : turn_right_end;\\n\\n vec2 adjacent_right = sign_at_start*normalize(right_vector(point - adjacent_point));\\n vec2 point_right = normalize(segment_right + adjacent_right);\\n float miter_factor = sign_at_start > 0.0 ? miter_factor_start : miter_factor_end;\\n bool miter_too_large = sign_at_start > 0.0 ? miter_too_large_start : miter_too_large_end;\\n\\n if (abs(a_position.x) > 1.5) {\\n // Outer point, meets prev/next segment.\\n float factor; // multiplied by halfwidth...\\n\\n if (join_type == bevel_join || (join_type == miter_join && miter_too_large))\\n factor = 1.0 / miter_factor; // cos_theta.\\n else if (join_type == round_join &&\\n miter_factor > min_miter_factor_round_join_mesh)\\n factor = 1.0;\\n else // miter, or round (small angle only).\\n factor = miter_factor;\\n\\n xy = point - point_right*(halfwidth*turn_sign*factor);\\n v_coords.y = turn_sign*halfwidth*factor / miter_factor;\\n }\\n else if (turn_sign*a_position.y < 0.0) {\\n // Inner point, meets prev/next segment.\\n float len = halfwidth*miter_factor;\\n float segment_len = v_segment_length;\\n float adjacent_len = distance(point, adjacent_point);\\n\\n if (len <= min(segment_len, adjacent_len))\\n // Normal behaviour.\\n xy = point - point_right*(len*a_position.y);\\n else\\n // For short wide line segments the inner point using the above\\n // calculation can be outside of the line. Here clipping it.\\n xy = point + segment_right*(halfwidth*turn_sign);\\n }\\n else {\\n // Point along outside edge.\\n xy = point - segment_right*(halfwidth*a_position.y);\\n if (join_type == round_join &&\\n miter_factor > min_miter_factor_round_join_mesh) {\\n xy = line_intersection(xy, segment_along,\\n point - turn_sign*point_right*halfwidth,\\n right_vector(point_right));\\n }\\n }\\n }\\n\\n vec2 pos = xy + 0.5; // Bokeh's offset.\\n pos /= u_canvas_size / u_pixel_ratio; // in 0..1\\n gl_Position = vec4(2.0*pos.x - 1.0, 1.0 - 2.0*pos.y, 0.0, 1.0);\\n\\n v_coords.x = dot(xy - a_point_start, segment_along);\\n v_flags = float(int(has_start_cap) +\\n 2*int(has_end_cap) +\\n 4*int(miter_too_large_start) +\\n 8*int(miter_too_large_end));\\n v_cos_theta_turn_right_start = cos_theta_start*turn_right_start;\\n v_cos_theta_turn_right_end = cos_theta_end*turn_right_end;\\n\\n#ifdef DASHED\\n v_length_so_far = a_length_so_far;\\n#endif\\n}\\n\"},\n 416: function _(n,t,a,i,e){i();a.default=\"\\nprecision mediump float;\\n\\nconst int butt_cap = 0;\\nconst int round_cap = 1;\\nconst int square_cap = 2;\\n\\nconst int miter_join = 0;\\nconst int round_join = 1;\\nconst int bevel_join = 2;\\n\\nuniform float u_linewidth;\\nuniform float u_antialias;\\nuniform float u_line_join;\\nuniform float u_line_cap;\\nuniform vec4 u_line_color;\\n#ifdef DASHED\\nuniform sampler2D u_dash_tex;\\nuniform vec4 u_dash_tex_info;\\nuniform float u_dash_scale;\\nuniform float u_dash_offset;\\n#endif\\n\\nvarying float v_segment_length;\\nvarying vec2 v_coords;\\nvarying float v_flags;\\nvarying float v_cos_theta_turn_right_start;\\nvarying float v_cos_theta_turn_right_end;\\n#ifdef DASHED\\nvarying float v_length_so_far;\\n#endif\\n\\nfloat cross_z(in vec2 v0, in vec2 v1)\\n{\\n return v0.x*v1.y - v0.y*v1.x;\\n}\\n\\nfloat point_line_side(in vec2 point, in vec2 start, in vec2 end)\\n{\\n // +ve if point to right of line.\\n // Alternatively could do dot product with right_vector.\\n return cross_z(point - start, end - start);\\n}\\n\\nfloat point_line_distance(in vec2 point, in vec2 start, in vec2 end)\\n{\\n return point_line_side(point, start, end) / distance(start, end);\\n}\\n\\nvec2 right_vector(in vec2 v)\\n{\\n return vec2(v.y, -v.x);\\n}\\n\\nfloat bevel_join_distance(in float sign_start, in float halfwidth)\\n{\\n float cos_theta_turn_right = sign_start > 0.0 ? v_cos_theta_turn_right_start\\n : v_cos_theta_turn_right_end;\\n float cos_theta = abs(cos_theta_turn_right);\\n float turn_right = sign(cos_theta_turn_right);\\n float distance_along = sign_start > 0.0 ? 0.0 : v_segment_length;\\n\\n // In v_coords reference frame (x is along segment, y across).\\n vec2 line_start = vec2(distance_along, halfwidth*turn_right);\\n float sin_alpha = cos_theta;\\n float cos_alpha = sqrt(1.0 - sin_alpha*sin_alpha);\\n vec2 line_along = vec2(-sign_start*turn_right*sin_alpha, -cos_alpha);\\n\\n return halfwidth + sign_start*point_line_distance(\\n v_coords, line_start, line_start+line_along);\\n}\\n\\nfloat cap(in int cap_type, in float x, in float y)\\n{\\n // x is distance along segment in direction away from end of segment,\\n // y is distance across segment.\\n if (cap_type == butt_cap)\\n return max(0.5*u_linewidth - x, abs(y));\\n else if (cap_type == square_cap)\\n return max(-x, abs(y));\\n else // cap_type == round_cap\\n return distance(vec2(min(x, 0.0), y), vec2(0.0, 0.0));\\n}\\n\\nfloat distance_to_alpha(in float dist)\\n{\\n return 1.0 - smoothstep(0.5*(u_linewidth - u_antialias),\\n 0.5*(u_linewidth + u_antialias), dist);\\n}\\n\\n#ifdef DASHED\\nfloat dash_distance(in float x)\\n{\\n // x is in direction of v_coords.x, i.e. along segment.\\n float tex_length = u_dash_tex_info.x;\\n float tex_offset = u_dash_tex_info.y;\\n float tex_dist_min = u_dash_tex_info.z;\\n float tex_dist_max = u_dash_tex_info.w;\\n\\n // Apply offset.\\n x += v_length_so_far - u_dash_scale*tex_offset + u_dash_offset;\\n\\n // Interpolate within texture to obtain distance to dash.\\n float dist = texture2D(u_dash_tex,\\n vec2(x / (tex_length*u_dash_scale), 0.0)).a;\\n\\n // Scale distance within min and max limits.\\n dist = tex_dist_min + dist*(tex_dist_max - tex_dist_min);\\n\\n return u_dash_scale*dist;\\n}\\n\\nfloat clip_dash_distance(in float x, in float offset, in float sign_along)\\n{\\n // Return clipped dash distance, sign_along is +1.0 if looking forward\\n // into next segment and -1.0 if looking backward into previous segment.\\n float half_antialias = 0.5*u_antialias;\\n\\n if (sign_along*x > half_antialias) {\\n // Outside antialias region, use usual dash distance.\\n return dash_distance(offset + x);\\n }\\n else {\\n // Inside antialias region.\\n // Dash distance at edge of antialias region clipped to half_antialias.\\n float edge_dist = min(dash_distance(offset + sign_along*half_antialias), half_antialias);\\n\\n // Physical distance from dash distance at edge of antialias region.\\n return edge_dist + sign_along*x - half_antialias;\\n }\\n}\\n\\nmat2 rotation_matrix(in float sign_start)\\n{\\n // Rotation matrix for v_coords from this segment to prev or next segment.\\n float cos_theta_turn_right = sign_start > 0.0 ? v_cos_theta_turn_right_start\\n : v_cos_theta_turn_right_end;\\n float cos_theta = abs(cos_theta_turn_right);\\n float turn_right = sign(cos_theta_turn_right);\\n\\n float sin_theta = sqrt(1.0 - cos_theta*cos_theta)*sign_start*turn_right;\\n float cos_2theta = 2.0*cos_theta*cos_theta - 1.0;\\n float sin_2theta = 2.0*sin_theta*cos_theta;\\n return mat2(cos_2theta, -sin_2theta, sin_2theta, cos_2theta);\\n}\\n#endif\\n\\nvoid main()\\n{\\n int join_type = int(u_line_join + 0.5);\\n int cap_type = int(u_line_cap + 0.5);\\n float halfwidth = 0.5*(u_linewidth + u_antialias);\\n float half_antialias = 0.5*u_antialias;\\n\\n // Extract flags.\\n int flags = int(v_flags + 0.5);\\n bool miter_too_large_end = (flags / 8 > 0);\\n flags -= 8*int(miter_too_large_end);\\n bool miter_too_large_start = (flags / 4 > 0);\\n flags -= 4*int(miter_too_large_start);\\n bool has_end_cap = (flags / 2 > 0);\\n flags -= 2*int(has_end_cap);\\n bool has_start_cap = flags > 0;\\n\\n float dist = v_coords.y; // For straight segment, and miter join.\\n\\n // Along-segment coords with respect to end of segment, +ve inside segment\\n // so equivalent to v_coords.x at start of segment.\\n float end_coords_x = v_segment_length - v_coords.x;\\n\\n if (v_coords.x <= half_antialias) {\\n // At start of segment, either cap or join.\\n if (has_start_cap)\\n dist = cap(cap_type, v_coords.x, v_coords.y);\\n else if (join_type == round_join)\\n dist = distance(v_coords, vec2(0.0, 0.0));\\n else if (join_type == bevel_join ||\\n (join_type == miter_join && miter_too_large_start))\\n dist = max(abs(dist), bevel_join_distance(1.0, halfwidth));\\n // else a miter join which uses the default dist calculation.\\n }\\n else if (end_coords_x <= half_antialias) {\\n // At end of segment, either cap or join.\\n if (has_end_cap)\\n dist = cap(cap_type, end_coords_x, v_coords.y);\\n else if (join_type == round_join)\\n dist = distance(v_coords, vec2(v_segment_length, 0));\\n else if ((join_type == bevel_join ||\\n (join_type == miter_join && miter_too_large_end)))\\n dist = max(abs(dist), bevel_join_distance(-1.0, halfwidth));\\n // else a miter join which uses the default dist calculation.\\n }\\n\\n float alpha = distance_to_alpha(abs(dist));\\n\\n#ifdef DASHED\\n if (u_dash_tex_info.x >= 0.0) {\\n // Dashes in straight segments (outside of joins) are easily calculated.\\n dist = dash_distance(v_coords.x);\\n\\n if (!has_start_cap && cap_type == butt_cap) {\\n if (v_coords.x < half_antialias) {\\n // Outer of start join rendered solid color or not at all\\n // depending on whether corner point is in dash or gap, with\\n // antialiased ends.\\n if (dash_distance(0.0) > 0.0) {\\n // Corner is solid color.\\n dist = max(dist, min(half_antialias, -v_coords.x));\\n // Avoid visible antialiasing band between corner and dash.\\n dist = max(dist, dash_distance(half_antialias));\\n }\\n else {\\n // Use large negative value so corner not colored.\\n dist = -halfwidth;\\n\\n if (v_coords.x > -half_antialias) {\\n // Consider antialias region of dash after start region.\\n float edge_dist = min(dash_distance(half_antialias), half_antialias);\\n dist = max(dist, edge_dist + v_coords.x - half_antialias);\\n }\\n }\\n }\\n\\n vec2 prev_coords = rotation_matrix(1.0)*v_coords;\\n\\n if (abs(prev_coords.y) < halfwidth && prev_coords.x < half_antialias) {\\n // Extend dashes across from end of previous segment, with antialiased end.\\n float new_dist = clip_dash_distance(prev_coords.x, 0.0, -1.0);\\n new_dist = min(new_dist, 0.5*u_linewidth - abs(prev_coords.y));\\n dist = max(dist, new_dist);\\n }\\n }\\n\\n if (!has_end_cap && cap_type == butt_cap) {\\n if (end_coords_x < half_antialias) {\\n // Similar for end join.\\n if (dash_distance(v_segment_length) > 0.0) {\\n // Corner is solid color.\\n dist = max(dist, min(half_antialias, -end_coords_x));\\n // Avoid visible antialiasing band between corner and dash.\\n dist = max(dist, dash_distance(v_segment_length - half_antialias));\\n }\\n else {\\n // Use large negative value so corner not colored.\\n dist = -halfwidth;\\n\\n if (end_coords_x > -half_antialias) {\\n // Consider antialias region of dash before end region.\\n float edge_dist = min(dash_distance(v_segment_length - half_antialias),\\n half_antialias);\\n dist = max(dist, edge_dist + end_coords_x - half_antialias);\\n }\\n }\\n }\\n\\n vec2 next_coords = rotation_matrix(-1.0)*(v_coords - vec2(v_segment_length, 0.0));\\n\\n if (abs(next_coords.y) < halfwidth && next_coords.x > -half_antialias) {\\n // Extend dashes across from next segment, with antialiased end.\\n float new_dist = clip_dash_distance(next_coords.x, v_segment_length, 1.0);\\n new_dist = min(new_dist, 0.5*u_linewidth - abs(next_coords.y));\\n dist = max(dist, new_dist);\\n }\\n }\\n\\n dist = cap(cap_type, dist, v_coords.y);\\n\\n float dash_alpha = distance_to_alpha(dist);\\n alpha = min(alpha, dash_alpha);\\n }\\n#endif\\n\\n alpha = u_line_color.a*alpha;\\n gl_FragColor = vec4(u_line_color.rgb*alpha, alpha); // Premultiplied alpha.\\n}\\n\"},\n 417: function _(n,i,e,t,a){t();e.default=\"\\nprecision mediump float;\\n\\nattribute vec2 a_position;\\nattribute vec2 a_center;\\nattribute float a_width;\\nattribute float a_height;\\nattribute float a_angle; // In radians\\nattribute float a_linewidth;\\nattribute vec4 a_line_color;\\nattribute vec4 a_fill_color;\\nattribute float a_line_cap;\\nattribute float a_line_join;\\nattribute float a_show;\\n#ifdef HATCH\\nattribute float a_hatch_pattern;\\nattribute float a_hatch_scale;\\nattribute float a_hatch_weight;\\nattribute vec4 a_hatch_color;\\n#endif\\n\\nuniform float u_pixel_ratio;\\nuniform vec2 u_canvas_size;\\nuniform float u_antialias;\\nuniform float u_size_hint;\\n\\nvarying float v_linewidth;\\nvarying vec2 v_size; // 2D size for rects compared to 1D for markers.\\nvarying vec4 v_line_color;\\nvarying vec4 v_fill_color;\\nvarying float v_line_cap;\\nvarying float v_line_join;\\nvarying vec2 v_coords;\\n#ifdef HATCH\\nvarying float v_hatch_pattern;\\nvarying float v_hatch_scale;\\nvarying float v_hatch_weight;\\nvarying vec4 v_hatch_color;\\nvarying vec2 v_hatch_coords;\\n#endif\\n\\nvoid main()\\n{\\n if (a_show < 0.5) {\\n // Do not show this rect.\\n gl_Position = vec4(-2.0, -2.0, 0.0, 1.0);\\n return;\\n }\\n\\n v_size = vec2(a_width, a_height);\\n v_linewidth = a_linewidth;\\n v_line_color = a_line_color;\\n v_fill_color = a_fill_color;\\n v_line_cap = a_line_cap;\\n v_line_join = a_line_join;\\n\\n if (v_linewidth < 1.0) {\\n // Linewidth less than 1 is implemented as 1 but with reduced alpha.\\n v_line_color.a *= v_linewidth;\\n v_linewidth = 1.0;\\n }\\n\\n#ifdef HATCH\\n v_hatch_pattern = a_hatch_pattern;\\n v_hatch_scale = a_hatch_scale;\\n v_hatch_weight = a_hatch_weight;\\n v_hatch_color = a_hatch_color;\\n#endif\\n\\n vec2 enclosing_size;\\n // Need extra size of (v_linewidth+u_antialias) if edge of marker parallel to\\n // edge of bounding box. If symmetric spike towards edge then multiply by\\n // 1/cos(theta) where theta is angle between spike and bbox edges.\\n int size_hint = int(u_size_hint + 0.5);\\n if (size_hint == 1) // Dash\\n enclosing_size = vec2(v_size.x + v_linewidth + u_antialias,\\n v_linewidth + u_antialias);\\n else if (size_hint == 2) // Dot\\n enclosing_size = 0.25*v_size + u_antialias;\\n else if (size_hint == 3) // Diamond\\n enclosing_size = vec2(v_size.x*(2.0/3.0) + (v_linewidth + u_antialias)*1.20185,\\n v_size.y + (v_linewidth + u_antialias)*1.80278);\\n else if (size_hint == 4) // Hex\\n enclosing_size = v_size + (v_linewidth + u_antialias)*vec2(2.0/sqrt(3.0), 1.0);\\n else if (size_hint == 5) // Square pin\\n enclosing_size = v_size + (v_linewidth + u_antialias)*3.1;\\n else if (size_hint == 6) // Triangle\\n enclosing_size = vec2(v_size.x + (v_linewidth + u_antialias)*sqrt(3.0),\\n v_size.y*(2.0/sqrt(3.0)) + (v_linewidth + u_antialias)*2.0);\\n else if (size_hint == 7) // Triangle pin\\n enclosing_size = v_size + (v_linewidth + u_antialias)*vec2(4.8, 6.0);\\n else if (size_hint == 8) // Star\\n enclosing_size = vec2(v_size.x*0.95106 + (v_linewidth + u_antialias)*3.0,\\n v_size.y + (v_linewidth + u_antialias)*3.2);\\n else\\n enclosing_size = v_size + v_linewidth + u_antialias;\\n\\n // Coordinates in rotated frame with respect to center of marker, used for\\n // distance functions in fragment shader.\\n v_coords = a_position*enclosing_size;\\n\\n float c = cos(-a_angle);\\n float s = sin(-a_angle);\\n mat2 rotation = mat2(c, -s, s, c);\\n\\n vec2 pos = a_center + rotation*v_coords;\\n#ifdef HATCH\\n // Coordinates for hatching in unrotated frame of reference.\\n v_hatch_coords = pos - 0.5;\\n#endif\\n pos += 0.5; // Make up for Bokeh's offset.\\n pos /= u_canvas_size / u_pixel_ratio; // 0 to 1.\\n gl_Position = vec4(2.0*pos.x - 1.0, 1.0 - 2.0*pos.y, 0.0, 1.0);\\n}\\n\"},\n 418: function _(n,i,e,t,a){t();e.default=\"\\nprecision mediump float;\\n\\nconst float SQRT2 = sqrt(2.0);\\nconst float SQRT3 = sqrt(3.0);\\nconst float PI = 3.14159265358979323846;\\n\\nconst int butt_cap = 0;\\nconst int round_cap = 1;\\nconst int square_cap = 2;\\n\\nconst int miter_join = 0;\\nconst int round_join = 1;\\nconst int bevel_join = 2;\\n\\n#ifdef HATCH\\nconst int hatch_dot = 1;\\nconst int hatch_ring = 2;\\nconst int hatch_horizontal_line = 3;\\nconst int hatch_vertical_line = 4;\\nconst int hatch_cross = 5;\\nconst int hatch_horizontal_dash = 6;\\nconst int hatch_vertical_dash = 7;\\nconst int hatch_spiral = 8;\\nconst int hatch_right_diagonal_line = 9;\\nconst int hatch_left_diagonal_line = 10;\\nconst int hatch_diagonal_cross = 11;\\nconst int hatch_right_diagonal_dash = 12;\\nconst int hatch_left_diagonal_dash = 13;\\nconst int hatch_horizontal_wave = 14;\\nconst int hatch_vertical_wave = 15;\\nconst int hatch_criss_cross = 16;\\n#endif\\n\\nuniform float u_antialias;\\n\\nvarying float v_linewidth;\\nvarying vec2 v_size;\\nvarying vec4 v_line_color;\\nvarying vec4 v_fill_color;\\nvarying float v_line_cap;\\nvarying float v_line_join;\\nvarying vec2 v_coords;\\n#ifdef HATCH\\nvarying float v_hatch_pattern;\\nvarying float v_hatch_scale;\\nvarying float v_hatch_weight;\\nvarying vec4 v_hatch_color;\\nvarying vec2 v_hatch_coords;\\n#endif\\n\\n// Lines within the marker (dot, cross, x and y) are added at the end as they are\\n// on top of the fill rather than astride it.\\n#if defined(USE_CIRCLE_DOT) || defined(USE_DIAMOND_DOT) || defined(USE_DOT) || defined(USE_HEX_DOT) || defined(USE_SQUARE_DOT) || defined(USE_STAR_DOT) || defined(USE_TRIANGLE_DOT)\\n #define APPEND_DOT\\n#endif\\n\\n#if defined(USE_CIRCLE_CROSS) || defined(USE_SQUARE_CROSS)\\n #define APPEND_CROSS\\n#endif\\n\\n#ifdef USE_DIAMOND_CROSS\\n #define APPEND_CROSS_2\\n#endif\\n\\n#ifdef USE_CIRCLE_X\\n #define APPEND_X\\n #define APPEND_X_LEN (0.5*v_size.x)\\n#endif\\n\\n#ifdef USE_SQUARE_X\\n #define APPEND_X\\n #define APPEND_X_LEN (v_size.x/SQRT2)\\n#endif\\n\\n#ifdef USE_CIRCLE_Y\\n #define APPEND_Y\\n#endif\\n\\n#if defined(USE_ASTERISK) || defined(USE_CROSS) || defined(USE_DASH) || defined(USE_DOT) || defined(USE_X) || defined(USE_Y)\\n // No fill.\\n #define LINE_ONLY\\n#endif\\n\\n#if defined(LINE_ONLY) || defined(APPEND_CROSS) || defined(APPEND_CROSS_2) || defined(APPEND_X) || defined(APPEND_Y)\\nfloat end_cap_distance(in vec2 p, in vec2 end_point, in vec2 unit_direction, in int line_cap)\\n{\\n vec2 offset = p - end_point;\\n if (line_cap == butt_cap)\\n return dot(offset, unit_direction) + 0.5*v_linewidth;\\n else if (line_cap == square_cap)\\n return dot(offset, unit_direction);\\n else if (line_cap == round_cap && dot(offset, unit_direction) > 0.0)\\n return length(offset);\\n else\\n // Default is outside of line and should be -0.5*(v_linewidth+u_antialias) or less,\\n // so here avoid the multiplication.\\n return -v_linewidth-u_antialias;\\n}\\n#endif\\n\\n#if !(defined(LINE_ONLY) || defined(USE_SQUARE_PIN) || defined(USE_TRIANGLE_PIN))\\n// For line join at a vec2 corner where 2 line segments meet, consider bevel points which are the 2\\n// points obtained by moving half a linewidth away from the corner point in the directions normal to\\n// the line segments. The line through these points is the bevel line, characterised by a vec2\\n// unit_normal and offset distance from the corner point. Edge of bevel join straddles this line,\\n// round join occurs outside of this line centred on the corner point. In general\\n// offset = (linewidth/2)*sin(alpha/2)\\n// where alpha is the angle between the 2 line segments at the corner.\\nfloat line_join_distance_no_miter(\\n in vec2 p, in vec2 corner, in vec2 unit_normal, in float offset, in int line_join)\\n{\\n // Simplified version of line_join_distance ignoring miter which most markers do implicitly\\n // as they are composed of straight line segments.\\n float dist_outside = dot((p - corner), unit_normal) - offset;\\n\\n if (line_join == bevel_join && dist_outside > -0.5*u_antialias)\\n return dist_outside + 0.5*v_linewidth;\\n else if (dist_outside > 0.0) // round_join\\n return distance(p, corner);\\n else\\n // Default is outside of line and should be -0.5*(v_linewidth+u_antialias) or less,\\n // so here avoid the multiplication.\\n return -v_linewidth-u_antialias;\\n}\\n#endif\\n\\n#if defined(USE_SQUARE_PIN) || defined(USE_TRIANGLE_PIN)\\n// Line join distance including miter but only one-sided check as assuming use of symmetry in\\n// calling function.\\nfloat line_join_distance_incl_miter(\\n in vec2 p, in vec2 corner, in vec2 unit_normal, in float offset, in int line_join,\\n vec2 miter_unit_normal)\\n{\\n float dist_outside = dot((p - corner), unit_normal) - offset;\\n\\n if (line_join == miter_join && dist_outside > 0.0)\\n return dot((p - corner), miter_unit_normal);\\n else if (line_join == bevel_join && dist_outside > -0.5*u_antialias)\\n return dist_outside + 0.5*v_linewidth;\\n else if (dist_outside > 0.0) // round_join\\n return distance(p, corner);\\n else\\n return -v_linewidth-u_antialias;\\n}\\n#endif\\n\\n#if defined(APPEND_CROSS) || defined(APPEND_X) || defined(USE_ASTERISK) || defined(USE_CROSS) || defined(USE_X)\\nfloat one_cross(in vec2 p, in int line_cap, in float len)\\n{\\n p = abs(p);\\n p = (p.y > p.x) ? p.yx : p.xy;\\n float dist = p.y;\\n float end_dist = end_cap_distance(p, vec2(len, 0.0), vec2(1.0, 0.0), line_cap);\\n return max(dist, end_dist);\\n}\\n#endif\\n\\n#ifdef APPEND_CROSS_2\\nfloat one_cross_2(in vec2 p, in int line_cap, in vec2 lengths)\\n{\\n // Cross with different length in x and y directions.\\n p = abs(p);\\n bool switch_xy = (p.y > p.x);\\n p = switch_xy ? p.yx : p.xy;\\n float len = switch_xy ? lengths.y : lengths.x;\\n float dist = p.y;\\n float end_dist = end_cap_distance(p, vec2(len, 0.0), vec2(1.0, 0.0), line_cap);\\n return max(dist, end_dist);\\n}\\n#endif\\n\\n#if defined(APPEND_Y) || defined(USE_Y)\\nfloat one_y(in vec2 p, in int line_cap, in float len)\\n{\\n p = vec2(abs(p.x), -p.y);\\n\\n // End point of line to right is (1/2, 1/3)*len*SQRT3.\\n // Unit vector along line is (1/2, 1/3)*k where k = 6/SQRT13.\\n const float k = 6.0/sqrt(13.0);\\n vec2 unit_along = vec2(0.5*k, k/3.0);\\n vec2 end_point = vec2(0.5*len*SQRT3, len*SQRT3/3.0);\\n float dist = max(abs(dot(p, vec2(-unit_along.y, unit_along.x))),\\n end_cap_distance(p, end_point, unit_along, line_cap));\\n\\n if (p.y < 0.0) {\\n // Vertical line.\\n float vert_dist = max(p.x,\\n end_cap_distance(p, vec2(0.0, -len), vec2(0.0, -1.0), line_cap));\\n dist = min(dist, vert_dist);\\n }\\n return dist;\\n}\\n#endif\\n\\n// One marker_distance function per marker type.\\n// Distance is zero on edge of marker, +ve outside and -ve inside.\\n\\n#ifdef USE_ASTERISK\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n vec2 p_diag = vec2((p.x + p.y)/SQRT2, (p.x - p.y)/SQRT2);\\n float len = 0.5*v_size.x;\\n return min(one_cross(p, line_cap, len), // cross\\n one_cross(p_diag, line_cap, len)); // x\\n}\\n#endif\\n\\n#if defined(USE_CIRCLE) || defined(USE_CIRCLE_CROSS) || defined(USE_CIRCLE_DOT) || defined(USE_CIRCLE_X) || defined(USE_CIRCLE_Y)\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n return length(p) - 0.5*v_size.x;\\n}\\n#endif\\n\\n#ifdef USE_CROSS\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n return one_cross(p, line_cap, 0.5*v_size.x);\\n}\\n#endif\\n\\n#ifdef USE_DASH\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n p = abs(p);\\n float dist = p.y;\\n float end_dist = end_cap_distance(p, vec2(0.5*v_size.x, 0.0), vec2(1.0, 0.0), line_cap);\\n return max(dist, end_dist);\\n}\\n#endif\\n\\n#if defined(USE_DIAMOND) || defined(USE_DIAMOND_CROSS) || defined(USE_DIAMOND_DOT)\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n // Only need to consider +ve quadrant, the 2 end points are (2r/3, 0) and (0, r)\\n // where r = radius = v_size.x/2.\\n // Line has outward-facing unit normal vec2(1, 2/3)/k where k = SQRT13/3\\n // hence vec2(3, 2)/SQRT13, and distance from origin of 2r/(3k) = 2r/SQRT13.\\n p = abs(p);\\n float r = 0.5*v_size.x;\\n const float SQRT13 = sqrt(13.0);\\n float dist = dot(p, vec2(3.0, 2.0))/SQRT13 - 2.0*r/SQRT13;\\n\\n if (line_join != miter_join) {\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(0.0, r), vec2(0.0, 1.0), v_linewidth/SQRT13, line_join));\\n\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(r*2.0/3.0, 0.0), vec2(1.0, 0.0), v_linewidth*(1.5/SQRT13), line_join));\\n }\\n\\n return dist;\\n}\\n#endif\\n\\n#ifdef USE_DOT\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Dot is always appended.\\n return v_linewidth+u_antialias;\\n}\\n#endif\\n\\n#if defined(USE_HEX) || defined(USE_HEX_DOT)\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // A regular hexagon has v_size.x == v.size_y = r where r is the length of\\n // each of the 3 sides of the 6 equilateral triangles that comprise the hex.\\n // Only consider +ve quadrant, the 3 corners are at (0, h), (rx/2, h), (rx, 0)\\n // where rx = 0.5*v_size.x, ry = 0.5*v_size.y and h = ry*SQRT3/2.\\n // Sloping line has outward normal vec2(h, rx/2). Length of this is\\n // len = sqrt(h**2 + rx**2/4) to give unit normal (h, rx/2)/len and distance\\n // from origin of this line is rx*h/len.\\n p = abs(p);\\n float rx = v_size.x/2.0;\\n float h = v_size.y*(SQRT3/4.0);\\n float len_normal = sqrt(h*h + 0.25*rx*rx);\\n vec2 unit_normal = vec2(h, 0.5*rx) / len_normal;\\n float dist = max(dot(p, unit_normal) - rx*h/len_normal, // Distance from sloping line.\\n p.y - h); // Distance from horizontal line.\\n\\n if (line_join != miter_join) {\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(rx, 0.0), vec2(1.0, 0.0), 0.5*v_linewidth*unit_normal.x, line_join));\\n\\n unit_normal = normalize(unit_normal + vec2(0.0, 1.0)); // At (rx/2, h) corner.\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(0.5*rx, h), unit_normal, 0.5*v_linewidth*unit_normal.y, line_join));\\n }\\n return dist;\\n}\\n#endif\\n\\n#ifdef USE_PLUS\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n // Only need to consider one octant, the +ve quadrant with x >= y.\\n p = abs(p);\\n p = (p.y > p.x) ? p.yx : p.xy;\\n\\n // 3 corners are (r, 0), (r, 3r/8) and (3r/8, 3r/8).\\n float r = 0.5*v_size.x;\\n p = p - vec2(r, 0.375*r); // Distance with respect to outside corner\\n float dist = max(p.x, p.y);\\n\\n if (line_join != miter_join) {\\n // Outside corner\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(0.0, 0.0), vec2(1.0/SQRT2, 1.0/SQRT2), v_linewidth/(2.0*SQRT2), line_join));\\n\\n // Inside corner\\n dist = min(dist, -line_join_distance_no_miter(\\n p, vec2(-5.0*r/8.0, 0.0), vec2(-1.0/SQRT2, -1.0/SQRT2), v_linewidth/(2.0*SQRT2), line_join));\\n }\\n\\n return dist;\\n}\\n#endif\\n\\n#if defined(USE_SQUARE) || defined(USE_SQUARE_CROSS) || defined(USE_SQUARE_DOT) || defined(USE_SQUARE_X)\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n vec2 p2 = abs(p) - v_size/2.0; // Offset from corner\\n float dist = max(p2.x, p2.y);\\n\\n if (line_join != miter_join)\\n dist = max(dist, line_join_distance_no_miter(\\n p2, vec2(0.0, 0.0), vec2(1.0/SQRT2, 1.0/SQRT2), v_linewidth/(2.0*SQRT2), line_join));\\n\\n return dist;\\n}\\n#endif\\n\\n#ifdef USE_SQUARE_PIN\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n p = abs(p);\\n p = (p.y > p.x) ? p.yx : p.xy;\\n // p is in octant between y=0 and y=x.\\n // Quadratic bezier curve passes through (r, r), (11r/16, 0) and (r, -r).\\n // Circular arc that passes through the same points has center at\\n // x = r + 231r/160 = 2.44275r and y = 0 and hence radius is\\n // x - 11r/16 = 1.75626 precisely.\\n float r = 0.5*v_size.x;\\n float center_x = r*2.44375;\\n float radius = r*1.75626;\\n float dist = radius - distance(p, vec2(center_x, 0.0));\\n\\n // Magic number is 0.5*sin(atan(8/5) - pi/4)\\n dist = max(dist, line_join_distance_incl_miter(\\n p, vec2(r, r), vec2(1.0/SQRT2, 1.0/SQRT2), v_linewidth*0.1124297533493792, line_join,\\n vec2(8.0/sqrt(89.0), -5.0/sqrt(89.0))));\\n\\n return dist;\\n}\\n#endif\\n\\n#if defined(USE_STAR) || defined(USE_STAR_DOT)\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n const float SQRT5 = sqrt(5.0);\\n const float COS72 = 0.25*(SQRT5 - 1.0);\\n const float SIN72 = sqrt((5.0+SQRT5) / 8.0);\\n\\n float angle = atan(p.x, p.y); // In range -pi to +pi clockwise from +y direction.\\n angle = mod(angle, 0.4*PI) - 0.2*PI; // In range -pi/5 to +pi/5 clockwise from +y direction.\\n p = length(p)*vec2(cos(angle), abs(sin(angle))); // (x,y) in pi/10 (36 degree) sector.\\n\\n // 2 corners are at (r, 0) and (r-a*SIN72, a*COS72) where a = r sqrt(5-2*sqrt(5)).\\n // Line has outward-facing unit normal vec2(COS72, SIN72) and distance from\\n // origin of dot(vec2(r, 0), vec2(COS72, SIN72)) = r*COS72\\n float r = 0.5*v_size.x;\\n float a = r*sqrt(5.0 - 2.0*SQRT5);\\n float dist = dot(p, vec2(COS72, SIN72)) - r*COS72;\\n\\n if (line_join != miter_join) {\\n // Outside corner\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(r, 0.0), vec2(1.0, 0.0), v_linewidth*(0.5*COS72), line_join));\\n\\n // Inside corner\\n const float COS36 = sqrt(0.5 + COS72/2.0);\\n const float SIN36 = sqrt(0.5 - COS72/2.0);\\n dist = min(dist, -line_join_distance_no_miter(\\n p, vec2(r-a*SIN72, a*COS72), vec2(-COS36, -SIN36), v_linewidth*(0.5*COS36), line_join));\\n }\\n\\n return dist;\\n}\\n#endif\\n\\n#if defined(USE_TRIANGLE) || defined(USE_TRIANGLE_DOT) || defined(USE_INVERTED_TRIANGLE)\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n // For normal triangle 3 corners are at (-r, a), (r, a), (0, a-h)=(0, -2h/3)\\n // given r = radius = v_size.x/2, h = SQRT3*r, a = h/3.\\n // Sloping line has outward-facing unit normal vec2(h, -r)/2r = vec2(SQRT3, -1)/2\\n // and distance from origin of a. Horizontal line has outward-facing unit normal\\n // vec2(0, 1) and distance from origin of a.\\n float r = 0.5*v_size.x;\\n float a = r*SQRT3/3.0;\\n\\n // Only need to consider +ve x.\\n#ifdef USE_INVERTED_TRIANGLE\\n p = vec2(abs(p.x), -p.y);\\n#else\\n p = vec2(abs(p.x), p.y);\\n#endif\\n\\n float dist = max(0.5*dot(p, vec2(SQRT3, -1.0)) - a, // Distance from sloping line.\\n p.y - a); // Distance from horizontal line.\\n\\n if (line_join != miter_join) {\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(0.0, -(2.0/SQRT3)*r), vec2(0.0, -1.0), v_linewidth*0.25, line_join));\\n\\n dist = max(dist, line_join_distance_no_miter(\\n p, vec2(r, a), vec2(SQRT3/2.0, 0.5), v_linewidth*0.25, line_join));\\n }\\n\\n return dist;\\n}\\n#endif\\n\\n#ifdef USE_TRIANGLE_PIN\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n float angle = atan(p.x, -p.y); // In range -pi to +pi.\\n angle = mod(angle, PI*2.0/3.0) - PI/3.0; // In range -pi/3 to pi/3.\\n p = length(p)*vec2(cos(angle), abs(sin(angle))); // (x,y) in range 0 to pi/3.\\n // Quadratic bezier curve passes through (a, r), ((a+b)/2, 0) and (a, -r) where\\n // a = r/SQRT3, b = 3a/8 = r SQRT3/8. Circular arc that passes through the same points has\\n // center at (a+x, 0) and radius x+c where c = (a-b)/2 and x = (r**2 - c**2) / (2c).\\n // Ignore r factor until the end so can use const.\\n const float a = 1.0/SQRT3;\\n const float b = SQRT3/8.0;\\n const float c = (a-b)/2.0;\\n const float x = (1.0 - c*c) / (2.0*c);\\n const float center_x = x + a;\\n const float radius = x + c;\\n float r = 0.5*v_size.x;\\n float dist = r*radius - distance(p, vec2(r*center_x, 0.0));\\n\\n // Magic number is 0.5*sin(atan(8*sqrt(3)/5) - pi/3)\\n dist = max(dist, line_join_distance_incl_miter(\\n p, vec2(a*r, r), vec2(0.5, 0.5*SQRT3), v_linewidth*0.0881844526878324, line_join,\\n vec2(8.0*SQRT3, -5.0)/sqrt(217.0)));\\n\\n return dist;\\n}\\n#endif\\n\\n#ifdef USE_X\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n p = vec2((p.x + p.y)/SQRT2, (p.x - p.y)/SQRT2);\\n return one_cross(p, line_cap, 0.5*v_size.x);\\n}\\n#endif\\n\\n#ifdef USE_Y\\nfloat marker_distance(in vec2 p, in int line_cap, in int line_join)\\n{\\n // Assuming v_size.x == v.size_y\\n return one_y(p, line_cap, 0.5*v_size.x);\\n}\\n#endif\\n\\n// Convert distance from edge of marker to fraction in range 0 to 1, depending\\n// on antialiasing width.\\nfloat distance_to_fraction(in float dist)\\n{\\n return 1.0 - smoothstep(-0.5*u_antialias, 0.5*u_antialias, dist);\\n}\\n\\n// Return fraction from 0 (no fill color) to 1 (full fill color).\\nfloat fill_fraction(in float dist)\\n{\\n return distance_to_fraction(dist);\\n}\\n\\n// Return fraction in range 0 (no line color) to 1 (full line color).\\nfloat line_fraction(in float dist)\\n{\\n return distance_to_fraction(abs(dist) - 0.5*v_linewidth);\\n}\\n\\n// Return fraction (in range 0 to 1) of a color, with premultiplied alpha.\\nvec4 fractional_color(in vec4 color, in float fraction)\\n{\\n color.a *= fraction;\\n color.rgb *= color.a;\\n return color;\\n}\\n\\n// Blend colors that have premultiplied alpha.\\nvec4 blend_colors(in vec4 src, in vec4 dest)\\n{\\n return (1.0 - src.a)*dest + src;\\n}\\n\\n#ifdef APPEND_DOT\\nfloat dot_fraction(in vec2 p)\\n{\\n // Assuming v_size.x == v_size.y\\n float radius = 0.125*v_size.x;\\n float dot_distance = max(length(p) - radius, -0.5*u_antialias);\\n return fill_fraction(dot_distance);\\n}\\n#endif\\n\\n#ifdef HATCH\\n// Wrap coordinate(s) by removing integer part to give distance from center of\\n// repeat, in the range -0.5 to +0.5.\\nfloat wrap(in float x)\\n{\\n return fract(x) - 0.5;\\n}\\n\\nvec2 wrap(in vec2 xy)\\n{\\n return fract(xy) - 0.5;\\n}\\n\\n// Return fraction from 0 (no hatch color) to 1 (full hatch color).\\nfloat hatch_fraction(in vec2 coords, in int hatch_pattern)\\n{\\n float scale = v_hatch_scale; // Hatch repeat distance.\\n\\n // Coordinates and linewidth/halfwidth are scaled to hatch repeat distance.\\n coords = coords / scale;\\n float halfwidth = 0.5*v_hatch_weight / scale; // Half the hatch linewidth.\\n\\n // Default is to return fraction of zero, i.e. no pattern.\\n float dist = u_antialias;\\n\\n if (hatch_pattern == hatch_dot) {\\n const float dot_radius = 0.25;\\n dist = length(wrap(coords)) - dot_radius;\\n }\\n else if (hatch_pattern == hatch_ring) {\\n const float ring_radius = 0.25;\\n dist = abs(length(wrap(coords)) - ring_radius) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_horizontal_line) {\\n dist = abs(wrap(coords.y)) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_vertical_line) {\\n dist = abs(wrap(coords.x)) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_cross) {\\n dist = min(abs(wrap(coords.x)), abs(wrap(coords.y))) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_horizontal_dash) {\\n // Dashes have square caps.\\n const float halflength = 0.25;\\n dist = max(abs(wrap(coords.y)),\\n abs(wrap(coords.x) + 0.25) - halflength) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_vertical_dash) {\\n const float halflength = 0.25;\\n dist = max(abs(wrap(coords.x)),\\n abs(wrap(coords.y) + 0.25) - halflength) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_spiral) {\\n vec2 wrap2 = wrap(coords);\\n float angle = wrap(atan(wrap2.y, wrap2.x) / (2.0*PI));\\n // Canvas spiral radius increases by scale*pi/15 each rotation.\\n const float dr = PI/15.0;\\n float radius = length(wrap2);\\n // At any angle, spiral lines are equally spaced dr apart.\\n // Find distance to nearest of these lines.\\n float frac = fract((radius - dr*angle) / dr); // 0 to 1.\\n dist = dr*(abs(frac - 0.5));\\n dist = min(dist, radius) - halfwidth; // Consider center point also.\\n }\\n else if (hatch_pattern == hatch_right_diagonal_line) {\\n dist = abs(wrap(2.0*coords.x + coords.y))/sqrt(5.0) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_left_diagonal_line) {\\n dist = abs(wrap(2.0*coords.x - coords.y))/sqrt(5.0) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_diagonal_cross) {\\n coords = vec2(coords.x + coords.y + 0.5, coords.x - coords.y + 0.5);\\n dist = min(abs(wrap(coords.x)), abs(wrap(coords.y))) / SQRT2 - halfwidth;\\n }\\n else if (hatch_pattern == hatch_right_diagonal_dash) {\\n float across = coords.x + coords.y + 0.5;\\n dist = abs(wrap(across)) / SQRT2; // Distance to nearest solid line.\\n\\n across = floor(across); // Offset for dash.\\n float along = wrap(0.5*(coords.x - coords.y + across));\\n const float halflength = 0.25;\\n along = abs(along) - halflength; // Distance along line.\\n\\n dist = max(dist, along) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_left_diagonal_dash) {\\n float across = coords.x - coords.y + 0.5;\\n dist = abs(wrap(across)) / SQRT2; // Distance to nearest solid line.\\n\\n across = floor(across); // Offset for dash.\\n float along = wrap(0.5*(coords.x + coords.y + across));\\n const float halflength = 0.25;\\n along = abs(along) - halflength; // Distance along line.\\n\\n dist = max(dist, along) - halfwidth;\\n }\\n else if (hatch_pattern == hatch_horizontal_wave) {\\n float wrapx = wrap(coords.x);\\n float wrapy = wrap(coords.y - 0.25 + abs(wrapx));\\n dist = abs(wrapy) / SQRT2 - halfwidth;\\n }\\n else if (hatch_pattern == hatch_vertical_wave) {\\n float wrapy = wrap(coords.y);\\n float wrapx = wrap(coords.x - 0.25 + abs(wrapy));\\n dist = abs(wrapx) / SQRT2 - halfwidth;\\n }\\n else if (hatch_pattern == hatch_criss_cross) {\\n float plus = min(abs(wrap(coords.x)), abs(wrap(coords.y)));\\n\\n coords = vec2(coords.x + coords.y + 0.5, coords.x - coords.y + 0.5);\\n float X = min(abs(wrap(coords.x)), abs(wrap(coords.y))) / SQRT2;\\n\\n dist = min(plus, X) - halfwidth;\\n }\\n\\n return distance_to_fraction(dist*scale);\\n}\\n#endif\\n\\nvoid main()\\n{\\n int line_cap = int(v_line_cap + 0.5);\\n int line_join = int(v_line_join + 0.5);\\n#ifdef HATCH\\n int hatch_pattern = int(v_hatch_pattern + 0.5);\\n#endif\\n\\n float dist = marker_distance(v_coords, line_cap, line_join);\\n\\n#ifdef LINE_ONLY\\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\\n#else\\n float fill_frac = fill_fraction(dist);\\n vec4 color = fractional_color(v_fill_color, fill_frac);\\n#endif\\n\\n#if defined(HATCH) && !defined(LINE_ONLY)\\n if (hatch_pattern > 0 && fill_frac > 0.0) {\\n float hatch_frac = hatch_fraction(v_hatch_coords, hatch_pattern);\\n vec4 hatch_color = fractional_color(v_hatch_color, hatch_frac*fill_frac);\\n color = blend_colors(hatch_color, color);\\n }\\n#endif\\n\\n float line_frac = line_fraction(dist);\\n\\n#ifdef APPEND_DOT\\n line_frac = max(line_frac, dot_fraction(v_coords));\\n#endif\\n#ifdef APPEND_CROSS\\n line_frac = max(line_frac, line_fraction(one_cross(v_coords, line_cap, 0.5*v_size.x)));\\n#endif\\n#ifdef APPEND_CROSS_2\\n vec2 lengths = vec2(v_size.x/3.0, v_size.x/2.0);\\n line_frac = max(line_frac, line_fraction(one_cross_2(v_coords, line_cap, lengths)));\\n#endif\\n#ifdef APPEND_X\\n vec2 p = vec2((v_coords.x + v_coords.y)/SQRT2, (v_coords.x - v_coords.y)/SQRT2);\\n line_frac = max(line_frac, line_fraction(one_cross(p, line_cap, APPEND_X_LEN)));\\n#endif\\n#ifdef APPEND_Y\\n line_frac = max(line_frac, line_fraction(one_y(v_coords, line_cap, 0.5*v_size.x)));\\n#endif\\n\\n if (line_frac > 0.0) {\\n vec4 line_color = fractional_color(v_line_color, line_frac);\\n color = blend_colors(line_color, color);\\n }\\n\\n gl_FragColor = color;\\n}\\n\"},\n 419: function _(t,_,i,h,e){h();const s=t(420),a=t(421),r=t(422);class l extends s.BaseGLGlyph{constructor(t,_){super(t,_),this.glyph=_,this._antialias=1.5,this._show_all=!1}_draw_one_marker_type(t,_,i){const h={scissor:this.regl_wrapper.scissor,viewport:this.regl_wrapper.viewport,canvas_size:[_.width,_.height],pixel_ratio:_.pixel_ratio,center:i._centers,width:i._widths,height:i._heights,angle:i._angles,size_hint:(0,r.marker_type_to_size_hint)(t),nmarkers:i.nvertices,antialias:this._antialias,linewidth:this._linewidths,line_color:this._line_rgba,fill_color:this._fill_rgba,line_cap:this._line_caps,line_join:this._line_joins,show:this._show};if(this._have_hatch){const _=Object.assign(Object.assign({},h),{hatch_pattern:this._hatch_patterns,hatch_scale:this._hatch_scales,hatch_weight:this._hatch_weights,hatch_color:this._hatch_rgba});this.regl_wrapper.marker_hatch(t)(_)}else this.regl_wrapper.marker_no_hatch(t)(h)}_set_visuals(){const t=this._get_visuals(),_=t.fill,i=t.line;if(null==this._linewidths&&(this._linewidths=new a.Float32Buffer(this.regl_wrapper),this._line_caps=new a.Uint8Buffer(this.regl_wrapper),this._line_joins=new a.Uint8Buffer(this.regl_wrapper),this._line_rgba=new a.NormalizedUint8Buffer(this.regl_wrapper),this._fill_rgba=new a.NormalizedUint8Buffer(this.regl_wrapper)),this._linewidths.set_from_prop(i.line_width),this._line_caps.set_from_line_cap(i.line_cap),this._line_joins.set_from_line_join(i.line_join),this._line_rgba.set_from_color(i.line_color,i.line_alpha),this._fill_rgba.set_from_color(_.fill_color,_.fill_alpha),this._have_hatch=t.hatch.doit,this._have_hatch){const _=t.hatch;null==this._hatch_patterns&&(this._hatch_patterns=new a.Uint8Buffer(this.regl_wrapper),this._hatch_scales=new a.Float32Buffer(this.regl_wrapper),this._hatch_weights=new a.Float32Buffer(this.regl_wrapper),this._hatch_rgba=new a.NormalizedUint8Buffer(this.regl_wrapper)),this._hatch_patterns.set_from_hatch_pattern(_.hatch_pattern),this._hatch_scales.set_from_prop(_.hatch_scale),this._hatch_weights.set_from_prop(_.hatch_weight),this._hatch_rgba.set_from_color(_.hatch_color,_.hatch_alpha)}}}i.BaseMarkerGL=l,l.__name__=\"BaseMarkerGL\",l.missing_point=-1e4},\n 420: function _(e,t,s,i,h){i();class a{constructor(e,t){this.glyph=t,this.nvertices=0,this.size_changed=!1,this.data_changed=!1,this.visuals_changed=!1,this.regl_wrapper=e}set_data_changed(){const{data_size:e}=this.glyph;e!=this.nvertices&&(this.nvertices=e,this.size_changed=!0),this.data_changed=!0}set_visuals_changed(){this.visuals_changed=!0}render(e,t,s){if(0==t.length)return!0;const{width:i,height:h}=this.glyph.renderer.plot_view.canvas_view.webgl.canvas,a={pixel_ratio:this.glyph.renderer.plot_view.canvas_view.pixel_ratio,width:i,height:h};return this.draw(t,s,a),!0}}s.BaseGLGlyph=a,a.__name__=\"BaseGLGlyph\"},\n 421: function _(r,t,a,e,s){e();const i=r(422),_=r(22);class n{constructor(r){this.regl_wrapper=r,this.is_scalar=!0}get_sized_array(r){return null!=this.array&&this.array.length==r||(this.array=this.new_array(r)),this.array}is_normalized(){return!1}get length(){return null!=this.array?this.array.length:0}set_from_array(r){const t=r.length,a=this.get_sized_array(t);for(let e=0;e0}_set_data(){const s=this.glyph.sx.length,i=s-1;this._is_closed=s>2&&this.glyph.sx[0]==this.glyph.sx[s-1]&&this.glyph.sy[0]==this.glyph.sy[s-1]&&isFinite(this.glyph.sx[0])&&isFinite(this.glyph.sy[0]),null==this._points&&(this._points=new o.Float32Buffer(this.regl_wrapper));const t=this._points.get_sized_array(2*(s+2));for(let i=1;is/255)),this._linewidth=s.line_width.value,this._linewidth<1&&(this._color[3]*=this._linewidth,this._linewidth=1),this._line_dash=(0,a.resolve_line_dash)(s.line_dash.value),this._is_dashed()&&([this._dash_tex_info,this._dash_tex,this._dash_scale]=this.regl_wrapper.get_dash(this._line_dash),this._dash_offset=s.line_dash_offset.value)}}t.LineGL=r,r.__name__=\"LineGL\"},\n 427: function _(s,t,i,e,r){e();const h=s(421),a=s(424);class n extends a.SingleMarkerGL{constructor(s,t){super(s,t),this.glyph=t}draw(s,t,i){this._draw_impl(s,i,t.glglyph,\"square\")}_get_visuals(){return this.glyph.visuals}_set_data(){const s=this.nvertices;null==this._centers&&(this._centers=new h.Float32Buffer(this.regl_wrapper),this._widths=new h.Float32Buffer(this.regl_wrapper),this._heights=new h.Float32Buffer(this.regl_wrapper),this._angles=new h.Float32Buffer(this.regl_wrapper),this._angles.set_from_scalar(0));const t=this._centers.get_sized_array(2*s),i=this._heights.get_sized_array(s),e=this._widths.get_sized_array(s);for(let r=0;r1||s.length<_){this._show_all=!1,n.fill(0),r=0;for(const e of s)1!=h&&i._marker_types.get(e)!=t||(n[e]=255,r++)}else this._show_all&&a==_||(this._show_all=!0,n.fill(255));this._show.update(),0!=r&&this._draw_one_marker_type(t,e,i)}}_get_visuals(){return this.glyph.visuals}_set_data(){const s=this.nvertices;null==this._centers&&(this._centers=new r.Float32Buffer(this.regl_wrapper),this._widths=new r.Float32Buffer(this.regl_wrapper),this._heights=this._widths,this._angles=new r.Float32Buffer(this.regl_wrapper));const t=this._centers.get_sized_array(2*s);for(let e=0;ethis.render()))}remove(){null!=this.icon_view&&this.icon_view.remove(),super.remove()}styles(){return[...super.styles(),d.default]}_render_button(...t){return(0,c.button)({type:\"button\",disabled:this.model.disabled,class:[h.btn,h[`btn_${this.model.button_type}`]]},...t)}render(){super.render(),this.button_el=this._render_button(this.model.label),this.button_el.addEventListener(\"click\",(()=>this.click())),null!=this.icon_view&&(\"\"!=this.model.label?(0,c.prepend)(this.button_el,this.icon_view.el,(0,c.nbsp)()):(0,c.prepend)(this.button_el,this.icon_view.el),this.icon_view.render()),this.group_el=(0,c.div)({class:h.btn_group},this.button_el),this.el.appendChild(this.group_el)}click(){}}n.AbstractButtonView=b,b.__name__=\"AbstractButtonView\";class p extends _.Control{constructor(t){super(t)}}n.AbstractButton=p,o=p,p.__name__=\"AbstractButton\",o.define((({String:t,Ref:e,Nullable:n})=>({label:[t,\"Button\"],icon:[n(e(a.AbstractIcon)),null],button_type:[r.ButtonType,\"default\"]})))},\n 442: function _(t,e,o,s,n){s();const i=t(512),l=t(43);class c extends i.WidgetView{connect_signals(){super.connect_signals();const t=this.model.properties;this.on_change(t.disabled,(()=>{for(const t of this.controls())(0,l.toggle_attribute)(t,\"disabled\",this.model.disabled)}))}}o.ControlView=c,c.__name__=\"ControlView\";class r extends i.Widget{constructor(t){super(t)}}o.Control=r,r.__name__=\"Control\"},\n 512: function _(i,e,t,n,o){var r;n();const s=i(312);class _ extends s.HTMLBoxView{get orientation(){return\"horizontal\"}get default_size(){return this.model.default_size}_width_policy(){return\"horizontal\"==this.orientation?super._width_policy():\"fixed\"}_height_policy(){return\"horizontal\"==this.orientation?\"fixed\":super._height_policy()}box_sizing(){const i=super.box_sizing();return\"horizontal\"==this.orientation?null==i.width&&(i.width=this.default_size):null==i.height&&(i.height=this.default_size),i}}t.WidgetView=_,_.__name__=\"WidgetView\";class h extends s.HTMLBox{constructor(i){super(i)}}t.Widget=h,r=h,h.__name__=\"Widget\",r.define((({Number:i})=>({default_size:[i,300]}))),r.override({margin:[5,5,5,5]})},\n 444: function _(c,t,s,n,e){n();const o=c(53),_=c(226);class a extends _.DOMView{}s.AbstractIconView=a,a.__name__=\"AbstractIconView\";class r extends o.Model{constructor(c){super(c)}}s.AbstractIcon=r,r.__name__=\"AbstractIcon\"},\n 445: function _(e,t,n,s,i){s();const h=e(1);var o;const _=e(446),u=e(43),r=e(10),c=(0,h.__importStar)(e(229)),a=c;class l extends _.TextInputView{constructor(){super(...arguments),this._open=!1,this._last_value=\"\",this._hover_index=0}styles(){return[...super.styles(),c.default]}render(){super.render(),this.input_el.addEventListener(\"keydown\",(e=>this._keydown(e))),this.input_el.addEventListener(\"keyup\",(e=>this._keyup(e))),this.menu=(0,u.div)({class:[a.menu,a.below]}),this.menu.addEventListener(\"click\",(e=>this._menu_click(e))),this.menu.addEventListener(\"mouseover\",(e=>this._menu_hover(e))),this.el.appendChild(this.menu),(0,u.undisplay)(this.menu)}change_input(){this._open&&this.menu.children.length>0?(this.model.value=this.menu.children[this._hover_index].textContent,this.input_el.focus(),this._hide_menu()):this.model.restrict||super.change_input()}_update_completions(e){(0,u.empty)(this.menu);for(const t of e){const e=(0,u.div)(t);this.menu.appendChild(e)}e.length>0&&this.menu.children[0].classList.add(a.active)}_show_menu(){if(!this._open){this._open=!0,this._hover_index=0,this._last_value=this.model.value,(0,u.display)(this.menu);const e=t=>{const{target:n}=t;n instanceof HTMLElement&&!this.el.contains(n)&&(document.removeEventListener(\"click\",e),this._hide_menu())};document.addEventListener(\"click\",e)}}_hide_menu(){this._open&&(this._open=!1,(0,u.undisplay)(this.menu))}_menu_click(e){e.target!=e.currentTarget&&e.target instanceof Element&&(this.model.value=e.target.textContent,this.input_el.focus(),this._hide_menu())}_menu_hover(e){if(e.target!=e.currentTarget&&e.target instanceof Element){let t=0;for(t=0;t0&&(this.menu.children[this._hover_index].classList.remove(a.active),this._hover_index=(0,r.clamp)(e,0,t-1),this.menu.children[this._hover_index].classList.add(a.active))}_keydown(e){}_keyup(e){switch(e.keyCode){case u.Keys.Enter:this.change_input();break;case u.Keys.Esc:this._hide_menu();break;case u.Keys.Up:this._bump_hover(this._hover_index-1);break;case u.Keys.Down:this._bump_hover(this._hover_index+1);break;default:{const e=this.input_el.value;if(e.lengthe:e=>e.toLowerCase();for(const n of this.model.completions)s(n).startsWith(s(e))&&t.push(n);this._update_completions(t),0==t.length?this._hide_menu():this._show_menu()}}}}n.AutocompleteInputView=l,l.__name__=\"AutocompleteInputView\";class d extends _.TextInput{constructor(e){super(e)}}n.AutocompleteInput=d,o=d,d.__name__=\"AutocompleteInput\",o.prototype.default_view=l,o.define((({Boolean:e,Int:t,String:n,Array:s})=>({completions:[s(n),[]],min_characters:[t,2],case_sensitive:[e,!0],restrict:[e,!0]})))},\n 446: function _(t,e,n,p,_){p();const u=t(1);var i;const s=t(447),r=t(43),x=(0,u.__importStar)(t(449));class a extends s.TextLikeInputView{_render_input(){this.input_el=(0,r.input)({type:\"text\",class:x.input})}}n.TextInputView=a,a.__name__=\"TextInputView\";class c extends s.TextLikeInput{constructor(t){super(t)}}n.TextInput=c,i=c,c.__name__=\"TextInput\",i.prototype.default_view=a},\n 447: function _(e,t,n,i,l){var s;i();const h=e(448);class a extends h.InputWidgetView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.name.change,(()=>{var e;return this.input_el.name=null!==(e=this.model.name)&&void 0!==e?e:\"\"})),this.connect(this.model.properties.value.change,(()=>this.input_el.value=this.model.value)),this.connect(this.model.properties.value_input.change,(()=>this.input_el.value=this.model.value_input)),this.connect(this.model.properties.disabled.change,(()=>this.input_el.disabled=this.model.disabled)),this.connect(this.model.properties.placeholder.change,(()=>this.input_el.placeholder=this.model.placeholder)),this.connect(this.model.properties.max_length.change,(()=>{const{max_length:e}=this.model;null!=e?this.input_el.maxLength=e:this.input_el.removeAttribute(\"maxLength\")}))}render(){var e;super.render(),this._render_input();const{input_el:t}=this;t.name=null!==(e=this.model.name)&&void 0!==e?e:\"\",t.value=this.model.value,t.disabled=this.model.disabled,t.placeholder=this.model.placeholder,null!=this.model.max_length&&(t.maxLength=this.model.max_length),t.addEventListener(\"change\",(()=>this.change_input())),t.addEventListener(\"input\",(()=>this.change_input_value())),this.group_el.appendChild(t)}change_input(){this.model.value=this.input_el.value,super.change_input()}change_input_value(){this.model.value_input=this.input_el.value,super.change_input()}}n.TextLikeInputView=a,a.__name__=\"TextLikeInputView\";class u extends h.InputWidget{constructor(e){super(e)}}n.TextLikeInput=u,s=u,u.__name__=\"TextLikeInput\",s.define((({Int:e,String:t,Nullable:n})=>({value:[t,\"\"],value_input:[t,\"\"],placeholder:[t,\"\"],max_length:[n(e),null]})))},\n 448: function _(e,t,n,s,l){s();const i=e(1);var o;const r=e(442),_=e(43),p=(0,i.__importStar)(e(449)),a=p;class c extends r.ControlView{*controls(){yield this.input_el}connect_signals(){super.connect_signals(),this.connect(this.model.properties.title.change,(()=>{this.label_el.textContent=this.model.title}))}styles(){return[...super.styles(),p.default]}render(){super.render();const{title:e}=this.model;this.label_el=(0,_.label)({style:{display:0==e.length?\"none\":\"\"}},e),this.group_el=(0,_.div)({class:a.input_group},this.label_el),this.el.appendChild(this.group_el)}change_input(){}}n.InputWidgetView=c,c.__name__=\"InputWidgetView\";class d extends r.Control{constructor(e){super(e)}}n.InputWidget=d,o=d,d.__name__=\"InputWidget\",o.define((({String:e})=>({title:[e,\"\"]})))},\n 449: function _(o,p,t,n,i){n(),t.root=\"bk-root\",t.input=\"bk-input\",t.input_group=\"bk-input-group\",t.inline=\"bk-inline\",t.spin_wrapper=\"bk-spin-wrapper\",t.spin_btn=\"bk-spin-btn\",t.spin_btn_up=\"bk-spin-btn-up\",t.spin_btn_down=\"bk-spin-btn-down\",t.default='.bk-root .bk-input{display:inline-block;width:100%;flex-grow:1;min-height:31px;padding:0 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;}.bk-root .bk-input:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);}.bk-root .bk-input::placeholder,.bk-root .bk-input:-ms-input-placeholder,.bk-root .bk-input::-moz-placeholder,.bk-root .bk-input::-webkit-input-placeholder{color:#999;opacity:1;}.bk-root .bk-input[disabled]{cursor:not-allowed;background-color:#eee;opacity:1;}.bk-root select:not([multiple]).bk-input,.bk-root select:not([size]).bk-input{height:auto;appearance:none;-webkit-appearance:none;background-image:url(\\'data:image/svg+xml;utf8,\\');background-position:right 0.5em center;background-size:8px 6px;background-repeat:no-repeat;}.bk-root select[multiple].bk-input,.bk-root select[size].bk-input,.bk-root textarea.bk-input{height:auto;}.bk-root .bk-input-group{width:100%;height:100%;display:inline-flex;flex-wrap:nowrap;align-items:start;flex-direction:column;white-space:nowrap;}.bk-root .bk-input-group.bk-inline{flex-direction:row;}.bk-root .bk-input-group.bk-inline > *:not(:first-child){margin-left:5px;}.bk-root .bk-input-group input[type=\"checkbox\"] + span,.bk-root .bk-input-group input[type=\"radio\"] + span{position:relative;top:-2px;margin-left:3px;}.bk-root .bk-input-group > .bk-spin-wrapper{display:inherit;width:inherit;height:inherit;position:relative;overflow:hidden;padding:0;vertical-align:middle;}.bk-root .bk-input-group > .bk-spin-wrapper input{padding-right:20px;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn{position:absolute;display:block;height:50%;min-height:0;min-width:0;width:30px;padding:0;margin:0;right:0;border:none;background:none;cursor:pointer;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn:before{content:\"\";display:inline-block;transform:translateY(-50%);border-left:5px solid transparent;border-right:5px solid transparent;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn.bk-spin-btn-up{top:0;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn.bk-spin-btn-up:before{border-bottom:5px solid black;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn.bk-spin-btn-up:disabled:before{border-bottom-color:grey;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn.bk-spin-btn-down{bottom:0;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn.bk-spin-btn-down:before{border-top:5px solid black;}.bk-root .bk-input-group > .bk-spin-wrapper > .bk-spin-btn.bk-spin-btn-down:disabled:before{border-top-color:grey;}'},\n 450: function _(t,e,n,o,c){var s;o();const u=t(441),r=t(251);class i extends u.AbstractButtonView{click(){this.model.trigger_event(new r.ButtonClick),super.click()}}n.ButtonView=i,i.__name__=\"ButtonView\";class _ extends u.AbstractButton{constructor(t){super(t)}}n.Button=_,s=_,_.__name__=\"Button\",s.prototype.default_view=i,s.override({label:\"Button\"})},\n 451: function _(t,e,o,c,a){c();const s=t(1);var n;const i=t(452),r=t(43),u=(0,s.__importStar)(t(318));class _ extends i.ButtonGroupView{get active(){return new Set(this.model.active)}change_active(t){const{active:e}=this;e.has(t)?e.delete(t):e.add(t),this.model.active=[...e].sort()}_update_active(){const{active:t}=this;this._buttons.forEach(((e,o)=>{(0,r.classes)(e).toggle(u.active,t.has(o))}))}}o.CheckboxButtonGroupView=_,_.__name__=\"CheckboxButtonGroupView\";class h extends i.ButtonGroup{constructor(t){super(t)}}o.CheckboxButtonGroup=h,n=h,h.__name__=\"CheckboxButtonGroup\",n.prototype.default_view=_,n.define((({Int:t,Array:e})=>({active:[e(t),[]]})))},\n 452: function _(t,e,n,s,i){s();const o=t(1);var r;const a=t(453),l=t(20),d=t(43),u=(0,o.__importStar)(t(318)),_=u;class c extends a.OrientedControlView{get default_size(){return\"horizontal\"==this.orientation?this.model.default_size:void 0}*controls(){yield*this._buttons}connect_signals(){super.connect_signals();const t=this.model.properties;this.on_change(t.button_type,(()=>this.render())),this.on_change(t.labels,(()=>this.render())),this.on_change(t.active,(()=>this._update_active()))}styles(){return[...super.styles(),u.default]}render(){super.render(),this._buttons=this.model.labels.map(((t,e)=>{const n=(0,d.div)({class:[_.btn,_[`btn_${this.model.button_type}`]],disabled:this.model.disabled},t);return n.addEventListener(\"click\",(()=>this.change_active(e))),n})),this._update_active();const t=\"horizontal\"==this.model.orientation?_.horizontal:_.vertical,e=(0,d.div)({class:[_.btn_group,t]},this._buttons);this.el.appendChild(e)}}n.ButtonGroupView=c,c.__name__=\"ButtonGroupView\";class h extends a.OrientedControl{constructor(t){super(t)}}n.ButtonGroup=h,r=h,h.__name__=\"ButtonGroup\",r.define((({String:t,Array:e})=>({labels:[e(t),[]],button_type:[l.ButtonType,\"default\"]})))},\n 453: function _(n,t,e,o,r){var i;o();const a=n(442),l=n(20);class s extends a.ControlView{get orientation(){return this.model.orientation}}e.OrientedControlView=s,s.__name__=\"OrientedControlView\";class _ extends a.Control{constructor(n){super(n)}}e.OrientedControl=_,i=_,_.__name__=\"OrientedControl\",i.define((()=>({orientation:[l.Orientation,\"horizontal\"]})))},\n 454: function _(e,t,n,i,s){i();const o=e(1);var a;const c=e(455),l=e(43),d=e(9),p=(0,o.__importStar)(e(449));class r extends c.InputGroupView{render(){super.render();const e=(0,l.div)({class:[p.input_group,this.model.inline?p.inline:null]});this.el.appendChild(e);const{active:t,labels:n}=this.model;this._inputs=[];for(let i=0;ithis.change_active(i))),this._inputs.push(s),this.model.disabled&&(s.disabled=!0),(0,d.includes)(t,i)&&(s.checked=!0);const o=(0,l.label)(s,(0,l.span)(n[i]));e.appendChild(o)}}change_active(e){const t=new Set(this.model.active);t.has(e)?t.delete(e):t.add(e),this.model.active=[...t].sort()}}n.CheckboxGroupView=r,r.__name__=\"CheckboxGroupView\";class h extends c.InputGroup{constructor(e){super(e)}}n.CheckboxGroup=h,a=h,h.__name__=\"CheckboxGroup\",a.prototype.default_view=r,a.define((({Boolean:e,Int:t,String:n,Array:i})=>({active:[i(t),[]],labels:[i(n),[]],inline:[e,!1]})))},\n 455: function _(n,t,e,s,o){s();const r=n(1),u=n(442),c=(0,r.__importDefault)(n(449));class _ extends u.ControlView{*controls(){yield*this._inputs}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.render()))}styles(){return[...super.styles(),c.default]}}e.InputGroupView=_,_.__name__=\"InputGroupView\";class i extends u.Control{constructor(n){super(n)}}e.InputGroup=i,i.__name__=\"InputGroup\"},\n 456: function _(e,t,i,n,o){n();const s=e(1);var l;const r=e(448),c=e(43),a=e(22),d=(0,s.__importStar)(e(449));class h extends r.InputWidgetView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.name.change,(()=>{var e;return this.input_el.name=null!==(e=this.model.name)&&void 0!==e?e:\"\"})),this.connect(this.model.properties.color.change,(()=>this.input_el.value=(0,a.color2hexrgb)(this.model.color))),this.connect(this.model.properties.disabled.change,(()=>this.input_el.disabled=this.model.disabled))}render(){super.render(),this.input_el=(0,c.input)({type:\"color\",class:d.input,name:this.model.name,value:this.model.color,disabled:this.model.disabled}),this.input_el.addEventListener(\"change\",(()=>this.change_input())),this.group_el.appendChild(this.input_el)}change_input(){this.model.color=this.input_el.value,super.change_input()}}i.ColorPickerView=h,h.__name__=\"ColorPickerView\";class p extends r.InputWidget{constructor(e){super(e)}}i.ColorPicker=p,l=p,p.__name__=\"ColorPicker\",l.prototype.default_view=h,l.define((({Color:e})=>({color:[e,\"#000000\"]})))},\n 457: function _(e,t,i,n,s){n();const a=e(1);var l;const o=(0,a.__importDefault)(e(458)),d=e(448),r=e(43),c=e(20),u=e(8),h=(0,a.__importStar)(e(449)),_=(0,a.__importDefault)(e(459));function p(e){const t=[];for(const i of e)if((0,u.isString)(i))t.push(i);else{const[e,n]=i;t.push({from:e,to:n})}return t}class m extends d.InputWidgetView{connect_signals(){super.connect_signals();const{value:e,min_date:t,max_date:i,disabled_dates:n,enabled_dates:s,position:a,inline:l}=this.model.properties;this.connect(e.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.setDate(this.model.value)})),this.connect(t.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set(\"minDate\",this.model.min_date)})),this.connect(i.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set(\"maxDate\",this.model.max_date)})),this.connect(n.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set(\"disable\",this.model.disabled_dates)})),this.connect(s.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set(\"enable\",this.model.enabled_dates)})),this.connect(a.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set(\"position\",this.model.position)})),this.connect(l.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set(\"inline\",this.model.inline)}))}remove(){var e;null===(e=this._picker)||void 0===e||e.destroy(),super.remove()}styles(){return[...super.styles(),_.default]}render(){var e,t;null==this._picker&&(super.render(),this.input_el=(0,r.input)({type:\"text\",class:h.input,disabled:this.model.disabled}),this.group_el.appendChild(this.input_el),this._picker=(0,o.default)(this.input_el,{defaultDate:this.model.value,minDate:null!==(e=this.model.min_date)&&void 0!==e?e:void 0,maxDate:null!==(t=this.model.max_date)&&void 0!==t?t:void 0,inline:this.model.inline,position:this.model.position,disable:p(this.model.disabled_dates),enable:p(this.model.enabled_dates),onChange:(e,t,i)=>this._on_change(e,t,i)}))}_on_change(e,t,i){this.model.value=t,this.change_input()}}i.DatePickerView=m,m.__name__=\"DatePickerView\";class v extends d.InputWidget{constructor(e){super(e)}}i.DatePicker=v,l=v,v.__name__=\"DatePicker\",l.prototype.default_view=m,l.define((({Boolean:e,String:t,Array:i,Tuple:n,Or:s,Nullable:a})=>{const l=i(s(t,n(t,t)));return{value:[t],min_date:[a(t),null],max_date:[a(t),null],disabled_dates:[l,[]],enabled_dates:[l,[]],position:[c.CalendarPosition,\"auto\"],inline:[e,!1]}}))},\n 458: function _(e,n,t,a,i){\n /* flatpickr v4.6.6, @license MIT */var o,r;o=this,r=function(){\"use strict\";\n /*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n \n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n \n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */var e=function(){return e=Object.assign||function(e){for(var n,t=1,a=arguments.length;t\",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:\"auto\",positionElement:void 0,prevArrow:\"\",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],longhand:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},months:{shorthand:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],longhand:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return\"th\";switch(n%10){case 1:return\"st\";case 2:return\"nd\";case 3:return\"rd\";default:return\"th\"}},rangeSeparator:\" to \",weekAbbreviation:\"Wk\",scrollTitle:\"Scroll to increment\",toggleTitle:\"Click to toggle\",amPM:[\"AM\",\"PM\"],yearAriaLabel:\"Year\",monthAriaLabel:\"Month\",hourAriaLabel:\"Hour\",minuteAriaLabel:\"Minute\",time_24hr:!1},o=function(e,n){return void 0===n&&(n=2),(\"000\"+e).slice(-1*n)},r=function(e){return!0===e?1:0};function l(e,n,t){var a;return void 0===t&&(t=!1),function(){var i=this,o=arguments;null!==a&&clearTimeout(a),a=window.setTimeout((function(){a=null,t||e.apply(i,o)}),n),t&&!a&&e.apply(i,o)}}var c=function(e){return e instanceof Array?e:[e]};function d(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function s(e,n,t){var a=window.document.createElement(e);return n=n||\"\",t=t||\"\",a.className=n,void 0!==t&&(a.textContent=t),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,n){return n(e)?e:e.parentNode?f(e.parentNode,n):void 0}function m(e,n){var t=s(\"div\",\"numInputWrapper\"),a=s(\"input\",\"numInput \"+e),i=s(\"span\",\"arrowUp\"),o=s(\"span\",\"arrowDown\");if(-1===navigator.userAgent.indexOf(\"MSIE 9.0\")?a.type=\"number\":(a.type=\"text\",a.pattern=\"\\\\d*\"),void 0!==n)for(var r in n)a.setAttribute(r,n[r]);return t.appendChild(a),t.appendChild(i),t.appendChild(o),t}function g(e){try{return\"function\"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var p=function(){},h=function(e,n,t){return t.months[n?\"shorthand\":\"longhand\"][e]},v={D:p,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours(parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*r(new RegExp(t.amPM[1],\"i\").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var a=parseInt(n),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+t.firstDayOfWeek),i},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours(parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:p,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:p,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},D={D:\"(\\\\w+)\",F:\"(\\\\w+)\",G:\"(\\\\d\\\\d|\\\\d)\",H:\"(\\\\d\\\\d|\\\\d)\",J:\"(\\\\d\\\\d|\\\\d)\\\\w+\",K:\"\",M:\"(\\\\w+)\",S:\"(\\\\d\\\\d|\\\\d)\",U:\"(.+)\",W:\"(\\\\d\\\\d|\\\\d)\",Y:\"(\\\\d{4})\",Z:\"(.+)\",d:\"(\\\\d\\\\d|\\\\d)\",h:\"(\\\\d\\\\d|\\\\d)\",i:\"(\\\\d\\\\d|\\\\d)\",j:\"(\\\\d\\\\d|\\\\d)\",l:\"(\\\\w+)\",m:\"(\\\\d\\\\d|\\\\d)\",n:\"(\\\\d\\\\d|\\\\d)\",s:\"(\\\\d\\\\d|\\\\d)\",u:\"(.+)\",w:\"(\\\\d\\\\d|\\\\d)\",y:\"(\\\\d{2})\"},w={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[w.w(e,n,t)]},F:function(e,n,t){return h(w.n(e,n,t)-1,!1,n)},G:function(e,n,t){return o(w.h(e,n,t))},H:function(e){return o(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[r(e.getHours()>11)]},M:function(e,n){return h(e.getMonth(),!0,n)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,n,a){var i=a||r;return void 0===t.formatDate||c?n.split(\"\").map((function(n,a,o){return w[n]&&\"\\\\\"!==o[a-1]?w[n](e,i,t):\"\\\\\"!==n?n:\"\"})).join(\"\"):t.formatDate(e,n,i)}},C=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o;return function(e,n,i,o){if(0===e||e){var l,c=o||r,d=e;if(e instanceof Date)l=new Date(e.getTime());else if(\"string\"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if(\"string\"==typeof e){var s=n||(t||a).dateFormat,u=String(e).trim();if(\"today\"===u)l=new Date,i=!0;else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else if(t&&t.parseDate)l=t.parseDate(e,s);else{l=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var f=void 0,m=[],g=0,p=0,h=\"\";gl&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&H(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+d===23:Math.abs(u-d)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var c=w._input.value;I(),be(),w._input.value!==c&&w._debouncedChange()}function I(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,n,t=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=t,n=w.amPM.textContent,t=e%12+12*r(n===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0);if(void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0)){var l=void 0!==w.config.maxTime?w.config.maxTime:w.config.maxDate;(t=Math.min(t,l.getHours()))===l.getHours()&&(a=Math.min(a,l.getMinutes())),a===l.getMinutes()&&(i=Math.min(i,l.getSeconds()))}if(o){var c=void 0!==w.config.minTime?w.config.minTime:w.config.minDate;(t=Math.max(t,c.getHours()))===c.getHours()&&(a=Math.max(a,c.getMinutes())),a===c.getMinutes()&&(i=Math.max(i,c.getSeconds()))}O(t,a,i)}}function S(e){var n=e||w.latestSelectedDateObj;n&&O(n.getHours(),n.getMinutes(),n.getSeconds())}function _(){var e=w.config.defaultHour,n=w.config.defaultMinute,t=w.config.defaultSeconds;if(void 0!==w.config.minDate){var a=w.config.minDate.getHours(),i=w.config.minDate.getMinutes();(e=Math.max(e,a))===a&&(n=Math.max(i,n)),e===a&&n===i&&(t=w.config.minDate.getSeconds())}if(void 0!==w.config.maxDate){var o=w.config.maxDate.getHours(),r=w.config.maxDate.getMinutes();(e=Math.min(e,o))===o&&(n=Math.min(r,n)),e===o&&n===r&&(t=w.config.maxDate.getSeconds())}return{hours:e,minutes:n,seconds:t}}function O(e,n,t){void 0!==w.latestSelectedDateObj&&w.latestSelectedDateObj.setHours(e%24,n,t||0,0),w.hourElement&&w.minuteElement&&!w.isMobile&&(w.hourElement.value=o(w.config.time_24hr?e:(12+e)%12+12*r(e%12==0)),w.minuteElement.value=o(n),void 0!==w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(e>=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(t)))}function F(e){var n=g(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||\"Enter\"===e.key&&!/[^\\d]/.test(t.toString()))&&Q(t)}function N(e,n,t,a){return n instanceof Array?n.forEach((function(n){return N(e,n,t,a)})):e instanceof Array?e.forEach((function(e){return N(e,n,t,a)})):(e.addEventListener(n,t,a),void w._handlers.push({element:e,event:n,handler:t,options:a}))}function A(){pe(\"onChange\")}function P(e,n){var t=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate=0&&M(e,w.selectedDates[1])<=0}(n)&&!ve(n)&&o.classList.add(\"inRange\"),w.weekNumbers&&1===w.config.showMonths&&\"prevMonthDay\"!==e&&t%7==1&&w.weekNumbers.insertAdjacentHTML(\"beforeend\",\"\"+w.config.getWeek(n)+\"\"),pe(\"onDayCreate\",o),o}function L(e){e.focus(),\"range\"===w.config.mode&&ae(e)}function W(e){for(var n=e>0?0:w.config.showMonths-1,t=e>0?w.config.showMonths:-1,a=n;a!=t;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf(\"hidden\")&&X(c.dateObj))return c}}function R(e,n){var t=ee(document.activeElement||document.body),a=void 0!==e?e:t?document.activeElement:void 0!==w.selectedDateElem&&ee(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&ee(w.todayDateElem)?w.todayDateElem:W(n>0?1:-1);void 0===a?w._input.focus():t?function(e,n){for(var t=-1===e.className.indexOf(\"Month\")?e.dateObj.getMonth():w.currentMonth,a=n>0?w.config.showMonths:-1,i=n>0?1:-1,o=t-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=t-w.currentMonth===o?e.$i+n:n<0?r.children.length-1:0,c=r.children.length,d=l;d>=0&&d0?c:-1);d+=i){var s=r.children[d];if(-1===s.className.indexOf(\"hidden\")&&X(s.dateObj)&&Math.abs(e.$i-d)>=Math.abs(n))return L(s)}w.changeMonth(i),R(W(i),0)}(a,n):L(a)}function B(e,n){for(var t=(new Date(e,n,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((n-1+12)%12,e),i=w.utils.getDaysInMonth(n,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?\"prevMonthDay hidden\":\"prevMonthDay\",c=r?\"nextMonthDay hidden\":\"nextMonthDay\",d=a+1-t,u=0;d<=a;d++,u++)o.appendChild(j(l,new Date(e,n-1,d),d,u));for(d=1;d<=i;d++,u++)o.appendChild(j(\"\",new Date(e,n,d),d,u));for(var f=i+1;f<=42-t&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(j(c,new Date(e,n+1,f%i),f,u));var m=s(\"div\",\"dayContainer\");return m.appendChild(o),m}function J(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n1||\"dropdown\"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&ew.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML=\"\";for(var n=0;n<12;n++)if(e(n)){var t=s(\"option\",\"flatpickr-monthDropdown-month\");t.value=new Date(w.currentYear,n).getMonth().toString(),t.textContent=h(n,w.config.shorthandCurrentMonth,w.l10n),t.tabIndex=-1,w.currentMonth===n&&(t.selected=!0),w.monthsDropdownContainer.appendChild(t)}}}function U(){var e,n=s(\"div\",\"flatpickr-month\"),t=window.document.createDocumentFragment();w.config.showMonths>1||\"static\"===w.config.monthSelectorType?e=s(\"span\",\"cur-month\"):(w.monthsDropdownContainer=s(\"select\",\"flatpickr-monthDropdown-months\"),w.monthsDropdownContainer.setAttribute(\"aria-label\",w.l10n.monthAriaLabel),N(w.monthsDropdownContainer,\"change\",(function(e){var n=g(e),t=parseInt(n.value,10);w.changeMonth(t-w.currentMonth),pe(\"onMonthChange\")})),K(),e=w.monthsDropdownContainer);var a=m(\"cur-year\",{tabindex:\"-1\"}),i=a.getElementsByTagName(\"input\")[0];i.setAttribute(\"aria-label\",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute(\"min\",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute(\"max\",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=s(\"div\",\"flatpickr-current-month\");return o.appendChild(e),o.appendChild(a),t.appendChild(o),n.appendChild(t),{container:n,yearElement:i,monthElement:e}}function q(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var n=U();w.yearElements.push(n.yearElement),w.monthElements.push(n.monthElement),w.monthNav.appendChild(n.container)}w.monthNav.appendChild(w.nextMonthNav)}function $(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=s(\"div\",\"flatpickr-weekdays\");for(var e=w.config.showMonths;e--;){var n=s(\"div\",\"flatpickr-weekdaycontainer\");w.weekdayContainer.appendChild(n)}return z(),w.weekdayContainer}function z(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,t=n(w.l10n.weekdays.shorthand);e>0&&e\\n \"+t.join(\"\")+\"\\n \\n \"}}function G(e,n){void 0===n&&(n=!0);var t=n?e:e-w.currentMonth;t<0&&!0===w._hidePrevMonthArrow||t>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=t,(w.currentMonth<0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,pe(\"onYearChange\"),K()),J(),pe(\"onMonthChange\"),De())}function V(e){return!(!w.config.appendTo||!w.config.appendTo.contains(e))||w.calendarContainer.contains(e)}function Z(e){if(w.isOpen&&!w.config.inline){var n=g(e),t=V(n),a=n===w.input||n===w.altInput||w.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)),i=\"blur\"===e.type?a&&e.relatedTarget&&!V(e.relatedTarget):!a&&!t&&!V(e.relatedTarget),o=!w.config.ignoredFocusElements.some((function(e){return e.contains(n)}));i&&o&&(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&\"\"!==w.input.value&&void 0!==w.input.value&&T(),w.close(),w.config&&\"range\"===w.config.mode&&1===w.selectedDates.length&&(w.clear(!1),w.redraw()))}}function Q(e){if(!(!e||w.config.minDate&&ew.config.maxDate.getFullYear())){var n=e,t=w.currentYear!==n;w.currentYear=n||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),t&&(w.redraw(),pe(\"onYearChange\"),K())}}function X(e,n){void 0===n&&(n=!0);var t=w.parseDate(e,void 0,n);if(w.config.minDate&&t&&M(t,w.config.minDate,void 0!==n?n:!w.minDateHasTime)<0||w.config.maxDate&&t&&M(t,w.config.maxDate,void 0!==n?n:!w.maxDateHasTime)>0)return!1;if(0===w.config.enable.length&&0===w.config.disable.length)return!0;if(void 0===t)return!1;for(var a=w.config.enable.length>0,i=a?w.config.enable:w.config.disable,o=0,r=void 0;o=r.from.getTime()&&t.getTime()<=r.to.getTime())return a}return!a}function ee(e){return void 0!==w.daysContainer&&-1===e.className.indexOf(\"hidden\")&&-1===e.className.indexOf(\"flatpickr-disabled\")&&w.daysContainer.contains(e)}function ne(e){e.target!==w._input||e.relatedTarget&&V(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function te(e){var n=g(e),t=w.config.wrap?p.contains(n):n===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!t),o=w.config.inline&&t&&!a;if(13===e.keyCode&&t){if(a)return w.setDate(w._input.value,!0,n===w.altInput?w.config.altFormat:w.config.dateFormat),n.blur();w.open()}else if(V(n)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(n);switch(e.keyCode){case 13:r?(e.preventDefault(),T(),se()):ue(e);break;case 27:e.preventDefault(),se();break;case 8:case 46:t&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||t)w.hourElement&&w.hourElement.focus();else if(e.preventDefault(),void 0!==w.daysContainer&&(!1===a||document.activeElement&&ee(document.activeElement))){var l=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),G(l),R(W(1),0)):R(void 0,l)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;w.daysContainer&&void 0!==n.$i||n===w.input||n===w.altInput?e.ctrlKey?(e.stopPropagation(),Q(w.currentYear-c),R(W(1),0)):r||R(void 0,7*c):n===w.currentYearElement?Q(w.currentYear-c):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),T(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),s=d.indexOf(n);if(-1!==s){var u=d[s+(e.shiftKey?-1:1)];e.preventDefault(),(u||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&n===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],I(),be();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],I(),be()}(t||V(n))&&pe(\"onKeyDown\",e)}function ae(e){if(1===w.selectedDates.length&&(!e||e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"flatpickr-disabled\"))){for(var n=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),t=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),a=Math.min(n,w.selectedDates[0].getTime()),i=Math.max(n,w.selectedDates[0].getTime()),o=!1,r=0,l=0,c=a;ca&&cr)?r=c:c>t&&(!l||c0&&m0&&m>l;return g?(f.classList.add(\"notAllowed\"),[\"inRange\",\"startRange\",\"endRange\"].forEach((function(e){f.classList.remove(e)})),\"continue\"):o&&!g?\"continue\":([\"startRange\",\"inRange\",\"endRange\",\"notAllowed\"].forEach((function(e){f.classList.remove(e)})),void(void 0!==e&&(e.classList.add(n<=w.selectedDates[0].getTime()?\"startRange\":\"endRange\"),tn&&m===t&&f.classList.add(\"endRange\"),m>=r&&(0===l||m<=l)&&(d=t,u=n,(c=m)>Math.min(d,u)&&c0||t.getMinutes()>0||t.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return X(e)})),w.selectedDates.length||\"min\"!==e||S(t),be()),w.daysContainer&&(de(),void 0!==t?w.currentYearElement[e]=t.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==t&&a.getFullYear()===t.getFullYear())}}function re(){return w.config.wrap?p.querySelector(\"[data-input]\"):p}function le(){\"object\"!=typeof w.config.locale&&void 0===k.l10ns[w.config.locale]&&w.config.errorHandler(new Error(\"flatpickr: invalid locale \"+w.config.locale)),w.l10n=e(e({},k.l10ns.default),\"object\"==typeof w.config.locale?w.config.locale:\"default\"!==w.config.locale?k.l10ns[w.config.locale]:void 0),D.K=\"(\"+w.l10n.amPM[0]+\"|\"+w.l10n.amPM[1]+\"|\"+w.l10n.amPM[0].toLowerCase()+\"|\"+w.l10n.amPM[1].toLowerCase()+\")\",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===k.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function ce(e){if(void 0!==w.calendarContainer){pe(\"onPreCalendarPosition\");var n=e||w._positionElement,t=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(\" \"),o=i[0],r=i.length>1?i[1]:null,l=n.getBoundingClientRect(),c=window.innerHeight-l.bottom,s=\"above\"===o||\"below\"!==o&&ct,u=window.pageYOffset+l.top+(s?-t-2:n.offsetHeight+2);if(d(w.calendarContainer,\"arrowTop\",!s),d(w.calendarContainer,\"arrowBottom\",s),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;\"center\"===r?(f-=(a-l.width)/2,m=!0):\"right\"===r&&(f-=a-l.width,g=!0),d(w.calendarContainer,\"arrowLeft\",!m&&!g),d(w.calendarContainer,\"arrowCenter\",m),d(w.calendarContainer,\"arrowRight\",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(d(w.calendarContainer,\"rightMost\",h),!w.config.static)if(w.calendarContainer.style.top=u+\"px\",h)if(v){var D=function(){for(var e=null,n=0;nw.currentMonth+w.config.showMonths-1)&&\"range\"!==w.config.mode;if(w.selectedDateElem=t,\"single\"===w.config.mode)w.selectedDates=[a];else if(\"multiple\"===w.config.mode){var o=ve(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else\"range\"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(I(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(pe(\"onYearChange\"),K()),pe(\"onMonthChange\")}if(De(),J(),be(),i||\"range\"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():L(t),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l=\"single\"===w.config.mode&&!w.config.enableTime,c=\"range\"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&se()}A()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=N,w._setHoursFromDate=S,w._positionCalendar=ce,w.changeMonth=G,w.changeYear=Q,w.clear=function(e,n){if(void 0===e&&(e=!0),void 0===n&&(n=!0),w.input.value=\"\",void 0!==w.altInput&&(w.altInput.value=\"\"),void 0!==w.mobileInput&&(w.mobileInput.value=\"\"),w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===n&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth()),!0===w.config.enableTime){var t=_(),a=t.hours,i=t.minutes,o=t.seconds;O(a,i,o)}w.redraw(),e&&pe(\"onChange\")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove(\"open\"),void 0!==w._input&&w._input.classList.remove(\"active\")),pe(\"onClose\")},w._createElement=s,w.destroy=function(){void 0!==w.config&&pe(\"onDestroy\");for(var e=w._handlers.length;e--;){var n=w._handlers[e];n.element.removeEventListener(n.event,n.handler,n.options)}if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var t=w.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type=\"text\",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput),w.input&&(w.input.type=w.input._type,w.input.classList.remove(\"flatpickr-input\"),w.input.removeAttribute(\"readonly\")),[\"_showTimeInput\",\"latestSelectedDateObj\",\"_hideNextMonthArrow\",\"_hidePrevMonthArrow\",\"__hideNextMonthArrow\",\"__hidePrevMonthArrow\",\"isMobile\",\"isOpen\",\"selectedDateElem\",\"minDateHasTime\",\"maxDateHasTime\",\"days\",\"daysContainer\",\"_input\",\"_positionElement\",\"innerContainer\",\"rContainer\",\"monthNav\",\"todayDateElem\",\"calendarContainer\",\"weekdayContainer\",\"prevMonthNav\",\"nextMonthNav\",\"monthsDropdownContainer\",\"currentMonthElement\",\"currentYearElement\",\"navigationCurrentMonth\",\"selectedDateElem\",\"config\"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=X,w.jumpToDate=P,w.open=function(e,n){if(void 0===n&&(n=w._positionElement),!0===w.isMobile){if(e){e.preventDefault();var t=g(e);t&&t.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void pe(\"onOpen\")}if(!w._input.disabled&&!w.config.inline){var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add(\"open\"),w._input.classList.add(\"active\"),pe(\"onOpen\"),ce(n)),!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))}},w.redraw=de,w.set=function(e,n){if(null!==e&&\"object\"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==fe[a]&&fe[a].forEach((function(e){return e()}));else w.config[e]=n,void 0!==fe[e]?fe[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(w.config[e]=c(n));w.redraw(),be(!0)},w.setDate=function(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=w.config.dateFormat),0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(n);me(e,t),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),P(void 0,n),S(),0===w.selectedDates.length&&w.clear(!1),be(n),n&&pe(\"onChange\")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var fe={locale:[le,z],showMonths:[q,E,$],minDate:[P],maxDate:[P]};function me(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return w.parseDate(e,n)}));else if(e instanceof Date||\"number\"==typeof e)t=[w.parseDate(e,n)];else if(\"string\"==typeof e)switch(w.config.mode){case\"single\":case\"time\":t=[w.parseDate(e,n)];break;case\"multiple\":t=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,n)}));break;case\"range\":t=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,n)}))}else w.config.errorHandler(new Error(\"Invalid date supplied: \"+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&X(e,!1)})),\"range\"===w.config.mode&&w.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function ge(e){return e.slice().map((function(e){return\"string\"==typeof e||\"number\"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&\"object\"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function pe(e,n){if(void 0!==w.config){var t=w.config[e];if(void 0!==t&&t.length>0)for(var a=0;t[a]&&a1||\"static\"===w.config.monthSelectorType?w.monthElements[n].textContent=h(t.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+\" \":w.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth<=w.config.minDate.getMonth():w.currentYearw.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function we(e){return w.selectedDates.map((function(n){return w.formatDate(n,e)})).filter((function(e,n,t){return\"range\"!==w.config.mode||w.config.enableTime||t.indexOf(e)===n})).join(\"range\"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):\"\"),w.input.value=we(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=we(w.config.altFormat)),!1!==e&&pe(\"onValueUpdate\")}function Ce(e){var n=g(e),t=w.prevMonthNav.contains(n),a=w.nextMonthNav.contains(n);t||a?G(t?-1:1):w.yearElements.indexOf(n)>=0?n.select():n.classList.contains(\"arrowUp\")?w.changeYear(w.currentYear+1):n.classList.contains(\"arrowDown\")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var n=[\"wrap\",\"weekNumbers\",\"allowInput\",\"allowInvalidPreload\",\"clickOpens\",\"time_24hr\",\"enableTime\",\"noCalendar\",\"altInput\",\"shorthandCurrentMonth\",\"inline\",\"static\",\"enableSeconds\",\"disableMobile\"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,\"enable\",{get:function(){return w.config._enable},set:function(e){w.config._enable=ge(e)}}),Object.defineProperty(w.config,\"disable\",{get:function(){return w.config._disable},set:function(e){w.config._disable=ge(e)}});var r=\"time\"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=k.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?\"H:i\"+(i.enableSeconds?\":S\":\"\"):l+\" H:i\"+(i.enableSeconds?\":S\":\"\")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var d=k.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?\"h:i\"+(i.enableSeconds?\":S K\":\" K\"):d+\" h:i\"+(i.enableSeconds?\":S\":\"\")+\" K\"}Object.defineProperty(w.config,\"minDate\",{get:function(){return w.config._minDate},set:oe(\"min\")}),Object.defineProperty(w.config,\"maxDate\",{get:function(){return w.config._maxDate},set:oe(\"max\")});var s=function(e){return function(n){w.config[\"min\"===e?\"_minTime\":\"_maxTime\"]=w.parseDate(n,\"H:i:S\")}};Object.defineProperty(w.config,\"minTime\",{get:function(){return w.config._minTime},set:s(\"min\")}),Object.defineProperty(w.config,\"maxTime\",{get:function(){return w.config._maxTime},set:s(\"max\")}),\"time\"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0),Object.assign(w.config,o,i);for(var u=0;u-1?w.config[m]=c(f[m]).map(x).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=re().className+\" \"+w.config.altInputClass),pe(\"onParseConfig\")}(),le(),w.input=re(),w.input?(w.input._type=w.input.type,w.input.type=\"text\",w.input.classList.add(\"flatpickr-input\"),w._input=w.input,w.config.altInput&&(w.altInput=s(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type=\"text\",w.input.setAttribute(\"type\",\"hidden\"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling)),w.config.allowInput||w._input.setAttribute(\"readonly\",\"readonly\"),w._positionElement=w.config.positionElement||w._input):w.config.errorHandler(new Error(\"Invalid input element specified\")),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||(\"INPUT\"!==w.input.nodeName&&\"TEXTAREA\"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&me(e,w.config.dateFormat),w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()0&&(w.latestSelectedDateObj=w.selectedDates[0]),void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,\"H:i\")),void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,\"H:i\")),w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=w.currentMonth),void 0===n&&(n=w.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=s(\"div\",\"flatpickr-calendar\"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=s(\"div\",\"flatpickr-months\"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=s(\"span\",\"flatpickr-prev-month\"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=s(\"span\",\"flatpickr-next-month\"),w.nextMonthNav.innerHTML=w.config.nextArrow,q(),Object.defineProperty(w,\"_hidePrevMonthArrow\",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(d(w.prevMonthNav,\"flatpickr-disabled\",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,\"_hideNextMonthArrow\",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(d(w.nextMonthNav,\"flatpickr-disabled\",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],De(),w.monthNav)),w.innerContainer=s(\"div\",\"flatpickr-innerContainer\"),w.config.weekNumbers){var n=function(){w.calendarContainer.classList.add(\"hasWeeks\");var e=s(\"div\",\"flatpickr-weekwrapper\");e.appendChild(s(\"span\",\"flatpickr-weekday\",w.l10n.weekAbbreviation));var n=s(\"div\",\"flatpickr-weeks\");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,a=n.weekNumbers;w.innerContainer.appendChild(t),w.weekNumbers=a,w.weekWrapper=t}w.rContainer=s(\"div\",\"flatpickr-rContainer\"),w.rContainer.appendChild($()),w.daysContainer||(w.daysContainer=s(\"div\",\"flatpickr-days\"),w.daysContainer.tabIndex=-1),J(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add(\"hasTime\"),w.config.noCalendar&&w.calendarContainer.classList.add(\"noCalendar\"),w.timeContainer=s(\"div\",\"flatpickr-time\"),w.timeContainer.tabIndex=-1;var e=s(\"span\",\"flatpickr-time-separator\",\":\"),n=m(\"flatpickr-hour\",{\"aria-label\":w.l10n.hourAriaLabel});w.hourElement=n.getElementsByTagName(\"input\")[0];var t=m(\"flatpickr-minute\",{\"aria-label\":w.l10n.minuteAriaLabel});if(w.minuteElement=t.getElementsByTagName(\"input\")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?w.config.defaultHour:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(w.config.defaultHour)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():w.config.defaultMinute),w.hourElement.setAttribute(\"step\",w.config.hourIncrement.toString()),w.minuteElement.setAttribute(\"step\",w.config.minuteIncrement.toString()),w.hourElement.setAttribute(\"min\",w.config.time_24hr?\"0\":\"1\"),w.hourElement.setAttribute(\"max\",w.config.time_24hr?\"23\":\"12\"),w.minuteElement.setAttribute(\"min\",\"0\"),w.minuteElement.setAttribute(\"max\",\"59\"),w.timeContainer.appendChild(n),w.timeContainer.appendChild(e),w.timeContainer.appendChild(t),w.config.time_24hr&&w.timeContainer.classList.add(\"time24hr\"),w.config.enableSeconds){w.timeContainer.classList.add(\"hasSeconds\");var a=m(\"flatpickr-second\");w.secondElement=a.getElementsByTagName(\"input\")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():w.config.defaultSeconds),w.secondElement.setAttribute(\"step\",w.minuteElement.getAttribute(\"step\")),w.secondElement.setAttribute(\"min\",\"0\"),w.secondElement.setAttribute(\"max\",\"59\"),w.timeContainer.appendChild(s(\"span\",\"flatpickr-time-separator\",\":\")),w.timeContainer.appendChild(a)}return w.config.time_24hr||(w.amPM=s(\"span\",\"flatpickr-am-pm\",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM)),w.timeContainer}()),d(w.calendarContainer,\"rangeMode\",\"range\"===w.config.mode),d(w.calendarContainer,\"animate\",!0===w.config.animate),d(w.calendarContainer,\"multiMonth\",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?\"inline\":\"static\"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=s(\"div\",\"flatpickr-wrapper\");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){if(w.config.wrap&&[\"open\",\"close\",\"toggle\",\"clear\"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll(\"[data-\"+e+\"]\"),(function(n){return N(n,\"click\",w[e])}))})),w.isMobile)!function(){var e=w.config.enableTime?w.config.noCalendar?\"time\":\"datetime-local\":\"date\";w.mobileInput=s(\"input\",w.input.className+\" flatpickr-mobile\"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr=\"datetime-local\"===e?\"Y-m-d\\\\TH:i:S\":\"date\"===e?\"Y-m-d\":\"H:i:S\",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr)),w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,\"Y-m-d\")),w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,\"Y-m-d\")),w.input.getAttribute(\"step\")&&(w.mobileInput.step=String(w.input.getAttribute(\"step\"))),w.input.type=\"hidden\",void 0!==w.altInput&&(w.altInput.type=\"hidden\");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}N(w.mobileInput,\"change\",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),pe(\"onChange\"),pe(\"onClose\")}))}();else{var e=l(ie,50);if(w._debouncedChange=l(A,300),w.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&N(w.daysContainer,\"mouseover\",(function(e){\"range\"===w.config.mode&&ae(g(e))})),N(window.document.body,\"keydown\",te),w.config.inline||w.config.static||N(window,\"resize\",e),void 0!==window.ontouchstart?N(window.document,\"touchstart\",Z):N(window.document,\"click\",Z),N(window.document,\"focus\",Z,{capture:!0}),!0===w.config.clickOpens&&(N(w._input,\"focus\",w.open),N(w._input,\"click\",w.open)),void 0!==w.daysContainer&&(N(w.monthNav,\"click\",Ce),N(w.monthNav,[\"keyup\",\"increment\"],F),N(w.daysContainer,\"click\",ue)),void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var n=function(e){return g(e).select()};N(w.timeContainer,[\"increment\"],T),N(w.timeContainer,\"blur\",T,{capture:!0}),N(w.timeContainer,\"click\",Y),N([w.hourElement,w.minuteElement],[\"focus\",\"click\"],n),void 0!==w.secondElement&&N(w.secondElement,\"focus\",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&N(w.amPM,\"click\",(function(e){T(e),A()}))}w.config.allowInput&&N(w._input,\"blur\",ne)}}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&S(w.config.noCalendar?w.latestSelectedDateObj||w.config.minDate:void 0),be(!1)),E();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!w.isMobile&&n&&ce(),pe(\"onReady\")}(),w}function E(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;ithis.render()));const{start:s,end:l,value:o,step:r,title:n}=this.model.properties;this.on_change([s,l,o,r],(()=>{const{start:t,end:e,value:i,step:s}=this._calc_to();this._noUiSlider.updateOptions({range:{min:t,max:e},start:i,step:s},!0)}));const{bar_color:a}=this.model.properties;this.on_change(a,(()=>{this._set_bar_color()}));const{show_value:d}=this.model.properties;this.on_change([o,n,d],(()=>this._update_title()))}styles(){return[...super.styles(),p.default,u.default]}_update_title(){var t;(0,a.empty)(this.title_el);const e=null==this.model.title||0==this.model.title.length&&!this.model.show_value;if(this.title_el.style.display=e?\"none\":\"\",!e&&(0!=(null===(t=this.model.title)||void 0===t?void 0:t.length)&&(this.title_el.textContent=`${this.model.title}: `),this.model.show_value)){const{value:t}=this._calc_to(),e=t.map((t=>this.model.pretty(t))).join(\" .. \");this.title_el.appendChild((0,a.span)({class:m.slider_value},e))}}_set_bar_color(){if(!this.model.disabled){this.slider_el.querySelector(\".noUi-connect\").style.backgroundColor=(0,_.color2css)(this.model.bar_color)}}render(){super.render();const{start:t,end:e,value:i,step:s}=this._calc_to();let l;if(this.model.tooltips){const t={to:t=>this.model.pretty(t)};l=(0,d.repeat)(t,i.length)}else l=!1;if(null==this.slider_el){this.slider_el=(0,a.div)(),this._noUiSlider=n.default.create(this.slider_el,{range:{min:t,max:e},start:i,step:s,behaviour:this.model.behaviour,connect:this.model.connected,tooltips:l,orientation:this.model.orientation,direction:this.model.direction}),this._noUiSlider.on(\"slide\",((t,e,i)=>this._slide(i))),this._noUiSlider.on(\"change\",((t,e,i)=>this._change(i)));const o=(t,e)=>{if(!l)return;this.slider_el.querySelectorAll(\".noUi-handle\")[t].querySelector(\".noUi-tooltip\").style.display=e?\"block\":\"\"};this._noUiSlider.on(\"start\",((t,e)=>o(e,!0))),this._noUiSlider.on(\"end\",((t,e)=>o(e,!1)))}else this._noUiSlider.updateOptions({range:{min:t,max:e},start:i,step:s},!0);this._set_bar_color(),this.model.disabled?this.slider_el.setAttribute(\"disabled\",\"true\"):this.slider_el.removeAttribute(\"disabled\"),this.title_el=(0,a.div)({class:m.slider_title}),this._update_title(),this.group_el=(0,a.div)({class:v.input_group},this.title_el,this.slider_el),this.el.appendChild(this.group_el)}_slide(t){this.model.value=this._calc_from(t)}_change(t){const e=this._calc_from(t);this.model.setv({value:e,value_throttled:e})}}b.__name__=\"AbstractBaseSliderView\";class g extends b{_calc_to(){return{start:this.model.start,end:this.model.end,value:[this.model.value],step:this.model.step}}_calc_from([t]){return Number.isInteger(this.model.start)&&Number.isInteger(this.model.end)&&Number.isInteger(this.model.step)?Math.round(t):t}}i.AbstractSliderView=g,g.__name__=\"AbstractSliderView\";class f extends b{_calc_to(){return{start:this.model.start,end:this.model.end,value:this.model.value,step:this.model.step}}_calc_from(t){return t}}i.AbstractRangeSliderView=f,f.__name__=\"AbstractRangeSliderView\";class S extends h.OrientedControl{constructor(t){super(t),this.connected=!1}pretty(t){return this._formatter(t,this.format)}}i.AbstractSlider=S,r=S,S.__name__=\"AbstractSlider\",r.define((({Any:t,Boolean:e,Number:i,String:s,Color:l,Or:o,Enum:r,Ref:n,Nullable:a})=>({title:[a(s),\"\"],show_value:[e,!0],start:[t],end:[t],value:[t],value_throttled:[t],step:[i,1],format:[o(s,n(c.TickFormatter))],direction:[r(\"ltr\",\"rtl\"),\"ltr\"],tooltips:[e,!0],bar_color:[l,\"#e6e6e6\"]})))},\n 462: function _(t,e,r,n,i){var o,s;o=this,s=function(t){\"use strict\";var e,r;function n(t){return\"object\"==typeof t&&\"function\"==typeof t.to}function i(t){t.parentElement.removeChild(t)}function o(t){return null!=t}function s(t){t.preventDefault()}function a(t){return\"number\"==typeof t&&!isNaN(t)&&isFinite(t)}function l(t,e,r){r>0&&(f(t,e),setTimeout((function(){d(t,e)}),r))}function u(t){return Math.max(Math.min(t,100),0)}function c(t){return Array.isArray(t)?t:[t]}function p(t){var e=(t=String(t)).split(\".\");return e.length>1?e[1].length:0}function f(t,e){t.classList&&!/\\s/.test(e)?t.classList.add(e):t.className+=\" \"+e}function d(t,e){t.classList&&!/\\s/.test(e)?t.classList.remove(e):t.className=t.className.replace(new RegExp(\"(^|\\\\b)\"+e.split(\" \").join(\"|\")+\"(\\\\b|$)\",\"gi\"),\" \")}function h(t){var e=void 0!==window.pageXOffset,r=\"CSS1Compat\"===(t.compatMode||\"\");return{x:e?window.pageXOffset:r?t.documentElement.scrollLeft:t.body.scrollLeft,y:e?window.pageYOffset:r?t.documentElement.scrollTop:t.body.scrollTop}}function m(t,e){return 100/(e-t)}function g(t,e,r){return 100*e/(t[r+1]-t[r])}function v(t,e){for(var r=1;t>=e[r];)r+=1;return r}function b(t,e,r){if(r>=t.slice(-1)[0])return 100;var n=v(r,t),i=t[n-1],o=t[n],s=e[n-1],a=e[n];return s+function(t,e){return g(t,t[0]<0?e+Math.abs(t[0]):e-t[0],0)}([i,o],r)/m(s,a)}function S(t,e,r,n){if(100===n)return n;var i=v(n,t),o=t[i-1],s=t[i];return r?n-o>(s-o)/2?s:o:e[i-1]?t[i-1]+function(t,e){return Math.round(t/e)*e}(n-t[i-1],e[i-1]):n}t.PipsMode=void 0,(e=t.PipsMode||(t.PipsMode={})).Range=\"range\",e.Steps=\"steps\",e.Positions=\"positions\",e.Count=\"count\",e.Values=\"values\",t.PipsType=void 0,(r=t.PipsType||(t.PipsType={}))[r.None=-1]=\"None\",r[r.NoValue=0]=\"NoValue\",r[r.LargeValue=1]=\"LargeValue\",r[r.SmallValue=2]=\"SmallValue\";var x=function(){function t(t,e,r){var n;this.xPct=[],this.xVal=[],this.xSteps=[],this.xNumSteps=[],this.xHighestCompleteStep=[],this.xSteps=[r||!1],this.xNumSteps=[!1],this.snap=e;var i=[];for(Object.keys(t).forEach((function(e){i.push([c(t[e]),e])})),i.sort((function(t,e){return t[0][0]-e[0][0]})),n=0;nthis.xPct[i+1];)i++;else t===this.xPct[this.xPct.length-1]&&(i=this.xPct.length-2);r||t!==this.xPct[i+1]||i++,null===e&&(e=[]);var o=1,s=e[i],a=0,l=0,u=0,c=0;for(n=r?(t-this.xPct[i])/(this.xPct[i+1]-this.xPct[i]):(this.xPct[i+1]-t)/(this.xPct[i+1]-this.xPct[i]);s>0;)a=this.xPct[i+1+c]-this.xPct[i+c],e[i+c]*o+100-100*n>100?(l=a*n,o=(s-100*n)/e[i+c],n=1):(l=e[i+c]*a/100*o,o=0),r?(u-=l,this.xPct.length+c>=1&&c--):(u+=l,this.xPct.length-c>=1&&c++),s=e[i+c]*o;return t+u},t.prototype.toStepping=function(t){return t=b(this.xVal,this.xPct,t)},t.prototype.fromStepping=function(t){return function(t,e,r){if(r>=100)return t.slice(-1)[0];var n=v(r,e),i=t[n-1],o=t[n],s=e[n-1];return function(t,e){return e*(t[1]-t[0])/100+t[0]}([i,o],(r-s)*m(s,e[n]))}(this.xVal,this.xPct,t)},t.prototype.getStep=function(t){return t=S(this.xPct,this.xSteps,this.snap,t)},t.prototype.getDefaultStep=function(t,e,r){var n=v(t,this.xPct);return(100===t||e&&t===this.xPct[n-1])&&(n=Math.max(n-1,1)),(this.xVal[n]-this.xVal[n-1])/r},t.prototype.getNearbySteps=function(t){var e=v(t,this.xPct);return{stepBefore:{startValue:this.xVal[e-2],step:this.xNumSteps[e-2],highestStep:this.xHighestCompleteStep[e-2]},thisStep:{startValue:this.xVal[e-1],step:this.xNumSteps[e-1],highestStep:this.xHighestCompleteStep[e-1]},stepAfter:{startValue:this.xVal[e],step:this.xNumSteps[e],highestStep:this.xHighestCompleteStep[e]}}},t.prototype.countStepDecimals=function(){var t=this.xNumSteps.map(p);return Math.max.apply(null,t)},t.prototype.hasNoSize=function(){return this.xVal[0]===this.xVal[this.xVal.length-1]},t.prototype.convert=function(t){return this.getStep(this.toStepping(t))},t.prototype.handleEntryPoint=function(t,e){var r;if(!a(r=\"min\"===t?0:\"max\"===t?100:parseFloat(t))||!a(e[0]))throw new Error(\"noUiSlider: 'range' value isn't numeric.\");this.xPct.push(r),this.xVal.push(e[0]);var n=Number(e[1]);r?this.xSteps.push(!isNaN(n)&&n):isNaN(n)||(this.xSteps[0]=n),this.xHighestCompleteStep.push(0)},t.prototype.handleStepPoint=function(t,e){if(e)if(this.xVal[t]!==this.xVal[t+1]){this.xSteps[t]=g([this.xVal[t],this.xVal[t+1]],e,0)/m(this.xPct[t],this.xPct[t+1]);var r=(this.xVal[t+1]-this.xVal[t])/this.xNumSteps[t],n=Math.ceil(Number(r.toFixed(3))-1),i=this.xVal[t]+this.xNumSteps[t]*n;this.xHighestCompleteStep[t]=i}else this.xSteps[t]=this.xHighestCompleteStep[t]=this.xVal[t]},t}(),y={to:function(t){return void 0===t?\"\":t.toFixed(2)},from:Number},w={target:\"target\",base:\"base\",origin:\"origin\",handle:\"handle\",handleLower:\"handle-lower\",handleUpper:\"handle-upper\",touchArea:\"touch-area\",horizontal:\"horizontal\",vertical:\"vertical\",background:\"background\",connect:\"connect\",connects:\"connects\",ltr:\"ltr\",rtl:\"rtl\",textDirectionLtr:\"txt-dir-ltr\",textDirectionRtl:\"txt-dir-rtl\",draggable:\"draggable\",drag:\"state-drag\",tap:\"state-tap\",active:\"active\",tooltip:\"tooltip\",pips:\"pips\",pipsHorizontal:\"pips-horizontal\",pipsVertical:\"pips-vertical\",marker:\"marker\",markerHorizontal:\"marker-horizontal\",markerVertical:\"marker-vertical\",markerNormal:\"marker-normal\",markerLarge:\"marker-large\",markerSub:\"marker-sub\",value:\"value\",valueHorizontal:\"value-horizontal\",valueVertical:\"value-vertical\",valueNormal:\"value-normal\",valueLarge:\"value-large\",valueSub:\"value-sub\"},E=\".__tooltips\",P=\".__aria\";function C(t,e){if(!a(e))throw new Error(\"noUiSlider: 'step' is not numeric.\");t.singleStep=e}function N(t,e){if(!a(e))throw new Error(\"noUiSlider: 'keyboardPageMultiplier' is not numeric.\");t.keyboardPageMultiplier=e}function V(t,e){if(!a(e))throw new Error(\"noUiSlider: 'keyboardMultiplier' is not numeric.\");t.keyboardMultiplier=e}function k(t,e){if(!a(e))throw new Error(\"noUiSlider: 'keyboardDefaultStep' is not numeric.\");t.keyboardDefaultStep=e}function M(t,e){if(\"object\"!=typeof e||Array.isArray(e))throw new Error(\"noUiSlider: 'range' is not an object.\");if(void 0===e.min||void 0===e.max)throw new Error(\"noUiSlider: Missing 'min' or 'max' in 'range'.\");t.spectrum=new x(e,t.snap||!1,t.singleStep)}function A(t,e){if(e=c(e),!Array.isArray(e)||!e.length)throw new Error(\"noUiSlider: 'start' option is incorrect.\");t.handles=e.length,t.start=e}function U(t,e){if(\"boolean\"!=typeof e)throw new Error(\"noUiSlider: 'snap' option must be a boolean.\");t.snap=e}function D(t,e){if(\"boolean\"!=typeof e)throw new Error(\"noUiSlider: 'animate' option must be a boolean.\");t.animate=e}function O(t,e){if(\"number\"!=typeof e)throw new Error(\"noUiSlider: 'animationDuration' option must be a number.\");t.animationDuration=e}function L(t,e){var r,n=[!1];if(\"lower\"===e?e=[!0,!1]:\"upper\"===e&&(e=[!1,!0]),!0===e||!1===e){for(r=1;r1)throw new Error(\"noUiSlider: 'padding' option must not exceed 100% of the range.\")}}function F(t,e){switch(e){case\"ltr\":t.dir=0;break;case\"rtl\":t.dir=1;break;default:throw new Error(\"noUiSlider: 'direction' option was not recognized.\")}}function R(t,e){if(\"string\"!=typeof e)throw new Error(\"noUiSlider: 'behaviour' must be a string containing options.\");var r=e.indexOf(\"tap\")>=0,n=e.indexOf(\"drag\")>=0,i=e.indexOf(\"fixed\")>=0,o=e.indexOf(\"snap\")>=0,s=e.indexOf(\"hover\")>=0,a=e.indexOf(\"unconstrained\")>=0,l=e.indexOf(\"drag-all\")>=0;if(i){if(2!==t.handles)throw new Error(\"noUiSlider: 'fixed' behaviour must be used with 2 handles\");j(t,t.start[1]-t.start[0])}if(a&&(t.margin||t.limit))throw new Error(\"noUiSlider: 'unconstrained' behaviour cannot be used with margin or limit\");t.events={tap:r||o,drag:n,dragAll:l,fixed:i,snap:o,hover:s,unconstrained:a}}function _(t,e){if(!1!==e)if(!0===e||n(e)){t.tooltips=[];for(var r=0;r= 2) required for mode 'count'.\");for(var r=e.values-1,n=100/r,i=[];r--;)i[r]=r*n;return i.push(100),q(i,e.stepped)}return e.mode===t.PipsMode.Positions?q(e.values,e.stepped):e.mode===t.PipsMode.Values?e.stepped?e.values.map((function(t){return C.fromStepping(C.getStep(C.toStepping(t)))})):e.values:[]}(e),i={},o=C.xVal[0],s=C.xVal[C.xVal.length-1],a=!1,l=!1,u=0;return r=n.slice().sort((function(t,e){return t-e})),(n=r.filter((function(t){return!this[t]&&(this[t]=!0)}),{}))[0]!==o&&(n.unshift(o),a=!0),n[n.length-1]!==s&&(n.push(s),l=!0),n.forEach((function(r,o){var s,c,p,f,d,h,m,g,v,b,S=r,x=n[o+1],y=e.mode===t.PipsMode.Steps;for(y&&(s=C.xNumSteps[o]),s||(s=x-S),void 0===x&&(x=S),s=Math.max(s,1e-7),c=S;c<=x;c=Number((c+s).toFixed(7))){for(g=(d=(f=C.toStepping(c))-u)/(e.density||1),b=d/(v=Math.round(g)),p=1;p<=v;p+=1)i[(h=u+p*b).toFixed(5)]=[C.fromStepping(h),0];m=n.indexOf(c)>-1?t.PipsType.LargeValue:y?t.PipsType.SmallValue:t.PipsType.NoValue,!o&&a&&c!==x&&(m=0),c===x&&l||(i[f.toFixed(5)]=[c,m]),u=f}})),i}function Y(e,n,i){var o,s,a=U.createElement(\"div\"),l=((o={})[t.PipsType.None]=\"\",o[t.PipsType.NoValue]=r.cssClasses.valueNormal,o[t.PipsType.LargeValue]=r.cssClasses.valueLarge,o[t.PipsType.SmallValue]=r.cssClasses.valueSub,o),u=((s={})[t.PipsType.None]=\"\",s[t.PipsType.NoValue]=r.cssClasses.markerNormal,s[t.PipsType.LargeValue]=r.cssClasses.markerLarge,s[t.PipsType.SmallValue]=r.cssClasses.markerSub,s),c=[r.cssClasses.valueHorizontal,r.cssClasses.valueVertical],p=[r.cssClasses.markerHorizontal,r.cssClasses.markerVertical];function d(t,e){var n=e===r.cssClasses.value,i=n?l:u;return e+\" \"+(n?c:p)[r.ort]+\" \"+i[t]}return f(a,r.cssClasses.pips),f(a,0===r.ort?r.cssClasses.pipsHorizontal:r.cssClasses.pipsVertical),Object.keys(e).forEach((function(o){!function(e,o,s){if((s=n?n(o,s):s)!==t.PipsType.None){var l=T(a,!1);l.className=d(s,r.cssClasses.marker),l.style[r.style]=e+\"%\",s>t.PipsType.NoValue&&((l=T(a,!1)).className=d(s,r.cssClasses.value),l.setAttribute(\"data-value\",String(o)),l.style[r.style]=e+\"%\",l.innerHTML=String(i.to(o)))}}(o,e[o][0],e[o][1])})),a}function I(){g&&(i(g),g=null)}function W(t){I();var e=X(t),r=t.filter,n=t.format||{to:function(t){return String(Math.round(t))}};return g=w.appendChild(Y(e,r,n))}function $(){var t=a.getBoundingClientRect(),e=\"offset\"+[\"Width\",\"Height\"][r.ort];return 0===r.ort?t.width||a[e]:t.height||a[e]}function J(t,e,n,i){var o=function(o){var s,a,l=function(t,e,r){var n=0===t.type.indexOf(\"touch\"),i=0===t.type.indexOf(\"mouse\"),o=0===t.type.indexOf(\"pointer\"),s=0,a=0;if(0===t.type.indexOf(\"MSPointer\")&&(o=!0),\"mousedown\"===t.type&&!t.buttons&&!t.touches)return!1;if(n){var l=function(e){var n=e.target;return n===r||r.contains(n)||t.composed&&t.composedPath().shift()===r};if(\"touchstart\"===t.type){var u=Array.prototype.filter.call(t.touches,l);if(u.length>1)return!1;s=u[0].pageX,a=u[0].pageY}else{var c=Array.prototype.find.call(t.changedTouches,l);if(!c)return!1;s=c.pageX,a=c.pageY}}return e=e||h(U),(i||o)&&(s=t.clientX+e.x,a=t.clientY+e.y),t.pageOffset=e,t.points=[s,a],t.cursor=i||o,t}(o,i.pageOffset,i.target||e);return!!l&&!(F()&&!i.doNotReject)&&(s=w,a=r.cssClasses.tap,!((s.classList?s.classList.contains(a):new RegExp(\"\\\\b\"+a+\"\\\\b\").test(s.className))&&!i.doNotReject)&&!(t===x.start&&void 0!==l.buttons&&l.buttons>1)&&(!i.hover||!l.buttons)&&(y||l.preventDefault(),l.calcPoint=l.points[r.ort],void n(l,i)))},s=[];return t.split(\" \").forEach((function(t){e.addEventListener(t,o,!!y&&{passive:!0}),s.push([t,o])})),s}function K(t){var e,n,i,o,s,l,c=100*(t-(e=a,n=r.ort,i=e.getBoundingClientRect(),o=e.ownerDocument,s=o.documentElement,l=h(o),/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(l.x=0),n?i.top+l.y-s.clientTop:i.left+l.x-s.clientLeft))/$();return c=u(c),r.dir?100-c:c}function Q(t,e){\"mouseout\"===t.type&&\"HTML\"===t.target.nodeName&&null===t.relatedTarget&&tt(t,e)}function Z(t,e){if(-1===navigator.appVersion.indexOf(\"MSIE 9\")&&0===t.buttons&&0!==e.buttonsProperty)return tt(t,e);var n=(r.dir?-1:1)*(t.calcPoint-e.startCalcPoint);ut(n>0,100*n/e.baseSize,e.locations,e.handleNumbers,e.connect)}function tt(t,e){e.handle&&(d(e.handle,r.cssClasses.active),M-=1),e.listeners.forEach((function(t){D.removeEventListener(t[0],t[1])})),0===M&&(d(w,r.cssClasses.drag),pt(),t.cursor&&(O.style.cursor=\"\",O.removeEventListener(\"selectstart\",s))),e.handleNumbers.forEach((function(t){st(\"change\",t),st(\"set\",t),st(\"end\",t)}))}function et(t,e){if(!e.handleNumbers.some(R)){var n;1===e.handleNumbers.length&&(n=p[e.handleNumbers[0]].children[0],M+=1,f(n,r.cssClasses.active)),t.stopPropagation();var i=[],o=J(x.move,D,Z,{target:t.target,handle:n,connect:e.connect,listeners:i,startCalcPoint:t.calcPoint,baseSize:$(),pageOffset:t.pageOffset,handleNumbers:e.handleNumbers,buttonsProperty:t.buttons,locations:V.slice()}),a=J(x.end,D,tt,{target:t.target,handle:n,listeners:i,doNotReject:!0,handleNumbers:e.handleNumbers}),l=J(\"mouseout\",D,Q,{target:t.target,handle:n,listeners:i,doNotReject:!0,handleNumbers:e.handleNumbers});i.push.apply(i,o.concat(a,l)),t.cursor&&(O.style.cursor=getComputedStyle(t.target).cursor,p.length>1&&f(w,r.cssClasses.drag),O.addEventListener(\"selectstart\",s,!1)),e.handleNumbers.forEach((function(t){st(\"start\",t)}))}}function rt(t){t.stopPropagation();var e=K(t.calcPoint),n=function(t){var e=100,r=!1;return p.forEach((function(n,i){if(!R(i)){var o=V[i],s=Math.abs(o-t);(so||100===s&&100===e)&&(r=i,e=s)}})),r}(e);!1!==n&&(r.events.snap||l(w,r.cssClasses.tap,r.animationDuration),ft(n,e,!0,!0),pt(),st(\"slide\",n,!0),st(\"update\",n,!0),r.events.snap?et(t,{handleNumbers:[n]}):(st(\"change\",n,!0),st(\"set\",n,!0)))}function nt(t){var e=K(t.calcPoint),r=C.getStep(e),n=C.fromStepping(r);Object.keys(A).forEach((function(t){\"hover\"===t.split(\".\")[0]&&A[t].forEach((function(t){t.call(bt,n)}))}))}function it(t,e){A[t]=A[t]||[],A[t].push(e),\"update\"===t.split(\".\")[0]&&p.forEach((function(t,e){st(\"update\",e)}))}function ot(t){var e=t&&t.split(\".\")[0],r=e?t.substring(e.length):t;Object.keys(A).forEach((function(t){var n=t.split(\".\")[0],i=t.substring(n.length);e&&e!==n||r&&r!==i||function(t){return t===P||t===E}(i)&&r!==i||delete A[t]}))}function st(t,e,n){Object.keys(A).forEach((function(i){var o=i.split(\".\")[0];t===o&&A[i].forEach((function(t){t.call(bt,N.map(r.format.to),e,N.slice(),n||!1,V.slice(),bt)}))}))}function at(t,e,n,i,o,s){var a;return p.length>1&&!r.events.unconstrained&&(i&&e>0&&(a=C.getAbsoluteDistance(t[e-1],r.margin,!1),n=Math.max(n,a)),o&&e1&&r.limit&&(i&&e>0&&(a=C.getAbsoluteDistance(t[e-1],r.limit,!1),n=Math.min(n,a)),o&&e1?n.forEach((function(t,r){var n=at(o,t,o[t]+e,a[r],l[r],!1);!1===n?e=0:(e=n-o[t],o[t]=n)})):a=l=[!0];var u=!1;n.forEach((function(t,n){u=ft(t,r[t]+e,a[n],l[n])||u})),u&&(n.forEach((function(t){st(\"update\",t),st(\"slide\",t)})),null!=i&&st(\"drag\",s))}function ct(t,e){return r.dir?100-t-e:t}function pt(){k.forEach((function(t){var e=V[t]>50?-1:1,r=3+(p.length+e*t);p[t].style.zIndex=String(r)}))}function ft(t,e,n,i,o){return o||(e=at(V,t,e,n,i,!1)),!1!==e&&(function(t,e){V[t]=e,N[t]=C.fromStepping(e);var n=\"translate(\"+lt(10*(ct(e,0)-L)+\"%\",\"0\")+\")\";p[t].style[r.transformRule]=n,dt(t),dt(t+1)}(t,e),!0)}function dt(t){if(m[t]){var e=0,n=100;0!==t&&(e=V[t-1]),t!==m.length-1&&(n=V[t]);var i=n-e,o=\"translate(\"+lt(ct(e,i)+\"%\",\"0\")+\")\",s=\"scale(\"+lt(i/100,\"1\")+\")\";m[t].style[r.transformRule]=o+\" \"+s}}function ht(t,e){return null===t||!1===t||void 0===t?V[e]:(\"number\"==typeof t&&(t=String(t)),!1!==(t=r.format.from(t))&&(t=C.toStepping(t)),!1===t||isNaN(t)?V[e]:t)}function mt(t,e,n){var i=c(t),o=void 0===V[0];e=void 0===e||e,r.animate&&!o&&l(w,r.cssClasses.tap,r.animationDuration),k.forEach((function(t){ft(t,ht(i[t],t),!0,!1,n)}));var s=1===k.length?0:1;if(o&&C.hasNoSize()&&(n=!0,V[0]=0,k.length>1)){var a=100/(k.length-1);k.forEach((function(t){V[t]=t*a}))}for(;sn.stepAfter.startValue&&(o=n.stepAfter.startValue-i),s=i>n.thisStep.startValue?n.thisStep.step:!1!==n.stepBefore.step&&i-n.stepBefore.highestStep,100===e?o=null:0===e&&(s=null);var a=C.countStepDecimals();return null!==o&&!1!==o&&(o=Number(o.toFixed(a))),null!==s&&!1!==s&&(s=Number(s.toFixed(a))),[s,o]}f(b=w,r.cssClasses.target),0===r.dir?f(b,r.cssClasses.ltr):f(b,r.cssClasses.rtl),0===r.ort?f(b,r.cssClasses.horizontal):f(b,r.cssClasses.vertical),f(b,\"rtl\"===getComputedStyle(b).direction?r.cssClasses.textDirectionRtl:r.cssClasses.textDirectionLtr),a=T(b,r.cssClasses.base),function(t,e){var n=T(e,r.cssClasses.connects);p=[],(m=[]).push(z(n,t[0]));for(var i=0;i=0&&t .noUi-tooltip{-webkit-transform:translate(50%, 0);transform:translate(50%, 0);left:auto;bottom:10px;}.bk-root .noUi-vertical .noUi-origin > .noUi-tooltip{-webkit-transform:translate(0, -18px);transform:translate(0, -18px);top:auto;right:28px;}.bk-root .noUi-handle{cursor:grab;cursor:-webkit-grab;}.bk-root .noUi-handle.noUi-active{cursor:grabbing;cursor:-webkit-grabbing;}.bk-root .noUi-handle:after,.bk-root .noUi-handle:before{display:none;}.bk-root .noUi-tooltip{display:none;white-space:nowrap;}.bk-root .noUi-handle:hover .noUi-tooltip{display:block;}.bk-root .noUi-horizontal{width:100%;height:10px;}.bk-root .noUi-vertical{width:10px;height:100%;}.bk-root .noUi-horizontal .noUi-handle{width:14px;height:18px;right:-7px;top:-5px;}.bk-root .noUi-vertical .noUi-handle{width:18px;height:14px;right:-5px;top:-7px;}.bk-root .noUi-target.noUi-horizontal{margin:5px 0px;}.bk-root .noUi-target.noUi-vertical{margin:0px 5px;}'},\n 465: function _(e,t,r,a,i){a();var s;const d=(0,e(1).__importDefault)(e(151)),o=e(461),_=e(8);class n extends o.AbstractSliderView{}r.DateSliderView=n,n.__name__=\"DateSliderView\";class c extends o.AbstractSlider{constructor(e){super(e),this.behaviour=\"tap\",this.connected=[!0,!1]}_formatter(e,t){return(0,_.isString)(t)?(0,d.default)(e,t):t.compute(e)}}r.DateSlider=c,s=c,c.__name__=\"DateSlider\",s.prototype.default_view=n,s.override({format:\"%d %b %Y\"})},\n 466: function _(e,t,r,a,i){a();var n;const s=(0,e(1).__importDefault)(e(151)),d=e(461),o=e(8);class _ extends d.AbstractRangeSliderView{}r.DatetimeRangeSliderView=_,_.__name__=\"DatetimeRangeSliderView\";class c extends d.AbstractSlider{constructor(e){super(e),this.behaviour=\"drag\",this.connected=[!1,!0,!1]}_formatter(e,t){return(0,o.isString)(t)?(0,s.default)(e,t):t.compute(e)}}r.DatetimeRangeSlider=c,n=c,c.__name__=\"DatetimeRangeSlider\",n.prototype.default_view=_,n.override({format:\"%d %b %Y %H:%M:%S\",step:36e5})},\n 467: function _(e,t,s,r,i){var _;r();const n=e(468);class a extends n.MarkupView{render(){super.render(),this.model.render_as_text?this.markup_el.textContent=this.model.text:this.markup_el.innerHTML=this.has_math_disabled()?this.model.text:this.process_tex()}}s.DivView=a,a.__name__=\"DivView\";class d extends n.Markup{constructor(e){super(e)}}s.Div=d,_=d,d.__name__=\"Div\",_.prototype.default_view=a,_.define((({Boolean:e})=>({render_as_text:[e,!1]})))},\n 468: function _(t,e,s,i,r){i();const a=t(1);var n;const o=t(210),d=t(43),h=t(137),l=t(512),_=(0,a.__importStar)(t(469));class u extends l.WidgetView{get provider(){return h.default_provider}async lazy_initialize(){await super.lazy_initialize(),\"not_started\"==this.provider.status&&await this.provider.fetch(),\"not_started\"!=this.provider.status&&\"loading\"!=this.provider.status||this.provider.ready.connect((()=>{this.contains_tex_string()&&this.rerender()}))}after_layout(){super.after_layout(),\"loading\"===this.provider.status&&(this._has_finished=!1)}rerender(){this.layout.invalidate_cache(),this.render(),this.root.compute_layout()}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>{this.rerender()}))}styles(){return[...super.styles(),_.default]}_update_layout(){this.layout=new o.CachedVariadicBox(this.el),this.layout.set_sizing(this.box_sizing())}render(){super.render();const t=Object.assign(Object.assign({},this.model.style),{display:\"inline-block\"});this.markup_el=(0,d.div)({class:_.clearfix,style:t}),this.el.appendChild(this.markup_el),\"failed\"!=this.provider.status&&\"loaded\"!=this.provider.status||(this._has_finished=!0)}has_math_disabled(){return this.model.disable_math||!this.contains_tex_string()}process_tex(){if(!this.provider.MathJax)return this.model.text;const{text:t}=this.model,e=this.provider.MathJax.find_tex(t),s=[];let i=0;for(const r of e)s.push(t.slice(i,r.start.n)),s.push(this.provider.MathJax.tex2svg(r.math,{display:r.display}).outerHTML),i=r.end.n;return i0}}s.MarkupView=u,u.__name__=\"MarkupView\";class p extends l.Widget{constructor(t){super(t)}}s.Markup=p,n=p,p.__name__=\"Markup\",n.define((({Boolean:t,String:e,Dict:s})=>({text:[e,\"\"],style:[s(e),{}],disable_math:[t,!1]})))},\n 469: function _(o,r,e,t,a){t(),e.root=\"bk-root\",e.clearfix=\"bk-clearfix\",e.default='.bk-root .bk-clearfix:before,.bk-root .bk-clearfix:after{content:\"\";display:table;}.bk-root .bk-clearfix:after{clear:both;}'},\n 470: function _(e,t,i,n,s){n();const o=e(1);var l;const r=e(441),d=e(251),_=e(43),u=e(8),c=(0,o.__importStar)(e(318)),h=(0,o.__importStar)(e(229)),m=h;class p extends r.AbstractButtonView{constructor(){super(...arguments),this._open=!1}styles(){return[...super.styles(),h.default]}render(){super.render();const e=(0,_.div)({class:[m.caret,m.down]});if(this.model.is_split){const t=this._render_button(e);t.classList.add(c.dropdown_toggle),t.addEventListener(\"click\",(()=>this._toggle_menu())),this.group_el.appendChild(t)}else this.button_el.appendChild(e);const t=this.model.menu.map(((e,t)=>{if(null==e)return(0,_.div)({class:m.divider});{const i=(0,u.isString)(e)?e:e[0],n=(0,_.div)(i);return n.addEventListener(\"click\",(()=>this._item_click(t))),n}}));this.menu=(0,_.div)({class:[m.menu,m.below]},t),this.el.appendChild(this.menu),(0,_.undisplay)(this.menu)}_show_menu(){if(!this._open){this._open=!0,(0,_.display)(this.menu);const e=t=>{const{target:i}=t;i instanceof HTMLElement&&!this.el.contains(i)&&(document.removeEventListener(\"click\",e),this._hide_menu())};document.addEventListener(\"click\",e)}}_hide_menu(){this._open&&(this._open=!1,(0,_.undisplay)(this.menu))}_toggle_menu(){this._open?this._hide_menu():this._show_menu()}click(){this.model.is_split?(this._hide_menu(),this.model.trigger_event(new d.ButtonClick),super.click()):this._toggle_menu()}_item_click(e){this._hide_menu();const t=this.model.menu[e];if(null!=t){const i=(0,u.isString)(t)?t:t[1];(0,u.isString)(i)?this.model.trigger_event(new d.MenuItemClick(i)):i.execute(this.model,{index:e})}}}i.DropdownView=p,p.__name__=\"DropdownView\";class a extends r.AbstractButton{constructor(e){super(e)}get is_split(){return this.split}}i.Dropdown=a,l=a,a.__name__=\"Dropdown\",l.prototype.default_view=p,l.define((({Null:e,Boolean:t,String:i,Array:n,Tuple:s,Or:o})=>({split:[t,!1],menu:[n(o(i,s(i,o(i)),e)),[]]}))),l.override({label:\"Dropdown\"})},\n 471: function _(e,l,i,t,s){var n;t();const a=e(43),o=e(512);class d extends o.WidgetView{connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.render()))}render(){const{multiple:e,accept:l,disabled:i,width:t}=this.model;null==this.dialog_el&&(this.dialog_el=(0,a.input)({type:\"file\",multiple:e}),this.dialog_el.onchange=()=>{const{files:e}=this.dialog_el;null!=e&&this.load_files(e)},this.el.appendChild(this.dialog_el)),null!=l&&\"\"!=l&&(this.dialog_el.accept=l),this.dialog_el.style.width=`${t}px`,this.dialog_el.disabled=i}async load_files(e){const l=[],i=[],t=[];for(const s of e){const e=await this._read_file(s),[,n=\"\",,a=\"\"]=e.split(/[:;,]/,4);l.push(a),i.push(s.name),t.push(n)}this.model.multiple?this.model.setv({value:l,filename:i,mime_type:t}):this.model.setv({value:l[0],filename:i[0],mime_type:t[0]})}_read_file(e){return new Promise(((l,i)=>{const t=new FileReader;t.onload=()=>{var s;const{result:n}=t;null!=n?l(n):i(null!==(s=t.error)&&void 0!==s?s:new Error(`unable to read '${e.name}'`))},t.readAsDataURL(e)}))}}i.FileInputView=d,d.__name__=\"FileInputView\";class r extends o.Widget{constructor(e){super(e)}}i.FileInput=r,n=r,r.__name__=\"FileInput\",n.prototype.default_view=d,n.define((({Boolean:e,String:l,Array:i,Or:t})=>({value:[t(l,i(l)),\"\"],mime_type:[t(l,i(l)),\"\"],filename:[t(l,i(l)),\"\"],accept:[l,\"\"],multiple:[e,!1]})))},\n 472: function _(e,t,i,s,n){s();const l=e(1);var o;const r=e(43),c=e(8),h=e(448),p=(0,l.__importStar)(e(449));class d extends h.InputWidgetView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.value.change,(()=>this.render_selection())),this.connect(this.model.properties.options.change,(()=>this.render())),this.connect(this.model.properties.name.change,(()=>this.render())),this.connect(this.model.properties.title.change,(()=>this.render())),this.connect(this.model.properties.size.change,(()=>this.render())),this.connect(this.model.properties.disabled.change,(()=>this.render()))}render(){super.render();const e=this.model.options.map((e=>{let t,i;return(0,c.isString)(e)?t=i=e:[t,i]=e,(0,r.option)({value:t},i)}));this.input_el=(0,r.select)({multiple:!0,class:p.input,name:this.model.name,disabled:this.model.disabled},e),this.input_el.addEventListener(\"change\",(()=>this.change_input())),this.group_el.appendChild(this.input_el),this.render_selection()}render_selection(){const e=new Set(this.model.value);for(const t of this.el.querySelectorAll(\"option\"))t.selected=e.has(t.value);this.input_el.size=this.model.size}change_input(){const e=null!=this.el.querySelector(\"select:focus\"),t=[];for(const e of this.el.querySelectorAll(\"option\"))e.selected&&t.push(e.value);this.model.value=t,super.change_input(),e&&this.input_el.focus()}}i.MultiSelectView=d,d.__name__=\"MultiSelectView\";class u extends h.InputWidget{constructor(e){super(e)}}i.MultiSelect=u,o=u,u.__name__=\"MultiSelect\",o.prototype.default_view=d,o.define((({Int:e,String:t,Array:i,Tuple:s,Or:n})=>({value:[i(t),[]],options:[i(n(t,s(t,t))),[]],size:[e,4]})))},\n 473: function _(e,a,r,t,s){var n;t();const p=e(468),_=e(43);class i extends p.MarkupView{render(){super.render();const e=(0,_.p)({style:{margin:0}});this.has_math_disabled()?e.textContent=this.model.text:e.innerHTML=this.process_tex(),this.markup_el.appendChild(e)}}r.ParagraphView=i,i.__name__=\"ParagraphView\";class h extends p.Markup{constructor(e){super(e)}}r.Paragraph=h,n=h,h.__name__=\"Paragraph\",n.prototype.default_view=i},\n 474: function _(e,s,t,n,r){var p;n();const u=e(446);class a extends u.TextInputView{render(){super.render(),this.input_el.type=\"password\"}}t.PasswordInputView=a,a.__name__=\"PasswordInputView\";class o extends u.TextInput{constructor(e){super(e)}}t.PasswordInput=o,p=o,o.__name__=\"PasswordInput\",p.prototype.default_view=a},\n 475: function _(e,t,i,l,s){l();const o=e(1);var n;const h=(0,o.__importDefault)(e(476)),a=e(43),u=e(8),c=e(210),_=(0,o.__importStar)(e(449)),d=(0,o.__importDefault)(e(477)),r=e(448);class m extends r.InputWidgetView{constructor(){super(...arguments),this._last_height=null}connect_signals(){super.connect_signals(),this.connect(this.model.properties.disabled.change,(()=>this.set_disabled()));const{value:e,max_items:t,option_limit:i,search_option_limit:l,delete_button:s,placeholder:o,options:n,name:h,title:a}=this.model.properties;this.on_change([e,t,i,l,s,o,n,h,a],(()=>this.render()))}styles(){return[...super.styles(),d.default]}_update_layout(){this.layout=new c.CachedVariadicBox(this.el),this.layout.set_sizing(this.box_sizing())}render(){super.render(),this.input_el=(0,a.select)({multiple:!0,class:_.input,name:this.model.name,disabled:this.model.disabled}),this.group_el.appendChild(this.input_el);const e=new Set(this.model.value),t=this.model.options.map((t=>{let i,l;return(0,u.isString)(t)?i=l=t:[i,l]=t,{value:i,label:l,selected:e.has(i)}})),i=this.model.solid?\"solid\":\"light\",l=`choices__item ${i}`,s=`choices__button ${i}`,o={choices:t,duplicateItemsAllowed:!1,removeItemButton:this.model.delete_button,classNames:{item:l,button:s}};null!=this.model.placeholder&&(o.placeholderValue=this.model.placeholder),null!=this.model.max_items&&(o.maxItemCount=this.model.max_items),null!=this.model.option_limit&&(o.renderChoiceLimit=this.model.option_limit),null!=this.model.search_option_limit&&(o.searchResultLimit=this.model.search_option_limit),this.choice_el=new h.default(this.input_el,o);const n=()=>this.choice_el.containerOuter.element.getBoundingClientRect().height;null!=this._last_height&&this._last_height!=n()&&this.root.invalidate_layout(),this._last_height=n(),this.input_el.addEventListener(\"change\",(()=>this.change_input()))}set_disabled(){this.model.disabled?this.choice_el.disable():this.choice_el.enable()}change_input(){const e=null!=this.el.querySelector(\"select:focus\"),t=[];for(const e of this.el.querySelectorAll(\"option\"))e.selected&&t.push(e.value);this.model.value=t,super.change_input(),e&&this.input_el.focus()}}i.MultiChoiceView=m,m.__name__=\"MultiChoiceView\";class p extends r.InputWidget{constructor(e){super(e)}}i.MultiChoice=p,n=p,p.__name__=\"MultiChoice\",n.prototype.default_view=m,n.define((({Boolean:e,Int:t,String:i,Array:l,Tuple:s,Or:o,Nullable:n})=>({value:[l(i),[]],options:[l(o(i,s(i,i))),[]],max_items:[n(t),null],delete_button:[e,!0],placeholder:[n(i),null],option_limit:[n(t),null],search_option_limit:[n(t),null],solid:[e,!0]})))},\n 476: function _(e,t,i,n,s){\n /*! choices.js v9.0.1 | © 2019 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n var r,o;r=window,o=function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,\"a\",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p=\"/public/assets/scripts/\",i(i.s=4)}([function(e,t,i){\"use strict\";var n=function(e){return function(e){return!!e&&\"object\"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return\"[object RegExp]\"===t||\"[object Date]\"===t||function(e){return e.$$typeof===s}(e)}(e)},s=\"function\"==typeof Symbol&&Symbol.for?Symbol.for(\"react.element\"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?l((i=e,Array.isArray(i)?[]:{}),e,t):e;var i}function o(e,t,i){return e.concat(t).map((function(e){return r(e,i)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return e.propertyIsEnumerable(t)})):[]}(e))}function c(e,t,i){var n={};return i.isMergeableObject(e)&&a(e).forEach((function(t){n[t]=r(e[t],i)})),a(t).forEach((function(s){(function(e,t){try{return t in e&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}catch(e){return!1}})(e,s)||(i.isMergeableObject(t[s])&&e[s]?n[s]=function(e,t){if(!t.customMerge)return l;var i=t.customMerge(e);return\"function\"==typeof i?i:l}(s,i)(e[s],t[s],i):n[s]=r(t[s],i))})),n}function l(e,t,i){(i=i||{}).arrayMerge=i.arrayMerge||o,i.isMergeableObject=i.isMergeableObject||n,i.cloneUnlessOtherwiseSpecified=r;var s=Array.isArray(t);return s===Array.isArray(e)?s?i.arrayMerge(e,t,i):c(e,t,i):r(t,i)}l.all=function(e,t){if(!Array.isArray(e))throw new Error(\"first argument should be an array\");return e.reduce((function(e,i){return l(e,i,t)}),{})};var h=l;e.exports=h},function(e,t,i){\"use strict\";(function(e,n){var s,r=i(3);s=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==e?e:n;var o=Object(r.a)(s);t.a=o}).call(this,i(5),i(6)(e))},function(e,t,i){\n /*!\n * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,\"a\",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p=\"\",i(i.s=1)}([function(e,t){e.exports=function(e){return Array.isArray?Array.isArray(e):\"[object Array]\"===Object.prototype.toString.call(e)}},function(e,t,i){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function s(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\\nSearch pattern: \"'.concat(e,'\"'));var i=this._prepareSearchers(e),n=i.tokenSearchers,s=i.fullSearcher,r=this._search(n,s),o=r.weights,a=r.results;return this._computeScore(o,a),this.options.shouldSort&&this._sort(a),t.limit&&\"number\"==typeof t.limit&&(a=a.slice(0,t.limit)),this._format(a)}},{key:\"_prepareSearchers\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=[];if(this.options.tokenize)for(var i=e.split(this.options.tokenSeparator),n=0,s=i.length;n0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,i=this.list,n={},s=[];if(\"string\"==typeof i[0]){for(var r=0,o=i.length;r1)throw new Error(\"Key weight has to be > 0 and <= 1\");p=p.name}else a[p]={weight:1};this._analyze({key:p,value:this.options.getFn(h,p),record:h,index:c},{resultMap:n,results:s,tokenSearchers:e,fullSearcher:t})}return{weights:a,results:s}}},{key:\"_analyze\",value:function(e,t){var i=e.key,n=e.arrayIndex,s=void 0===n?-1:n,r=e.value,o=e.record,c=e.index,l=t.tokenSearchers,h=void 0===l?[]:l,u=t.fullSearcher,d=void 0===u?[]:u,p=t.resultMap,m=void 0===p?{}:p,f=t.results,v=void 0===f?[]:f;if(null!=r){var g=!1,_=-1,b=0;if(\"string\"==typeof r){this._log(\"\\nKey: \".concat(\"\"===i?\"-\":i));var y=d.search(r);if(this._log('Full text: \"'.concat(r,'\", score: ').concat(y.score)),this.options.tokenize){for(var E=r.split(this.options.tokenSeparator),I=[],S=0;S-1&&(P=(P+_)/2),this._log(\"Score average:\",P);var D=!this.options.tokenize||!this.options.matchAllTokens||b>=h.length;if(this._log(\"\\nCheck Matches: \".concat(D)),(g||y.isMatch)&&D){var M=m[c];M?M.output.push({key:i,arrayIndex:s,value:r,score:P,matchedIndices:y.matchedIndices}):(m[c]={item:o,output:[{key:i,arrayIndex:s,value:r,score:P,matchedIndices:y.matchedIndices}]},v.push(m[c]))}}else if(a(r))for(var N=0,F=r.length;N-1&&(o.arrayIndex=r.arrayIndex),t.matches.push(o)}}})),this.options.includeScore&&s.push((function(e,t){t.score=e.score}));for(var r=0,o=e.length;ri)return s(e,this.pattern,n);var o=this.options,a=o.location,c=o.distance,l=o.threshold,h=o.findAllMatches,u=o.minMatchCharLength;return r(e,this.pattern,this.patternAlphabet,{location:a,distance:c,threshold:l,findAllMatches:h,minMatchCharLength:u})}}])&&n(t.prototype,i),a&&n(t,a),e}();e.exports=a},function(e,t){var i=/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,s=new RegExp(t.replace(i,\"\\\\$&\").replace(n,\"|\")),r=e.match(s),o=!!r,a=[];if(o)for(var c=0,l=r.length;c=P;N-=1){var F=N-1,j=i[e.charAt(F)];if(j&&(E[F]=1),M[N]=(M[N+1]<<1|1)&j,0!==T&&(M[N]|=(O[N+1]|O[N])<<1|1|O[N+1]),M[N]&L&&(C=n(t,{errors:T,currentLocation:F,expectedLocation:v,distance:l}))<=_){if(_=C,(b=F)<=v)break;P=Math.max(1,2*v-b)}}if(n(t,{errors:T+1,currentLocation:v,expectedLocation:v,distance:l})>_)break;O=M}return{isMatch:b>=0,score:0===C?.001:C,matchedIndices:s(E,f)}}},function(e,t){e.exports=function(e,t){var i=t.errors,n=void 0===i?0:i,s=t.currentLocation,r=void 0===s?0:s,o=t.expectedLocation,a=void 0===o?0:o,c=t.distance,l=void 0===c?100:c,h=n/e.length,u=Math.abs(a-r);return l?h+u/l:u?1:h}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=[],n=-1,s=-1,r=0,o=e.length;r=t&&i.push([n,s]),n=-1)}return e[r-1]&&r-n>=t&&i.push([n,r-1]),i}},function(e,t){e.exports=function(e){for(var t={},i=e.length,n=0;n/g,\"&rt;\").replace(/-1?e.map((function(e){var i=e;return i.id===parseInt(t.choiceId,10)&&(i.selected=!0),i})):e;case\"REMOVE_ITEM\":return t.choiceId>-1?e.map((function(e){var i=e;return i.id===parseInt(t.choiceId,10)&&(i.selected=!1),i})):e;case\"FILTER_CHOICES\":return e.map((function(e){var i=e;return i.active=t.results.some((function(e){var t=e.item,n=e.score;return t.id===i.id&&(i.score=n,!0)})),i}));case\"ACTIVATE_CHOICES\":return e.map((function(e){var i=e;return i.active=t.active,i}));case\"CLEAR_CHOICES\":return v;default:return e}},general:_}),A=function(e,t){var i=e;if(\"CLEAR_ALL\"===t.type)i=void 0;else if(\"RESET_TO\"===t.type)return O(t.state);return C(i,t)};function L(e,t){for(var i=0;i\"'+I(e)+'\"'},maxItemText:function(e){return\"Only \"+e+\" values can be added\"},valueComparer:function(e,t){return e===t},fuseOptions:{includeScore:!0},callbackOnInit:null,callbackOnCreateTemplates:null,classNames:{containerOuter:\"choices\",containerInner:\"choices__inner\",input:\"choices__input\",inputCloned:\"choices__input--cloned\",list:\"choices__list\",listItems:\"choices__list--multiple\",listSingle:\"choices__list--single\",listDropdown:\"choices__list--dropdown\",item:\"choices__item\",itemSelectable:\"choices__item--selectable\",itemDisabled:\"choices__item--disabled\",itemChoice:\"choices__item--choice\",placeholder:\"choices__placeholder\",group:\"choices__group\",groupHeading:\"choices__heading\",button:\"choices__button\",activeState:\"is-active\",focusState:\"is-focused\",openState:\"is-open\",disabledState:\"is-disabled\",highlightedState:\"is-highlighted\",selectedState:\"is-selected\",flippedState:\"is-flipped\",loadingState:\"is-loading\",noResults:\"has-no-results\",noChoices:\"has-no-choices\"}},D=\"showDropdown\",M=\"hideDropdown\",N=\"change\",F=\"choice\",j=\"search\",K=\"addItem\",R=\"removeItem\",H=\"highlightItem\",B=\"highlightChoice\",V=\"ADD_CHOICE\",G=\"FILTER_CHOICES\",q=\"ACTIVATE_CHOICES\",U=\"CLEAR_CHOICES\",z=\"ADD_GROUP\",W=\"ADD_ITEM\",X=\"REMOVE_ITEM\",$=\"HIGHLIGHT_ITEM\",J=46,Y=8,Z=13,Q=65,ee=27,te=38,ie=40,ne=33,se=34,re=\"text\",oe=\"select-one\",ae=\"select-multiple\",ce=function(){function e(e){var t=e.element,i=e.type,n=e.classNames,s=e.position;this.element=t,this.classNames=n,this.type=i,this.position=s,this.isOpen=!1,this.isFlipped=!1,this.isFocussed=!1,this.isDisabled=!1,this.isLoading=!1,this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this)}var t=e.prototype;return t.addEventListeners=function(){this.element.addEventListener(\"focus\",this._onFocus),this.element.addEventListener(\"blur\",this._onBlur)},t.removeEventListeners=function(){this.element.removeEventListener(\"focus\",this._onFocus),this.element.removeEventListener(\"blur\",this._onBlur)},t.shouldFlip=function(e){if(\"number\"!=typeof e)return!1;var t=!1;return\"auto\"===this.position?t=!window.matchMedia(\"(min-height: \"+(e+1)+\"px)\").matches:\"top\"===this.position&&(t=!0),t},t.setActiveDescendant=function(e){this.element.setAttribute(\"aria-activedescendant\",e)},t.removeActiveDescendant=function(){this.element.removeAttribute(\"aria-activedescendant\")},t.open=function(e){this.element.classList.add(this.classNames.openState),this.element.setAttribute(\"aria-expanded\",\"true\"),this.isOpen=!0,this.shouldFlip(e)&&(this.element.classList.add(this.classNames.flippedState),this.isFlipped=!0)},t.close=function(){this.element.classList.remove(this.classNames.openState),this.element.setAttribute(\"aria-expanded\",\"false\"),this.removeActiveDescendant(),this.isOpen=!1,this.isFlipped&&(this.element.classList.remove(this.classNames.flippedState),this.isFlipped=!1)},t.focus=function(){this.isFocussed||this.element.focus()},t.addFocusState=function(){this.element.classList.add(this.classNames.focusState)},t.removeFocusState=function(){this.element.classList.remove(this.classNames.focusState)},t.enable=function(){this.element.classList.remove(this.classNames.disabledState),this.element.removeAttribute(\"aria-disabled\"),this.type===oe&&this.element.setAttribute(\"tabindex\",\"0\"),this.isDisabled=!1},t.disable=function(){this.element.classList.add(this.classNames.disabledState),this.element.setAttribute(\"aria-disabled\",\"true\"),this.type===oe&&this.element.setAttribute(\"tabindex\",\"-1\"),this.isDisabled=!0},t.wrap=function(e){!function(e,t){void 0===t&&(t=document.createElement(\"div\")),e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t.appendChild(e)}(e,this.element)},t.unwrap=function(e){this.element.parentNode.insertBefore(e,this.element),this.element.parentNode.removeChild(this.element)},t.addLoadingState=function(){this.element.classList.add(this.classNames.loadingState),this.element.setAttribute(\"aria-busy\",\"true\"),this.isLoading=!0},t.removeLoadingState=function(){this.element.classList.remove(this.classNames.loadingState),this.element.removeAttribute(\"aria-busy\"),this.isLoading=!1},t._onFocus=function(){this.isFocussed=!0},t._onBlur=function(){this.isFocussed=!1},e}();function le(e,t){for(var i=0;i0?this.element.scrollTop+o-s:e.offsetTop;requestAnimationFrame((function(){i._animateScroll(a,t)}))}},t._scrollDown=function(e,t,i){var n=(i-e)/t,s=n>1?n:1;this.element.scrollTop=e+s},t._scrollUp=function(e,t,i){var n=(e-i)/t,s=n>1?n:1;this.element.scrollTop=e-s},t._animateScroll=function(e,t){var i=this,n=this.element.scrollTop,s=!1;t>0?(this._scrollDown(n,4,e),ne&&(s=!0)),s&&requestAnimationFrame((function(){i._animateScroll(e,t)}))},e}();function de(e,t){for(var i=0;i0?\"treeitem\":\"option\"),Object.assign(g.dataset,{choice:\"\",id:l,value:h,selectText:i}),m?(g.classList.add(a),g.dataset.choiceDisabled=\"\",g.setAttribute(\"aria-disabled\",\"true\")):(g.classList.add(r),g.dataset.choiceSelectable=\"\"),g},input:function(e,t){var i=e.input,n=e.inputCloned,s=Object.assign(document.createElement(\"input\"),{type:\"text\",className:i+\" \"+n,autocomplete:\"off\",autocapitalize:\"off\",spellcheck:!1});return s.setAttribute(\"role\",\"textbox\"),s.setAttribute(\"aria-autocomplete\",\"list\"),s.setAttribute(\"aria-label\",t),s},dropdown:function(e){var t=e.list,i=e.listDropdown,n=document.createElement(\"div\");return n.classList.add(t,i),n.setAttribute(\"aria-expanded\",\"false\"),n},notice:function(e,t,i){var n=e.item,s=e.itemChoice,r=e.noResults,o=e.noChoices;void 0===i&&(i=\"\");var a=[n,s];return\"no-choices\"===i?a.push(o):\"no-results\"===i&&a.push(r),Object.assign(document.createElement(\"div\"),{innerHTML:t,className:a.join(\" \")})},option:function(e){var t=e.label,i=e.value,n=e.customProperties,s=e.active,r=e.disabled,o=new Option(t,i,!1,s);return n&&(o.dataset.customProperties=n),o.disabled=r,o}},be=function(e){return void 0===e&&(e=!0),{type:q,active:e}},ye=function(e,t){return{type:$,id:e,highlighted:t}},Ee=function(e){var t=e.value,i=e.id,n=e.active,s=e.disabled;return{type:z,value:t,id:i,active:n,disabled:s}},Ie=function(e){return{type:\"SET_IS_LOADING\",isLoading:e}};function Se(e,t){for(var i=0;i=0?this._store.getGroupById(s):null;return this._store.dispatch(ye(i,!0)),t&&this.passedElement.triggerEvent(H,{id:i,value:o,label:c,groupValue:l&&l.value?l.value:null}),this},r.unhighlightItem=function(e){if(!e)return this;var t=e.id,i=e.groupId,n=void 0===i?-1:i,s=e.value,r=void 0===s?\"\":s,o=e.label,a=void 0===o?\"\":o,c=n>=0?this._store.getGroupById(n):null;return this._store.dispatch(ye(t,!1)),this.passedElement.triggerEvent(H,{id:t,value:r,label:a,groupValue:c&&c.value?c.value:null}),this},r.highlightAll=function(){var e=this;return this._store.items.forEach((function(t){return e.highlightItem(t)})),this},r.unhighlightAll=function(){var e=this;return this._store.items.forEach((function(t){return e.unhighlightItem(t)})),this},r.removeActiveItemsByValue=function(e){var t=this;return this._store.activeItems.filter((function(t){return t.value===e})).forEach((function(e){return t._removeItem(e)})),this},r.removeActiveItems=function(e){var t=this;return this._store.activeItems.filter((function(t){return t.id!==e})).forEach((function(e){return t._removeItem(e)})),this},r.removeHighlightedItems=function(e){var t=this;return void 0===e&&(e=!1),this._store.highlightedActiveItems.forEach((function(i){t._removeItem(i),e&&t._triggerChange(i.value)})),this},r.showDropdown=function(e){var t=this;return this.dropdown.isActive||requestAnimationFrame((function(){t.dropdown.show(),t.containerOuter.open(t.dropdown.distanceFromTopWindow),!e&&t._canSearch&&t.input.focus(),t.passedElement.triggerEvent(D,{})})),this},r.hideDropdown=function(e){var t=this;return this.dropdown.isActive?(requestAnimationFrame((function(){t.dropdown.hide(),t.containerOuter.close(),!e&&t._canSearch&&(t.input.removeActiveDescendant(),t.input.blur()),t.passedElement.triggerEvent(M,{})})),this):this},r.getValue=function(e){void 0===e&&(e=!1);var t=this._store.activeItems.reduce((function(t,i){var n=e?i.value:i;return t.push(n),t}),[]);return this._isSelectOneElement?t[0]:t},r.setValue=function(e){var t=this;return this.initialised?(e.forEach((function(e){return t._setChoiceOrItem(e)})),this):this},r.setChoiceByValue=function(e){var t=this;return!this.initialised||this._isTextElement||(Array.isArray(e)?e:[e]).forEach((function(e){return t._findAndSelectChoiceByValue(e)})),this},r.setChoices=function(e,t,i,n){var s=this;if(void 0===e&&(e=[]),void 0===t&&(t=\"value\"),void 0===i&&(i=\"label\"),void 0===n&&(n=!1),!this.initialised)throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");if(!this._isSelectElement)throw new TypeError(\"setChoices can't be used with INPUT based Choices\");if(\"string\"!=typeof t||!t)throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");if(n&&this.clearChoices(),\"function\"==typeof e){var r=e(this);if(\"function\"==typeof Promise&&r instanceof Promise)return new Promise((function(e){return requestAnimationFrame(e)})).then((function(){return s._handleLoadingState(!0)})).then((function(){return r})).then((function(e){return s.setChoices(e,t,i,n)})).catch((function(e){s.config.silent||console.error(e)})).then((function(){return s._handleLoadingState(!1)})).then((function(){return s}));if(!Array.isArray(r))throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \"+typeof r);return this.setChoices(r,t,i,!1)}if(!Array.isArray(e))throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");return this.containerOuter.removeLoadingState(),this._startLoading(),e.forEach((function(e){e.choices?s._addGroup({id:parseInt(e.id,10)||null,group:e,valueKey:t,labelKey:i}):s._addChoice({value:e[t],label:e[i],isSelected:e.selected,isDisabled:e.disabled,customProperties:e.customProperties,placeholder:e.placeholder})})),this._stopLoading(),this},r.clearChoices=function(){return this._store.dispatch({type:U}),this},r.clearStore=function(){return this._store.dispatch({type:\"CLEAR_ALL\"}),this},r.clearInput=function(){var e=!this._isSelectOneElement;return this.input.clear(e),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch(be(!0))),this},r._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var e=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,t=this._isSelectElement,i=this._currentState.items!==this._prevState.items;e&&(t&&this._renderChoices(),i&&this._renderItems(),this._prevState=this._currentState)}},r._renderChoices=function(){var e=this,t=this._store,i=t.activeGroups,n=t.activeChoices,s=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame((function(){return e.choiceList.scrollToTop()})),i.length>=1&&!this._isSearching){var r=n.filter((function(e){return!0===e.placeholder&&-1===e.groupId}));r.length>=1&&(s=this._createChoicesFragment(r,s)),s=this._createGroupsFragment(i,n,s)}else n.length>=1&&(s=this._createChoicesFragment(n,s));if(s.childNodes&&s.childNodes.length>0){var o=this._store.activeItems,a=this._canAddItem(o,this.input.value);a.response?(this.choiceList.append(s),this._highlightChoice()):this.choiceList.append(this._getTemplate(\"notice\",a.notice))}else{var c,l;this._isSearching?(l=\"function\"==typeof this.config.noResultsText?this.config.noResultsText():this.config.noResultsText,c=this._getTemplate(\"notice\",l,\"no-results\")):(l=\"function\"==typeof this.config.noChoicesText?this.config.noChoicesText():this.config.noChoicesText,c=this._getTemplate(\"notice\",l,\"no-choices\")),this.choiceList.append(c)}},r._renderItems=function(){var e=this._store.activeItems||[];this.itemList.clear();var t=this._createItemsFragment(e);t.childNodes&&this.itemList.append(t)},r._createGroupsFragment=function(e,t,i){var n=this;return void 0===i&&(i=document.createDocumentFragment()),this.config.shouldSort&&e.sort(this.config.sorter),e.forEach((function(e){var s=function(e){return t.filter((function(t){return n._isSelectOneElement?t.groupId===e.id:t.groupId===e.id&&(\"always\"===n.config.renderSelectedChoices||!t.selected)}))}(e);if(s.length>=1){var r=n._getTemplate(\"choiceGroup\",e);i.appendChild(r),n._createChoicesFragment(s,i,!0)}})),i},r._createChoicesFragment=function(e,t,i){var n=this;void 0===t&&(t=document.createDocumentFragment()),void 0===i&&(i=!1);var s=this.config,r=s.renderSelectedChoices,o=s.searchResultLimit,a=s.renderChoiceLimit,c=this._isSearching?w:this.config.sorter,l=function(e){if(\"auto\"!==r||n._isSelectOneElement||!e.selected){var i=n._getTemplate(\"choice\",e,n.config.itemSelectText);t.appendChild(i)}},h=e;\"auto\"!==r||this._isSelectOneElement||(h=e.filter((function(e){return!e.selected})));var u=h.reduce((function(e,t){return t.placeholder?e.placeholderChoices.push(t):e.normalChoices.push(t),e}),{placeholderChoices:[],normalChoices:[]}),d=u.placeholderChoices,p=u.normalChoices;(this.config.shouldSort||this._isSearching)&&p.sort(c);var m=h.length,f=this._isSelectOneElement?[].concat(d,p):p;this._isSearching?m=o:a&&a>0&&!i&&(m=a);for(var v=0;v=n){var o=s?this._searchChoices(e):0;this.passedElement.triggerEvent(j,{value:e,resultCount:o})}else r&&(this._isSearching=!1,this._store.dispatch(be(!0)))}},r._canAddItem=function(e,t){var i=!0,n=\"function\"==typeof this.config.addItemText?this.config.addItemText(t):this.config.addItemText;if(!this._isSelectOneElement){var s=function(e,t,i){return void 0===i&&(i=\"value\"),e.some((function(e){return\"string\"==typeof t?e[i]===t.trim():e[i]===t}))}(e,t);this.config.maxItemCount>0&&this.config.maxItemCount<=e.length&&(i=!1,n=\"function\"==typeof this.config.maxItemText?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&s&&i&&(i=!1,n=\"function\"==typeof this.config.uniqueItemText?this.config.uniqueItemText(t):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&i&&\"function\"==typeof this.config.addItemFilter&&!this.config.addItemFilter(t)&&(i=!1,n=\"function\"==typeof this.config.customAddItemText?this.config.customAddItemText(t):this.config.customAddItemText)}return{response:i,notice:n}},r._searchChoices=function(e){var t=\"string\"==typeof e?e.trim():e,i=\"string\"==typeof this._currentValue?this._currentValue.trim():this._currentValue;if(t.length<1&&t===i+\" \")return 0;var n=this._store.searchableChoices,r=t,o=[].concat(this.config.searchFields),a=Object.assign(this.config.fuseOptions,{keys:o}),c=new s.a(n,a).search(r);return this._currentValue=t,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch(function(e){return{type:G,results:e}}(c)),c.length},r._addEventListeners=function(){var e=document.documentElement;e.addEventListener(\"touchend\",this._onTouchEnd,!0),this.containerOuter.element.addEventListener(\"keydown\",this._onKeyDown,!0),this.containerOuter.element.addEventListener(\"mousedown\",this._onMouseDown,!0),e.addEventListener(\"click\",this._onClick,{passive:!0}),e.addEventListener(\"touchmove\",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener(\"mouseover\",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener(\"focus\",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener(\"blur\",this._onBlur,{passive:!0})),this.input.element.addEventListener(\"keyup\",this._onKeyUp,{passive:!0}),this.input.element.addEventListener(\"focus\",this._onFocus,{passive:!0}),this.input.element.addEventListener(\"blur\",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener(\"reset\",this._onFormReset,{passive:!0}),this.input.addEventListeners()},r._removeEventListeners=function(){var e=document.documentElement;e.removeEventListener(\"touchend\",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener(\"keydown\",this._onKeyDown,!0),this.containerOuter.element.removeEventListener(\"mousedown\",this._onMouseDown,!0),e.removeEventListener(\"click\",this._onClick),e.removeEventListener(\"touchmove\",this._onTouchMove),this.dropdown.element.removeEventListener(\"mouseover\",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener(\"focus\",this._onFocus),this.containerOuter.element.removeEventListener(\"blur\",this._onBlur)),this.input.element.removeEventListener(\"keyup\",this._onKeyUp),this.input.element.removeEventListener(\"focus\",this._onFocus),this.input.element.removeEventListener(\"blur\",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener(\"reset\",this._onFormReset),this.input.removeEventListeners()},r._onKeyDown=function(e){var t,i=e.target,n=e.keyCode,s=e.ctrlKey,r=e.metaKey,o=this._store.activeItems,a=this.input.isFocussed,c=this.dropdown.isActive,l=this.itemList.hasChildren(),h=String.fromCharCode(n),u=J,d=Y,p=Z,m=Q,f=ee,v=te,g=ie,_=ne,b=se,y=s||r;!this._isTextElement&&/[a-zA-Z0-9-_ ]/.test(h)&&this.showDropdown();var E=((t={})[m]=this._onAKey,t[p]=this._onEnterKey,t[f]=this._onEscapeKey,t[v]=this._onDirectionKey,t[_]=this._onDirectionKey,t[g]=this._onDirectionKey,t[b]=this._onDirectionKey,t[d]=this._onDeleteKey,t[u]=this._onDeleteKey,t);E[n]&&E[n]({event:e,target:i,keyCode:n,metaKey:r,activeItems:o,hasFocusedInput:a,hasActiveDropdown:c,hasItems:l,hasCtrlDownKeyPressed:y})},r._onKeyUp=function(e){var t=e.target,i=e.keyCode,n=this.input.value,s=this._store.activeItems,r=this._canAddItem(s,n),o=J,a=Y;if(this._isTextElement)if(r.notice&&n){var c=this._getTemplate(\"notice\",r.notice);this.dropdown.element.innerHTML=c.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0);else{var l=(i===o||i===a)&&!t.value,h=!this._isTextElement&&this._isSearching,u=this._canSearch&&r.response;l&&h?(this._isSearching=!1,this._store.dispatch(be(!0))):u&&this._handleSearch(this.input.value)}this._canSearch=this.config.searchEnabled},r._onAKey=function(e){var t=e.hasItems;e.hasCtrlDownKeyPressed&&t&&(this._canSearch=!1,this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement&&this.highlightAll())},r._onEnterKey=function(e){var t=e.event,i=e.target,n=e.activeItems,s=e.hasActiveDropdown,r=Z,o=i.hasAttribute(\"data-button\");if(this._isTextElement&&i.value){var a=this.input.value;this._canAddItem(n,a).response&&(this.hideDropdown(!0),this._addItem({value:a}),this._triggerChange(a),this.clearInput())}if(o&&(this._handleButtonAction(n,i),t.preventDefault()),s){var c=this.dropdown.getChild(\".\"+this.config.classNames.highlightedState);c&&(n[0]&&(n[0].keyCode=r),this._handleChoiceAction(n,c)),t.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),t.preventDefault())},r._onEscapeKey=function(e){e.hasActiveDropdown&&(this.hideDropdown(!0),this.containerOuter.focus())},r._onDirectionKey=function(e){var t,i,n,s=e.event,r=e.hasActiveDropdown,o=e.keyCode,a=e.metaKey,c=ie,l=ne,h=se;if(r||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var u,d=o===c||o===h?1:-1,p=\"[data-choice-selectable]\";if(a||o===h||o===l)u=d>0?this.dropdown.element.querySelector(\"[data-choice-selectable]:last-of-type\"):this.dropdown.element.querySelector(p);else{var m=this.dropdown.element.querySelector(\".\"+this.config.classNames.highlightedState);u=m?function(e,t,i){if(void 0===i&&(i=1),e instanceof Element&&\"string\"==typeof t){for(var n=(i>0?\"next\":\"previous\")+\"ElementSibling\",s=e[n];s;){if(s.matches(t))return s;s=s[n]}return s}}(m,p,d):this.dropdown.element.querySelector(p)}u&&(t=u,i=this.choiceList.element,void 0===(n=d)&&(n=1),t&&(n>0?i.scrollTop+i.offsetHeight>=t.offsetTop+t.offsetHeight:t.offsetTop>=i.scrollTop)||this.choiceList.scrollToChildElement(u,d),this._highlightChoice(u)),s.preventDefault()}},r._onDeleteKey=function(e){var t=e.event,i=e.target,n=e.hasFocusedInput,s=e.activeItems;!n||i.value||this._isSelectOneElement||(this._handleBackspace(s),t.preventDefault())},r._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},r._onTouchEnd=function(e){var t=(e||e.touches[0]).target;this._wasTap&&this.containerOuter.element.contains(t)&&((t===this.containerOuter.element||t===this.containerInner.element)&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),e.stopPropagation()),this._wasTap=!0},r._onMouseDown=function(e){var t=e.target;if(t instanceof HTMLElement){if(we&&this.choiceList.element.contains(t)){var i=this.choiceList.element.firstElementChild,n=\"ltr\"===this._direction?e.offsetX>=i.offsetWidth:e.offsetX0&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0))},r._onFocus=function(e){var t,i=this,n=e.target;this.containerOuter.element.contains(n)&&((t={}).text=function(){n===i.input.element&&i.containerOuter.addFocusState()},t[\"select-one\"]=function(){i.containerOuter.addFocusState(),n===i.input.element&&i.showDropdown(!0)},t[\"select-multiple\"]=function(){n===i.input.element&&(i.showDropdown(!0),i.containerOuter.addFocusState())},t)[this.passedElement.element.type]()},r._onBlur=function(e){var t=this,i=e.target;if(this.containerOuter.element.contains(i)&&!this._isScrollingOnIe){var n,s=this._store.activeItems.some((function(e){return e.highlighted}));((n={}).text=function(){i===t.input.element&&(t.containerOuter.removeFocusState(),s&&t.unhighlightAll(),t.hideDropdown(!0))},n[\"select-one\"]=function(){t.containerOuter.removeFocusState(),(i===t.input.element||i===t.containerOuter.element&&!t._canSearch)&&t.hideDropdown(!0)},n[\"select-multiple\"]=function(){i===t.input.element&&(t.containerOuter.removeFocusState(),t.hideDropdown(!0),s&&t.unhighlightAll())},n)[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},r._onFormReset=function(){this._store.dispatch({type:\"RESET_TO\",state:this._initialState})},r._highlightChoice=function(e){var t=this;void 0===e&&(e=null);var i=Array.from(this.dropdown.element.querySelectorAll(\"[data-choice-selectable]\"));if(i.length){var n=e;Array.from(this.dropdown.element.querySelectorAll(\".\"+this.config.classNames.highlightedState)).forEach((function(e){e.classList.remove(t.config.classNames.highlightedState),e.setAttribute(\"aria-selected\",\"false\")})),n?this._highlightPosition=i.indexOf(n):(n=i.length>this._highlightPosition?i[this._highlightPosition]:i[i.length-1])||(n=i[0]),n.classList.add(this.config.classNames.highlightedState),n.setAttribute(\"aria-selected\",\"true\"),this.passedElement.triggerEvent(B,{el:n}),this.dropdown.isActive&&(this.input.setActiveDescendant(n.id),this.containerOuter.setActiveDescendant(n.id))}},r._addItem=function(e){var t=e.value,i=e.label,n=void 0===i?null:i,s=e.choiceId,r=void 0===s?-1:s,o=e.groupId,a=void 0===o?-1:o,c=e.customProperties,l=void 0===c?null:c,h=e.placeholder,u=void 0!==h&&h,d=e.keyCode,p=void 0===d?null:d,m=\"string\"==typeof t?t.trim():t,f=p,v=l,g=this._store.items,_=n||m,b=r||-1,y=a>=0?this._store.getGroupById(a):null,E=g?g.length+1:1;return this.config.prependValue&&(m=this.config.prependValue+m.toString()),this.config.appendValue&&(m+=this.config.appendValue.toString()),this._store.dispatch(function(e){var t=e.value,i=e.label,n=e.id,s=e.choiceId,r=e.groupId,o=e.customProperties,a=e.placeholder,c=e.keyCode;return{type:W,value:t,label:i,id:n,choiceId:s,groupId:r,customProperties:o,placeholder:a,keyCode:c}}({value:m,label:_,id:E,choiceId:b,groupId:a,customProperties:l,placeholder:u,keyCode:f})),this._isSelectOneElement&&this.removeActiveItems(E),this.passedElement.triggerEvent(K,{id:E,value:m,label:_,customProperties:v,groupValue:y&&y.value?y.value:void 0,keyCode:f}),this},r._removeItem=function(e){if(!e||!E(\"Object\",e))return this;var t=e.id,i=e.value,n=e.label,s=e.choiceId,r=e.groupId,o=r>=0?this._store.getGroupById(r):null;return this._store.dispatch(function(e,t){return{type:X,id:e,choiceId:t}}(t,s)),o&&o.value?this.passedElement.triggerEvent(R,{id:t,value:i,label:n,groupValue:o.value}):this.passedElement.triggerEvent(R,{id:t,value:i,label:n}),this},r._addChoice=function(e){var t=e.value,i=e.label,n=void 0===i?null:i,s=e.isSelected,r=void 0!==s&&s,o=e.isDisabled,a=void 0!==o&&o,c=e.groupId,l=void 0===c?-1:c,h=e.customProperties,u=void 0===h?null:h,d=e.placeholder,p=void 0!==d&&d,m=e.keyCode,f=void 0===m?null:m;if(null!=t){var v=this._store.choices,g=n||t,_=v?v.length+1:1,b=this._baseId+\"-\"+this._idNames.itemChoice+\"-\"+_;this._store.dispatch(function(e){var t=e.value,i=e.label,n=e.id,s=e.groupId,r=e.disabled,o=e.elementId,a=e.customProperties,c=e.placeholder,l=e.keyCode;return{type:V,value:t,label:i,id:n,groupId:s,disabled:r,elementId:o,customProperties:a,placeholder:c,keyCode:l}}({id:_,groupId:l,elementId:b,value:t,label:g,disabled:a,customProperties:u,placeholder:p,keyCode:f})),r&&this._addItem({value:t,label:g,choiceId:_,customProperties:u,placeholder:p,keyCode:f})}},r._addGroup=function(e){var t=this,i=e.group,n=e.id,s=e.valueKey,r=void 0===s?\"value\":s,o=e.labelKey,a=void 0===o?\"label\":o,c=E(\"Object\",i)?i.choices:Array.from(i.getElementsByTagName(\"OPTION\")),l=n||Math.floor((new Date).valueOf()*Math.random()),h=!!i.disabled&&i.disabled;c?(this._store.dispatch(Ee({value:i.label,id:l,active:!0,disabled:h})),c.forEach((function(e){var i=e.disabled||e.parentNode&&e.parentNode.disabled;t._addChoice({value:e[r],label:E(\"Object\",e)?e[a]:e.innerHTML,isSelected:e.selected,isDisabled:i,groupId:l,customProperties:e.customProperties,placeholder:e.placeholder})}))):this._store.dispatch(Ee({value:i.label,id:i.id,active:!1,disabled:i.disabled}))},r._getTemplate=function(e){var t;if(!e)return null;for(var i=this.config.classNames,n=arguments.length,s=new Array(n>1?n-1:0),r=1;r{var e;return this.input_el.name=null!==(e=this.model.name)&&void 0!==e?e:\"\"})),this.connect(this.model.properties.value.change,(()=>{this.input_el.value=this.format_value,this.old_value=this.input_el.value})),this.connect(this.model.properties.low.change,(()=>{const{value:e,low:t,high:l}=this.model;null!=t&&null!=l&&(0,p.assert)(t<=l,\"Invalid bounds, low must be inferior to high\"),null!=e&&null!=t&&e{const{value:e,low:t,high:l}=this.model;null!=t&&null!=l&&(0,p.assert)(l>=t,\"Invalid bounds, high must be superior to low\"),null!=e&&null!=l&&e>l&&(this.model.value=l)})),this.connect(this.model.properties.high.change,(()=>this.input_el.placeholder=this.model.placeholder)),this.connect(this.model.properties.disabled.change,(()=>this.input_el.disabled=this.model.disabled)),this.connect(this.model.properties.placeholder.change,(()=>this.input_el.placeholder=this.model.placeholder))}get format_value(){return null!=this.model.value?this.model.pretty(this.model.value):\"\"}_set_input_filter(e){this.input_el.addEventListener(\"input\",(()=>{const{selectionStart:t,selectionEnd:l}=this.input_el;if(e(this.input_el.value))this.old_value=this.input_el.value;else{const e=this.old_value.length-this.input_el.value.length;this.input_el.value=this.old_value,t&&l&&this.input_el.setSelectionRange(t-1,l+e)}}))}render(){super.render(),this.input_el=(0,r.input)({type:\"text\",class:_.input,name:this.model.name,value:this.format_value,disabled:this.model.disabled,placeholder:this.model.placeholder}),this.old_value=this.format_value,this.set_input_filter(),this.input_el.addEventListener(\"change\",(()=>this.change_input())),this.input_el.addEventListener(\"focusout\",(()=>this.input_el.value=this.format_value)),this.group_el.appendChild(this.input_el)}set_input_filter(){\"int\"==this.model.mode?this._set_input_filter((e=>m.test(e))):\"float\"==this.model.mode&&this._set_input_filter((e=>c.test(e)))}bound_value(e){let t=e;const{low:l,high:i}=this.model;return t=null!=l?Math.max(l,t):t,t=null!=i?Math.min(i,t):t,t}get value(){let e=\"\"!=this.input_el.value?Number(this.input_el.value):null;return null!=e&&(e=this.bound_value(e)),e}change_input(){null==this.value?this.model.value=null:Number.isNaN(this.value)||(this.model.value=this.value)}}l.NumericInputView=v,v.__name__=\"NumericInputView\";class g extends o.InputWidget{constructor(e){super(e)}_formatter(e,t){return(0,d.isString)(t)?h.format(e,t):t.doFormat([e],{loc:0})[0]}pretty(e){return null!=this.format?this._formatter(e,this.format):`${e}`}}l.NumericInput=g,u=g,g.__name__=\"NumericInput\",u.prototype.default_view=v,u.define((({Number:e,String:t,Enum:l,Ref:i,Or:n,Nullable:s})=>({value:[s(e),null],placeholder:[t,\"\"],mode:[l(\"int\",\"float\"),\"int\"],format:[s(n(t,i(a.TickFormatter))),null],low:[s(e),null],high:[s(e),null]})))},\n 479: function _(e,t,r,s,n){var a;s();const o=e(468),_=e(43);class p extends o.MarkupView{render(){super.render();const e=(0,_.pre)({style:{overflow:\"auto\"}},this.model.text);this.markup_el.appendChild(e)}}r.PreTextView=p,p.__name__=\"PreTextView\";class u extends o.Markup{constructor(e){super(e)}}r.PreText=u,a=u,u.__name__=\"PreText\",a.prototype.default_view=p},\n 480: function _(t,o,e,a,i){a();const n=t(1);var u;const s=t(452),c=t(43),_=(0,n.__importStar)(t(318));class r extends s.ButtonGroupView{change_active(t){this.model.active!==t&&(this.model.active=t)}_update_active(){const{active:t}=this.model;this._buttons.forEach(((o,e)=>{(0,c.classes)(o).toggle(_.active,t===e)}))}}e.RadioButtonGroupView=r,r.__name__=\"RadioButtonGroupView\";class l extends s.ButtonGroup{constructor(t){super(t)}}e.RadioButtonGroup=l,u=l,l.__name__=\"RadioButtonGroup\",u.prototype.default_view=r,u.define((({Int:t,Nullable:o})=>({active:[o(t),null]})))},\n 481: function _(e,n,i,t,a){t();const s=e(1);var l;const o=e(43),d=e(34),p=e(455),r=(0,s.__importStar)(e(449));class u extends p.InputGroupView{render(){super.render();const e=(0,o.div)({class:[r.input_group,this.model.inline?r.inline:null]});this.el.appendChild(e);const n=(0,d.uniqueId)(),{active:i,labels:t}=this.model;this._inputs=[];for(let a=0;athis.change_active(a))),this._inputs.push(s),this.model.disabled&&(s.disabled=!0),a==i&&(s.checked=!0);const l=(0,o.label)(s,(0,o.span)(t[a]));e.appendChild(l)}}change_active(e){this.model.active=e}}i.RadioGroupView=u,u.__name__=\"RadioGroupView\";class c extends p.InputGroup{constructor(e){super(e)}}i.RadioGroup=c,l=c,c.__name__=\"RadioGroup\",l.prototype.default_view=u,l.define((({Boolean:e,Int:n,String:i,Array:t,Nullable:a})=>({active:[a(n),null],labels:[t(i),[]],inline:[e,!1]})))},\n 482: function _(e,r,t,a,i){a();var n;const o=(0,e(1).__importStar)(e(153)),s=e(461),_=e(8);class d extends s.AbstractRangeSliderView{}t.RangeSliderView=d,d.__name__=\"RangeSliderView\";class c extends s.AbstractSlider{constructor(e){super(e),this.behaviour=\"drag\",this.connected=[!1,!0,!1]}_formatter(e,r){return(0,_.isString)(r)?o.format(e,r):r.compute(e)}}t.RangeSlider=c,n=c,c.__name__=\"RangeSlider\",n.prototype.default_view=d,n.override({format:\"0[.]00\"})},\n 483: function _(e,t,n,s,i){s();const l=e(1);var u;const a=e(43),o=e(8),p=e(13),_=e(448),r=(0,l.__importStar)(e(449));class c extends _.InputWidgetView{constructor(){super(...arguments),this._known_values=new Set}connect_signals(){super.connect_signals();const{value:e,options:t}=this.model.properties;this.on_change(e,(()=>{this._update_value()})),this.on_change(t,(()=>{(0,a.empty)(this.input_el),(0,a.append)(this.input_el,...this.options_el()),this._update_value()}))}options_el(){const{_known_values:e}=this;function t(t){return t.map((t=>{let n,s;return(0,o.isString)(t)?n=s=t:[n,s]=t,e.add(n),(0,a.option)({value:n},s)}))}e.clear();const{options:n}=this.model;return(0,o.isArray)(n)?t(n):(0,p.entries)(n).map((([e,n])=>(0,a.optgroup)({label:e},t(n))))}render(){super.render(),this.input_el=(0,a.select)({class:r.input,name:this.model.name,disabled:this.model.disabled},this.options_el()),this._update_value(),this.input_el.addEventListener(\"change\",(()=>this.change_input())),this.group_el.appendChild(this.input_el)}change_input(){const e=this.input_el.value;this.model.value=e,super.change_input()}_update_value(){const{value:e}=this.model;this._known_values.has(e)?this.input_el.value=e:this.input_el.removeAttribute(\"value\")}}n.SelectView=c,c.__name__=\"SelectView\";class h extends _.InputWidget{constructor(e){super(e)}}n.Select=h,u=h,h.__name__=\"Select\",u.prototype.default_view=c,u.define((({String:e,Array:t,Tuple:n,Dict:s,Or:i})=>{const l=t(i(e,n(e,e)));return{value:[e,\"\"],options:[i(l,s(l)),[]]}}))},\n 484: function _(e,t,r,i,a){i();var o;const s=(0,e(1).__importStar)(e(153)),_=e(461),n=e(8);class c extends _.AbstractSliderView{}r.SliderView=c,c.__name__=\"SliderView\";class d extends _.AbstractSlider{constructor(e){super(e),this.behaviour=\"tap\",this.connected=[!0,!1]}_formatter(e,t){return(0,n.isString)(t)?s.format(e,t):t.compute(e)}}r.Slider=d,o=d,d.__name__=\"Slider\",o.prototype.default_view=c,o.override({format:\"0[.]00\"})},\n 485: function _(e,t,i,n,s){var l;n();const o=e(478),r=e(43),{min:a,max:h,floor:_,abs:u}=Math;function d(e){return _(e)!==e?e.toFixed(16).replace(/0+$/,\"\").split(\".\")[1].length:0}class p extends o.NumericInputView{*buttons(){yield this.btn_up_el,yield this.btn_down_el}initialize(){super.initialize(),this._handles={interval:void 0,timeout:void 0},this._interval=200}connect_signals(){super.connect_signals();const e=this.model.properties;this.on_change(e.disabled,(()=>{for(const e of this.buttons())(0,r.toggle_attribute)(e,\"disabled\",this.model.disabled)}))}render(){super.render(),this.wrapper_el=(0,r.div)({class:\"bk-spin-wrapper\"}),this.group_el.replaceChild(this.wrapper_el,this.input_el),this.btn_up_el=(0,r.button)({class:\"bk-spin-btn bk-spin-btn-up\"}),this.btn_down_el=(0,r.button)({class:\"bk-spin-btn bk-spin-btn-down\"}),this.wrapper_el.appendChild(this.input_el),this.wrapper_el.appendChild(this.btn_up_el),this.wrapper_el.appendChild(this.btn_down_el);for(const e of this.buttons())(0,r.toggle_attribute)(e,\"disabled\",this.model.disabled),e.addEventListener(\"mousedown\",(e=>this._btn_mouse_down(e))),e.addEventListener(\"mouseup\",(()=>this._btn_mouse_up())),e.addEventListener(\"mouseleave\",(()=>this._btn_mouse_leave()));this.input_el.addEventListener(\"keydown\",(e=>this._input_key_down(e))),this.input_el.addEventListener(\"keyup\",(()=>this.model.value_throttled=this.model.value)),this.input_el.addEventListener(\"wheel\",(e=>this._input_mouse_wheel(e))),this.input_el.addEventListener(\"wheel\",function(e,t,i=!1){let n;return function(...s){const l=this,o=i&&void 0===n;void 0!==n&&clearTimeout(n),n=setTimeout((function(){n=void 0,i||e.apply(l,s)}),t),o&&e.apply(l,s)}}((()=>{this.model.value_throttled=this.model.value}),this.model.wheel_wait,!1))}get precision(){const{low:e,high:t,step:i}=this.model,n=d;return h(n(u(null!=e?e:0)),n(u(null!=t?t:0)),n(u(i)))}remove(){this._stop_incrementation(),super.remove()}_start_incrementation(e){clearInterval(this._handles.interval),this._counter=0;const{step:t}=this.model,i=e=>{if(this._counter+=1,this._counter%5==0){const t=Math.floor(this._counter/5);t<10?(clearInterval(this._handles.interval),this._handles.interval=setInterval((()=>i(e)),this._interval/(t+1))):t>=10&&t<=13&&(clearInterval(this._handles.interval),this._handles.interval=setInterval((()=>i(2*e)),this._interval/10))}this.increment(e)};this._handles.interval=setInterval((()=>i(e*t)),this._interval)}_stop_incrementation(){clearTimeout(this._handles.timeout),this._handles.timeout=void 0,clearInterval(this._handles.interval),this._handles.interval=void 0,this.model.value_throttled=this.model.value}_btn_mouse_down(e){e.preventDefault();const t=e.currentTarget===this.btn_up_el?1:-1;this.increment(t*this.model.step),this.input_el.focus(),this._handles.timeout=setTimeout((()=>this._start_incrementation(t)),this._interval)}_btn_mouse_up(){this._stop_incrementation()}_btn_mouse_leave(){this._stop_incrementation()}_input_mouse_wheel(e){if(document.activeElement===this.input_el){e.preventDefault();const t=e.deltaY>0?-1:1;this.increment(t*this.model.step)}}_input_key_down(e){switch(e.keyCode){case r.Keys.Up:return e.preventDefault(),this.increment(this.model.step);case r.Keys.Down:return e.preventDefault(),this.increment(-this.model.step);case r.Keys.PageUp:return e.preventDefault(),this.increment(this.model.page_step_multiplier*this.model.step);case r.Keys.PageDown:return e.preventDefault(),this.increment(-this.model.page_step_multiplier*this.model.step)}}adjust_to_precision(e){return this.bound_value(Number(e.toFixed(this.precision)))}increment(e){const{low:t,high:i}=this.model;null==this.model.value?e>0?this.model.value=null!=t?t:null!=i?a(0,i):0:e<0&&(this.model.value=null!=i?i:null!=t?h(t,0):0):this.model.value=this.adjust_to_precision(this.model.value+e)}change_input(){super.change_input(),this.model.value_throttled=this.model.value}}i.SpinnerView=p,p.__name__=\"SpinnerView\";class m extends o.NumericInput{constructor(e){super(e)}}i.Spinner=m,l=m,m.__name__=\"Spinner\",l.prototype.default_view=p,l.define((({Number:e,Nullable:t})=>({value_throttled:[t(e),null],step:[e,1],page_step_multiplier:[e,10],wheel_wait:[e,100]}))),l.override({mode:\"float\"})},\n 486: function _(e,t,s,n,i){n();const o=e(1);var r;const c=e(447),l=e(43),p=(0,o.__importStar)(e(449));class _ extends c.TextLikeInputView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.rows.change,(()=>this.input_el.rows=this.model.rows)),this.connect(this.model.properties.cols.change,(()=>this.input_el.cols=this.model.cols))}_render_input(){this.input_el=(0,l.textarea)({class:p.input})}render(){super.render(),this.input_el.cols=this.model.cols,this.input_el.rows=this.model.rows}}s.TextAreaInputView=_,_.__name__=\"TextAreaInputView\";class a extends c.TextLikeInput{constructor(e){super(e)}}s.TextAreaInput=a,r=a,a.__name__=\"TextAreaInput\",r.prototype.default_view=_,r.define((({Int:e})=>({cols:[e,20],rows:[e,2]}))),r.override({max_length:500})},\n 487: function _(e,t,s,c,i){c();const o=e(1);var a;const n=e(441),l=e(43),_=(0,o.__importStar)(e(318));class r extends n.AbstractButtonView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.active.change,(()=>this._update_active()))}render(){super.render(),this._update_active()}click(){this.model.active=!this.model.active,super.click()}_update_active(){(0,l.classes)(this.button_el).toggle(_.active,this.model.active)}}s.ToggleView=r,r.__name__=\"ToggleView\";class g extends n.AbstractButton{constructor(e){super(e)}}s.Toggle=g,a=g,g.__name__=\"Toggle\",a.prototype.default_view=r,a.define((({Boolean:e})=>({active:[e,!1]}))),a.override({label:\"Toggle\"})},\n }, 439, {\"models/widgets/main\":439,\"models/widgets/index\":440,\"models/widgets/abstract_button\":441,\"models/widgets/control\":442,\"models/widgets/widget\":512,\"models/widgets/abstract_icon\":444,\"models/widgets/autocomplete_input\":445,\"models/widgets/text_input\":446,\"models/widgets/text_like_input\":447,\"models/widgets/input_widget\":448,\"styles/widgets/inputs.css\":449,\"models/widgets/button\":450,\"models/widgets/checkbox_button_group\":451,\"models/widgets/button_group\":452,\"models/widgets/oriented_control\":453,\"models/widgets/checkbox_group\":454,\"models/widgets/input_group\":455,\"models/widgets/color_picker\":456,\"models/widgets/date_picker\":457,\"styles/widgets/flatpickr.css\":459,\"models/widgets/date_range_slider\":460,\"models/widgets/abstract_slider\":461,\"styles/widgets/sliders.css\":463,\"styles/widgets/nouislider.css\":464,\"models/widgets/date_slider\":465,\"models/widgets/datetime_range_slider\":466,\"models/widgets/div\":467,\"models/widgets/markup\":468,\"styles/clearfix.css\":469,\"models/widgets/dropdown\":470,\"models/widgets/file_input\":471,\"models/widgets/multiselect\":472,\"models/widgets/paragraph\":473,\"models/widgets/password_input\":474,\"models/widgets/multichoice\":475,\"styles/widgets/choices.css\":477,\"models/widgets/numeric_input\":478,\"models/widgets/pretext\":479,\"models/widgets/radio_button_group\":480,\"models/widgets/radio_group\":481,\"models/widgets/range_slider\":482,\"models/widgets/selectbox\":483,\"models/widgets/slider\":484,\"models/widgets/spinner\":485,\"models/widgets/textarea_input\":486,\"models/widgets/toggle\":487}, {});});\n\n /* END bokeh-widgets.min.js */\n },\n function(Bokeh) {\n /* BEGIN bokeh-tables.min.js */\n /*!\n * Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n * \n * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * Neither the name of Anaconda nor the names of any contributors\n * may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n * THE POSSIBILITY OF SUCH DAMAGE.\n */\n (function(root, factory) {\n factory(root[\"Bokeh\"], \"2.4.3\");\n })(this, function(Bokeh, version) {\n let define;\n return (function(modules, entry, aliases, externals) {\n const bokeh = typeof Bokeh !== \"undefined\" && (version != null ? Bokeh[version] : Bokeh);\n if (bokeh != null) {\n return bokeh.register_plugin(modules, entry, aliases);\n } else {\n throw new Error(\"Cannot find Bokeh \" + version + \". You have to load it prior to loading plugins.\");\n }\n })\n ({\n 488: function _(t,e,o,r,s){r();const _=(0,t(1).__importStar)(t(489));o.Tables=_;(0,t(7).register_models)(_)},\n 489: function _(g,a,r,e,t){e();const o=g(1);(0,o.__exportStar)(g(490),r),(0,o.__exportStar)(g(493),r),t(\"DataTable\",g(496).DataTable),t(\"TableColumn\",g(514).TableColumn),t(\"TableWidget\",g(513).TableWidget);var n=g(516);t(\"AvgAggregator\",n.AvgAggregator),t(\"MinAggregator\",n.MinAggregator),t(\"MaxAggregator\",n.MaxAggregator),t(\"SumAggregator\",n.SumAggregator);var A=g(517);t(\"GroupingInfo\",A.GroupingInfo),t(\"DataCube\",A.DataCube)},\n 490: function _(e,t,i,s,a){s();const r=e(1);var l,n,u,d,o,p,_,c,h;const E=e(43),V=e(226),m=e(53),f=e(491),v=(0,r.__importStar)(e(492));class w extends V.DOMView{constructor(e){const{model:t,parent:i}=e.column;super(Object.assign({model:t,parent:i},e)),this.args=e,this.initialize(),this.render()}get emptyValue(){return null}initialize(){super.initialize(),this.inputEl=this._createInput(),this.defaultValue=null}async lazy_initialize(){throw new Error(\"unsupported\")}css_classes(){return super.css_classes().concat(v.cell_editor)}render(){super.render(),this.args.container.append(this.el),this.el.appendChild(this.inputEl),this.renderEditor(),this.disableNavigation()}renderEditor(){}disableNavigation(){this.inputEl.addEventListener(\"keydown\",(e=>{switch(e.keyCode){case E.Keys.Left:case E.Keys.Right:case E.Keys.Up:case E.Keys.Down:case E.Keys.PageUp:case E.Keys.PageDown:e.stopImmediatePropagation()}}))}destroy(){this.remove()}focus(){this.inputEl.focus()}show(){}hide(){}position(){}getValue(){return this.inputEl.value}setValue(e){this.inputEl.value=e}serializeValue(){return this.getValue()}isValueChanged(){return!(\"\"==this.getValue()&&null==this.defaultValue)&&this.getValue()!==this.defaultValue}applyValue(e,t){const i=this.args.grid.getData(),s=i.index.indexOf(e[f.DTINDEX_NAME]);i.setField(s,this.args.column.field,t)}loadValue(e){const t=e[this.args.column.field];this.defaultValue=null!=t?t:this.emptyValue,this.setValue(this.defaultValue)}validateValue(e){if(this.args.column.validator){const t=this.args.column.validator(e);if(!t.valid)return t}return{valid:!0,msg:null}}validate(){return this.validateValue(this.getValue())}}i.CellEditorView=w,w.__name__=\"CellEditorView\";class g extends m.Model{}i.CellEditor=g,g.__name__=\"CellEditor\";class x extends w{get emptyValue(){return\"\"}_createInput(){return(0,E.input)({type:\"text\"})}renderEditor(){this.inputEl.focus(),this.inputEl.select()}loadValue(e){super.loadValue(e),this.inputEl.defaultValue=this.defaultValue,this.inputEl.select()}}i.StringEditorView=x,x.__name__=\"StringEditorView\";class y extends g{}i.StringEditor=y,l=y,y.__name__=\"StringEditor\",l.prototype.default_view=x,l.define((({String:e,Array:t})=>({completions:[t(e),[]]})));class I extends w{_createInput(){return(0,E.textarea)()}renderEditor(){this.inputEl.focus(),this.inputEl.select()}}i.TextEditorView=I,I.__name__=\"TextEditorView\";class b extends g{}i.TextEditor=b,n=b,b.__name__=\"TextEditor\",n.prototype.default_view=I;class N extends w{_createInput(){return(0,E.select)()}renderEditor(){for(const e of this.model.options)this.inputEl.appendChild((0,E.option)({value:e},e));this.focus()}}i.SelectEditorView=N,N.__name__=\"SelectEditorView\";class C extends g{}i.SelectEditor=C,u=C,C.__name__=\"SelectEditor\",u.prototype.default_view=N,u.define((({String:e,Array:t})=>({options:[t(e),[]]})));class D extends w{_createInput(){return(0,E.input)({type:\"text\"})}}i.PercentEditorView=D,D.__name__=\"PercentEditorView\";class S extends g{}i.PercentEditor=S,d=S,S.__name__=\"PercentEditor\",d.prototype.default_view=D;class k extends w{_createInput(){return(0,E.input)({type:\"checkbox\"})}renderEditor(){this.focus()}loadValue(e){this.defaultValue=!!e[this.args.column.field],this.inputEl.checked=this.defaultValue}serializeValue(){return this.inputEl.checked}}i.CheckboxEditorView=k,k.__name__=\"CheckboxEditorView\";class z extends g{}i.CheckboxEditor=z,o=z,z.__name__=\"CheckboxEditor\",o.prototype.default_view=k;class P extends w{_createInput(){return(0,E.input)({type:\"text\"})}renderEditor(){this.inputEl.focus(),this.inputEl.select()}remove(){super.remove()}serializeValue(){var e;return null!==(e=parseInt(this.getValue(),10))&&void 0!==e?e:0}loadValue(e){super.loadValue(e),this.inputEl.defaultValue=this.defaultValue,this.inputEl.select()}validateValue(e){return isNaN(e)?{valid:!1,msg:\"Please enter a valid integer\"}:super.validateValue(e)}}i.IntEditorView=P,P.__name__=\"IntEditorView\";class T extends g{}i.IntEditor=T,p=T,T.__name__=\"IntEditor\",p.prototype.default_view=P,p.define((({Int:e})=>({step:[e,1]})));class K extends w{_createInput(){return(0,E.input)({type:\"text\"})}renderEditor(){this.inputEl.focus(),this.inputEl.select()}remove(){super.remove()}serializeValue(){var e;return null!==(e=parseFloat(this.getValue()))&&void 0!==e?e:0}loadValue(e){super.loadValue(e),this.inputEl.defaultValue=this.defaultValue,this.inputEl.select()}validateValue(e){return isNaN(e)?{valid:!1,msg:\"Please enter a valid number\"}:super.validateValue(e)}}i.NumberEditorView=K,K.__name__=\"NumberEditorView\";class A extends g{}i.NumberEditor=A,_=A,A.__name__=\"NumberEditor\",_.prototype.default_view=K,_.define((({Number:e})=>({step:[e,.01]})));class M extends w{_createInput(){return(0,E.input)({type:\"text\"})}}i.TimeEditorView=M,M.__name__=\"TimeEditorView\";class O extends g{}i.TimeEditor=O,c=O,O.__name__=\"TimeEditor\",c.prototype.default_view=M;class F extends w{_createInput(){return(0,E.input)({type:\"text\"})}get emptyValue(){return new Date}renderEditor(){this.inputEl.focus(),this.inputEl.select()}destroy(){super.destroy()}show(){super.show()}hide(){super.hide()}position(){return super.position()}getValue(){}setValue(e){}}i.DateEditorView=F,F.__name__=\"DateEditorView\";class L extends g{}i.DateEditor=L,h=L,L.__name__=\"DateEditor\",h.prototype.default_view=F},\n 491: function _(_,n,i,t,d){t(),i.DTINDEX_NAME=\"__bkdt_internal_index__\"},\n 492: function _(e,l,o,t,r){t(),o.root=\"bk-root\",o.data_table=\"bk-data-table\",o.cell_special_defaults=\"bk-cell-special-defaults\",o.cell_select=\"bk-cell-select\",o.cell_index=\"bk-cell-index\",o.header_index=\"bk-header-index\",o.cell_editor=\"bk-cell-editor\",o.cell_editor_completion=\"bk-cell-editor-completion\",o.default='.bk-root .bk-data-table{box-sizing:content-box;font-size:11px;}.bk-root .bk-data-table input[type=\"checkbox\"]{margin-left:4px;margin-right:4px;}.bk-root .bk-cell-special-defaults{border-right-color:silver;border-right-style:solid;background:#f5f5f5;}.bk-root .bk-cell-select{border-right-color:silver;border-right-style:solid;background:#f5f5f5;}.bk-root .slick-cell.bk-cell-index{border-right-color:silver;border-right-style:solid;background:#f5f5f5;text-align:right;background:#f0f0f0;color:#909090;}.bk-root .bk-header-index .slick-column-name{float:right;}.bk-root .slick-row.selected .bk-cell-index{background-color:transparent;}.bk-root .slick-row.odd{background:#f0f0f0;}.bk-root .slick-cell{padding-left:4px;padding-right:4px;border-right-color:transparent;border:0.25px solid transparent;}.bk-root .slick-cell .bk{line-height:inherit;}.bk-root .slick-cell.active{border-style:dashed;}.bk-root .slick-cell.selected{background-color:#F0F8FF;}.bk-root .slick-cell.editable{padding-left:0;padding-right:0;}.bk-root .bk-cell-editor{display:contents;}.bk-root .bk-cell-editor input,.bk-root .bk-cell-editor select{width:100%;height:100%;border:0;margin:0;padding:0;outline:0;background:transparent;vertical-align:baseline;}.bk-root .bk-cell-editor input{padding-left:4px;padding-right:4px;}.bk-root .bk-cell-editor-completion{font-size:11px;}'},\n 493: function _(t,e,r,n,o){n();const a=t(1);var s,i,l,c,u,m;const _=(0,a.__importDefault)(t(151)),d=(0,a.__importStar)(t(153)),f=t(494),g=t(43),F=t(20),h=t(8),p=t(34),S=t(22),x=t(53);class b extends x.Model{constructor(t){super(t)}doFormat(t,e,r,n,o){return null==r?\"\":`${r}`.replace(/&/g,\"&\").replace(//g,\">\")}}r.CellFormatter=b,b.__name__=\"CellFormatter\";class M extends b{constructor(t){super(t)}doFormat(t,e,r,n,o){const{font_style:a,text_align:s,text_color:i}=this,l=(0,g.div)(null==r?\"\":`${r}`);switch(a){case\"bold\":l.style.fontWeight=\"bold\";break;case\"italic\":l.style.fontStyle=\"italic\"}return null!=s&&(l.style.textAlign=s),null!=i&&(l.style.color=(0,S.color2css)(i)),l.outerHTML}}r.StringFormatter=M,s=M,M.__name__=\"StringFormatter\",s.define((({Color:t,Nullable:e,String:r})=>({font_style:[F.FontStyle,\"normal\"],text_align:[F.TextAlign,\"left\"],text_color:[e(t),null],nan_format:[r,\"-\"]})));class w extends M{constructor(t){super(t)}get scientific_limit_low(){return 10**this.power_limit_low}get scientific_limit_high(){return 10**this.power_limit_high}doFormat(t,e,r,n,o){const a=Math.abs(r)<=this.scientific_limit_low||Math.abs(r)>=this.scientific_limit_high;let s=this.precision;return s<1&&(s=1),r=null==r||isNaN(r)?this.nan_format:0==r?(0,p.to_fixed)(r,1):a?r.toExponential(s):(0,p.to_fixed)(r,s),super.doFormat(t,e,r,n,o)}}r.ScientificFormatter=w,i=w,w.__name__=\"ScientificFormatter\",i.define((({Number:t})=>({precision:[t,10],power_limit_high:[t,5],power_limit_low:[t,-3]})));class C extends M{constructor(t){super(t)}doFormat(t,e,r,n,o){const{format:a,language:s,nan_format:i}=this,l=(()=>{switch(this.rounding){case\"round\":case\"nearest\":return Math.round;case\"floor\":case\"rounddown\":return Math.floor;case\"ceil\":case\"roundup\":return Math.ceil}})();return r=null==r||isNaN(r)?i:d.format(r,a,s,l),super.doFormat(t,e,r,n,o)}}r.NumberFormatter=C,l=C,C.__name__=\"NumberFormatter\",l.define((({String:t})=>({format:[t,\"0,0\"],language:[t,\"en\"],rounding:[F.RoundingFunction,\"round\"]})));class y extends b{constructor(t){super(t)}doFormat(t,e,r,n,o){return r?(0,g.i)({class:this.icon}).outerHTML:\"\"}}r.BooleanFormatter=y,c=y,y.__name__=\"BooleanFormatter\",c.define((({String:t})=>({icon:[t,\"check\"]})));class N extends M{constructor(t){super(t)}getFormat(){switch(this.format){case\"ATOM\":case\"W3C\":case\"RFC-3339\":case\"ISO-8601\":return\"%Y-%m-%d\";case\"COOKIE\":return\"%a, %d %b %Y\";case\"RFC-850\":return\"%A, %d-%b-%y\";case\"RFC-1123\":case\"RFC-2822\":return\"%a, %e %b %Y\";case\"RSS\":case\"RFC-822\":case\"RFC-1036\":return\"%a, %e %b %y\";case\"TIMESTAMP\":return;default:return this.format}}doFormat(t,e,r,n,o){const{nan_format:a}=this;let s;return s=null==(r=(0,h.isString)(r)?parseInt(r,10):r)||isNaN(r)||-9223372036854776===r?a:(0,_.default)(r,this.getFormat()),super.doFormat(t,e,s,n,o)}}r.DateFormatter=N,u=N,N.__name__=\"DateFormatter\",u.define((({String:t})=>({format:[t,\"ISO-8601\"]})));class T extends b{constructor(t){super(t)}doFormat(t,e,r,n,o){const{template:a}=this;if(null==r)return\"\";return f._.template(a)(Object.assign(Object.assign({},o),{value:r}))}}r.HTMLTemplateFormatter=T,m=T,T.__name__=\"HTMLTemplateFormatter\",m.define((({String:t})=>({template:[t,\"<%= value %>\"]})))},\n 494: function _(e,n,t,f,i){var o=e(495),d=o.template;function r(e,n,t){return d(e,n,t)}r._=o,n.exports=r,\"function\"==typeof define&&define.amd?define((function(){return r})):\"undefined\"==typeof window&&\"undefined\"==typeof navigator||(window.UnderscoreTemplate=r)},\n 495: function _(r,e,n,t,a){\n // (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n // Underscore may be freely distributed under the MIT license.\n var u={},c=Array.prototype,o=Object.prototype,l=c.slice,i=o.toString,f=o.hasOwnProperty,s=c.forEach,p=Object.keys,_=Array.isArray,h=function(){},v=h.each=h.forEach=function(r,e,n){if(null!=r)if(s&&r.forEach===s)r.forEach(e,n);else if(r.length===+r.length){for(var t=0,a=r.length;t\":\">\",'\"':\""\",\"'\":\"'\"}},y={escape:new RegExp(\"[\"+h.keys(g.escape).join(\"\")+\"]\",\"g\")};h.each([\"escape\"],(function(r){h[r]=function(e){return null==e?\"\":(\"\"+e).replace(y[r],(function(e){return g[r][e]}))}})),h.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g};var j=/(.)^/,b={\"'\":\"'\",\"\\\\\":\"\\\\\",\"\\r\":\"r\",\"\\n\":\"n\",\"\\t\":\"t\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},w=/\\\\|'|\\r|\\n|\\t|\\u2028|\\u2029/g;h.template=function(r,e,n){var t;n=h.defaults({},n,h.templateSettings);var a=new RegExp([(n.escape||j).source,(n.interpolate||j).source,(n.evaluate||j).source].join(\"|\")+\"|$\",\"g\"),u=0,c=\"__p+='\";r.replace(a,(function(e,n,t,a,o){return c+=r.slice(u,o).replace(w,(function(r){return\"\\\\\"+b[r]})),n&&(c+=\"'+\\n((__t=(\"+n+\"))==null?'':_.escape(__t))+\\n'\"),t&&(c+=\"'+\\n((__t=(\"+t+\"))==null?'':__t)+\\n'\"),a&&(c+=\"';\\n\"+a+\"\\n__p+='\"),u=o+e.length,e})),c+=\"';\\n\",n.variable||(c=\"with(obj||{}){\\n\"+c+\"}\\n\"),c=\"var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\\n\"+c+\"return __p;\\n\";try{t=new Function(n.variable||\"obj\",\"_\",c)}catch(r){throw r.source=c,r}if(e)return t(e,h);var o=function(r){return t.call(this,r,h)};return o.source=\"function(\"+(n.variable||\"obj\")+\"){\\n\"+c+\"}\",o},e.exports=h},\n 496: function _(e,t,i,s,o){s();const n=e(1);var l;const r=e(497),d=e(501),a=e(502),h=e(503),u=e(34),c=e(8),_=e(9),m=e(13),g=e(19),p=e(512),f=e(491),b=e(513),w=e(514),x=(0,n.__importStar)(e(492)),C=x,v=(0,n.__importDefault)(e(515));i.AutosizeModes={fit_columns:\"FCV\",fit_viewport:\"FVC\",force_fit:\"LFF\",none:\"NOA\"};let z=!1;class A{constructor(e,t){this.init(e,t)}init(e,t){if(f.DTINDEX_NAME in e.data)throw new Error(`special name ${f.DTINDEX_NAME} cannot be used as a data table column`);this.source=e,this.view=t,this.index=[...this.view.indices]}getLength(){return this.index.length}getItem(e){const t={};for(const i of(0,m.keys)(this.source.data))t[i]=this.source.data[i][this.index[e]];return t[f.DTINDEX_NAME]=this.index[e],t}getField(e,t){return t==f.DTINDEX_NAME?this.index[e]:this.source.data[t][this.index[e]]}setField(e,t,i){const s=this.index[e];this.source.patch({[t]:[[s,i]]})}getRecords(){return(0,_.range)(0,this.getLength()).map((e=>this.getItem(e)))}getItems(){return this.getRecords()}slice(e,t,i){return e=null!=e?e:0,t=null!=t?t:this.getLength(),i=null!=i?i:1,(0,_.range)(e,t,i).map((e=>this.getItem(e)))}sort(e){let t=e.map((e=>[e.sortCol.field,e.sortAsc?1:-1]));0==t.length&&(t=[[f.DTINDEX_NAME,1]]);const i=this.getRecords(),s=this.index.slice();this.index.sort(((e,o)=>{for(const[n,l]of t){const t=i[s.indexOf(e)][n],r=i[s.indexOf(o)][n];if(t!==r)return(0,c.isNumber)(t)&&(0,c.isNumber)(r)?l*(t-r||+isNaN(t)-+isNaN(r)):`${t}`>`${r}`?l:-l}return 0}))}}i.TableDataProvider=A,A.__name__=\"TableDataProvider\";class M extends p.WidgetView{constructor(){super(...arguments),this._in_selection_update=!1,this._width=null}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>this.render())),this.connect(this.model.source.streaming,(()=>this.updateGrid())),this.connect(this.model.source.patching,(()=>this.updateGrid())),this.connect(this.model.source.change,(()=>this.updateGrid())),this.connect(this.model.source.properties.data.change,(()=>this.updateGrid())),this.connect(this.model.source.selected.change,(()=>this.updateSelection())),this.connect(this.model.source.selected.properties.indices.change,(()=>this.updateSelection()));for(const e of this.model.columns)this.connect(e.change,(()=>{this.invalidate_layout(),this.render()}))}remove(){var e;null===(e=this.grid)||void 0===e||e.destroy(),super.remove()}styles(){return[...super.styles(),v.default,x.default]}update_position(){super.update_position(),this.grid.resizeCanvas()}after_layout(){super.after_layout(),this.updateLayout(!0,!1)}box_sizing(){const e=super.box_sizing();return\"fit_viewport\"===this.model.autosize_mode&&null!=this._width&&(e.width=this._width),e}updateLayout(e,t){const s=this.autosize;s===i.AutosizeModes.fit_columns||s===i.AutosizeModes.force_fit?(e||this.grid.resizeCanvas(),this.grid.autosizeColumns()):e&&t&&s===i.AutosizeModes.fit_viewport&&this.invalidate_layout()}updateGrid(){if(this.model.view.compute_indices(),this.data.init(this.model.source,this.model.view),this.model.sortable){const e=this.grid.getColumns(),t=this.grid.getSortColumns().map((t=>({sortCol:{field:e[this.grid.getColumnIndex(t.columnId)].field},sortAsc:t.sortAsc})));this.data.sort(t)}this.grid.invalidate(),this.updateLayout(!0,!0)}updateSelection(){if(this._in_selection_update)return;const{selected:e}=this.model.source,t=e.indices.map((e=>this.data.index.indexOf(e))).sort();this._in_selection_update=!0,this.grid.setSelectedRows(t),this._in_selection_update=!1;const i=this.grid.getViewport(),s=this.model.get_scroll_index(i,t);null!=s&&this.grid.scrollRowToTop(s)}newIndexColumn(){return{id:(0,u.uniqueId)(),name:this.model.index_header,field:f.DTINDEX_NAME,width:this.model.index_width,behavior:\"select\",cannotTriggerInsert:!0,resizable:!1,selectable:!1,sortable:!0,cssClass:C.cell_index,headerCssClass:C.header_index}}css_classes(){return super.css_classes().concat(C.data_table)}get autosize(){let e;return e=!0===this.model.fit_columns?i.AutosizeModes.force_fit:!1===this.model.fit_columns?i.AutosizeModes.none:i.AutosizeModes[this.model.autosize_mode],e}render(){var e;const t=this.model.columns.filter((e=>e.visible)).map((e=>Object.assign(Object.assign({},e.toColumn()),{parent:this})));let s=null;if(\"checkbox\"==this.model.selectable&&(s=new d.CheckboxSelectColumn({cssClass:C.cell_select}),t.unshift(s.getColumnDefinition())),null!=this.model.index_position){const e=this.model.index_position,i=this.newIndexColumn();-1==e?t.push(i):e<-1?t.splice(e+1,0,i):t.splice(e,0,i)}let{reorderable:o}=this.model;!o||\"undefined\"!=typeof $&&null!=$.fn&&null!=$.fn.sortable||(z||(g.logger.warn(\"jquery-ui is required to enable DataTable.reorderable\"),z=!0),o=!1);let n=-1,l=!1;const{frozen_rows:u,frozen_columns:_}=this.model,m=null==_?-1:_-1;null!=u&&(l=u<0,n=Math.abs(u));const p={enableCellNavigation:!1!==this.model.selectable,enableColumnReorder:o,autosizeColsMode:this.autosize,multiColumnSort:this.model.sortable,editable:this.model.editable,autoEdit:this.model.auto_edit,autoHeight:!1,rowHeight:this.model.row_height,frozenColumn:m,frozenRow:n,frozenBottom:l},f=null!=this.grid;if(this.data=new A(this.model.source,this.model.view),this.grid=new h.Grid(this.el,this.data,t,p),this.autosize==i.AutosizeModes.fit_viewport){this.grid.autosizeColumns();let i=0;for(const s of t)i+=null!==(e=s.width)&&void 0!==e?e:0;this._width=Math.ceil(i)}if(this.grid.onSort.subscribe(((e,t)=>{if(!this.model.sortable)return;const i=t.sortCols;null!=i&&(this.data.sort(i),this.grid.invalidate(),this.updateSelection(),this.grid.render(),this.model.header_row||this._hide_header(),this.model.update_sort_columns(i))})),!1!==this.model.selectable){this.grid.setSelectionModel(new r.RowSelectionModel({selectActiveRow:null==s})),null!=s&&this.grid.registerPlugin(s);const e={dataItemColumnValueExtractor(e,t){let i=e[t.field];return(0,c.isString)(i)&&(i=i.replace(/\\n/g,\"\\\\n\")),i},includeHeaderWhenCopying:!1};this.grid.registerPlugin(new a.CellExternalCopyManager(e)),this.grid.onSelectedRowsChanged.subscribe(((e,t)=>{this._in_selection_update||(this.model.source.selected.indices=t.rows.map((e=>this.data.index[e])))})),this.updateSelection(),this.model.header_row||this._hide_header()}f&&this.updateLayout(f,!1)}_hide_header(){for(const e of this.el.querySelectorAll(\".slick-header-columns\"))e.style.height=\"0px\";this.grid.resizeCanvas()}}i.DataTableView=M,M.__name__=\"DataTableView\";class D extends b.TableWidget{constructor(e){super(e),this._sort_columns=[]}get sort_columns(){return this._sort_columns}update_sort_columns(e){this._sort_columns=e.map((({sortCol:e,sortAsc:t})=>({field:e.field,sortAsc:t})))}get_scroll_index(e,t){return this.scroll_to_selection&&0!=t.length?(0,_.some)(t,(t=>e.top<=t&&t<=e.bottom))?null:Math.max(0,Math.min(...t)-1):null}}i.DataTable=D,l=D,D.__name__=\"DataTable\",l.prototype.default_view=M,l.define((({Array:e,Boolean:t,Int:i,Ref:s,String:o,Enum:n,Or:l,Nullable:r})=>({autosize_mode:[n(\"fit_columns\",\"fit_viewport\",\"none\",\"force_fit\"),\"force_fit\"],auto_edit:[t,!1],columns:[e(s(w.TableColumn)),[]],fit_columns:[r(t),null],frozen_columns:[r(i),null],frozen_rows:[r(i),null],sortable:[t,!0],reorderable:[t,!0],editable:[t,!1],selectable:[l(t,n(\"checkbox\")),!0],index_position:[r(i),0],index_header:[o,\"#\"],index_width:[i,40],scroll_to_selection:[t,!0],header_row:[t,!0],row_height:[i,25]}))),l.override({width:600,height:400})},\n 497: function _(e,t,n,o,r){var l=e(498),i=e(500);t.exports={RowSelectionModel:function(e){var t,n,o,r=[],c=this,u=new i.EventHandler,s={selectActiveRow:!0};function a(e){return function(){n||(n=!0,e.apply(this,arguments),n=!1)}}function f(e){for(var t=[],n=0;n=0&&r0&&t-1 in e)}w.fn=w.prototype={jquery:b,constructor:w,length:0,toArray:function(){return i.call(this)},get:function(e){return null==e?i.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(i.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(w.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(w.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|[\\\\x20\\\\t\\\\r\\\\n\\\\f])[\\\\x20\\\\t\\\\r\\\\n\\\\f]*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\([\\\\x20\\\\t\\\\r\\\\n\\\\f]*(even|odd|(([+-]|)(\\\\d*)n|)[\\\\x20\\\\t\\\\r\\\\n\\\\f]*(?:([+-]|)[\\\\x20\\\\t\\\\r\\\\n\\\\f]*(\\\\d+)|))[\\\\x20\\\\t\\\\r\\\\n\\\\f]*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^[\\\\x20\\\\t\\\\r\\\\n\\\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\([\\\\x20\\\\t\\\\r\\\\n\\\\f]*((?:-\\\\d)?\\\\d*)[\\\\x20\\\\t\\\\r\\\\n\\\\f]*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}[\\\\x20\\\\t\\\\r\\\\n\\\\f]?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){p()},ae=be((function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()}),{dir:\"parentNode\",next:\"legend\"});try{H.apply(D=O.call(w.childNodes),w.childNodes),D[w.childNodes.length].nodeType}catch(e){H={apply:D.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,i){var o,s,l,c,f,h,y,m=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],\"string\"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(p(t),t=t||d,g)){if(11!==w&&(f=Z.exec(e)))if(o=f[1]){if(9===w){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return H.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return H.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!A[e+\" \"]&&(!v||!v.test(e))&&(1!==w||\"object\"!==t.nodeName.toLowerCase())){if(y=e,m=t,1===w&&(U.test(e)||z.test(e))){for((m=ee.test(e)&&ye(t.parentNode)||t)===t&&n.scope||((c=t.getAttribute(\"id\"))?c=c.replace(re,ie):t.setAttribute(\"id\",c=b)),s=(h=a(e)).length;s--;)h[s]=(c?\"#\"+c:\":scope\")+\" \"+xe(h[s]);y=h.join(\",\")}try{return H.apply(r,m.querySelectorAll(y)),r}catch(t){A(e,!0)}finally{c===b&&t.removeAttribute(\"id\")}}}return u(e.replace($,\"$1\"),t,r,i)}function ue(){var e=[];return function t(n,i){return e.push(n+\" \")>r.cacheLength&&delete t[e.shift()],t[n+\" \"]=i}}function le(e){return e[b]=!0,e}function ce(e){var t=d.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split(\"|\"),i=n.length;i--;)r.attrHandle[n[i]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(e){return function(t){return\"input\"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var n=t.nodeName.toLowerCase();return(\"input\"===n||\"button\"===n)&&t.type===e}}function ge(e){return function(t){return\"form\"in t?t.parentNode&&!1===t.disabled?\"label\"in t?\"label\"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ae(t)===e:t.disabled===e:\"label\"in t&&t.disabled===e}}function ve(e){return le((function(t){return t=+t,le((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function ye(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},o=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},p=se.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!=d&&9===a.nodeType&&a.documentElement?(h=(d=a).documentElement,g=!o(d),w!=d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener(\"unload\",oe,!1):i.attachEvent&&i.attachEvent(\"onunload\",oe)),n.scope=ce((function(e){return h.appendChild(e).appendChild(d.createElement(\"div\")),void 0!==e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length})),n.attributes=ce((function(e){return e.className=\"i\",!e.getAttribute(\"className\")})),n.getElementsByTagName=ce((function(e){return e.appendChild(d.createComment(\"\")),!e.getElementsByTagName(\"*\").length})),n.getElementsByClassName=K.test(d.getElementsByClassName),n.getById=ce((function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],v=[],(n.qsa=K.test(d.querySelectorAll))&&(ce((function(e){var t;h.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=[\\\\x20\\\\t\\\\r\\\\n\\\\f]*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[[\\\\x20\\\\t\\\\r\\\\n\\\\f]*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+b+\"-]\").length||v.push(\"~=\"),(t=d.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[[\\\\x20\\\\t\\\\r\\\\n\\\\f]*name[\\\\x20\\\\t\\\\r\\\\n\\\\f]*=[\\\\x20\\\\t\\\\r\\\\n\\\\f]*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+b+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")})),ce((function(e){e.innerHTML=\"\";var t=d.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name[\\\\x20\\\\t\\\\r\\\\n\\\\f]*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")}))),(n.matchesSelector=K.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ce((function(e){n.disconnectedMatch=m.call(e,\"*\"),m.call(e,\"[s!='']:x\"),y.push(\"!=\",F)})),v=v.length&&new RegExp(v.join(\"|\")),y=y.length&&new RegExp(y.join(\"|\")),t=K.test(h.compareDocumentPosition),x=t||K.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==d||e.ownerDocument==w&&x(w,e)?-1:t==d||t.ownerDocument==w&&x(w,t)?1:c?P(c,e)-P(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==d?-1:t==d?1:i?-1:o?1:c?P(c,e)-P(c,t):0;if(i===o)return pe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?pe(a[r],s[r]):a[r]==w?-1:s[r]==w?1:0},d):d},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(p(e),n.matchesSelector&&g&&!A[t+\" \"]&&(!y||!y.test(t))&&(!v||!v.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){A(t,!0)}return se(t,d,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=d&&p(e),x(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&j.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},se.escape=function(e){return(e+\"\").replace(re,ie)},se.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},se.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(N),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=se.getText=function(e){var t,n=\"\",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},r=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+\" \"];return t||(t=new RegExp(\"(^|[\\\\x20\\\\t\\\\r\\\\n\\\\f])\"+e+\"(\"+M+\"|$)\"))&&E(e,(function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")}))},ATTR:function(e,t,n){return function(r){var i=se.attr(r,e);return null==i?\"!=\"===t:!t||(i+=\"\",\"=\"===t?i===n:\"!=\"===t?i!==n:\"^=\"===t?n&&0===i.indexOf(n):\"*=\"===t?n&&i.indexOf(n)>-1:\"$=\"===t?n&&i.slice(-n.length)===n:\"~=\"===t?(\" \"+i.replace(B,\" \")+\" \").indexOf(n)>-1:\"|=\"===t&&(i===n||i.slice(0,n.length+1)===n+\"-\"))}},CHILD:function(e,t,n,r,i){var o=\"nth\"!==e.slice(0,3),a=\"last\"!==e.slice(-4),s=\"of-type\"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?\"nextSibling\":\"previousSibling\",v=t.parentNode,y=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(v){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g=\"only\"===e&&!h&&\"nextSibling\"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&m){for(x=(d=(l=(c=(f=(p=v)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(x=d=0)||h.pop();)if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)for(;(p=++d&&p&&p[g]||(x=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==y:1!==p.nodeType)||!++x||(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||se.error(\"unsupported pseudo: \"+e);return i[b]?i(t):i.length>1?(n=[e,e,\"\",t],r.setFilters.hasOwnProperty(e.toLowerCase())?le((function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=P(e,o[a])]=!(n[r]=o[a])})):function(e){return i(e,0,n)}):i}},pseudos:{not:le((function(e){var t=[],n=[],r=s(e.replace($,\"$1\"));return r[b]?le((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:le((function(e){return function(t){return se(e,t).length>0}})),contains:le((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:le((function(e){return V.test(e||\"\")||se.error(\"unsupported lang: \"+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute(\"xml:lang\")||t.getAttribute(\"lang\"))return(n=n.toLowerCase())===e||0===n.indexOf(e+\"-\")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:ve((function(){return[0]})),last:ve((function(e,t){return[t-1]})),eq:ve((function(e,t,n){return[n<0?n+t:n]})),even:ve((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ve((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s-1&&(o[l]=!(a[l]=f))}}else y=Te(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)}))}function Ee(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[\" \"],u=a?1:0,c=be((function(e){return e===t}),s,!0),f=be((function(e){return P(t,e)>-1}),s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&we(p),u>1&&xe(e.slice(0,u-1).concat({value:\" \"===e[u-2].type?\"*\":\"\"})).replace($,\"$1\"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,v,y=0,m=\"0\",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG(\"*\",c),E=T+=null==w?1:Math.random()||.1,S=C.length;for(c&&(l=a==d||a||c);m!==S&&null!=(f=C[m]);m++){if(i&&f){for(h=0,a||f.ownerDocument==d||(p(f),s=!g);v=e[h++];)if(v(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!v&&f)&&y--,o&&x.push(f))}if(y+=m,n&&m!==y){for(h=0;v=t[h++];)v(x,b,a,s);if(o){if(y>0)for(;m--;)x[m]||b[m]||(b[m]=q.call(u));b=Te(b)}H.apply(u,b),c&&!o&&b.length>0&&y+t.length>1&&se.uniqueSort(u)}return c&&(T=E,l=w),x};return n?le(o):o}(o,i)),s.selector=e}return s},u=se.select=function(e,t,n,i){var o,u,l,c,f,p=\"function\"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&\"ID\"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(te,ne),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(o=G.needsContext.test(e)?0:u.length;o--&&(l=u[o],!r.relative[c=l.type]);)if((f=r.find[c])&&(i=f(l.matches[0].replace(te,ne),ee.test(u[0].type)&&ye(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&xe(u)))return H.apply(n,i),n;break}}return(p||s(e,d))(i,t,!g,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},n.sortStable=b.split(\"\").sort(N).join(\"\")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ce((function(e){return 1&e.compareDocumentPosition(d.createElement(\"fieldset\"))})),ce((function(e){return e.innerHTML=\"\",\"#\"===e.firstChild.getAttribute(\"href\")}))||fe(\"type|href|height|width\",(function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)})),n.attributes&&ce((function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")}))||fe(\"value\",(function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue})),ce((function(e){return null==e.getAttribute(\"disabled\")}))||fe(R,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),se}(e);w.find=C,w.expr=C.selectors,w.expr[\":\"]=w.expr.pseudos,w.uniqueSort=w.unique=C.uniqueSort,w.text=C.getText,w.isXMLDoc=C.isXML,w.contains=C.contains,w.escapeSelector=C.escape;var E=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=w.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,t,n){return h(t)?w.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?w.grep(e,(function(e){return e===t!==n})):\"string\"!=typeof t?w.grep(e,(function(e){return s.call(t,e)>-1!==n})):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,(function(e){return 1===e.nodeType})))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(w(e).filter((function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&k.test(e)?w(e):e||[],!1).length}});var D,q=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(w.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&e.length>=3?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),N.test(r[1])&&w.isPlainObject(t))for(r in t)h(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):h(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,D=w(v);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?s.call(w(e),this[0]):s.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,\"parentNode\")},parentsUntil:function(e,t,n){return E(e,\"parentNode\",n)},next:function(e){return O(e,\"nextSibling\")},prev:function(e){return O(e,\"previousSibling\")},nextAll:function(e){return E(e,\"nextSibling\")},prevAll:function(e){return E(e,\"previousSibling\")},nextUntil:function(e,t,n){return E(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return E(e,\"previousSibling\",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,\"template\")&&(e=e.content||e),w.merge([],e.childNodes))}},(function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return\"Until\"!==e.slice(-5)&&(r=n),r&&\"string\"==typeof r&&(i=w.filter(r,i)),this.length>1&&(H[e]||w.uniqueSort(i),L.test(e)&&i.reverse()),this.pushStack(i)}}));var P=/[^\\x20\\t\\r\\n\\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&h(i=e.promise)?i.call(e).done(t).fail(n):e&&h(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.Callbacks=function(e){e=\"string\"==typeof e?function(e){var t={};return w.each(e.match(P)||[],(function(e,n){t[n]=!0})),t}(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n=\"\",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=\"\"),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},w.extend({Deferred:function(t){var n=[[\"notify\",\"progress\",w.Callbacks(\"memory\"),w.Callbacks(\"memory\"),2],[\"resolve\",\"done\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),1,\"rejected\"]],r=\"pending\",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred((function(t){w.each(n,(function(n,r){var i=h(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&h(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+\"With\"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==M&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred((function(e){n[0][3].add(a(0,e,h(i)?i:R,e.notifyWith)),n[1][3].add(a(0,e,h(t)?t:R)),n[2][3].add(a(0,e,h(r)?r:M))})).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,(function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add((function(){r=s}),n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+\"With\"](this===o?void 0:this,arguments),this},o[t[0]+\"With\"]=a.fireWith})),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),o=i.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,o[e]=arguments.length>1?i.call(arguments):n,--t||a.resolveWith(r,o)}};if(t<=1&&(I(e,a.done(s(n)).resolve,a.reject,!t),\"pending\"===a.state()||h(o[n]&&o[n].then)))return a.then();for(;n--;)I(o[n],s(n),a.reject);return a.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&W.test(t.name)&&e.console.warn(\"jQuery.Deferred exception: \"+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout((function(){throw t}))};var F=w.Deferred();function B(){v.removeEventListener(\"DOMContentLoaded\",B),e.removeEventListener(\"load\",B),w.ready()}w.fn.ready=function(e){return F.then(e).catch((function(e){w.readyException(e)})),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(v,[w]))}}),w.ready.then=F.then,\"complete\"===v.readyState||\"loading\"!==v.readyState&&!v.documentElement.doScroll?e.setTimeout(w.ready):(v.addEventListener(\"DOMContentLoaded\",B),e.addEventListener(\"load\",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===x(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,h(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){Q.remove(this,e)}))}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,(function(){w.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return Y.get(e,n)||Y.access(e,n,{empty:w.Callbacks(\"once memory\").add((function(){Y.remove(e,[t+\"queue\",n])}))})}}),w.fn.extend({queue:function(e,t){var n=2;return\"string\"!=typeof e&&(t=e,e=\"fx\",n--),arguments.length\\x20\\t\\r\\n\\f]*)/i,ge=/^$|^module$|\\/(?:java|ecma)script/i;fe=v.createDocumentFragment().appendChild(v.createElement(\"div\")),(pe=v.createElement(\"input\")).setAttribute(\"type\",\"radio\"),pe.setAttribute(\"checked\",\"checked\"),pe.setAttribute(\"name\",\"t\"),fe.appendChild(pe),d.checkClone=fe.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.innerHTML=\"\",d.noCloneChecked=!!fe.cloneNode(!0).lastChild.defaultValue,fe.innerHTML=\"\",d.option=!!fe.lastChild;var ve={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ye(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?w.merge([e],n):n}function me(e,t){for(var n=0,r=e.length;n\",\"\"]);var xe=/<|&#?\\w+;/;function be(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d-1)i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),\"script\"),l&&me(a),n)for(c=0;o=a[c++];)ge.test(o.type||\"\")&&n.push(o);return f}var we=/^([^.]*)(?:\\.(.+)|)/;function Te(){return!0}function Ce(){return!1}function Ee(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==(\"focus\"===t)}function Se(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Se(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ce;else if(!i)return e;return 1===o&&(a=i,i=function(e){return w().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=w.guid++)),e.each((function(){w.event.add(this,t,i,r,n)}))}function ke(e,t,n){n?(Y.set(e,t,!1),w.event.add(e,t,{namespace:!1,handler:function(e){var r,o,a=Y.get(this,t);if(1&e.isTrigger&&this[t]){if(a.length)(w.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=i.call(arguments),Y.set(this,t,a),r=n(this,t),this[t](),a!==(o=Y.get(this,t))||r?Y.set(this,t,!1):o={},a!==o)return e.stopImmediatePropagation(),e.preventDefault(),o&&o.value}else a.length&&(Y.set(this,t,{value:w.event.trigger(w.extend(a[0],w.Event.prototype),a.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,t)&&w.event.add(e,t,Te)}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(e);if(V(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(re,i),n.guid||(n.guid=w.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(t){return void 0!==w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||\"\").match(P)||[\"\"]).length;l--;)d=g=(s=we.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){for(l=(t=(t||\"\").match(P)||[\"\"]).length;l--;)if(d=g=(s=we.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){for(f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||w.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&Y.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=w.event.fix(e),l=(Y.get(this,\"events\")||Object.create(null))[u.type]||[],c=w.event.special[u.type]||{};for(s[0]=u,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\\s*$/g;function De(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&w(e).children(\"tbody\")[0]||e}function qe(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Le(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function He(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n1&&\"string\"==typeof v&&!d.checkClone&&Ne.test(v))return e.each((function(i){var o=e.eq(i);y&&(t[0]=v.call(this,i,o.html())),Pe(o,t,n,r)}));if(p&&(a=(i=be(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=a),a||r)){for(u=(s=w.map(ye(i,\"script\"),qe)).length;f0&&me(a,!u&&ye(e,\"script\")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,(function(e){return void 0===e?w.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Pe(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||De(this,e).appendChild(e)}))},prepend:function(){return Pe(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=De(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Pe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Pe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return w.clone(this,e,t)}))},html:function(e){return $(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Ae.test(e)&&!ve[(he.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!d.boxSizingReliable()||n)&&\"border-box\"===w.css(e,\"boxSizing\",!1,r),o=i,a=Be(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a=\"auto\"}return(!d.boxSizingReliable()&&i||!d.reliableTrDimensions()&&A(e,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===w.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===w.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(w.cssNumber[s]?\"\":\"px\")),d.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),\"normal\"===i&&t in Qe&&(i=Qe[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each([\"height\",\"width\"],(function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!Ve.test(w.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,t,r):We(e,Ye,(function(){return Ze(e,t,r)}))},set:function(e,n,r){var i,o=Ie(e),a=!d.scrollboxSize()&&\"absolute\"===o.position,s=(a||r)&&\"border-box\"===w.css(e,\"boxSizing\",!1,o),u=r?Ke(e,t,r,s,o):0;return s&&a&&(u-=Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ke(e,t,\"border\",!1,o)-.5)),u&&(i=te.exec(n))&&\"px\"!==(i[3]||\"px\")&&(e.style[t]=n,n=w.css(e,t)),Je(0,n,u)}}})),w.cssHooks.marginLeft=$e(d.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Be(e,\"marginLeft\"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+\"px\"})),w.each({margin:\"\",padding:\"\",border:\"Width\"},(function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o=\"string\"==typeof n?n.split(\" \"):[n];r<4;r++)i[e+ne[r]+t]=o[r]||o[r-2]||o[0];return i}},\"margin\"!==e&&(w.cssHooks[e+t].set=Je)})),w.fn.extend({css:function(e,t){return $(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a1)}}),w.Tween=et,et.prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?\"\":\"px\")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}},et.prototype.init.prototype=et.prototype,et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||!w.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},et.propHooks.scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},w.fx=et.prototype.init,w.fx.step={};var tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){nt&&(!1===v.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(ot):e.setTimeout(ot,w.fx.interval),w.fx.tick())}function at(){return e.setTimeout((function(){tt=void 0})),tt=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=ne[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners[\"*\"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){w.removeAttr(this,e)}))}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!d.radioValue&&\"radio\"===t&&A(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\\w+/g),(function(e,t){var n=ft[t]||w.find.attr;ft[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ft[a],ft[a]=i,i=null!=n(e,t,r)?a:null,ft[a]=o),i}}));var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(\" \")}function gt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function vt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(P)||[]}w.fn.extend({prop:function(e,t){return $(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[w.propFix[e]||e]}))}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,\"tabindex\");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),d.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],(function(){w.propFix[this.toLowerCase()]=this})),w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(h(e))return this.each((function(t){w(this).addClass(e.call(this,t,gt(this)))}));if((t=vt(e)).length)for(;n=this[u++];)if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){for(a=0;o=t[a++];)r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(h(e))return this.each((function(t){w(this).removeClass(e.call(this,t,gt(this)))}));if(!arguments.length)return this.attr(\"class\",\"\");if((t=vt(e)).length)for(;n=this[u++];)if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){for(a=0;o=t[a++];)for(;r.indexOf(\" \"+o+\" \")>-1;)r=r.replace(\" \"+o+\" \",\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(e,t){var n=typeof e,r=\"string\"===n||Array.isArray(e);return\"boolean\"==typeof t&&r?t?this.addClass(e):this.removeClass(e):h(e)?this.each((function(n){w(this).toggleClass(e.call(this,n,gt(this),t),t)})):this.each((function(){var t,i,o,a;if(r)for(i=0,o=w(this),a=vt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&\"boolean\"!==n||((t=gt(this))&&Y.set(this,\"__className__\",t),this.setAttribute&&this.setAttribute(\"class\",t||!1===e?\"\":Y.get(this,\"__className__\")||\"\"))}))},hasClass:function(e){var t,n,r=0;for(t=\" \"+e+\" \";n=this[r++];)if(1===n.nodeType&&(\" \"+ht(gt(n))+\" \").indexOf(t)>-1)return!0;return!1}});var yt=/\\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=h(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i=\"\":\"number\"==typeof i?i+=\"\":Array.isArray(i)&&(i=w.map(i,(function(e){return null==e?\"\":e+\"\"}))),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&\"set\"in t&&void 0!==t.set(this,i,\"value\")||(this.value=i))}))):i?(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&\"get\"in t&&void 0!==(n=t.get(i,\"value\"))?n:\"string\"==typeof(n=i.value)?n.replace(yt,\"\"):null==n?\"\":n:void 0}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,\"value\");return null!=t?t:ht(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each([\"radio\",\"checkbox\"],(function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},d.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})})),d.focusin=\"onfocusin\"in e;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,r,i){var o,a,s,u,l,f,p,d,y=[r||v],m=c.call(t,\"type\")?t.type:t,x=c.call(t,\"namespace\")?t.namespace.split(\".\"):[];if(a=d=s=r=r||v,3!==r.nodeType&&8!==r.nodeType&&!mt.test(m+w.event.triggered)&&(m.indexOf(\".\")>-1&&(x=m.split(\".\"),m=x.shift(),x.sort()),l=m.indexOf(\":\")<0&&\"on\"+m,(t=t[w.expando]?t:new w.Event(m,\"object\"==typeof t&&t)).isTrigger=i?2:3,t.namespace=x.join(\".\"),t.rnamespace=t.namespace?new RegExp(\"(^|\\\\.)\"+x.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:w.makeArray(n,[t]),p=w.event.special[m]||{},i||!p.trigger||!1!==p.trigger.apply(r,n))){if(!i&&!p.noBubble&&!g(r)){for(u=p.delegateType||m,mt.test(u+m)||(a=a.parentNode);a;a=a.parentNode)y.push(a),s=a;s===(r.ownerDocument||v)&&y.push(s.defaultView||s.parentWindow||e)}for(o=0;(a=y[o++])&&!t.isPropagationStopped();)d=a,t.type=o>1?u:p.bindType||m,(f=(Y.get(a,\"events\")||Object.create(null))[t.type]&&Y.get(a,\"handle\"))&&f.apply(a,n),(f=l&&a[l])&&f.apply&&V(a)&&(t.result=f.apply(a,n),!1===t.result&&t.preventDefault());return t.type=m,i||t.isDefaultPrevented()||p._default&&!1!==p._default.apply(y.pop(),n)||!V(r)||l&&h(r[m])&&!g(r)&&((s=r[l])&&(r[l]=null),w.event.triggered=m,t.isPropagationStopped()&&d.addEventListener(m,xt),r[m](),t.isPropagationStopped()&&d.removeEventListener(m,xt),w.event.triggered=void 0,s&&(r[l]=s)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each((function(){w.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),d.focusin||w.each({focus:\"focusin\",blur:\"focusout\"},(function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Y.access(r,t);i||r.addEventListener(e,n,!0),Y.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Y.access(r,t)-1;i?Y.access(r,t,i):(r.removeEventListener(e,n,!0),Y.remove(r,t))}}}));var bt=e.location,wt={guid:Date.now()},Tt=/\\?/;w.parseXML=function(t){var n,r;if(!t||\"string\"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,\"text/xml\")}catch(e){}return r=n&&n.getElementsByTagName(\"parsererror\")[0],n&&!r||w.error(\"Invalid XML: \"+(r?w.map(r.childNodes,(function(e){return e.textContent})).join(\"\\n\"):t)),n};var Ct=/\\[\\]$/,Et=/\\r?\\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(e,t,n,r){var i;if(Array.isArray(t))w.each(t,(function(t,i){n||Ct.test(e)?r(e,i):At(e+\"[\"+(\"object\"==typeof i&&null!=i?t:\"\")+\"]\",i,n,r)}));else if(n||\"object\"!==x(t))r(e,t);else for(i in t)At(e+\"[\"+i+\"]\",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=h(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,(function(){i(this.name,this.value)}));else for(n in e)At(n,e[n],t,i);return r.join(\"&\")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=w.prop(this,\"elements\");return e?w.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!w(this).is(\":disabled\")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!de.test(e))})).map((function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,(function(e){return{name:t.name,value:e.replace(Et,\"\\r\\n\")}})):{name:t.name,value:n.replace(Et,\"\\r\\n\")}})).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\\/\\//,Ot={},Pt={},Rt=\"*/\".concat(\"*\"),Mt=v.createElement(\"a\");function It(e){return function(t,n){\"string\"!=typeof t&&(n=t,t=\"*\");var r,i=0,o=t.toLowerCase().match(P)||[];if(h(n))for(;r=o[i++];)\"+\"===r[0]?(r=r.slice(1)||\"*\",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Wt(e,t,n,r){var i={},o=e===Pt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],(function(e,s){var l=s(t,n,r);return\"string\"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)})),u}return a(t.dataTypes[0])||!i[\"*\"]&&a(\"*\")}function Ft(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}Mt.href=bt.href,w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Rt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,w.ajaxSettings),t):Ft(w.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(t,n){\"object\"==typeof t&&(n=t,t=void 0),n=n||{};var r,i,o,a,s,u,l,c,f,p,d=w.ajaxSetup({},n),h=d.context||d,g=d.context&&(h.nodeType||h.jquery)?w(h):w.event,y=w.Deferred(),m=w.Callbacks(\"once memory\"),x=d.statusCode||{},b={},T={},C=\"canceled\",E={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=qt.exec(o);)a[t[1].toLowerCase()+\" \"]=(a[t[1].toLowerCase()+\" \"]||[]).concat(t[2]);t=a[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return r&&r.abort(t),S(0,t),this}};if(y.promise(E),d.url=((t||d.url||bt.href)+\"\").replace(Ht,bt.protocol+\"//\"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=(d.dataType||\"*\").toLowerCase().match(P)||[\"\"],null==d.crossDomain){u=v.createElement(\"a\");try{u.href=d.url,u.href=u.href,d.crossDomain=Mt.protocol+\"//\"+Mt.host!=u.protocol+\"//\"+u.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&\"string\"!=typeof d.data&&(d.data=w.param(d.data,d.traditional)),Wt(Ot,d,n,E),l)return E;for(f in(c=w.event&&d.global)&&0==w.active++&&w.event.trigger(\"ajaxStart\"),d.type=d.type.toUpperCase(),d.hasContent=!Lt.test(d.type),i=d.url.replace(jt,\"\"),d.hasContent?d.data&&d.processData&&0===(d.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(d.data=d.data.replace(Nt,\"+\")):(p=d.url.slice(i.length),d.data&&(d.processData||\"string\"==typeof d.data)&&(i+=(Tt.test(i)?\"&\":\"?\")+d.data,delete d.data),!1===d.cache&&(i=i.replace(Dt,\"$1\"),p=(Tt.test(i)?\"&\":\"?\")+\"_=\"+wt.guid+++p),d.url=i+p),d.ifModified&&(w.lastModified[i]&&E.setRequestHeader(\"If-Modified-Since\",w.lastModified[i]),w.etag[i]&&E.setRequestHeader(\"If-None-Match\",w.etag[i])),(d.data&&d.hasContent&&!1!==d.contentType||n.contentType)&&E.setRequestHeader(\"Content-Type\",d.contentType),E.setRequestHeader(\"Accept\",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(\"*\"!==d.dataTypes[0]?\", \"+Rt+\"; q=0.01\":\"\"):d.accepts[\"*\"]),d.headers)E.setRequestHeader(f,d.headers[f]);if(d.beforeSend&&(!1===d.beforeSend.call(h,E,d)||l))return E.abort();if(C=\"abort\",m.add(d.complete),E.done(d.success),E.fail(d.error),r=Wt(Pt,d,n,E)){if(E.readyState=1,c&&g.trigger(\"ajaxSend\",[E,d]),l)return E;d.async&&d.timeout>0&&(s=e.setTimeout((function(){E.abort(\"timeout\")}),d.timeout));try{l=!1,r.send(b,S)}catch(e){if(l)throw e;S(-1,e)}}else S(-1,\"No Transport\");function S(t,n,a,u){var f,p,v,b,T,C=n;l||(l=!0,s&&e.clearTimeout(s),r=void 0,o=u||\"\",E.readyState=t>0?4:0,f=t>=200&&t<300||304===t,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;\"*\"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(d,E,a)),!f&&w.inArray(\"script\",d.dataTypes)>-1&&w.inArray(\"json\",d.dataTypes)<0&&(d.converters[\"text script\"]=function(){}),b=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(d,b,E,f),f?(d.ifModified&&((T=E.getResponseHeader(\"Last-Modified\"))&&(w.lastModified[i]=T),(T=E.getResponseHeader(\"etag\"))&&(w.etag[i]=T)),204===t||\"HEAD\"===d.type?C=\"nocontent\":304===t?C=\"notmodified\":(C=b.state,p=b.data,f=!(v=b.error))):(v=C,!t&&C||(C=\"error\",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+\"\",f?y.resolveWith(h,[p,C,E]):y.rejectWith(h,[E,C,v]),E.statusCode(x),x=void 0,c&&g.trigger(f?\"ajaxSuccess\":\"ajaxError\",[E,d,f?p:v]),m.fireWith(h,[E,C]),c&&(g.trigger(\"ajaxComplete\",[E,d]),--w.active||w.event.trigger(\"ajaxStop\")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,\"json\")},getScript:function(e,t){return w.get(e,void 0,t,\"script\")}}),w.each([\"get\",\"post\"],(function(e,t){w[t]=function(e,n,r,i){return h(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}})),w.ajaxPrefilter((function(e){var t;for(t in e.headers)\"content-type\"===t.toLowerCase()&&(e.contentType=e.headers[t]||\"\")})),w._evalUrl=function(e,t,n){return w.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){w.globalEval(e,t,n)}})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(h(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return h(e)?this.each((function(t){w(this).wrapInner(e.call(this,t))})):this.each((function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=h(e);return this.each((function(n){w(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not(\"body\").each((function(){w(this).replaceWith(this.childNodes)})),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=w.ajaxSettings.xhr();d.cors=!!$t&&\"withCredentials\"in $t,d.ajax=$t=!!$t,w.ajaxTransport((function(t){var n,r;if(d.cors||$t&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];for(a in t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i[\"X-Requested-With\"]||(i[\"X-Requested-With\"]=\"XMLHttpRequest\"),i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,\"abort\"===e?s.abort():\"error\"===e?\"number\"!=typeof s.status?o(0,\"error\"):o(s.status,s.statusText):o(Bt[s.status]||s.status,s.statusText,\"text\"!==(s.responseType||\"text\")||\"string\"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n(\"error\"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout((function(){n&&r()}))},n=n(\"abort\");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}})),w.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),w.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter(\"script\",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")})),w.ajaxTransport(\"script\",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=w(\"" ], "text/plain": [ ":Bars [Feature] (Importance)" ] }, "execution_count": 151, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1779" } }, "output_type": "execute_result" } ], "source": [ "ohe = transformer.named_transformers_[\"cat\"]\n", "\n", "ohe_cols = ohe.get_feature_names_out()\n", "\n", "features = numerical + list(ohe_cols)\n", "\n", "regressor = pipe[\"randomforestregressor\"]\n", "\n", "importance = pd.DataFrame(\n", " {\"Feature\": features, \"Importance\": regressor.feature_importances_}\n", ")\n", "\n", "importance = importance.sort_values(\"Importance\", ascending=False).iloc[:20]\n", "\n", "plt.style.use('seaborn-whitegrid')\n", "importance.hvplot.barh(\n", " x=\"Feature\", \n", " y=\"Importance\", \n", " flip_yaxis=True, \n", " height=500,\n", " color=\"green\",\n", " title='Top Features based on importance')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Correlation Matrix of Numeric Variables" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cols = ['market_value', \n", " 'number_of_bathrooms', #\n", " 'number_of_bedrooms', #\n", " 'number_stories', #\n", " 'logDistGraffiti',\n", " 'logDistFire',\n", " 'logDistSchools',\n", " 'logDistSubway',\n", " 'logDistRestaurant',\n", " 'logDistArts',\n", " 'logDistParks',\n", " 'logDistGolf',\n", " 'lagprice'\n", "]\n", "\n", "sns.heatmap(sales[cols].corr(), cmap='PiYG', fmt='g', vmin=-1, vmax=1);\n", "plt.title('Correlation Matrix of Numeric Variables', fontsize=16)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (5) Calculate the percent error of your model predictions for each sale in the test set\n", "\n", "Fit your best model and use it to make predictions on the test set.\n", "\n", "**Note:** this should be the percent error in terms of **sale price** or **sale price per sq ft**. You'll need to convert if you predicted the log!" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MAPE
03.207463
16.228835
23.745669
31.393739
40.829427
......
55240.986836
55250.439732
55260.241436
55271.131827
55282.552330
\n", "

5529 rows × 1 columns

\n", "
" ], "text/plain": [ " MAPE\n", "0 3.207463\n", "1 6.228835\n", "2 3.745669\n", "3 1.393739\n", "4 0.829427\n", "... ...\n", "5524 0.986836\n", "5525 0.439732\n", "5526 0.241436\n", "5527 1.131827\n", "5528 2.552330\n", "\n", "[5529 rows x 1 columns]" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predictions = pipe.predict(test_set)\n", "\n", "error = abs(predictions - y_test)\n", "\n", "mape = 100 * ((abs(predictions - y_test.values)) / y_test.values)\n", "mape_d = {'MAPE' : mape}\n", "mape_df = pd.DataFrame(data=mape_d)\n", "mape_df" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometryexterior_conditioninterior_conditionmarket_valuenumber_of_bathroomsnumber_of_bedroomsnumber_storiessale_pricetopographymapnameNAME10logDistGraffitilogDistFirelogDistSchoolslogDistSubwaylogDistRestaurantlogDistArtslogDistParkslogDistGolflagpriceMAPE
6849POINT (-74.99453 40.10258)442916000.00.02.0200000.0ANormandy Village3612.8940893.2530263.0998954.1706262.9777604.2365232.9794033.726591257598.63.207463
14945POINT (-75.11741 39.99794)24539001.03.02.0106500.0FUpper Kensington177.012.0187452.3392712.6886672.6870842.8839213.5594392.6696793.51749942845.46.228835
13162POINT (-75.13559 39.97685)442046000.00.03.0360000.0FWest Kensington1571.6519442.4837942.6013432.5241462.2463023.3357392.3383473.786136390980.03.745669
9546POINT (-75.22454 39.91771)441343001.03.02.0175000.0FElmwood612.8238492.5606632.9107303.7748403.0950853.7220262.6227753.923716179000.01.393739
9827POINT (-75.12493 39.98156)223204001.03.02.0330000.0FFishtown - Lower Kensington1602.2190792.4187862.6281802.9828942.4170563.4053582.4902733.761876345989.80.829427
..................................................................
6959POINT (-75.07672 40.04311)441545001.03.02.0150000.0FOxford Circle311.012.6690942.9624742.9766543.4627723.0824233.9077762.8729503.661947158516.20.986836
10271POINT (-75.17518 39.94242)434249001.02.02.0474000.0FGraduate Hospital141.7286232.6850462.6790263.0485612.5980382.9779872.2070513.757981484500.00.439732
18423POINT (-75.11306 40.04709)442079002.03.02.0226500.0FMelrose Park Gardens2722.7955923.0082763.0034333.4399893.1935143.8207142.9069593.605999225900.00.241436
3938POINT (-75.02280 40.12270)444037000.00.01.0519000.0FSomerton3583.0593783.2012803.1145154.1964933.0413874.2397423.1002593.943859389400.01.131827
11255POINT (-75.22685 39.95918)431944001.03.02.0190000.0FCobbs Creek851.9752402.4676472.9243932.3998922.8990763.2238152.8786043.593884146780.02.552330
\n", "

5529 rows × 21 columns

\n", "
" ], "text/plain": [ " geometry exterior_condition interior_condition \\\n", "6849 POINT (-74.99453 40.10258) 4 4 \n", "14945 POINT (-75.11741 39.99794) 2 4 \n", "13162 POINT (-75.13559 39.97685) 4 4 \n", "9546 POINT (-75.22454 39.91771) 4 4 \n", "9827 POINT (-75.12493 39.98156) 2 2 \n", "... ... ... ... \n", "6959 POINT (-75.07672 40.04311) 4 4 \n", "10271 POINT (-75.17518 39.94242) 4 3 \n", "18423 POINT (-75.11306 40.04709) 4 4 \n", "3938 POINT (-75.02280 40.12270) 4 4 \n", "11255 POINT (-75.22685 39.95918) 4 3 \n", "\n", " market_value number_of_bathrooms number_of_bedrooms number_stories \\\n", "6849 291600 0.0 0.0 2.0 \n", "14945 53900 1.0 3.0 2.0 \n", "13162 204600 0.0 0.0 3.0 \n", "9546 134300 1.0 3.0 2.0 \n", "9827 320400 1.0 3.0 2.0 \n", "... ... ... ... ... \n", "6959 154500 1.0 3.0 2.0 \n", "10271 424900 1.0 2.0 2.0 \n", "18423 207900 2.0 3.0 2.0 \n", "3938 403700 0.0 0.0 1.0 \n", "11255 194400 1.0 3.0 2.0 \n", "\n", " sale_price topography mapname NAME10 \\\n", "6849 200000.0 A Normandy Village 361 \n", "14945 106500.0 F Upper Kensington 177.01 \n", "13162 360000.0 F West Kensington 157 \n", "9546 175000.0 F Elmwood 61 \n", "9827 330000.0 F Fishtown - Lower Kensington 160 \n", "... ... ... ... ... \n", "6959 150000.0 F Oxford Circle 311.01 \n", "10271 474000.0 F Graduate Hospital 14 \n", "18423 226500.0 F Melrose Park Gardens 272 \n", "3938 519000.0 F Somerton 358 \n", "11255 190000.0 F Cobbs Creek 85 \n", "\n", " logDistGraffiti logDistFire logDistSchools logDistSubway \\\n", "6849 2.894089 3.253026 3.099895 4.170626 \n", "14945 2.018745 2.339271 2.688667 2.687084 \n", "13162 1.651944 2.483794 2.601343 2.524146 \n", "9546 2.823849 2.560663 2.910730 3.774840 \n", "9827 2.219079 2.418786 2.628180 2.982894 \n", "... ... ... ... ... \n", "6959 2.669094 2.962474 2.976654 3.462772 \n", "10271 1.728623 2.685046 2.679026 3.048561 \n", "18423 2.795592 3.008276 3.003433 3.439989 \n", "3938 3.059378 3.201280 3.114515 4.196493 \n", "11255 1.975240 2.467647 2.924393 2.399892 \n", "\n", " logDistRestaurant logDistArts logDistParks logDistGolf lagprice \\\n", "6849 2.977760 4.236523 2.979403 3.726591 257598.6 \n", "14945 2.883921 3.559439 2.669679 3.517499 42845.4 \n", "13162 2.246302 3.335739 2.338347 3.786136 390980.0 \n", "9546 3.095085 3.722026 2.622775 3.923716 179000.0 \n", "9827 2.417056 3.405358 2.490273 3.761876 345989.8 \n", "... ... ... ... ... ... \n", "6959 3.082423 3.907776 2.872950 3.661947 158516.2 \n", "10271 2.598038 2.977987 2.207051 3.757981 484500.0 \n", "18423 3.193514 3.820714 2.906959 3.605999 225900.0 \n", "3938 3.041387 4.239742 3.100259 3.943859 389400.0 \n", "11255 2.899076 3.223815 2.878604 3.593884 146780.0 \n", "\n", " MAPE \n", "6849 3.207463 \n", "14945 6.228835 \n", "13162 3.745669 \n", "9546 1.393739 \n", "9827 0.829427 \n", "... ... \n", "6959 0.986836 \n", "10271 0.439732 \n", "18423 0.241436 \n", "3938 1.131827 \n", "11255 2.552330 \n", "\n", "[5529 rows x 21 columns]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_set['MAPE']= mape\n", "test_set" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6849 42.463982\n", "14945 -60.147739\n", "13162 -39.257729\n", "9546 -5.999059\n", "9827 4.873240\n", " ... \n", "6959 4.025191\n", "10271 -2.984868\n", "18423 1.821081\n", "3938 -19.604228\n", "11255 -19.025677\n", "Name: sale_price, Length: 5529, dtype: float64" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predictions = best_estimator.predict(test_set)\n", "\n", "errors = (np.exp(predictions) - np.exp(y_test)) / np.exp(y_test) * 100\n", "errors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (6) Make a data frame with percent errors and census tract info for each sale in the test set" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MAPEcensus_tractgeometry
03.207463361POINT (-74.994529 40.102585)
16.228835177.01POINT (-75.117406 39.997938)
23.745669157POINT (-75.135594 39.976846)
31.39373961POINT (-75.224538 39.917712)
40.829427160POINT (-75.124927 39.98156)
............
55240.986836311.01POINT (-75.076716 40.043107)
55250.43973214POINT (-75.175183 39.942416)
55260.241436272POINT (-75.113064 40.04709)
55271.131827358POINT (-75.022798 40.122696)
55282.5523385POINT (-75.226851 39.959184)
\n", "

5529 rows × 3 columns

\n", "
" ], "text/plain": [ " MAPE census_tract geometry\n", "0 3.207463 361 POINT (-74.994529 40.102585)\n", "1 6.228835 177.01 POINT (-75.117406 39.997938)\n", "2 3.745669 157 POINT (-75.135594 39.976846)\n", "3 1.393739 61 POINT (-75.224538 39.917712)\n", "4 0.829427 160 POINT (-75.124927 39.98156)\n", "... ... ... ...\n", "5524 0.986836 311.01 POINT (-75.076716 40.043107)\n", "5525 0.439732 14 POINT (-75.175183 39.942416)\n", "5526 0.241436 272 POINT (-75.113064 40.04709)\n", "5527 1.131827 358 POINT (-75.022798 40.122696)\n", "5528 2.55233 85 POINT (-75.226851 39.959184)\n", "\n", "[5529 rows x 3 columns]" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "census = test_set.values[:,10]\n", "\n", "geometry = test_set.values[:,0]\n", "\n", "mape = test_set.values[:,20]\n", "\n", "data = {\"MAPE\" : mape, \"census_tract\" : census, \"geometry\" : geometry}\n", "df = pd.DataFrame(data=data)\n", "df" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometrycartodb_id_leftassessment_datebasementsbeginning_pointbook_and_pagebuilding_codebuilding_code_descriptioncategory_codecategory_code_descriptioncensus_tractcentral_aircross_referencedate_exterior_conditiondepthexempt_buildingexempt_landexterior_conditionfireplacesfrontagefuelgarage_spacesgarage_typegeneral_constructiongeographic_wardhomestead_exemptionhouse_extensionhouse_numberinterior_conditionlocationmailing_address_1mailing_address_2mailing_care_ofmailing_city_statemailing_streetmailing_zipmarket_valuemarket_value_datenumber_of_bathroomsnumber_of_bedroomsnumber_of_roomsnumber_storiesoff_street_openother_buildingowner_1owner_2parcel_numberparcel_shapequality_graderecording_dateregistry_numbersale_datesale_priceseparate_utilitiessewersite_typestate_codestreet_codestreet_designationstreet_directionstreet_namesuffixtaxable_buildingtaxable_landtopographytotal_areatotal_livable_areatype_heaterunfinishedunitutilityview_typeyear_builtyear_built_estimatezip_codezoningpinobjectidnamelistnamemapnameshape_lengshape_areacartodb_id_rightcreated_atupdated_atindex_rightOBJECTIDSTATEFP10COUNTYFP10TRACTCE10GEOID10NAME10NAMELSAD10MTFCC10FUNCSTAT10ALAND10AWATER10INTPTLAT10INTPTLON10LOGRECNOlogDistGraffitilogDistFirelogDistSchoolslogDistSubwaylogDistRestaurantlogDistArtslogDistParkslogDistGolflogDistAssaultslagpricepercent_error
6849POINT (-74.99453 40.10258)274792021-07-16T00:00:00ZNone100' SE NIGHTINGALE53931011A26DET 1.5 STY FRAME1SINGLE FAMILY361NoneNoneNone100.00.00.040.052.0None0.0NoneC660None281442814 NATURE RDSIMPLIFILE LC E-RECORDINGNoneNonePHILADELPHIA PA2814 NATURE RD19154-1606291600None0.00.0NaN2.02536.0NoneOCONNOR DOMINIC MNone662531800EC2021-12-30T00:00:00Z150N0704962021-10-08T00:00:00Z200000.0NoneNoneNonePA59040RDNoneNATURENone233280.058320.0A5200.01695.0NoneNoneNoneNoneI1972None19154RSD31001386296231603864NORMANDY_VILLAGENormandy VillageNormandy Village12444.2215278.034864e+06147.02013-03-19T17:41:50.508Z2013-03-19T17:41:50.743Z372.0373.04210103610042101036100361Census Tract 361G5020S1230432.07138.0+40.0987766-074.9907481106772.8940893.2530263.0998954.1706262.9777604.2365232.9794033.7265912.929519257598.642.463982
14945POINT (-75.11741 39.99794)372702021-07-16T00:00:00ZD90'4\" N HILTON ST53869001O30ROW 2 STY MASONRY1SINGLE FAMILY177NNoneNone62.00.00.020.015.0None0.0NoneA330None323643236 F STNoneNoneNonePHILADELPHIA PA3236 F ST19134-183353900None1.03.0NaN2.01397.0NoneJOHNSON MATTHEW LEWIS IIINone331284700EC2021-08-16T00:00:00Z039N2100922021-06-09T00:00:00Z106500.0NoneNoneNonePA33120STNoneFNone43120.010780.0F923.0960.0HNoneNoneNoneI1920None19134RSA51001203646231614754UPPER_KENSINGTONUpper KensingtonUpper Kensington19841.0992782.278303e+0777.02013-03-19T17:41:50.508Z2013-03-19T17:41:50.743Z172.0173.04210101770142101017701177.01Census Tract 177.01G5020S241053.00.0+39.9964470-075.1167526105082.0187452.3392712.6886672.6870842.8839213.5594392.6696793.5174991.81144342845.4-60.147739
13162POINT (-75.13559 39.97685)351032021-07-16T00:00:00ZNone416'4\" N COLUMBIA53894973O50ROW 3 STY MASONRY1SINGLE FAMILY157NoneNoneNone42.080000.00.040.013.0None0.0NoneA1880000None175241752 WATERLOO STSIMPLIFILE LC E-RECORDINGNoneNonePHILADELPHIA PA1752 WATERLOO ST19122-3217204600None0.00.0NaN3.0986.0NoneBIECHY ZACHARY JBURROWS KEVIN J II183080300EC2021-10-25T00:00:00Z013N2200722021-07-13T00:00:00Z360000.0NoneNoneNonePA81740STNoneWATERLOONone83680.040920.0F546.01053.0NoneNoneNoneNoneI1920Y19122RSA51001554735231610408WEST_KENSINGTONKensington, WestWest Kensington20074.2409471.954418e+0786.02013-03-19T17:41:50.508Z2013-03-19T17:41:50.743Z68.069.04210101570042101015700157Census Tract 157G5020S485211.00.0+39.9780463-075.1355242104851.6519442.4837942.6013432.5241462.2463023.3357392.3383473.7861362.490233390980.0-39.257729
9546POINT (-75.22454 39.91771)307452021-07-16T00:00:00ZFWS 65TH ST 411.900'53910630R30ROW B/GAR 2 STY MASONRY1SINGLE FAMILY61NoneNoneNone95.00.00.040.028.0None0.0NoneA400None285042850 S 65TH STCSC INGEONoneNonePHILADELPHIA PA2850 S 65TH ST19142-3305134300None1.03.0NaN2.05318.0NoneNGUYEN KEVINNone406005725EC2021-12-04T00:00:00Z044S2204812021-07-26T00:00:00Z175000.0NoneNoneNonePA89160STS65THNone107500.026800.0F2670.01056.0NoneNoneNoneNoneI1925Y19142RM11001672032231607985ELMWOODElmwoodElmwood23215.7245212.190144e+07151.02013-03-19T17:41:50.508Z2013-03-19T17:41:50.743Z50.051.0421010061004210100610061Census Tract 61G5020S534201.00.0+39.9150013-075.2288094103942.8238492.5606632.9107303.7748403.0950853.7220262.6227753.9237162.475673179000.0-5.999059
9827POINT (-75.12493 39.98156)310672021-07-16T00:00:00ZD39' N OF LETTERLY ST53915388O30ROW 2 STY MASONRY1SINGLE FAMILY160YNoneNone60.00.00.020.013.0None0.0NoneA310None245822458 SEPVIVA STCANTY PAULNoneNoneBALTIMORE MD2203 E LOMBARD ST21231320400None1.03.0NaN2.01089.0NoneCANTY PAULPAULINO RAINY311222500EC2021-12-11T00:00:00Z019N1100702021-08-02T00:00:00Z330000.0NoneNoneNoneMD71820STNoneSEPVIVANone256320.064080.0F780.01080.0ANoneNoneNoneI1875Y19125RSA51001477429231607201FISHTOWNFishtown - Lower KensingtonFishtown - Lower Kensington25973.3958003.360583e+0787.02013-03-19T17:41:50.508Z2013-03-19T17:41:50.743Z70.071.04210101600042101016000160Census Tract 160G5020S720839.00.0+39.9793809-075.1231903104872.2190792.4187862.6281802.9828942.4170563.4053582.4902733.7618762.462577345989.84.873240
\n", "
" ], "text/plain": [ " geometry cartodb_id_left assessment_date \\\n", "6849 POINT (-74.99453 40.10258) 27479 2021-07-16T00:00:00Z \n", "14945 POINT (-75.11741 39.99794) 37270 2021-07-16T00:00:00Z \n", "13162 POINT (-75.13559 39.97685) 35103 2021-07-16T00:00:00Z \n", "9546 POINT (-75.22454 39.91771) 30745 2021-07-16T00:00:00Z \n", "9827 POINT (-75.12493 39.98156) 31067 2021-07-16T00:00:00Z \n", "\n", " basements beginning_point book_and_page building_code \\\n", "6849 None 100' SE NIGHTINGALE 53931011 A26 \n", "14945 D 90'4\" N HILTON ST 53869001 O30 \n", "13162 None 416'4\" N COLUMBIA 53894973 O50 \n", "9546 F WS 65TH ST 411.900' 53910630 R30 \n", "9827 D 39' N OF LETTERLY ST 53915388 O30 \n", "\n", " building_code_description category_code category_code_description \\\n", "6849 DET 1.5 STY FRAME 1 SINGLE FAMILY \n", "14945 ROW 2 STY MASONRY 1 SINGLE FAMILY \n", "13162 ROW 3 STY MASONRY 1 SINGLE FAMILY \n", "9546 ROW B/GAR 2 STY MASONRY 1 SINGLE FAMILY \n", "9827 ROW 2 STY MASONRY 1 SINGLE FAMILY \n", "\n", " census_tract central_air cross_reference date_exterior_condition depth \\\n", "6849 361 None None None 100.0 \n", "14945 177 N None None 62.0 \n", "13162 157 None None None 42.0 \n", "9546 61 None None None 95.0 \n", "9827 160 Y None None 60.0 \n", "\n", " exempt_building exempt_land exterior_condition fireplaces frontage \\\n", "6849 0.0 0.0 4 0.0 52.0 \n", "14945 0.0 0.0 2 0.0 15.0 \n", "13162 80000.0 0.0 4 0.0 13.0 \n", "9546 0.0 0.0 4 0.0 28.0 \n", "9827 0.0 0.0 2 0.0 13.0 \n", "\n", " fuel garage_spaces garage_type general_construction geographic_ward \\\n", "6849 None 0.0 None C 66 \n", "14945 None 0.0 None A 33 \n", "13162 None 0.0 None A 18 \n", "9546 None 0.0 None A 40 \n", "9827 None 0.0 None A 31 \n", "\n", " homestead_exemption house_extension house_number interior_condition \\\n", "6849 0 None 2814 4 \n", "14945 0 None 3236 4 \n", "13162 80000 None 1752 4 \n", "9546 0 None 2850 4 \n", "9827 0 None 2458 2 \n", "\n", " location mailing_address_1 mailing_address_2 \\\n", "6849 2814 NATURE RD SIMPLIFILE LC E-RECORDING None \n", "14945 3236 F ST None None \n", "13162 1752 WATERLOO ST SIMPLIFILE LC E-RECORDING None \n", "9546 2850 S 65TH ST CSC INGEO None \n", "9827 2458 SEPVIVA ST CANTY PAUL None \n", "\n", " mailing_care_of mailing_city_state mailing_street mailing_zip \\\n", "6849 None PHILADELPHIA PA 2814 NATURE RD 19154-1606 \n", "14945 None PHILADELPHIA PA 3236 F ST 19134-1833 \n", "13162 None PHILADELPHIA PA 1752 WATERLOO ST 19122-3217 \n", "9546 None PHILADELPHIA PA 2850 S 65TH ST 19142-3305 \n", "9827 None BALTIMORE MD 2203 E LOMBARD ST 21231 \n", "\n", " market_value market_value_date number_of_bathrooms \\\n", "6849 291600 None 0.0 \n", "14945 53900 None 1.0 \n", "13162 204600 None 0.0 \n", "9546 134300 None 1.0 \n", "9827 320400 None 1.0 \n", "\n", " number_of_bedrooms number_of_rooms number_stories off_street_open \\\n", "6849 0.0 NaN 2.0 2536.0 \n", "14945 3.0 NaN 2.0 1397.0 \n", "13162 0.0 NaN 3.0 986.0 \n", "9546 3.0 NaN 2.0 5318.0 \n", "9827 3.0 NaN 2.0 1089.0 \n", "\n", " other_building owner_1 owner_2 \\\n", "6849 None OCONNOR DOMINIC M None \n", "14945 None JOHNSON MATTHEW LEWIS III None \n", "13162 None BIECHY ZACHARY J BURROWS KEVIN J II \n", "9546 None NGUYEN KEVIN None \n", "9827 None CANTY PAUL PAULINO RAINY \n", "\n", " parcel_number parcel_shape quality_grade recording_date \\\n", "6849 662531800 E C 2021-12-30T00:00:00Z \n", "14945 331284700 E C 2021-08-16T00:00:00Z \n", "13162 183080300 E C 2021-10-25T00:00:00Z \n", "9546 406005725 E C 2021-12-04T00:00:00Z \n", "9827 311222500 E C 2021-12-11T00:00:00Z \n", "\n", " registry_number sale_date sale_price separate_utilities \\\n", "6849 150N070496 2021-10-08T00:00:00Z 200000.0 None \n", "14945 039N210092 2021-06-09T00:00:00Z 106500.0 None \n", "13162 013N220072 2021-07-13T00:00:00Z 360000.0 None \n", "9546 044S220481 2021-07-26T00:00:00Z 175000.0 None \n", "9827 019N110070 2021-08-02T00:00:00Z 330000.0 None \n", "\n", " sewer site_type state_code street_code street_designation \\\n", "6849 None None PA 59040 RD \n", "14945 None None PA 33120 ST \n", "13162 None None PA 81740 ST \n", "9546 None None PA 89160 ST \n", "9827 None None MD 71820 ST \n", "\n", " street_direction street_name suffix taxable_building taxable_land \\\n", "6849 None NATURE None 233280.0 58320.0 \n", "14945 None F None 43120.0 10780.0 \n", "13162 None WATERLOO None 83680.0 40920.0 \n", "9546 S 65TH None 107500.0 26800.0 \n", "9827 None SEPVIVA None 256320.0 64080.0 \n", "\n", " topography total_area total_livable_area type_heater unfinished unit \\\n", "6849 A 5200.0 1695.0 None None None \n", "14945 F 923.0 960.0 H None None \n", "13162 F 546.0 1053.0 None None None \n", "9546 F 2670.0 1056.0 None None None \n", "9827 F 780.0 1080.0 A None None \n", "\n", " utility view_type year_built year_built_estimate zip_code zoning \\\n", "6849 None I 1972 None 19154 RSD3 \n", "14945 None I 1920 None 19134 RSA5 \n", "13162 None I 1920 Y 19122 RSA5 \n", "9546 None I 1925 Y 19142 RM1 \n", "9827 None I 1875 Y 19125 RSA5 \n", "\n", " pin objectid name listname \\\n", "6849 1001386296 231603864 NORMANDY_VILLAGE Normandy Village \n", "14945 1001203646 231614754 UPPER_KENSINGTON Upper Kensington \n", "13162 1001554735 231610408 WEST_KENSINGTON Kensington, West \n", "9546 1001672032 231607985 ELMWOOD Elmwood \n", "9827 1001477429 231607201 FISHTOWN Fishtown - Lower Kensington \n", "\n", " mapname shape_leng shape_area \\\n", "6849 Normandy Village 12444.221527 8.034864e+06 \n", "14945 Upper Kensington 19841.099278 2.278303e+07 \n", "13162 West Kensington 20074.240947 1.954418e+07 \n", "9546 Elmwood 23215.724521 2.190144e+07 \n", "9827 Fishtown - Lower Kensington 25973.395800 3.360583e+07 \n", "\n", " cartodb_id_right created_at updated_at \\\n", "6849 147.0 2013-03-19T17:41:50.508Z 2013-03-19T17:41:50.743Z \n", "14945 77.0 2013-03-19T17:41:50.508Z 2013-03-19T17:41:50.743Z \n", "13162 86.0 2013-03-19T17:41:50.508Z 2013-03-19T17:41:50.743Z \n", "9546 151.0 2013-03-19T17:41:50.508Z 2013-03-19T17:41:50.743Z \n", "9827 87.0 2013-03-19T17:41:50.508Z 2013-03-19T17:41:50.743Z \n", "\n", " index_right OBJECTID STATEFP10 COUNTYFP10 TRACTCE10 GEOID10 \\\n", "6849 372.0 373.0 42 101 036100 42101036100 \n", "14945 172.0 173.0 42 101 017701 42101017701 \n", "13162 68.0 69.0 42 101 015700 42101015700 \n", "9546 50.0 51.0 42 101 006100 42101006100 \n", "9827 70.0 71.0 42 101 016000 42101016000 \n", "\n", " NAME10 NAMELSAD10 MTFCC10 FUNCSTAT10 ALAND10 AWATER10 \\\n", "6849 361 Census Tract 361 G5020 S 1230432.0 7138.0 \n", "14945 177.01 Census Tract 177.01 G5020 S 241053.0 0.0 \n", "13162 157 Census Tract 157 G5020 S 485211.0 0.0 \n", "9546 61 Census Tract 61 G5020 S 534201.0 0.0 \n", "9827 160 Census Tract 160 G5020 S 720839.0 0.0 \n", "\n", " INTPTLAT10 INTPTLON10 LOGRECNO logDistGraffiti logDistFire \\\n", "6849 +40.0987766 -074.9907481 10677 2.894089 3.253026 \n", "14945 +39.9964470 -075.1167526 10508 2.018745 2.339271 \n", "13162 +39.9780463 -075.1355242 10485 1.651944 2.483794 \n", "9546 +39.9150013 -075.2288094 10394 2.823849 2.560663 \n", "9827 +39.9793809 -075.1231903 10487 2.219079 2.418786 \n", "\n", " logDistSchools logDistSubway logDistRestaurant logDistArts \\\n", "6849 3.099895 4.170626 2.977760 4.236523 \n", "14945 2.688667 2.687084 2.883921 3.559439 \n", "13162 2.601343 2.524146 2.246302 3.335739 \n", "9546 2.910730 3.774840 3.095085 3.722026 \n", "9827 2.628180 2.982894 2.417056 3.405358 \n", "\n", " logDistParks logDistGolf logDistAssaults lagprice percent_error \n", "6849 2.979403 3.726591 2.929519 257598.6 42.463982 \n", "14945 2.669679 3.517499 1.811443 42845.4 -60.147739 \n", "13162 2.338347 3.786136 2.490233 390980.0 -39.257729 \n", "9546 2.622775 3.923716 2.475673 179000.0 -5.999059 \n", "9827 2.490273 3.761876 2.462577 345989.8 4.873240 " ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract out the test set data from the original data set\n", "salesTest = sales.loc[test_set.index]\n", "\n", "# Add the percent error column\n", "salesTest['percent_error'] = errors\n", "\n", "salesTest.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (7) Plot a map of the median percent error by census tract " ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\jtrum\\AppData\\Local\\Temp\\ipykernel_19044\\4231391901.py:1: FutureWarning: Dropping invalid columns in DataFrameGroupBy.median is deprecated. In a future version, a TypeError will be raised. Before calling .median, select only columns which should be valid for the function.\n", " mape_census = df.groupby(['census_tract']).median().reset_index()\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NAME10MAPE
010.529238
110.011.004737
210.020.898934
31002.667778
41012.533748
51024.572634
61032.829125
71043.739420
81050.893084
91064.285643
101078.969148
111082.194624
121091.858471
1311.010.640819
1411.020.652332
151104.473532
161114.918676
171123.129238
181134.776817
191143.342287
201151.693977
211173.281246
221181.089631
231191.872779
2412.010.687258
2512.020.787586
261201.142156
271210.754682
28122.048.747971
291250.297482
30130.808594
311320.309623
321330.778079
33134.010.445545
34134.020.977793
351350.682101
36136.011.135340
37136.020.678804
381370.870228
391381.356420
401390.510644
41141.137513
421400.716524
431410.372744
441420.896706
451431.343638
461440.733026
471452.573990
481461.423147
491472.145712
501493.241847
51150.554873
52151.014.193519
53151.026.856765
541523.760764
551531.509038
561560.956792
571571.035320
581580.834374
59160.986651
601601.265259
611610.924393
621620.854450
631633.379384
641643.351309
651652.704522
661665.059672
67167.015.785006
68167.022.962814
691684.126242
70169.013.426876
71169.024.011507
72171.232508
731703.261462
741711.588665
75172.015.900407
76172.024.283649
771734.863495
781742.805288
791753.631309
80176.015.513079
81176.027.400394
82177.014.160820
83177.024.193964
841783.878410
851792.487401
86180.598195
87180.011.607120
88180.021.252623
891830.868175
901841.642781
911883.583565
92190.521558
931901.697944
941911.215722
951923.730986
96195.012.306282
97195.026.094490
981974.394752
991983.827342
1001992.187150
10121.173437
102200.705205
103201.013.675688
104201.024.440937
1052022.649841
1062034.242486
1072043.971670
1082053.539795
1092061.859173
1102070.708376
1112083.509548
1122090.961397
113210.786956
1142100.796325
1152111.246719
1162120.837651
1172131.127624
1182140.463996
1192151.009710
1202160.460086
1212170.720405
1222181.666256
1232190.586897
124221.326978
1252200.930327
126230.759536
1272310.766095
1282351.330585
1292361.975610
1302371.705331
1312381.204295
1322391.476379
133240.801001
1342402.465676
1352411.407552
1362421.973094
1372431.183769
1382441.227933
1392452.349511
1402467.318828
1412473.874590
1422481.973247
1432492.378088
144251.348228
1452521.342717
1462531.348398
1472540.833425
1482551.228763
1492561.153535
1502570.603483
1512580.741123
1522590.720621
1532600.267057
1542611.717996
1552621.187777
156263.010.950635
157263.022.248950
1582641.444457
1592652.111888
1602661.783286
1612671.611342
1622681.838384
1632694.000767
16427.011.118664
16527.020.452116
1662701.819271
1672711.121994
1682721.066915
1692731.333811
170274.012.685159
171274.021.300048
1722751.898365
1732766.416389
1742772.983294
1752782.226849
176279.011.001127
177279.021.420989
17828.011.012295
17928.021.012686
1802802.679496
1812813.662781
1822822.708857
1832832.779916
1842842.869539
1852850.491397
1862864.557556
1872874.769191
1882882.390966
189289.011.833837
190289.024.218694
191291.119681
1922901.741328
1932911.341042
1942922.309641
1952933.670560
1962943.458182
1972982.099877
1982991.418518
19930.456348
20030.011.765428
20130.021.388373
2023001.099609
2033011.358859
2043021.788143
205305.011.167469
206305.020.595980
2073060.942683
2083070.848273
2093081.041778
2103091.450055
211311.323973
2123100.717442
213311.010.986836
214311.020.902764
2153121.987885
2163130.836430
217314.010.926557
218314.021.034146
219315.011.028085
220315.020.340961
2213161.017628
2223171.102542
2233180.868766
2243191.355104
225321.840167
2263201.119235
2273212.824743
2283231.571980
2293251.522216
2303261.493093
2313290.595910
232332.310018
2333301.045225
234331.010.301460
235331.021.071637
2363320.257911
2373330.557469
2383340.815903
2393350.976214
2403360.833286
241337.010.640119
242337.020.879809
2433380.621981
2443390.091232
2453400.503407
2463410.335359
2473420.392411
2483440.621665
249345.012.796862
250345.020.462933
2513460.602014
252347.010.637886
253347.020.498704
254348.010.610756
255348.020.681427
256348.030.364997
2573491.058091
2583511.189730
2593520.588885
260353.010.802006
261353.020.592294
2623550.645997
263356.010.467254
264356.020.718738
265357.010.879989
266357.021.639800
2673580.853745
2683590.863698
269360.932894
2703600.549410
2713611.182931
272362.010.795982
273362.020.498850
274362.030.612166
275363.010.505371
276363.020.437581
277363.030.544092
2783640.863887
279365.010.599420
280365.020.677934
2813660.357485
2823670.601560
28337.011.506221
28437.021.725467
2853721.193019
2863730.977495
2873751.418450
2883760.597881
2893771.757139
2903781.226389
2913790.836326
292381.235618
2933801.343239
2943813.074876
2953822.391199
2963834.624979
2973840.679298
2983850.649587
2993861.199319
3003870.834007
3013881.526218
3023895.583023
30339.011.442107
30439.021.368968
3053901.097566
3064.010.346953
3074.020.667352
30840.011.074509
30940.021.312094
31041.012.202312
31141.021.729109
31242.011.358214
31342.021.479097
314540.456891
315551.688587
316562.935936
317602.152633
318611.393739
319622.655354
320632.558589
321642.200737
322652.375204
323665.826381
324673.397763
325694.280559
32671.452704
327704.492678
32871.012.687449
32971.024.178984
330722.786448
331733.995648
332743.668980
333772.129493
334780.551582
335791.695051
3368.010.771041
3378.031.123181
3388.040.871965
339802.207412
34081.010.856397
34181.022.348387
342822.049494
34383.011.235583
34483.022.866473
345841.809689
346852.552330
34786.010.843436
34886.022.432651
34987.011.095814
3509.010.408559
3519.021.392639
352900.768557
353912.010275
354922.906507
355935.090539
356942.745771
357953.050939
358961.851506
35998.011.189928
36098.020.973089
36198002.273760
\n", "
" ], "text/plain": [ " NAME10 MAPE\n", "0 1 0.529238\n", "1 10.01 1.004737\n", "2 10.02 0.898934\n", "3 100 2.667778\n", "4 101 2.533748\n", "5 102 4.572634\n", "6 103 2.829125\n", "7 104 3.739420\n", "8 105 0.893084\n", "9 106 4.285643\n", "10 107 8.969148\n", "11 108 2.194624\n", "12 109 1.858471\n", "13 11.01 0.640819\n", "14 11.02 0.652332\n", "15 110 4.473532\n", "16 111 4.918676\n", "17 112 3.129238\n", "18 113 4.776817\n", "19 114 3.342287\n", "20 115 1.693977\n", "21 117 3.281246\n", "22 118 1.089631\n", "23 119 1.872779\n", "24 12.01 0.687258\n", "25 12.02 0.787586\n", "26 120 1.142156\n", "27 121 0.754682\n", "28 122.04 8.747971\n", "29 125 0.297482\n", "30 13 0.808594\n", "31 132 0.309623\n", "32 133 0.778079\n", "33 134.01 0.445545\n", "34 134.02 0.977793\n", "35 135 0.682101\n", "36 136.01 1.135340\n", "37 136.02 0.678804\n", "38 137 0.870228\n", "39 138 1.356420\n", "40 139 0.510644\n", "41 14 1.137513\n", "42 140 0.716524\n", "43 141 0.372744\n", "44 142 0.896706\n", "45 143 1.343638\n", "46 144 0.733026\n", "47 145 2.573990\n", "48 146 1.423147\n", "49 147 2.145712\n", "50 149 3.241847\n", "51 15 0.554873\n", "52 151.01 4.193519\n", "53 151.02 6.856765\n", "54 152 3.760764\n", "55 153 1.509038\n", "56 156 0.956792\n", "57 157 1.035320\n", "58 158 0.834374\n", "59 16 0.986651\n", "60 160 1.265259\n", "61 161 0.924393\n", "62 162 0.854450\n", "63 163 3.379384\n", "64 164 3.351309\n", "65 165 2.704522\n", "66 166 5.059672\n", "67 167.01 5.785006\n", "68 167.02 2.962814\n", "69 168 4.126242\n", "70 169.01 3.426876\n", "71 169.02 4.011507\n", "72 17 1.232508\n", "73 170 3.261462\n", "74 171 1.588665\n", "75 172.01 5.900407\n", "76 172.02 4.283649\n", "77 173 4.863495\n", "78 174 2.805288\n", "79 175 3.631309\n", "80 176.01 5.513079\n", "81 176.02 7.400394\n", "82 177.01 4.160820\n", "83 177.02 4.193964\n", "84 178 3.878410\n", "85 179 2.487401\n", "86 18 0.598195\n", "87 180.01 1.607120\n", "88 180.02 1.252623\n", "89 183 0.868175\n", "90 184 1.642781\n", "91 188 3.583565\n", "92 19 0.521558\n", "93 190 1.697944\n", "94 191 1.215722\n", "95 192 3.730986\n", "96 195.01 2.306282\n", "97 195.02 6.094490\n", "98 197 4.394752\n", "99 198 3.827342\n", "100 199 2.187150\n", "101 2 1.173437\n", "102 20 0.705205\n", "103 201.01 3.675688\n", "104 201.02 4.440937\n", "105 202 2.649841\n", "106 203 4.242486\n", "107 204 3.971670\n", "108 205 3.539795\n", "109 206 1.859173\n", "110 207 0.708376\n", "111 208 3.509548\n", "112 209 0.961397\n", "113 21 0.786956\n", "114 210 0.796325\n", "115 211 1.246719\n", "116 212 0.837651\n", "117 213 1.127624\n", "118 214 0.463996\n", "119 215 1.009710\n", "120 216 0.460086\n", "121 217 0.720405\n", "122 218 1.666256\n", "123 219 0.586897\n", "124 22 1.326978\n", "125 220 0.930327\n", "126 23 0.759536\n", "127 231 0.766095\n", "128 235 1.330585\n", "129 236 1.975610\n", "130 237 1.705331\n", "131 238 1.204295\n", "132 239 1.476379\n", "133 24 0.801001\n", "134 240 2.465676\n", "135 241 1.407552\n", "136 242 1.973094\n", "137 243 1.183769\n", "138 244 1.227933\n", "139 245 2.349511\n", "140 246 7.318828\n", "141 247 3.874590\n", "142 248 1.973247\n", "143 249 2.378088\n", "144 25 1.348228\n", "145 252 1.342717\n", "146 253 1.348398\n", "147 254 0.833425\n", "148 255 1.228763\n", "149 256 1.153535\n", "150 257 0.603483\n", "151 258 0.741123\n", "152 259 0.720621\n", "153 260 0.267057\n", "154 261 1.717996\n", "155 262 1.187777\n", "156 263.01 0.950635\n", "157 263.02 2.248950\n", "158 264 1.444457\n", "159 265 2.111888\n", "160 266 1.783286\n", "161 267 1.611342\n", "162 268 1.838384\n", "163 269 4.000767\n", "164 27.01 1.118664\n", "165 27.02 0.452116\n", "166 270 1.819271\n", "167 271 1.121994\n", "168 272 1.066915\n", "169 273 1.333811\n", "170 274.01 2.685159\n", "171 274.02 1.300048\n", "172 275 1.898365\n", "173 276 6.416389\n", "174 277 2.983294\n", "175 278 2.226849\n", "176 279.01 1.001127\n", "177 279.02 1.420989\n", "178 28.01 1.012295\n", "179 28.02 1.012686\n", "180 280 2.679496\n", "181 281 3.662781\n", "182 282 2.708857\n", "183 283 2.779916\n", "184 284 2.869539\n", "185 285 0.491397\n", "186 286 4.557556\n", "187 287 4.769191\n", "188 288 2.390966\n", "189 289.01 1.833837\n", "190 289.02 4.218694\n", "191 29 1.119681\n", "192 290 1.741328\n", "193 291 1.341042\n", "194 292 2.309641\n", "195 293 3.670560\n", "196 294 3.458182\n", "197 298 2.099877\n", "198 299 1.418518\n", "199 3 0.456348\n", "200 30.01 1.765428\n", "201 30.02 1.388373\n", "202 300 1.099609\n", "203 301 1.358859\n", "204 302 1.788143\n", "205 305.01 1.167469\n", "206 305.02 0.595980\n", "207 306 0.942683\n", "208 307 0.848273\n", "209 308 1.041778\n", "210 309 1.450055\n", "211 31 1.323973\n", "212 310 0.717442\n", "213 311.01 0.986836\n", "214 311.02 0.902764\n", "215 312 1.987885\n", "216 313 0.836430\n", "217 314.01 0.926557\n", "218 314.02 1.034146\n", "219 315.01 1.028085\n", "220 315.02 0.340961\n", "221 316 1.017628\n", "222 317 1.102542\n", "223 318 0.868766\n", "224 319 1.355104\n", "225 32 1.840167\n", "226 320 1.119235\n", "227 321 2.824743\n", "228 323 1.571980\n", "229 325 1.522216\n", "230 326 1.493093\n", "231 329 0.595910\n", "232 33 2.310018\n", "233 330 1.045225\n", "234 331.01 0.301460\n", "235 331.02 1.071637\n", "236 332 0.257911\n", "237 333 0.557469\n", "238 334 0.815903\n", "239 335 0.976214\n", "240 336 0.833286\n", "241 337.01 0.640119\n", "242 337.02 0.879809\n", "243 338 0.621981\n", "244 339 0.091232\n", "245 340 0.503407\n", "246 341 0.335359\n", "247 342 0.392411\n", "248 344 0.621665\n", "249 345.01 2.796862\n", "250 345.02 0.462933\n", "251 346 0.602014\n", "252 347.01 0.637886\n", "253 347.02 0.498704\n", "254 348.01 0.610756\n", "255 348.02 0.681427\n", "256 348.03 0.364997\n", "257 349 1.058091\n", "258 351 1.189730\n", "259 352 0.588885\n", "260 353.01 0.802006\n", "261 353.02 0.592294\n", "262 355 0.645997\n", "263 356.01 0.467254\n", "264 356.02 0.718738\n", "265 357.01 0.879989\n", "266 357.02 1.639800\n", "267 358 0.853745\n", "268 359 0.863698\n", "269 36 0.932894\n", "270 360 0.549410\n", "271 361 1.182931\n", "272 362.01 0.795982\n", "273 362.02 0.498850\n", "274 362.03 0.612166\n", "275 363.01 0.505371\n", "276 363.02 0.437581\n", "277 363.03 0.544092\n", "278 364 0.863887\n", "279 365.01 0.599420\n", "280 365.02 0.677934\n", "281 366 0.357485\n", "282 367 0.601560\n", "283 37.01 1.506221\n", "284 37.02 1.725467\n", "285 372 1.193019\n", "286 373 0.977495\n", "287 375 1.418450\n", "288 376 0.597881\n", "289 377 1.757139\n", "290 378 1.226389\n", "291 379 0.836326\n", "292 38 1.235618\n", "293 380 1.343239\n", "294 381 3.074876\n", "295 382 2.391199\n", "296 383 4.624979\n", "297 384 0.679298\n", "298 385 0.649587\n", "299 386 1.199319\n", "300 387 0.834007\n", "301 388 1.526218\n", "302 389 5.583023\n", "303 39.01 1.442107\n", "304 39.02 1.368968\n", "305 390 1.097566\n", "306 4.01 0.346953\n", "307 4.02 0.667352\n", "308 40.01 1.074509\n", "309 40.02 1.312094\n", "310 41.01 2.202312\n", "311 41.02 1.729109\n", "312 42.01 1.358214\n", "313 42.02 1.479097\n", "314 54 0.456891\n", "315 55 1.688587\n", "316 56 2.935936\n", "317 60 2.152633\n", "318 61 1.393739\n", "319 62 2.655354\n", "320 63 2.558589\n", "321 64 2.200737\n", "322 65 2.375204\n", "323 66 5.826381\n", "324 67 3.397763\n", "325 69 4.280559\n", "326 7 1.452704\n", "327 70 4.492678\n", "328 71.01 2.687449\n", "329 71.02 4.178984\n", "330 72 2.786448\n", "331 73 3.995648\n", "332 74 3.668980\n", "333 77 2.129493\n", "334 78 0.551582\n", "335 79 1.695051\n", "336 8.01 0.771041\n", "337 8.03 1.123181\n", "338 8.04 0.871965\n", "339 80 2.207412\n", "340 81.01 0.856397\n", "341 81.02 2.348387\n", "342 82 2.049494\n", "343 83.01 1.235583\n", "344 83.02 2.866473\n", "345 84 1.809689\n", "346 85 2.552330\n", "347 86.01 0.843436\n", "348 86.02 2.432651\n", "349 87.01 1.095814\n", "350 9.01 0.408559\n", "351 9.02 1.392639\n", "352 90 0.768557\n", "353 91 2.010275\n", "354 92 2.906507\n", "355 93 5.090539\n", "356 94 2.745771\n", "357 95 3.050939\n", "358 96 1.851506\n", "359 98.01 1.189928\n", "360 98.02 0.973089\n", "361 9800 2.273760" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mape_census = df.groupby(['census_tract']).median().reset_index()\n", "mape_cen = mape_census.rename(columns={'census_tract': 'NAME10'})\n", "mape_cen" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometryOBJECTIDSTATEFP10COUNTYFP10TRACTCE10GEOID10NAME10NAMELSAD10MTFCC10FUNCSTAT10ALAND10AWATER10INTPTLAT10INTPTLON10LOGRECNO
0POLYGON ((-75.22927 39.96054, -75.22865 39.960...1421010094004210100940094Census Tract 94G5020S3667170+39.9632709-075.232243710429
1POLYGON ((-75.23536 39.96852, -75.23545 39.969...2421010095004210100950095Census Tract 95G5020S3190700+39.9658709-075.237914010430
2POLYGON ((-75.24343 39.96230, -75.24339 39.962...3421010096004210100960096Census Tract 96G5020S4052730+39.9655396-075.243507510431
3POLYGON ((-75.17341 39.97779, -75.17386 39.977...44210101380042101013800138Census Tract 138G5020S3412560+39.9764504-075.177177110468
4POLYGON ((-75.17313 39.97776, -75.17321 39.977...54210101390042101013900139Census Tract 139G5020S5629340+39.9750563-075.171184610469
5POLYGON ((-75.16141 39.97044, -75.16056 39.970...64210101400042101014000140Census Tract 140G5020S4398020+39.9735358-075.163096610470
6POLYGON ((-75.15719 39.96959, -75.15609 39.969...74210101410042101014100141Census Tract 141G5020S5621320+39.9708771-075.152455510471
7POLYGON ((-75.13330 39.96102, -75.13084 39.959...84210101420042101014200142Census Tract 142G5020S789935277434+39.9652375-075.135961210472
8POLYGON ((-75.12110 39.96858, -75.12225 39.970...94210101430042101014300143Census Tract 143G5020S570015282808+39.9671225-075.126561710473
9POLYGON ((-75.13574 39.96880, -75.13536 39.968...104210101440042101014400144Census Tract 144G5020S6094390+39.9722286-075.140095210474
10POLYGON ((-75.14936 39.97327, -75.14887 39.973...114210101450042101014500145Census Tract 145G5020S3214640+39.9760715-075.148418910475
11POLYGON ((-75.15224 39.97954, -75.15381 39.979...124210101460042101014600146Census Tract 146G5020S4450480+39.9764305-075.154699010476
12POLYGON ((-75.16018 39.97608, -75.15947 39.975...134210101470042101014700147Census Tract 147G5020S3376770+39.9785489-075.162024410477
13POLYGON ((-75.17174 39.97903, -75.17122 39.978...144210101480042101014800148Census Tract 148G5020S1911260+39.9802047-075.169161010478
14POLYGON ((-75.18786 39.98112, -75.18701 39.981...154210101490042101014900149Census Tract 149G5020S4532210+39.9816503-075.180402910479
15POLYGON ((-75.17226 39.98999, -75.17236 39.990...164210101520042101015200152Census Tract 152G5020S6691010+39.9854546-075.170049110482
16POLYGON ((-75.16362 39.98725, -75.16419 39.987...174210101530042101015300153Census Tract 153G5020S4691360+39.9837644-075.160884910483
17POLYGON ((-75.13941 39.97634, -75.13911 39.977...184210101560042101015600156Census Tract 156G5020S4295670+39.9790066-075.141891010484
18POLYGON ((-75.09490 40.01049, -75.09489 40.010...194210101900042101019000190Census Tract 190G5020S77860612639+40.0095015-075.098613610517
19POLYGON ((-75.10715 40.01674, -75.10724 40.016...204210101910042101019100191Census Tract 191G5020S143910120770+40.0095510-075.107182010518
20POLYGON ((-75.10760 39.99967, -75.10645 40.000...214210101920042101019200192Census Tract 192G5020S6569130+40.0006393-075.115064810519
21POLYGON ((-75.13586 40.01199, -75.13554 40.013...224210101970042101019700197Census Tract 197G5020S4505870+40.0162799-075.137937210522
22POLYGON ((-75.13672 40.00803, -75.13661 40.008...234210101980042101019800198Census Tract 198G5020S5410060+40.0107245-075.142147210523
23POLYGON ((-75.13886 40.00322, -75.13821 40.003...244210101990042101019900199Census Tract 199G5020S6618840+40.0048515-075.143546310524
24POLYGON ((-75.14780 40.00016, -75.14803 40.000...254210102000042101020000200Census Tract 200G5020S3166760+40.0025289-075.150899510525
25POLYGON ((-75.16429 40.00308, -75.16385 40.003...264210102020042101020200202Census Tract 202G5020S7568140+40.0081282-075.162160910528
26POLYGON ((-75.14955 40.01788, -75.15031 40.017...274210102030042101020300203Census Tract 203G5020S5081760+40.0125820-075.149592210529
27POLYGON ((-75.14955 40.01788, -75.14935 40.017...284210102040042101020400204Census Tract 204G5020S4073720+40.0198216-075.152511710530
28POLYGON ((-75.17404 40.01697, -75.17486 40.016...294210102050042101020500205Census Tract 205G5020S14295100+40.0158738-075.164360710531
29POLYGON ((-75.18196 40.02554, -75.18251 40.025...304210102060042101020600206Census Tract 206G5020S129584856842+40.0198000-075.182774010532
30POLYGON ((-75.18953 39.94521, -75.18959 39.945...31421010013004210100130013Census Tract 13G5020S72788960713+39.9445258-075.186205010354
31POLYGON ((-75.16582 39.94254, -75.16578 39.942...32421010014004210100140014Census Tract 14G5020S3158320+39.9429436-075.171593010355
32POLYGON ((-75.16549 39.94366, -75.16558 39.943...33421010015004210100150015Census Tract 15G5020S2393830+39.9419037-075.159115810356
33POLYGON ((-75.15119 39.94189, -75.15156 39.941...34421010016004210100160016Census Tract 16G5020S1963920+39.9402546-075.148312710357
34POLYGON ((-75.14347 39.93873, -75.14388 39.938...35421010017004210100170017Census Tract 17G5020S2215300+39.9377593-075.148311410358
35POLYGON ((-75.16591 39.94182, -75.16599 39.941...36421010018004210100180018Census Tract 18G5020S2424830+39.9399998-075.159309110359
36POLYGON ((-75.16636 39.94004, -75.16628 39.940...37421010019004210100190019Census Tract 19G5020S3283270+39.9400454-075.172227010360
37POLYGON ((-75.18855 39.93846, -75.18859 39.938...38421010020004210100200020Census Tract 20G5020S2893680+39.9381416-075.184314510361
38POLYGON ((-75.17370 39.93624, -75.17369 39.936...39421010021004210100210021Census Tract 21G5020S2375190+39.9372214-075.176895510362
39POLYGON ((-75.17370 39.93624, -75.17378 39.935...40421010022004210100220022Census Tract 22G5020S2286960+39.9364111-075.170392310363
40POLYGON ((-75.16702 39.93675, -75.16709 39.936...41421010023004210100230023Census Tract 23G5020S2123790+39.9348217-075.162979910364
41POLYGON ((-75.16629 39.94004, -75.16636 39.940...42421010024004210100240024Census Tract 24G5020S5354210+39.9367634-075.159510010365
42POLYGON ((-75.14526 39.93557, -75.14574 39.935...43421010025004210100250025Census Tract 25G5020S3986970+39.9342960-075.149802310366
43POLYGON ((-75.16758 39.93415, -75.16764 39.934...44421010029004210100290029Census Tract 29G5020S3702170+39.9306984-075.165572910371
44POLYGON ((-75.17520 39.92930, -75.17512 39.929...45421010031004210100310031Census Tract 31G5020S3959080+39.9323428-075.177957210374
45POLYGON ((-75.17215 39.88129, -75.16966 39.881...46421010050004210100500050Census Tract 50G5020S45044593340294+39.8898768-075.169141210389
46POLYGON ((-75.24623 39.88951, -75.24585 39.889...47421010054004210100540054Census Tract 54G5020S1846253530013+39.8904539-075.251392310390
47POLYGON ((-75.25129 39.90441, -75.25179 39.903...48421010055004210100550055Census Tract 55G5020S116844212010+39.9074191-075.248917410391
48POLYGON ((-75.24184 39.90384, -75.24196 39.903...49421010056004210100560056Census Tract 56G5020S8404110+39.8988328-075.244734710392
49POLYGON ((-75.23342 39.91385, -75.23369 39.914...50421010060004210100600060Census Tract 60G5020S10896570+39.9115196-075.238157010393
50POLYGON ((-75.22664 39.91909, -75.22684 39.919...51421010061004210100610061Census Tract 61G5020S5342010+39.9150013-075.228809410394
51POLYGON ((-75.23679 39.92091, -75.23722 39.920...52421010062004210100620062Census Tract 62G5020S5096360+39.9194134-075.233525710395
52POLYGON ((-75.23650 39.92112, -75.23570 39.921...53421010063004210100630063Census Tract 63G5020S5556020+39.9210843-075.239976210396
53POLYGON ((-75.24701 39.96668, -75.24685 39.967...544210101000042101010000100Census Tract 100G5020S4976950+39.9710834-075.250375910434
54POLYGON ((-75.23914 39.96990, -75.23905 39.969...554210101010042101010100101Census Tract 101G5020S6014370+39.9721396-075.242529010435
55POLYGON ((-75.23536 39.96852, -75.23535 39.968...564210101020042101010200102Census Tract 102G5020S3606180+39.9680830-075.231670110436
56POLYGON ((-75.22245 39.96654, -75.22262 39.967...574210101030042101010300103Census Tract 103G5020S2813570+39.9678322-075.225438310437
57POLYGON ((-75.22262 39.96735, -75.22245 39.966...584210101040042101010400104Census Tract 104G5020S4720510+39.9654995-075.219119310438
58POLYGON ((-75.21619 39.96249, -75.21700 39.959...594210101050042101010500105Census Tract 105G5020S6577660+39.9665652-075.214201810439
59POLYGON ((-75.20622 39.96255, -75.20558 39.962...604210101060042101010600106Census Tract 106G5020S2654660+39.9646327-075.207921310440
60POLYGON ((-75.20233 39.96321, -75.20231 39.963...614210101070042101010700107Census Tract 107G5020S4604750+39.9687475-075.206944210441
61POLYGON ((-75.19851 39.96945, -75.20372 39.970...624210101080042101010800108Census Tract 108G5020S5857320+39.9660217-075.198989010442
62POLYGON ((-75.18803 39.96330, -75.18742 39.963...634210101090042101010900109Census Tract 109G5020S2481680+39.9649286-075.191765010443
63POLYGON ((-75.19881 39.97473, -75.19900 39.974...644210101100042101011000110Census Tract 110G5020S4728680+39.9737291-075.206295110444
64POLYGON ((-75.21331 39.97723, -75.21347 39.977...654210101110042101011100111Census Tract 111G5020S13014110+39.9752003-075.221574510445
65POLYGON ((-75.23799 39.97297, -75.23774 39.971...664210101120042101011200112Census Tract 112G5020S5031620+39.9736041-075.233653310446
66POLYGON ((-75.23769 39.97621, -75.23681 39.976...674210101130042101011300113Census Tract 113G5020S3348990+39.9786554-075.235334610447
67POLYGON ((-75.23869 39.97674, -75.23879 39.977...684210101140042101011400114Census Tract 114G5020S9729470+39.9807388-075.244017810448
68POLYGON ((-75.13507 39.97432, -75.13463 39.974...694210101570042101015700157Census Tract 157G5020S4852110+39.9780463-075.135524210485
69POLYGON ((-75.12275 39.97373, -75.12260 39.973...704210101580042101015800158Census Tract 158G5020S5802180+39.9735773-075.129432710486
70POLYGON ((-75.11997 39.97592, -75.11977 39.976...714210101600042101016000160Census Tract 160G5020S7208390+39.9793809-075.123190310487
71POLYGON ((-75.12242 39.98701, -75.12292 39.987...724210101610042101016100161Census Tract 161G5020S7075860+39.9844571-075.127525010488
72POLYGON ((-75.14284 39.98620, -75.14350 39.986...734210101620042101016200162Census Tract 162G5020S3649830+39.9840197-075.138421710489
73POLYGON ((-75.13952 39.98652, -75.13957 39.986...744210101630042101016300163Census Tract 163G5020S5722260+39.9885061-075.133915610490
74POLYGON ((-75.13952 39.98652, -75.13935 39.987...754210101640042101016400164Census Tract 164G5020S4850260+39.9896437-075.143166510491
75POLYGON ((-75.15274 39.99204, -75.15283 39.991...764210101650042101016500165Census Tract 165G5020S3947130+39.9890550-075.149172310492
76POLYGON ((-75.15092 39.98561, -75.15020 39.985...774210101660042101016600166Census Tract 166G5020S2611330+39.9890491-075.153606210493
77POLYGON ((-75.17226 39.98999, -75.17214 39.989...784210101680042101016800168Census Tract 168G5020S5813010+39.9917820-075.167654010496
78POLYGON ((-75.17708 39.92022, -75.17637 39.920...79421010039014210100390139.01Census Tract 39.01G5020S4203970+39.9238262-075.173285410381
79POLYGON ((-75.18600 39.99013, -75.18590 39.990...804210101690242101016902169.02Census Tract 169.02G5020S5637000+39.9939857-075.183193410498
80POLYGON ((-75.17117 39.99417, -75.17112 39.994...814210101690142101016901169.01Census Tract 169.01G5020S5129070+39.9930523-075.175839410497
81POLYGON ((-75.19134 40.00791, -75.19052 40.008...824210102070042101020700207Census Tract 207G5020S142827499543+40.0126929-075.194486710533
82POLYGON ((-75.18251 40.02533, -75.18196 40.025...834210102080042101020800208Census Tract 208G5020S8806470+40.0213151-075.193614010534
83POLYGON ((-75.21465 40.01787, -75.21431 40.017...844210102090042101020900209Census Tract 209G5020S50995335428+40.0186576-075.208979510535
84POLYGON ((-75.21951 40.02186, -75.21940 40.021...854210102100042101021000210Census Tract 210G5020S85822355719+40.0244730-075.215104510536
85POLYGON ((-75.20876 40.03111, -75.20880 40.031...864210102110042101021100211Census Tract 211G5020S5403130+40.0264564-075.206529310537
86POLYGON ((-75.20876 40.03111, -75.20872 40.031...874210102120042101021200212Census Tract 212G5020S5157050+40.0348390-075.212533710538
87POLYGON ((-75.22585 40.03352, -75.22537 40.032...884210102130042101021300213Census Tract 213G5020S5388760+40.0322339-075.218117510539
88POLYGON ((-75.22671 40.02536, -75.22614 40.025...894210102140042101021400214Census Tract 214G5020S60713856535+40.0279290-075.224082710540
89POLYGON ((-75.22746 40.03047, -75.22679 40.030...904210102150042101021500215Census Tract 215G5020S100327940236+40.0350417-075.228824910541
90POLYGON ((-75.24481 40.04580, -75.24487 40.045...914210102160042101021600216Census Tract 216G5020S1991850111706+40.0436758-075.240398510542
91POLYGON ((-75.17771 40.03655, -75.17876 40.035...924210102410042101024100241Census Tract 241G5020S4078550+40.0332734-075.175917510554
92POLYGON ((-75.16456 40.02845, -75.16436 40.028...934210102420042101024200242Census Tract 242G5020S5320600+40.0285110-075.169708610555
93POLYGON ((-75.16448 40.02131, -75.16459 40.021...944210102430042101024300243Census Tract 243G5020S6790350+40.0215855-075.171037610556
94POLYGON ((-75.16058 40.02673, -75.16098 40.027...954210102440042101024400244Census Tract 244G5020S4211890+40.0248284-075.163892510557
95POLYGON ((-75.16166 40.02793, -75.16143 40.027...964210102450042101024500245Census Tract 245G5020S8010010+40.0333286-075.162046310558
96POLYGON ((-75.17638 40.03774, -75.17615 40.037...974210102460042101024600246Census Tract 246G5020S6212640+40.0409623-075.172901610559
97POLYGON ((-75.16208 40.03817, -75.16127 40.038...984210102470042101024700247Census Tract 247G5020S9412660+40.0417034-075.164531110560
98POLYGON ((-75.16885 40.04796, -75.16927 40.048...994210102480042101024800248Census Tract 248G5020S3192630+40.0468442-075.166881810561
99POLYGON ((-75.15807 40.04747, -75.15806 40.047...1004210102490042101024900249Census Tract 249G5020S3251980+40.0511009-075.160116710562
100POLYGON ((-75.17573 40.04134, -75.17336 40.043...1014210102520042101025200252Census Tract 252G5020S9524230+40.0468352-075.177158810563
101POLYGON ((-75.18392 40.04922, -75.18376 40.048...1024210102530042101025300253Census Tract 253G5020S5812980+40.0542198-075.182220010564
102POLYGON ((-75.17515 40.05685, -75.17476 40.057...1034210102540042101025400254Census Tract 254G5020S7697600+40.0604202-075.176071810565
103POLYGON ((-75.17916 40.06333, -75.17842 40.064...1044210102550042101025500255Census Tract 255G5020S7666030+40.0625796-075.184064010566
104POLYGON ((-75.19188 40.06127, -75.19129 40.060...1054210102560042101025600256Census Tract 256G5020S8639971979+40.0683411-075.188302510567
105POLYGON ((-75.14169 40.02076, -75.14159 40.020...1064210102830042101028300283Census Tract 283G5020S6730670+40.0260505-075.143852510597
106POLYGON ((-75.13571 40.02392, -75.13555 40.026...1074210102840042101028400284Census Tract 284G5020S4924510+40.0251577-075.138128710598
107POLYGON ((-75.13527 40.02919, -75.13541 40.027...1084210102850042101028500285Census Tract 285G5020S2670060+40.0287154-075.133735910599
108POLYGON ((-75.12197 40.03373, -75.12223 40.033...1094210102860042101028600286Census Tract 286G5020S7178450+40.0285757-075.127644810600
109POLYGON ((-75.12882 40.02450, -75.13037 40.024...1104210102870042101028700287Census Tract 287G5020S3409720+40.0218194-075.131440210601
110POLYGON ((-75.12549 40.02504, -75.12587 40.024...1114210102880042101028800288Census Tract 288G5020S4420010+40.0222841-075.124056210602
111POLYGON ((-75.11321 40.03645, -75.11403 40.035...1124210102900042101029000290Census Tract 290G5020S81813320001+40.0296096-075.116605810605
112POLYGON ((-75.10460 40.02979, -75.10437 40.029...1134210102910042101029100291Census Tract 291G5020S13275500+40.0361323-075.107459410606
113POLYGON ((-75.10613 40.02930, -75.10643 40.029...1144210102920042101029200292Census Tract 292G5020S173284728953+40.0249561-075.102158010607
114POLYGON ((-75.09500 40.00999, -75.09487 40.009...1154210102930042101029300293Census Tract 293G5020S6856410+40.0137540-075.091765510608
115POLYGON ((-75.09007 40.00429, -75.09005 40.004...1164210102940042101029400294Census Tract 294G5020S6476470+40.0094789-075.085472110609
116POLYGON ((-75.06741 40.02012, -75.06752 40.020...1174210102980042101029800298Census Tract 298G5020S6491550+40.0159529-075.067801310610
117POLYGON ((-75.04135 40.06474, -75.04142 40.064...1184210103330042101033300333Census Tract 333G5020S10115660+40.0550147-075.044055810644
118POLYGON ((-75.04483 40.05900, -75.04482 40.059...1194210103340042101033400334Census Tract 334G5020S12184340+40.0535052-075.052961010645
119POLYGON ((-75.05947 40.05226, -75.05887 40.052...1204210103350042101033500335Census Tract 335G5020S9427930+40.0546014-075.064867710646
120POLYGON ((-75.05594 40.05600, -75.05535 40.056...1214210103360042101033600336Census Tract 336G5020S11536390+40.0614785-075.059235010647
121POLYGON ((-75.06580 40.06781, -75.06736 40.068...1224210103380042101033800338Census Tract 338G5020S14002200+40.0626481-075.073644010650
122POLYGON ((-75.09495 40.06796, -75.09322 40.066...1234210103390042101033900339Census Tract 339G5020S11411560+40.0685560-075.087341810651
123POLYGON ((-75.06756 40.07514, -75.06756 40.075...1244210103400042101034000340Census Tract 340G5020S763893729+40.0711759-075.073500710652
124POLYGON ((-75.07626 40.08061, -75.07712 40.081...1254210103410042101034100341Census Tract 341G5020S13332670+40.0763415-075.080693810653
125POLYGON ((-75.06698 40.07628, -75.06618 40.077...1264210103420042101034200342Census Tract 342G5020S10007680+40.0825947-075.072158510654
126POLYGON ((-75.05636 40.08766, -75.05631 40.087...12742101980200421019802009802Census Tract 9802G5020S5200674250845+40.0714709-075.044391010710
127POLYGON ((-75.04609 40.08385, -75.04149 40.087...1284210103440042101034400344Census Tract 344G5020S339917113905+40.0943325-075.056441910655
128POLYGON ((-75.01953 40.06559, -75.01947 40.065...1294210103460042101034600346Census Tract 346G5020S18536695746+40.0708314-075.020726410658
129POLYGON ((-75.24749 39.91925, -75.24746 39.919...130421010064004210100640064Census Tract 64G5020S64536816097+39.9251805-075.242839610397
130POLYGON ((-75.23666 39.93355, -75.23672 39.933...131421010065004210100650065Census Tract 65G5020S111128329425+39.9330955-075.231840610398
131POLYGON ((-75.22415 39.92980, -75.22278 39.930...132421010066004210100660066Census Tract 66G5020S6512440+39.9293155-075.229842510399
132POLYGON ((-74.96172 40.09772, -74.96179 40.097...1334210103630142101036301363.01Census Tract 363.01G5020S232273266075+40.0895349-074.966738710681
133POLYGON ((-74.97780 40.10710, -74.97381 40.110...1344210103640042101036400364Census Tract 364G5020S45011108014+40.1127747-074.978913710684
134POLYGON ((-75.14147 39.95171, -75.14150 39.951...1354210103660042101036600366Census Tract 366G5020S10043131426278+39.9470272-075.140447210687
135POLYGON ((-75.00888 40.05866, -75.00880 40.058...1364210103480342101034803348.03Census Tract 348.03G5020S12715338021+40.0619427-075.002370510663
136POLYGON ((-75.02543 40.06566, -75.02587 40.065...1374210103470242101034702347.02Census Tract 347.02G5020S10162060+40.0570427-075.028328810660
137POLYGON ((-74.97517 40.08998, -74.97607 40.090...1384210103620242101036202362.02Census Tract 362.02G5020S11161152329+40.0838623-074.978180510679
138POLYGON ((-75.17772 39.91765, -75.17771 39.917...139421010038004210100380038Census Tract 38G5020S10891540+39.9184658-075.183132310380
139POLYGON ((-75.24001 39.95588, -75.23991 39.956...140421010083024210100830283.02Census Tract 83.02G5020S4252340+39.9566981-075.241437810416
140POLYGON ((-75.13012 39.99458, -75.12872 39.993...1414210101760242101017602176.02Census Tract 176.02G5020S4004580+39.9967182-075.130552810507
141POLYGON ((-75.15034 39.94374, -75.15043 39.943...142421010010024210100100210.02Census Tract 10.02G5020S4716620+39.9450045-075.146619310349
142POLYGON ((-75.15313 39.94579, -75.15318 39.945...143421010010014210100100110.01Census Tract 10.01G5020S2293990+39.9456722-075.151602010348
143POLYGON ((-75.16333 39.95334, -75.16319 39.953...14442101000402421010004024.02Census Tract 4.02G5020S3036800+39.9532973-075.168695210339
144POLYGON ((-75.17299 39.95464, -75.17295 39.954...14542101000401421010004014.01Census Tract 4.01G5020S21476614981+39.9541871-075.175808210338
145POLYGON ((-75.21048 40.00225, -75.21114 40.002...1464210101220442101012204122.04Census Tract 122.04G5020S84929056473+40.0009407-075.212076910457
146POLYGON ((-75.20985 40.00901, -75.21077 40.008...1474210101220342101012203122.03Census Tract 122.03G5020S2261080+40.0074668-075.209352610456
147POLYGON ((-75.17464 39.97083, -75.17453 39.971...1484210101360242101013602136.02Census Tract 136.02G5020S2347320+39.9715714-075.179809710466
148POLYGON ((-75.03666 40.07860, -75.03676 40.079...1494210103450142101034501345.01Census Tract 345.01G5020S4474690+40.0749091-075.039208910656
149POLYGON ((-75.04652 40.08352, -75.04751 40.082...1504210103450242101034502345.02Census Tract 345.02G5020S10092690+40.0814446-075.038381110657
150POLYGON ((-75.15383 39.94261, -75.15377 39.942...151421010011024210100110211.02Census Tract 11.02G5020S2040620+39.9442654-075.156696010351
151POLYGON ((-75.15309 39.94600, -75.15303 39.946...15242101000902421010009029.02Census Tract 9.02G5020S1551640+39.9471596-075.156638910347
152POLYGON ((-75.16427 39.94935, -75.16434 39.949...15342101000901421010009019.01Census Tract 9.01G5020S1055100+39.9478866-075.162300410346
153POLYGON ((-75.16690 39.99870, -75.16657 40.000...1544210101720142101017201172.01Census Tract 172.01G5020S2629580+39.9993972-075.168614510501
154POLYGON ((-75.17077 40.00076, -75.17135 40.000...1554210101720242101017202172.02Census Tract 172.02G5020S2906100+39.9986670-075.174206110502
155POLYGON ((-75.12698 40.03916, -75.12681 40.039...1564210102740142101027401274.01Census Tract 274.01G5020S3266590+40.0386049-075.128649610586
156POLYGON ((-75.15548 39.99877, -75.15523 39.998...1574210102010142101020101201.01Census Tract 201.01G5020S4835770+40.0036824-075.155307210526
157POLYGON ((-75.15243 40.01322, -75.15307 40.014...1584210102010242101020102201.02Census Tract 201.02G5020S3731250+40.0111415-075.154567610527
158POLYGON ((-75.07783 40.03901, -75.07740 40.039...1594210103110142101031101311.01Census Tract 311.01G5020S3496490+40.0422496-075.078544910622
159POLYGON ((-75.07900 40.03781, -75.07862 40.038...1604210103110242101031102311.02Census Tract 311.02G5020S3979730+40.0370850-075.083372910623
160POLYGON ((-75.12755 40.00505, -75.12787 40.005...1614210101950242101019502195.02Census Tract 195.02G5020S3703020+40.0034030-075.130044510521
161POLYGON ((-75.13441 39.99922, -75.13383 39.999...1624210101950142101019501195.01Census Tract 195.01G5020S3938830+40.0004303-075.131622710520
162POLYGON ((-75.11663 40.01697, -75.11748 40.015...1634210102890142101028901289.01Census Tract 289.01G5020S5986550+40.0171008-075.115182010603
163POLYGON ((-75.11285 40.02703, -75.11324 40.026...1644210102890242101028902289.02Census Tract 289.02G5020S7722946267+40.0216105-075.111687710604
164POLYGON ((-75.03799 40.03781, -75.03739 40.038...1654210103310142101033101331.01Census Tract 331.01G5020S4869540+40.0403093-075.037950510641
165POLYGON ((-75.02185 40.04369, -75.02175 40.043...1664210103310242101033102331.02Census Tract 331.02G5020S7182720+40.0451050-075.027286910642
166POLYGON ((-75.04254 40.03773, -75.04420 40.038...1674210103150142101031501315.01Census Tract 315.01G5020S5872420+40.0365919-075.048164210628
167POLYGON ((-75.10396 40.04083, -75.10463 40.040...1684210103050142101030501305.01Census Tract 305.01G5020S3773750+40.0428163-075.099435110615
168POLYGON ((-75.10457 40.05057, -75.10465 40.050...1694210103050242101030502305.02Census Tract 305.02G5020S6992460+40.0457206-075.104661910616
169POLYGON ((-75.25980 39.97482, -75.25981 39.974...170421010098024210100980298.02Census Tract 98.02G5020S6110260+39.9745879-075.267903710433
170POLYGON ((-75.11344 39.97706, -75.11333 39.976...1714210101800142101018001180.01Census Tract 180.01G5020S3873830+39.9810569-075.112800010512
171POLYGON ((-75.12692 39.99184, -75.12711 39.991...1724210101770242101017702177.02Census Tract 177.02G5020S4892580+39.9950621-075.123139910509
172POLYGON ((-75.11099 39.99781, -75.11153 39.997...1734210101770142101017701177.01Census Tract 177.01G5020S2410530+39.9964470-075.116752610508
173POLYGON ((-75.04930 40.11221, -75.04939 40.112...1744210103560242101035602356.02Census Tract 356.02G5020S13948681863+40.1079419-075.048060110671
174POLYGON ((-75.02889 40.10255, -75.02840 40.103...1754210103570142101035701357.01Census Tract 357.01G5020S598625718+40.1095846-075.028681110672
175POLYGON ((-75.04386 40.11601, -75.04422 40.115...1764210103570242101035702357.02Census Tract 357.02G5020S15591490+40.1130914-075.037431610673
176POLYGON ((-75.03024 40.10340, -75.03300 40.105...1774210103560142101035601356.01Census Tract 356.01G5020S202970712498+40.0973908-075.038818410670
177POLYGON ((-75.18672 39.99022, -75.18706 39.988...1784210101510142101015101151.01Census Tract 151.01G5020S1930720+39.9869632-075.185750210480
178POLYGON ((-75.17425 39.98757, -75.17403 39.988...1794210101510242101015102151.02Census Tract 151.02G5020S5565700+39.9861430-075.179428010481
179POLYGON ((-75.02010 40.12637, -75.01780 40.125...1804210103650142101036501365.01Census Tract 365.01G5020S18160937168+40.1290877-075.012007710685
180POLYGON ((-75.24257 39.87296, -75.24229 39.872...18142101980400421019804009804Census Tract 9804G5020S292399851364+39.8798897-075.233741410712
181POLYGON ((-75.17248 39.96564, -75.17256 39.965...1824210101340242101013402134.02Census Tract 134.02G5020S2386120+39.9653623-075.169032610463
182POLYGON ((-75.17240 39.96597, -75.17227 39.966...1834210101340142101013401134.01Census Tract 134.01G5020S1640580+39.9659574-075.175250710462
183POLYGON ((-75.18160 39.96919, -75.18153 39.969...1844210101360142101013601136.01Census Tract 136.01G5020S1676250+39.9689697-075.178577410465
184POLYGON ((-75.08141 39.99327, -75.08093 39.993...1854210103790042101037900379Census Tract 379G5020S13745240+39.9910899-075.092715810696
185POLYGON ((-75.09266 40.00790, -75.09360 40.007...1864210103820042101038200382Census Tract 382G5020S182867125840+39.9963741-075.097364310699
186POLYGON ((-75.07369 40.00712, -75.07340 40.007...1874210103800042101038000380Census Tract 380G5020S8746020+40.0052279-075.080784510697
187POLYGON ((-75.02130 40.03380, -75.02141 40.033...1884210103810042101038100381Census Tract 381G5020S33350291629584+40.0189334-075.039956410698
188POLYGON ((-75.22845 40.06255, -75.22689 40.061...1894210103840042101038400384Census Tract 384G5020S25467850+40.0714163-075.233256810701
189POLYGON ((-75.14147 39.95171, -75.14146 39.952...19042101000100421010001001Census Tract 1G5020S7049090+39.9523827-075.146662810335
190POLYGON ((-75.16238 39.95765, -75.16269 39.956...19142101000200421010002002Census Tract 2G5020S3824780+39.9553999-075.156977510336
191POLYGON ((-75.17820 39.95981, -75.17908 39.959...19242101000300421010003003Census Tract 3G5020S548342356+39.9568780-075.171665510337
192POLYGON ((-75.16340 39.95335, -75.16366 39.953...19342101000500421010005005Census Tract 5G5020S4287830+39.9519534-075.158177610340
193POLYGON ((-75.16394 39.95087, -75.16401 39.950...19442101000600421010006006Census Tract 6G5020S1726550+39.9493845-075.158335410341
194POLYGON ((-75.17349 39.95206, -75.17417 39.952...19542101000700421010007007Census Tract 7G5020S2466827087+39.9510463-075.172914310342
195POLYGON ((-75.18703 39.93039, -75.18627 39.930...196421010032004210100320032Census Tract 32G5020S4917900+39.9333011-075.185418710375
196POLYGON ((-75.20522 39.93833, -75.20330 39.937...197421010033004210100330033Census Tract 33G5020S106235472863+39.9384405-075.195825310376
197POLYGON ((-75.19032 39.92169, -75.19016 39.921...198421010036004210100360036Census Tract 36G5020S9645390+39.9279255-075.192020610377
198POLYGON ((-75.17584 39.92643, -75.17574 39.926...199421010037014210100370137.01Census Tract 37.01G5020S3556190+39.9276728-075.180665410378
199POLYGON ((-75.18170 39.92330, -75.18135 39.923...200421010037024210100370237.02Census Tract 37.02G5020S2474130+39.9245283-075.182435410379
200POLYGON ((-75.15560 39.92002, -75.15550 39.920...201421010041014210100410141.01Census Tract 41.01G5020S3740000+39.9229611-075.158974110385
201POLYGON ((-75.17025 39.92189, -75.17031 39.921...202421010040024210100400240.02Census Tract 40.02G5020S3448370+39.9188943-075.167416010384
202POLYGON ((-75.17774 39.91758, -75.17801 39.916...203421010039024210100390239.02Census Tract 39.02G5020S4525960+39.9167178-075.174411910382
203POLYGON ((-75.16943 39.92560, -75.16950 39.925...204421010040014210100400140.01Census Tract 40.01G5020S3149520+39.9238035-075.166210210383
204POLYGON ((-75.15775 39.91501, -75.15749 39.914...205421010041024210100410241.02Census Tract 41.02G5020S3918540+39.9179425-075.160062910386
205POLYGON ((-75.15656 39.91558, -75.15664 39.915...206421010042024210100420242.02Census Tract 42.02G5020S4533430+39.9168570-075.151628410388
206POLYGON ((-75.14782 39.91901, -75.14788 39.919...207421010042014210100420142.01Census Tract 42.01G5020S3616790+39.9219554-075.151264010387
207POLYGON ((-75.21445 39.94893, -75.21399 39.948...208421010079004210100790079Census Tract 79G5020S3779500+39.9504630-075.218257010410
208POLYGON ((-75.22524 39.94776, -75.22495 39.947...209421010080004210100800080Census Tract 80G5020S4304710+39.9506613-075.226842310411
209POLYGON ((-75.24005 39.94593, -75.23996 39.946...210421010082004210100820082Census Tract 82G5020S83233411136+39.9491574-075.244449410414
210MULTIPOLYGON (((-75.12709 39.99200, -75.12842 ...2114210101760142101017601176.01Census Tract 176.01G5020S5791270+39.9939260-075.134344810506
211POLYGON ((-75.24403 39.96237, -75.24471 39.962...212421010083014210100830183.01Census Tract 83.01G5020S5105576713+39.9577810-075.246738410415
212POLYGON ((-75.24014 39.95526, -75.23817 39.955...213421010084004210100840084Census Tract 84G5020S5017650+39.9579899-075.235468110417
213POLYGON ((-75.22979 39.96061, -75.23025 39.960...214421010085004210100850085Census Tract 85G5020S6214450+39.9568821-075.226538910418
214POLYGON ((-75.19358 39.95870, -75.19364 39.958...215421010090004210100900090Census Tract 90G5020S4363190+39.9595116-075.190624510425
215POLYGON ((-75.19358 39.95870, -75.19360 39.958...216421010091004210100910091Census Tract 91G5020S4255730+39.9594179-075.197724510426
216POLYGON ((-75.20236 39.96287, -75.20398 39.962...217421010092004210100920092Census Tract 92G5020S5120090+39.9601608-075.207472310427
217POLYGON ((-75.22005 39.96383, -75.22098 39.964...218421010093004210100930093Census Tract 93G5020S4024750+39.9622914-075.224022510428
218POLYGON ((-75.22059 39.92906, -75.22111 39.929...219421010067004210100670067Census Tract 67G5020S10014670+39.9242475-075.224281610400
219POLYGON ((-75.21931 39.92802, -75.21768 39.927...220421010069004210100690069Census Tract 69G5020S704352102803+39.9306204-075.214652610401
220POLYGON ((-75.21706 39.93474, -75.21652 39.935...221421010070004210100700070Census Tract 70G5020S4690470+39.9351850-075.221477010402
221POLYGON ((-75.22890 39.94686, -75.22960 39.947...222421010072004210100720072Census Tract 72G5020S5026140+39.9446370-075.233216810405
222POLYGON ((-75.21882 39.94412, -75.21914 39.944...223421010073004210100730073Census Tract 73G5020S3872010+39.9448185-075.223291610406
223POLYGON ((-75.21315 39.93746, -75.21297 39.937...224421010074004210100740074Census Tract 74G5020S6759300+39.9408575-075.214306710407
224POLYGON ((-75.20714 39.94979, -75.20805 39.949...225421010077004210100770077Census Tract 77G5020S3222600+39.9463523-075.208258410408
225POLYGON ((-75.21714 39.94375, -75.21562 39.943...226421010078004210100780078Census Tract 78G5020S4274040+39.9464580-075.216263710409
226POLYGON ((-75.24834 39.97503, -75.24823 39.975...2274210101150042101011500115Census Tract 115G5020S3704560+39.9773687-075.251830310449
227POLYGON ((-75.23403 39.99475, -75.23413 39.995...2284210101170042101011700117Census Tract 117G5020S6540190+39.9919070-075.240437110450
228POLYGON ((-75.22890 39.98045, -75.22879 39.980...2294210101180042101011800118Census Tract 118G5020S9151290+39.9852889-075.235739510451
229POLYGON ((-75.22567 39.99148, -75.22657 39.991...2304210101190042101011900119Census Tract 119G5020S6911110+39.9861142-075.228842910452
230POLYGON ((-75.22568 39.99326, -75.22568 39.994...2314210101200042101012000120Census Tract 120G5020S6006810+39.9955323-075.229746610453
231POLYGON ((-75.22568 39.99326, -75.22568 39.993...2324210101210042101012100121Census Tract 121G5020S8767965378+39.9964998-075.222379510454
232POLYGON ((-75.18081 39.96136, -75.18060 39.961...2334210101250042101012500125Census Tract 125G5020S86481049075+39.9613701-075.172083710458
233POLYGON ((-75.15215 39.96246, -75.15205 39.962...2344210101310042101013100131Census Tract 131G5020S3221570+39.9651312-075.150738110459
234POLYGON ((-75.15302 39.96856, -75.15455 39.968...2354210101320042101013200132Census Tract 132G5020S4266710+39.9662042-075.157133510460
235POLYGON ((-75.16131 39.96290, -75.16126 39.963...2364210101330042101013300133Census Tract 133G5020S3579320+39.9666126-075.162945510461
236POLYGON ((-75.17211 39.96729, -75.17135 39.967...2374210101350042101013500135Census Tract 135G5020S4048910+39.9693564-075.170036710464
237POLYGON ((-75.18898 39.97982, -75.18906 39.979...2384210101370042101013700137Census Tract 137G5020S5897380+39.9772752-075.184232310467
238POLYGON ((-75.17662 40.00610, -75.17543 40.006...2394210101700042101017000170Census Tract 170G5020S157037650400+40.0078614-075.183420410499
239POLYGON ((-75.17689 40.00595, -75.17864 40.005...2404210101710042101017100171Census Tract 171G5020S11408820+40.0027449-075.176324810500
240POLYGON ((-75.15602 39.99884, -75.15680 39.998...2414210101730042101017300173Census Tract 173G5020S8745860+39.9985707-075.160933710503
241POLYGON ((-75.14746 39.99467, -75.14708 39.996...2424210101740042101017400174Census Tract 174G5020S3539850+39.9962138-075.150358610504
242POLYGON ((-75.13930 40.00306, -75.13988 40.002...2434210101750042101017500175Census Tract 175G5020S7199156252+39.9979150-075.142984210505
243POLYGON ((-75.11077 39.99153, -75.11023 39.991...2444210101780042101017800178Census Tract 178G5020S6629050+39.9913734-075.117306310510
244POLYGON ((-75.11561 39.98356, -75.11525 39.983...2454210101790042101017900179Census Tract 179G5020S7140080+39.9870535-075.113934010511
245POLYGON ((-75.06802 39.98314, -75.06588 39.984...2464210101830042101018300183Census Tract 183G5020S1834680185387+39.9956035-075.074622510514
246POLYGON ((-75.06835 40.00693, -75.06851 40.007...2474210101840042101018400184Census Tract 184G5020S1285745949471+39.9996644-075.063736310515
247POLYGON ((-75.09843 39.99908, -75.09898 39.999...2484210101880042101018800188Census Tract 188G5020S6632880+39.9973659-075.105829610516
248POLYGON ((-75.22430 40.05119, -75.22716 40.052...2494210102170042101021700217Census Tract 217G5020S15595760+40.0450277-075.223945110543
249POLYGON ((-75.22790 40.06346, -75.22791 40.063...2504210102180042101021800218Census Tract 218G5020S9960880+40.0574759-075.232435310544
250POLYGON ((-75.25415 40.04723, -75.25384 40.046...2514210102190042101021900219Census Tract 219G5020S141006951091+40.0505829-075.247003310545
251POLYGON ((-75.25501 40.06271, -75.25669 40.061...2524210102200042101022000220Census Tract 220G5020S294401899558+40.0562177-075.252009210546
252POLYGON ((-75.22445 40.07912, -75.22480 40.079...25342101980100421019801009801Census Tract 9801G5020S5476589240667+40.0509585-075.214916010709
253POLYGON ((-75.20951 40.06645, -75.20675 40.064...2544210102310042101023100231Census Tract 231G5020S7328031270+40.0666637-075.203851410547
254POLYGON ((-75.20275 40.04351, -75.20298 40.043...2554210102350042101023500235Census Tract 235G5020S7754300+40.0394435-075.200792510548
255POLYGON ((-75.19800 40.03948, -75.19613 40.037...2564210102360042101023600236Census Tract 236G5020S9780960+40.0427145-075.194694010549
256POLYGON ((-75.18392 40.04922, -75.18397 40.049...2574210102370042101023700237Census Tract 237G5020S10729730+40.0487394-075.188606910550
257POLYGON ((-75.17863 40.04046, -75.17871 40.040...2584210102380042101023800238Census Tract 238G5020S7816300+40.0389370-075.182703810551
258POLYGON ((-75.18823 40.03119, -75.18821 40.031...2594210102390042101023900239Census Tract 239G5020S4860372704+40.0339713-075.187511510552
259POLYGON ((-75.17473 40.02763, -75.17463 40.027...2604210102400042101024000240Census Tract 240G5020S6170800+40.0280807-075.179462310553
260POLYGON ((-75.19879 40.06868, -75.19868 40.068...2614210102570042101025700257Census Tract 257G5020S7482050+40.0724586-075.196270810568
261POLYGON ((-75.18265 40.06942, -75.18252 40.069...2624210102580042101025800258Census Tract 258G5020S5867190+40.0739801-075.182311310569
262POLYGON ((-75.17191 40.08200, -75.17294 40.082...2634210102590042101025900259Census Tract 259G5020S5494150+40.0799255-075.175976210570
263POLYGON ((-75.17394 40.07432, -75.17355 40.074...2644210102600042101026000260Census Tract 260G5020S5434330+40.0761235-075.169456010571
264POLYGON ((-75.16899 40.07148, -75.16935 40.071...2654210102610042101026100261Census Tract 261G5020S6493640+40.0704645-075.175518910572
265POLYGON ((-75.17145 40.06300, -75.17118 40.062...2664210102620042101026200262Census Tract 262G5020S5559580+40.0664940-075.169217610573
266POLYGON ((-75.02119 40.06170, -75.02131 40.061...2674210103480142101034801348.01Census Tract 348.01G5020S13859635188+40.0545325-075.016310410661
267POLYGON ((-75.15411 40.06366, -75.15359 40.064...2684210102630242101026302263.02Census Tract 263.02G5020S7041120+40.0687425-075.157194510575
268POLYGON ((-75.16596 40.05983, -75.16577 40.059...2694210102640042101026400264Census Tract 264G5020S7968190+40.0625462-075.162006610576
269POLYGON ((-75.15649 40.05453, -75.15556 40.054...2704210102650042101026500265Census Tract 265G5020S5459610+40.0587255-075.154692110577
270POLYGON ((-75.15233 40.06891, -75.15260 40.067...2714210102660042101026600266Census Tract 266G5020S9139820+40.0634828-075.147326610578
271POLYGON ((-75.14858 40.05139, -75.14701 40.051...2724210102670042101026700267Census Tract 267G5020S6438730+40.0547569-075.147924710579
272POLYGON ((-75.13655 40.06180, -75.13684 40.061...2734210102680042101026800268Census Tract 268G5020S7741740+40.0555270-075.139931210580
273POLYGON ((-75.07441 40.00959, -75.07237 40.010...2744210102990042101029900299Census Tract 299G5020S5914510+40.0131465-075.074714610611
274POLYGON ((-75.07726 40.01498, -75.07668 40.015...2754210103000042101030000300Census Tract 300G5020S9108540+40.0186719-075.078088010612
275POLYGON ((-75.09061 40.02576, -75.09113 40.025...2764210103010042101030100301Census Tract 301G5020S7251130+40.0204947-075.088504610613
276POLYGON ((-75.08536 40.03110, -75.08575 40.030...2774210103020042101030200302Census Tract 302G5020S9017100+40.0259863-075.082312810614
277POLYGON ((-75.09772 40.05454, -75.09781 40.054...2784210103060042101030600306Census Tract 306G5020S10077990+40.0504922-075.094378710617
278POLYGON ((-75.08747 40.06359, -75.09130 40.059...2794210103070042101030700307Census Tract 307G5020S6533090+40.0573133-075.088539010618
279POLYGON ((-75.08231 40.04884, -75.08210 40.049...2804210103080042101030800308Census Tract 308G5020S7957040+40.0547831-075.081905610619
280POLYGON ((-75.08838 40.03987, -75.08857 40.039...2814210103090042101030900309Census Tract 309G5020S6450140+40.0437632-075.085191410620
281POLYGON ((-75.06669 40.05055, -75.06605 40.051...2824210103100042101031000310Census Tract 310G5020S10634110+40.0497292-075.074454110621
282POLYGON ((-75.07053 40.03563, -75.07090 40.035...2834210103120042101031200312Census Tract 312G5020S4297360+40.0354204-075.077455010624
283POLYGON ((-75.06138 40.03816, -75.06155 40.038...2844210103130042101031300313Census Tract 313G5020S7111410+40.0393190-075.069814010625
284POLYGON ((-75.06433 40.03619, -75.06425 40.035...2854210103160042101031600316Census Tract 316G5020S7139530+40.0326126-075.059071710630
285POLYGON ((-75.06437 40.03632, -75.06445 40.036...2864210103170042101031700317Census Tract 317G5020S8816890+40.0306050-075.068398910631
286POLYGON ((-74.96443 40.11728, -74.96461 40.117...2874210103630342101036303363.03Census Tract 363.03G5020S25558610+40.1051833-074.970225010683
287POLYGON ((-75.02961 40.06813, -75.02966 40.068...2884210103470142101034701347.01Census Tract 347.01G5020S114819057+40.0645576-075.032978310659
288POLYGON ((-75.02119 40.06170, -75.02105 40.061...2894210103480242101034802348.02Census Tract 348.02G5020S12321828014+40.0687035-075.009730010662
289POLYGON ((-75.00616 40.05372, -75.00789 40.052...2904210103490042101034900349Census Tract 349G5020S19440400+40.0453848-075.009076810664
290POLYGON ((-74.97479 40.04932, -74.97500 40.049...2914210103510042101035100351Census Tract 351G5020S997442666018+40.0488411-074.985971610665
291POLYGON ((-74.98437 40.05779, -74.98429 40.057...2924210103520042101035200352Census Tract 352G5020S183826427863+40.0559122-074.990744310666
292POLYGON ((-74.98242 40.06552, -74.98242 40.065...2934210103530142101035301353.01Census Tract 353.01G5020S137522236973+40.0659313-074.993464610667
293POLYGON ((-75.15907 40.07353, -75.15876 40.073...2944210102630142101026301263.01Census Tract 263.01G5020S4063400+40.0728148-075.163716110574
294POLYGON ((-75.16485 39.94701, -75.16475 39.947...29542101000804421010008048.04Census Tract 8.04G5020S1454530+39.9485646-075.167756310345
295POLYGON ((-75.16534 39.94467, -75.16531 39.944...296421010012024210100120212.02Census Tract 12.02G5020S3085600+39.9459117-075.169947510353
296POLYGON ((-75.18639 39.94658, -75.18617 39.946...297421010012014210100120112.01Census Tract 12.01G5020S32755530728+39.9471666-075.179872110352
297POLYGON ((-75.17742 39.95050, -75.17747 39.950...29842101000803421010008038.03Census Tract 8.03G5020S1528200+39.9493748-075.174248910344
298POLYGON ((-75.20165 39.93757, -75.20215 39.937...29942101980900421019809009809Census Tract 9809G5020S172286983463789+39.9051799-075.217414510717
299POLYGON ((-75.14758 39.92521, -75.14749 39.925...300421010027024210100270227.02Census Tract 27.02G5020S3676730+39.9280114-075.149560610368
300POLYGON ((-75.16842 39.93047, -75.16815 39.931...301421010030024210100300230.02Census Tract 30.02G5020S2269510+39.9327263-075.171191510373
301POLYGON ((-75.16896 39.92804, -75.16882 39.928...302421010030014210100300130.01Census Tract 30.01G5020S2265470+39.9290640-075.171991210372
302POLYGON ((-75.16394 39.92947, -75.16472 39.928...303421010028024210100280228.02Census Tract 28.02G5020S3626900+39.9288001-075.161407310370
303POLYGON ((-75.13515 39.92863, -75.14138 39.929...30442101980700421019807009807Census Tract 9807G5020S59571471730038+39.9104684-075.143165610715
304POLYGON ((-75.15168 39.93038, -75.15160 39.930...305421010027014210100270127.01Census Tract 27.01G5020S2248400+39.9285526-075.153703310367
305POLYGON ((-75.17270 39.90868, -75.17285 39.907...30642101980600421019806009806Census Tract 9806G5020S12866240+39.9055378-075.170715110714
306POLYGON ((-75.04496 40.06511, -75.04616 40.065...3074210103370142101033701337.01Census Tract 337.01G5020S9736530+40.0672105-075.048298310648
307POLYGON ((-75.06923 40.07151, -75.06981 40.070...3084210103370242101033702337.02Census Tract 337.02G5020S10577980+40.0707532-075.057821210649
308POLYGON ((-75.05429 40.04446, -75.05493 40.043...3094210103150242101031502315.02Census Tract 315.02G5020S5781010+40.0392658-075.054869310629
309POLYGON ((-75.06496 40.04107, -75.06492 40.041...3104210103140142101031401314.01Census Tract 314.01G5020S5948490+40.0457134-075.066572810626
310POLYGON ((-75.06138 40.03816, -75.06104 40.037...3114210103140242101031402314.02Census Tract 314.02G5020S5641360+40.0432797-075.060286010627
311POLYGON ((-75.16340 39.98722, -75.16318 39.987...3124210101670142101016701167.01Census Tract 167.01G5020S2540460+39.9911965-075.161901710494
312POLYGON ((-75.15718 39.98642, -75.15711 39.986...3134210101670242101016702167.02Census Tract 167.02G5020S3551030+39.9904175-075.157817710495
313POLYGON ((-75.15810 40.04712, -75.15813 40.046...3144210102790142101027901279.01Census Tract 279.01G5020S4157800+40.0458879-075.154448210592
314POLYGON ((-75.15967 40.03508, -75.15782 40.033...3154210102790242101027902279.02Census Tract 279.02G5020S8897840+40.0374381-075.154308710593
315POLYGON ((-75.23110 39.94876, -75.23107 39.948...316421010081014210100810181.01Census Tract 81.01G5020S2437000+39.9483649-075.236050610412
316POLYGON ((-75.22343 39.94118, -75.22324 39.941...317421010071024210100710271.02Census Tract 71.02G5020S4157610+39.9409204-075.228251110404
317POLYGON ((-75.19952 39.95023, -75.19943 39.950...318421010088024210100880288.02Census Tract 88.02G5020S3909510+39.9529808-075.202789310424
318POLYGON ((-75.20576 39.94984, -75.20582 39.950...319421010087024210100870287.02Census Tract 87.02G5020S2835660+39.9538114-075.207043510422
319POLYGON ((-75.20942 39.95808, -75.20959 39.958...320421010087014210100870187.01Census Tract 87.01G5020S2595230+39.9535656-075.210498810421
320POLYGON ((-75.23080 39.95018, -75.23064 39.950...321421010081024210100810281.02Census Tract 81.02G5020S3625260+39.9522216-075.234558410413
321POLYGON ((-75.21896 39.95927, -75.21918 39.959...322421010086024210100860286.02Census Tract 86.02G5020S3691420+39.9569725-075.216703010420
322POLYGON ((-75.26120 39.97830, -75.26092 39.978...3234210103750042101037500375Census Tract 375G5020S10327021496+39.9840699-075.255192210692
323POLYGON ((-75.25593 39.97813, -75.25650 39.981...32442101980800421019808009808Census Tract 9808G5020S210669843823+39.9714517-075.262177010716
324POLYGON ((-75.10832 39.97939, -75.10820 39.979...3254210101800242101018002180.02Census Tract 180.02G5020S4397910+39.9836344-075.106709610513
325POLYGON ((-75.19701 39.95227, -75.19686 39.952...326421010088014210100880188.01Census Tract 88.01G5020S1846740+39.9539319-075.198447710423
326POLYGON ((-75.20759 40.00641, -75.20774 40.006...3274210101220142101012201122.01Census Tract 122.01G5020S3806892325+40.0034648-075.210638810455
327POLYGON ((-75.26927 39.98018, -75.27134 39.979...328421010098014210100980198.01Census Tract 98.01G5020S2979770+39.9775172-075.266597210432
328POLYGON ((-75.22028 39.93958, -75.22155 39.940...329421010071014210100710171.01Census Tract 71.01G5020S2532560+39.9381580-075.224998410403
329POLYGON ((-75.15446 39.93243, -75.15496 39.932...330421010028014210100280128.01Census Tract 28.01G5020S2229500+39.9289729-075.156831910369
330POLYGON ((-75.14148 40.02070, -75.14159 40.020...33142101980500421019805009805Census Tract 9805G5020S40196813468+40.0177581-075.144182010713
331POLYGON ((-75.17742 39.95050, -75.17733 39.950...33242101000801421010008018.01Census Tract 8.01G5020S9995812755+39.9497374-075.180405410343
332POLYGON ((-75.16477 39.94699, -75.16485 39.947...333421010011014210100110111.01Census Tract 11.01G5020S1740140+39.9449918-075.162524010350
333POLYGON ((-75.12403 40.03405, -75.12395 40.034...3344210102740242101027402274.02Census Tract 274.02G5020S5113600+40.0390702-075.125135210587
334POLYGON ((-75.21217 39.95288, -75.21216 39.952...335421010086014210100860186.01Census Tract 86.01G5020S2524820+39.9537341-075.216593010419
335POLYGON ((-74.99420 40.13152, -74.99745 40.128...3364210103650242101036502365.02Census Tract 365.02G5020S17331890+40.1235705-074.999352110686
336POLYGON ((-75.14161 39.95550, -75.14160 39.955...3374210103670042101036700367Census Tract 367G5020S8019690+39.9607248-075.143988510688
337POLYGON ((-75.15215 39.96246, -75.15276 39.962...3384210103760042101037600376Census Tract 376G5020S7173040+39.9599009-075.155165110693
338POLYGON ((-75.21539 40.07327, -75.21575 40.072...3394210103860042101038600386Census Tract 386G5020S330439832066+40.0582762-075.211091310703
339POLYGON ((-75.20733 40.07657, -75.20744 40.076...3404210103850042101038500385Census Tract 385G5020S13389412576+40.0757528-075.214623410702
340POLYGON ((-75.22797 40.08435, -75.22790 40.084...3414210103870042101038700387Census Tract 387G5020S205321222241+40.0833122-075.213077010704
341POLYGON ((-75.19289 40.06267, -75.19412 40.064...3424210103880042101038800388Census Tract 388G5020S13835304751+40.0571595-075.198243810705
342POLYGON ((-75.17520 40.05678, -75.17526 40.056...3434210103890042101038900389Census Tract 389G5020S12805510+40.0543431-075.168276410706
343POLYGON ((-75.20724 40.01102, -75.20732 40.010...34442101980000421019800009800Census Tract 9800G5020S89224781508835+39.9880961-075.196777310708
344POLYGON ((-75.13409 40.06035, -75.13439 40.060...3454210102690042101026900269Census Tract 269G5020S6146860+40.0556007-075.132404810581
345POLYGON ((-75.13294 40.04607, -75.13212 40.046...3464210102700042101027000270Census Tract 270G5020S6422160+40.0493231-075.133151210582
346POLYGON ((-75.12334 40.04657, -75.12326 40.046...3474210102710042101027100271Census Tract 271G5020S37227839344+40.0484793-075.126361110583
347POLYGON ((-75.11315 40.04364, -75.11210 40.043...3484210102720042101027200272Census Tract 272G5020S679046794+40.0472339-075.118088910584
348POLYGON ((-75.11223 40.04332, -75.11219 40.043...3494210102730042101027300273Census Tract 273G5020S93801114079+40.0377547-075.118943210585
349POLYGON ((-75.13477 40.04171, -75.13478 40.041...3504210102750042101027500275Census Tract 275G5020S6068250+40.0400497-075.132270710588
350POLYGON ((-75.14311 40.04648, -75.14327 40.045...3514210102760042101027600276Census Tract 276G5020S6637450+40.0429404-075.139277110589
351POLYGON ((-75.14384 40.05078, -75.14464 40.050...3524210102770042101027700277Census Tract 277G5020S5424040+40.0505444-075.151226710590
352POLYGON ((-75.14290 40.04750, -75.14345 40.047...3534210102780042101027800278Census Tract 278G5020S7247250+40.0425278-075.147162610591
353POLYGON ((-75.15385 40.02217, -75.15336 40.022...3544210102800042101028000280Census Tract 280G5020S7183460+40.0261190-075.154648110594
354POLYGON ((-75.14658 40.03065, -75.14652 40.030...3554210102810042101028100281Census Tract 281G5020S5035410+40.0304473-075.149129910595
355POLYGON ((-75.13507 40.03129, -75.13497 40.032...3564210102820042101028200282Census Tract 282G5020S8558120+40.0348704-075.140332710596
356POLYGON ((-75.07123 40.03458, -75.07110 40.034...3574210103180042101031800318Census Tract 318G5020S4642900+40.0311021-075.076989210632
357POLYGON ((-75.06716 40.01983, -75.06701 40.019...3584210103190042101031900319Census Tract 319G5020S7732850+40.0230600-075.064898810633
358POLYGON ((-75.05406 40.03119, -75.05480 40.030...3594210103200042101032000320Census Tract 320G5020S6815490+40.0271751-075.054867410634
359POLYGON ((-75.05275 40.01616, -75.05341 40.016...3604210103210042101032100321Census Tract 321G5020S5529280+40.0170175-075.058975210635
360POLYGON ((-75.04538 40.01988, -75.04574 40.020...3614210103230042101032300323Census Tract 323G5020S6000430+40.0210898-075.051527010636
361POLYGON ((-75.03863 40.02425, -75.03933 40.025...3624210103250042101032500325Census Tract 325G5020S8393190+40.0263918-075.045256110637
362POLYGON ((-75.03311 40.02751, -75.03353 40.028...3634210103260042101032600326Census Tract 326G5020S8098980+40.0302773-075.039626310638
363POLYGON ((-74.99256 40.03577, -74.98789 40.039...36442101989100421019891009891Census Tract 9891G5020S26649691649710+40.0377830-075.003408510718
364POLYGON ((-75.02050 40.04355, -75.02063 40.043...3654210103290042101032900329Census Tract 329G5020S92292221617+40.0379010-075.024971310639
365POLYGON ((-75.02854 40.02968, -75.02971 40.030...3664210103300042101033000330Census Tract 330G5020S7328600+40.0335974-075.033849210640
366POLYGON ((-75.05406 40.04433, -75.05312 40.043...3674210103320042101033200332Census Tract 332G5020S8284200+40.0439411-075.044828110643
367POLYGON ((-75.02400 40.08612, -75.02466 40.085...36842101980300421019803009803Census Tract 9803G5020S759433124435+40.0812065-075.010697710711
368POLYGON ((-75.02703 40.09835, -75.03073 40.095...3694210103550042101035500355Census Tract 355G5020S22900531067+40.0911285-075.029324410669
369POLYGON ((-75.03363 40.12314, -75.03756 40.120...3704210103580042101035800358Census Tract 358G5020S17577562013+40.1213169-075.025789810674
370POLYGON ((-75.01235 40.10951, -75.01027 40.111...3714210103590042101035900359Census Tract 359G5020S22447172511+40.1103418-075.015164510675
371POLYGON ((-75.01235 40.10951, -75.01403 40.108...3724210103600042101036000360Census Tract 360G5020S2043084638+40.1042670-075.010818710676
372POLYGON ((-74.99233 40.10409, -74.99444 40.105...3734210103610042101036100361Census Tract 361G5020S12304327138+40.0987766-074.990748110677
373POLYGON ((-74.96488 40.07728, -74.96490 40.077...3744210103620342101036203362.03Census Tract 362.03G5020S147549668020+40.0760921-074.974296710680
374POLYGON ((-74.98757 40.07583, -74.98827 40.076...3754210103530242101035302353.02Census Tract 353.02G5020S149864117292+40.0730774-074.996871310668
375POLYGON ((-74.98499 40.07453, -74.98490 40.074...3764210103620142101036201362.01Census Tract 362.01G5020S103192915195+40.0820300-074.986807910678
376POLYGON ((-74.97990 40.09382, -74.97869 40.092...3774210103630242101036302363.02Census Tract 363.02G5020S5026960+40.0973153-074.980515110682
377POLYGON ((-75.18947 39.94525, -75.18688 39.946...3784210103690042101036900369Census Tract 369G5020S1859159193283+39.9494281-075.195754810689
378POLYGON ((-75.17001 39.91004, -75.16973 39.911...3794210103730042101037300373Census Tract 373G5020S2573046162376+39.9024981-075.187936110691
379POLYGON ((-75.17135 39.91678, -75.17143 39.916...3804210103720042101037200372Census Tract 372G5020S10289840+39.9129487-075.159937910690
380POLYGON ((-75.11627 40.01743, -75.11660 40.017...3814210103830042101038300383Census Tract 383G5020S30644960+40.0108630-075.124898410700
381POLYGON ((-75.08824 40.04034, -75.08820 40.040...3824210103900042101039000390Census Tract 390G5020S20326890+40.0357300-075.093884010707
382POLYGON ((-75.11051 39.96952, -75.10676 39.970...3834210103780042101037800378Census Tract 378G5020S37600841936838+39.9805802-075.095684510695
383POLYGON ((-75.15170 39.98571, -75.15249 39.985...3844210103770042101037700377Census Tract 377G5020S7368940+39.9824381-075.150693210694
\n", "
" ], "text/plain": [ " geometry OBJECTID STATEFP10 \\\n", "0 POLYGON ((-75.22927 39.96054, -75.22865 39.960... 1 42 \n", "1 POLYGON ((-75.23536 39.96852, -75.23545 39.969... 2 42 \n", "2 POLYGON ((-75.24343 39.96230, -75.24339 39.962... 3 42 \n", "3 POLYGON ((-75.17341 39.97779, -75.17386 39.977... 4 42 \n", "4 POLYGON ((-75.17313 39.97776, -75.17321 39.977... 5 42 \n", "5 POLYGON ((-75.16141 39.97044, -75.16056 39.970... 6 42 \n", "6 POLYGON ((-75.15719 39.96959, -75.15609 39.969... 7 42 \n", "7 POLYGON ((-75.13330 39.96102, -75.13084 39.959... 8 42 \n", "8 POLYGON ((-75.12110 39.96858, -75.12225 39.970... 9 42 \n", "9 POLYGON ((-75.13574 39.96880, -75.13536 39.968... 10 42 \n", "10 POLYGON ((-75.14936 39.97327, -75.14887 39.973... 11 42 \n", "11 POLYGON ((-75.15224 39.97954, -75.15381 39.979... 12 42 \n", "12 POLYGON ((-75.16018 39.97608, -75.15947 39.975... 13 42 \n", "13 POLYGON ((-75.17174 39.97903, -75.17122 39.978... 14 42 \n", "14 POLYGON ((-75.18786 39.98112, -75.18701 39.981... 15 42 \n", "15 POLYGON ((-75.17226 39.98999, -75.17236 39.990... 16 42 \n", "16 POLYGON ((-75.16362 39.98725, -75.16419 39.987... 17 42 \n", "17 POLYGON ((-75.13941 39.97634, -75.13911 39.977... 18 42 \n", "18 POLYGON ((-75.09490 40.01049, -75.09489 40.010... 19 42 \n", "19 POLYGON ((-75.10715 40.01674, -75.10724 40.016... 20 42 \n", "20 POLYGON ((-75.10760 39.99967, -75.10645 40.000... 21 42 \n", "21 POLYGON ((-75.13586 40.01199, -75.13554 40.013... 22 42 \n", "22 POLYGON ((-75.13672 40.00803, -75.13661 40.008... 23 42 \n", "23 POLYGON ((-75.13886 40.00322, -75.13821 40.003... 24 42 \n", "24 POLYGON ((-75.14780 40.00016, -75.14803 40.000... 25 42 \n", "25 POLYGON ((-75.16429 40.00308, -75.16385 40.003... 26 42 \n", "26 POLYGON ((-75.14955 40.01788, -75.15031 40.017... 27 42 \n", "27 POLYGON ((-75.14955 40.01788, -75.14935 40.017... 28 42 \n", "28 POLYGON ((-75.17404 40.01697, -75.17486 40.016... 29 42 \n", "29 POLYGON ((-75.18196 40.02554, -75.18251 40.025... 30 42 \n", "30 POLYGON ((-75.18953 39.94521, -75.18959 39.945... 31 42 \n", "31 POLYGON ((-75.16582 39.94254, -75.16578 39.942... 32 42 \n", "32 POLYGON ((-75.16549 39.94366, -75.16558 39.943... 33 42 \n", "33 POLYGON ((-75.15119 39.94189, -75.15156 39.941... 34 42 \n", "34 POLYGON ((-75.14347 39.93873, -75.14388 39.938... 35 42 \n", "35 POLYGON ((-75.16591 39.94182, -75.16599 39.941... 36 42 \n", "36 POLYGON ((-75.16636 39.94004, -75.16628 39.940... 37 42 \n", "37 POLYGON ((-75.18855 39.93846, -75.18859 39.938... 38 42 \n", "38 POLYGON ((-75.17370 39.93624, -75.17369 39.936... 39 42 \n", "39 POLYGON ((-75.17370 39.93624, -75.17378 39.935... 40 42 \n", "40 POLYGON ((-75.16702 39.93675, -75.16709 39.936... 41 42 \n", "41 POLYGON ((-75.16629 39.94004, -75.16636 39.940... 42 42 \n", "42 POLYGON ((-75.14526 39.93557, -75.14574 39.935... 43 42 \n", "43 POLYGON ((-75.16758 39.93415, -75.16764 39.934... 44 42 \n", "44 POLYGON ((-75.17520 39.92930, -75.17512 39.929... 45 42 \n", "45 POLYGON ((-75.17215 39.88129, -75.16966 39.881... 46 42 \n", "46 POLYGON ((-75.24623 39.88951, -75.24585 39.889... 47 42 \n", "47 POLYGON ((-75.25129 39.90441, -75.25179 39.903... 48 42 \n", "48 POLYGON ((-75.24184 39.90384, -75.24196 39.903... 49 42 \n", "49 POLYGON ((-75.23342 39.91385, -75.23369 39.914... 50 42 \n", "50 POLYGON ((-75.22664 39.91909, -75.22684 39.919... 51 42 \n", "51 POLYGON ((-75.23679 39.92091, -75.23722 39.920... 52 42 \n", "52 POLYGON ((-75.23650 39.92112, -75.23570 39.921... 53 42 \n", "53 POLYGON ((-75.24701 39.96668, -75.24685 39.967... 54 42 \n", "54 POLYGON ((-75.23914 39.96990, -75.23905 39.969... 55 42 \n", "55 POLYGON ((-75.23536 39.96852, -75.23535 39.968... 56 42 \n", "56 POLYGON ((-75.22245 39.96654, -75.22262 39.967... 57 42 \n", "57 POLYGON ((-75.22262 39.96735, -75.22245 39.966... 58 42 \n", "58 POLYGON ((-75.21619 39.96249, -75.21700 39.959... 59 42 \n", "59 POLYGON ((-75.20622 39.96255, -75.20558 39.962... 60 42 \n", "60 POLYGON ((-75.20233 39.96321, -75.20231 39.963... 61 42 \n", "61 POLYGON ((-75.19851 39.96945, -75.20372 39.970... 62 42 \n", "62 POLYGON ((-75.18803 39.96330, -75.18742 39.963... 63 42 \n", "63 POLYGON ((-75.19881 39.97473, -75.19900 39.974... 64 42 \n", "64 POLYGON ((-75.21331 39.97723, -75.21347 39.977... 65 42 \n", "65 POLYGON ((-75.23799 39.97297, -75.23774 39.971... 66 42 \n", "66 POLYGON ((-75.23769 39.97621, -75.23681 39.976... 67 42 \n", "67 POLYGON ((-75.23869 39.97674, -75.23879 39.977... 68 42 \n", "68 POLYGON ((-75.13507 39.97432, -75.13463 39.974... 69 42 \n", "69 POLYGON ((-75.12275 39.97373, -75.12260 39.973... 70 42 \n", "70 POLYGON ((-75.11997 39.97592, -75.11977 39.976... 71 42 \n", "71 POLYGON ((-75.12242 39.98701, -75.12292 39.987... 72 42 \n", "72 POLYGON ((-75.14284 39.98620, -75.14350 39.986... 73 42 \n", "73 POLYGON ((-75.13952 39.98652, -75.13957 39.986... 74 42 \n", "74 POLYGON ((-75.13952 39.98652, -75.13935 39.987... 75 42 \n", "75 POLYGON ((-75.15274 39.99204, -75.15283 39.991... 76 42 \n", "76 POLYGON ((-75.15092 39.98561, -75.15020 39.985... 77 42 \n", "77 POLYGON ((-75.17226 39.98999, -75.17214 39.989... 78 42 \n", "78 POLYGON ((-75.17708 39.92022, -75.17637 39.920... 79 42 \n", "79 POLYGON ((-75.18600 39.99013, -75.18590 39.990... 80 42 \n", "80 POLYGON ((-75.17117 39.99417, -75.17112 39.994... 81 42 \n", "81 POLYGON ((-75.19134 40.00791, -75.19052 40.008... 82 42 \n", "82 POLYGON ((-75.18251 40.02533, -75.18196 40.025... 83 42 \n", "83 POLYGON ((-75.21465 40.01787, -75.21431 40.017... 84 42 \n", "84 POLYGON ((-75.21951 40.02186, -75.21940 40.021... 85 42 \n", "85 POLYGON ((-75.20876 40.03111, -75.20880 40.031... 86 42 \n", "86 POLYGON ((-75.20876 40.03111, -75.20872 40.031... 87 42 \n", "87 POLYGON ((-75.22585 40.03352, -75.22537 40.032... 88 42 \n", "88 POLYGON ((-75.22671 40.02536, -75.22614 40.025... 89 42 \n", "89 POLYGON ((-75.22746 40.03047, -75.22679 40.030... 90 42 \n", "90 POLYGON ((-75.24481 40.04580, -75.24487 40.045... 91 42 \n", "91 POLYGON ((-75.17771 40.03655, -75.17876 40.035... 92 42 \n", "92 POLYGON ((-75.16456 40.02845, -75.16436 40.028... 93 42 \n", "93 POLYGON ((-75.16448 40.02131, -75.16459 40.021... 94 42 \n", "94 POLYGON ((-75.16058 40.02673, -75.16098 40.027... 95 42 \n", "95 POLYGON ((-75.16166 40.02793, -75.16143 40.027... 96 42 \n", "96 POLYGON ((-75.17638 40.03774, -75.17615 40.037... 97 42 \n", "97 POLYGON ((-75.16208 40.03817, -75.16127 40.038... 98 42 \n", "98 POLYGON ((-75.16885 40.04796, -75.16927 40.048... 99 42 \n", "99 POLYGON ((-75.15807 40.04747, -75.15806 40.047... 100 42 \n", "100 POLYGON ((-75.17573 40.04134, -75.17336 40.043... 101 42 \n", "101 POLYGON ((-75.18392 40.04922, -75.18376 40.048... 102 42 \n", "102 POLYGON ((-75.17515 40.05685, -75.17476 40.057... 103 42 \n", "103 POLYGON ((-75.17916 40.06333, -75.17842 40.064... 104 42 \n", "104 POLYGON ((-75.19188 40.06127, -75.19129 40.060... 105 42 \n", "105 POLYGON ((-75.14169 40.02076, -75.14159 40.020... 106 42 \n", "106 POLYGON ((-75.13571 40.02392, -75.13555 40.026... 107 42 \n", "107 POLYGON ((-75.13527 40.02919, -75.13541 40.027... 108 42 \n", "108 POLYGON ((-75.12197 40.03373, -75.12223 40.033... 109 42 \n", "109 POLYGON ((-75.12882 40.02450, -75.13037 40.024... 110 42 \n", "110 POLYGON ((-75.12549 40.02504, -75.12587 40.024... 111 42 \n", "111 POLYGON ((-75.11321 40.03645, -75.11403 40.035... 112 42 \n", "112 POLYGON ((-75.10460 40.02979, -75.10437 40.029... 113 42 \n", "113 POLYGON ((-75.10613 40.02930, -75.10643 40.029... 114 42 \n", "114 POLYGON ((-75.09500 40.00999, -75.09487 40.009... 115 42 \n", "115 POLYGON ((-75.09007 40.00429, -75.09005 40.004... 116 42 \n", "116 POLYGON ((-75.06741 40.02012, -75.06752 40.020... 117 42 \n", "117 POLYGON ((-75.04135 40.06474, -75.04142 40.064... 118 42 \n", "118 POLYGON ((-75.04483 40.05900, -75.04482 40.059... 119 42 \n", "119 POLYGON ((-75.05947 40.05226, -75.05887 40.052... 120 42 \n", "120 POLYGON ((-75.05594 40.05600, -75.05535 40.056... 121 42 \n", "121 POLYGON ((-75.06580 40.06781, -75.06736 40.068... 122 42 \n", "122 POLYGON ((-75.09495 40.06796, -75.09322 40.066... 123 42 \n", "123 POLYGON ((-75.06756 40.07514, -75.06756 40.075... 124 42 \n", "124 POLYGON ((-75.07626 40.08061, -75.07712 40.081... 125 42 \n", "125 POLYGON ((-75.06698 40.07628, -75.06618 40.077... 126 42 \n", "126 POLYGON ((-75.05636 40.08766, -75.05631 40.087... 127 42 \n", "127 POLYGON ((-75.04609 40.08385, -75.04149 40.087... 128 42 \n", "128 POLYGON ((-75.01953 40.06559, -75.01947 40.065... 129 42 \n", "129 POLYGON ((-75.24749 39.91925, -75.24746 39.919... 130 42 \n", "130 POLYGON ((-75.23666 39.93355, -75.23672 39.933... 131 42 \n", "131 POLYGON ((-75.22415 39.92980, -75.22278 39.930... 132 42 \n", "132 POLYGON ((-74.96172 40.09772, -74.96179 40.097... 133 42 \n", "133 POLYGON ((-74.97780 40.10710, -74.97381 40.110... 134 42 \n", "134 POLYGON ((-75.14147 39.95171, -75.14150 39.951... 135 42 \n", "135 POLYGON ((-75.00888 40.05866, -75.00880 40.058... 136 42 \n", "136 POLYGON ((-75.02543 40.06566, -75.02587 40.065... 137 42 \n", "137 POLYGON ((-74.97517 40.08998, -74.97607 40.090... 138 42 \n", "138 POLYGON ((-75.17772 39.91765, -75.17771 39.917... 139 42 \n", "139 POLYGON ((-75.24001 39.95588, -75.23991 39.956... 140 42 \n", "140 POLYGON ((-75.13012 39.99458, -75.12872 39.993... 141 42 \n", "141 POLYGON ((-75.15034 39.94374, -75.15043 39.943... 142 42 \n", "142 POLYGON ((-75.15313 39.94579, -75.15318 39.945... 143 42 \n", "143 POLYGON ((-75.16333 39.95334, -75.16319 39.953... 144 42 \n", "144 POLYGON ((-75.17299 39.95464, -75.17295 39.954... 145 42 \n", "145 POLYGON ((-75.21048 40.00225, -75.21114 40.002... 146 42 \n", "146 POLYGON ((-75.20985 40.00901, -75.21077 40.008... 147 42 \n", "147 POLYGON ((-75.17464 39.97083, -75.17453 39.971... 148 42 \n", "148 POLYGON ((-75.03666 40.07860, -75.03676 40.079... 149 42 \n", "149 POLYGON ((-75.04652 40.08352, -75.04751 40.082... 150 42 \n", "150 POLYGON ((-75.15383 39.94261, -75.15377 39.942... 151 42 \n", "151 POLYGON ((-75.15309 39.94600, -75.15303 39.946... 152 42 \n", "152 POLYGON ((-75.16427 39.94935, -75.16434 39.949... 153 42 \n", "153 POLYGON ((-75.16690 39.99870, -75.16657 40.000... 154 42 \n", "154 POLYGON ((-75.17077 40.00076, -75.17135 40.000... 155 42 \n", "155 POLYGON ((-75.12698 40.03916, -75.12681 40.039... 156 42 \n", "156 POLYGON ((-75.15548 39.99877, -75.15523 39.998... 157 42 \n", "157 POLYGON ((-75.15243 40.01322, -75.15307 40.014... 158 42 \n", "158 POLYGON ((-75.07783 40.03901, -75.07740 40.039... 159 42 \n", "159 POLYGON ((-75.07900 40.03781, -75.07862 40.038... 160 42 \n", "160 POLYGON ((-75.12755 40.00505, -75.12787 40.005... 161 42 \n", "161 POLYGON ((-75.13441 39.99922, -75.13383 39.999... 162 42 \n", "162 POLYGON ((-75.11663 40.01697, -75.11748 40.015... 163 42 \n", "163 POLYGON ((-75.11285 40.02703, -75.11324 40.026... 164 42 \n", "164 POLYGON ((-75.03799 40.03781, -75.03739 40.038... 165 42 \n", "165 POLYGON ((-75.02185 40.04369, -75.02175 40.043... 166 42 \n", "166 POLYGON ((-75.04254 40.03773, -75.04420 40.038... 167 42 \n", "167 POLYGON ((-75.10396 40.04083, -75.10463 40.040... 168 42 \n", "168 POLYGON ((-75.10457 40.05057, -75.10465 40.050... 169 42 \n", "169 POLYGON ((-75.25980 39.97482, -75.25981 39.974... 170 42 \n", "170 POLYGON ((-75.11344 39.97706, -75.11333 39.976... 171 42 \n", "171 POLYGON ((-75.12692 39.99184, -75.12711 39.991... 172 42 \n", "172 POLYGON ((-75.11099 39.99781, -75.11153 39.997... 173 42 \n", "173 POLYGON ((-75.04930 40.11221, -75.04939 40.112... 174 42 \n", "174 POLYGON ((-75.02889 40.10255, -75.02840 40.103... 175 42 \n", "175 POLYGON ((-75.04386 40.11601, -75.04422 40.115... 176 42 \n", "176 POLYGON ((-75.03024 40.10340, -75.03300 40.105... 177 42 \n", "177 POLYGON ((-75.18672 39.99022, -75.18706 39.988... 178 42 \n", "178 POLYGON ((-75.17425 39.98757, -75.17403 39.988... 179 42 \n", "179 POLYGON ((-75.02010 40.12637, -75.01780 40.125... 180 42 \n", "180 POLYGON ((-75.24257 39.87296, -75.24229 39.872... 181 42 \n", "181 POLYGON ((-75.17248 39.96564, -75.17256 39.965... 182 42 \n", "182 POLYGON ((-75.17240 39.96597, -75.17227 39.966... 183 42 \n", "183 POLYGON ((-75.18160 39.96919, -75.18153 39.969... 184 42 \n", "184 POLYGON ((-75.08141 39.99327, -75.08093 39.993... 185 42 \n", "185 POLYGON ((-75.09266 40.00790, -75.09360 40.007... 186 42 \n", "186 POLYGON ((-75.07369 40.00712, -75.07340 40.007... 187 42 \n", "187 POLYGON ((-75.02130 40.03380, -75.02141 40.033... 188 42 \n", "188 POLYGON ((-75.22845 40.06255, -75.22689 40.061... 189 42 \n", "189 POLYGON ((-75.14147 39.95171, -75.14146 39.952... 190 42 \n", "190 POLYGON ((-75.16238 39.95765, -75.16269 39.956... 191 42 \n", "191 POLYGON ((-75.17820 39.95981, -75.17908 39.959... 192 42 \n", "192 POLYGON ((-75.16340 39.95335, -75.16366 39.953... 193 42 \n", "193 POLYGON ((-75.16394 39.95087, -75.16401 39.950... 194 42 \n", "194 POLYGON ((-75.17349 39.95206, -75.17417 39.952... 195 42 \n", "195 POLYGON ((-75.18703 39.93039, -75.18627 39.930... 196 42 \n", "196 POLYGON ((-75.20522 39.93833, -75.20330 39.937... 197 42 \n", "197 POLYGON ((-75.19032 39.92169, -75.19016 39.921... 198 42 \n", "198 POLYGON ((-75.17584 39.92643, -75.17574 39.926... 199 42 \n", "199 POLYGON ((-75.18170 39.92330, -75.18135 39.923... 200 42 \n", "200 POLYGON ((-75.15560 39.92002, -75.15550 39.920... 201 42 \n", "201 POLYGON ((-75.17025 39.92189, -75.17031 39.921... 202 42 \n", "202 POLYGON ((-75.17774 39.91758, -75.17801 39.916... 203 42 \n", "203 POLYGON ((-75.16943 39.92560, -75.16950 39.925... 204 42 \n", "204 POLYGON ((-75.15775 39.91501, -75.15749 39.914... 205 42 \n", "205 POLYGON ((-75.15656 39.91558, -75.15664 39.915... 206 42 \n", "206 POLYGON ((-75.14782 39.91901, -75.14788 39.919... 207 42 \n", "207 POLYGON ((-75.21445 39.94893, -75.21399 39.948... 208 42 \n", "208 POLYGON ((-75.22524 39.94776, -75.22495 39.947... 209 42 \n", "209 POLYGON ((-75.24005 39.94593, -75.23996 39.946... 210 42 \n", "210 MULTIPOLYGON (((-75.12709 39.99200, -75.12842 ... 211 42 \n", "211 POLYGON ((-75.24403 39.96237, -75.24471 39.962... 212 42 \n", "212 POLYGON ((-75.24014 39.95526, -75.23817 39.955... 213 42 \n", "213 POLYGON ((-75.22979 39.96061, -75.23025 39.960... 214 42 \n", "214 POLYGON ((-75.19358 39.95870, -75.19364 39.958... 215 42 \n", "215 POLYGON ((-75.19358 39.95870, -75.19360 39.958... 216 42 \n", "216 POLYGON ((-75.20236 39.96287, -75.20398 39.962... 217 42 \n", "217 POLYGON ((-75.22005 39.96383, -75.22098 39.964... 218 42 \n", "218 POLYGON ((-75.22059 39.92906, -75.22111 39.929... 219 42 \n", "219 POLYGON ((-75.21931 39.92802, -75.21768 39.927... 220 42 \n", "220 POLYGON ((-75.21706 39.93474, -75.21652 39.935... 221 42 \n", "221 POLYGON ((-75.22890 39.94686, -75.22960 39.947... 222 42 \n", "222 POLYGON ((-75.21882 39.94412, -75.21914 39.944... 223 42 \n", "223 POLYGON ((-75.21315 39.93746, -75.21297 39.937... 224 42 \n", "224 POLYGON ((-75.20714 39.94979, -75.20805 39.949... 225 42 \n", "225 POLYGON ((-75.21714 39.94375, -75.21562 39.943... 226 42 \n", "226 POLYGON ((-75.24834 39.97503, -75.24823 39.975... 227 42 \n", "227 POLYGON ((-75.23403 39.99475, -75.23413 39.995... 228 42 \n", "228 POLYGON ((-75.22890 39.98045, -75.22879 39.980... 229 42 \n", "229 POLYGON ((-75.22567 39.99148, -75.22657 39.991... 230 42 \n", "230 POLYGON ((-75.22568 39.99326, -75.22568 39.994... 231 42 \n", "231 POLYGON ((-75.22568 39.99326, -75.22568 39.993... 232 42 \n", "232 POLYGON ((-75.18081 39.96136, -75.18060 39.961... 233 42 \n", "233 POLYGON ((-75.15215 39.96246, -75.15205 39.962... 234 42 \n", "234 POLYGON ((-75.15302 39.96856, -75.15455 39.968... 235 42 \n", "235 POLYGON ((-75.16131 39.96290, -75.16126 39.963... 236 42 \n", "236 POLYGON ((-75.17211 39.96729, -75.17135 39.967... 237 42 \n", "237 POLYGON ((-75.18898 39.97982, -75.18906 39.979... 238 42 \n", "238 POLYGON ((-75.17662 40.00610, -75.17543 40.006... 239 42 \n", "239 POLYGON ((-75.17689 40.00595, -75.17864 40.005... 240 42 \n", "240 POLYGON ((-75.15602 39.99884, -75.15680 39.998... 241 42 \n", "241 POLYGON ((-75.14746 39.99467, -75.14708 39.996... 242 42 \n", "242 POLYGON ((-75.13930 40.00306, -75.13988 40.002... 243 42 \n", "243 POLYGON ((-75.11077 39.99153, -75.11023 39.991... 244 42 \n", "244 POLYGON ((-75.11561 39.98356, -75.11525 39.983... 245 42 \n", "245 POLYGON ((-75.06802 39.98314, -75.06588 39.984... 246 42 \n", "246 POLYGON ((-75.06835 40.00693, -75.06851 40.007... 247 42 \n", "247 POLYGON ((-75.09843 39.99908, -75.09898 39.999... 248 42 \n", "248 POLYGON ((-75.22430 40.05119, -75.22716 40.052... 249 42 \n", "249 POLYGON ((-75.22790 40.06346, -75.22791 40.063... 250 42 \n", "250 POLYGON ((-75.25415 40.04723, -75.25384 40.046... 251 42 \n", "251 POLYGON ((-75.25501 40.06271, -75.25669 40.061... 252 42 \n", "252 POLYGON ((-75.22445 40.07912, -75.22480 40.079... 253 42 \n", "253 POLYGON ((-75.20951 40.06645, -75.20675 40.064... 254 42 \n", "254 POLYGON ((-75.20275 40.04351, -75.20298 40.043... 255 42 \n", "255 POLYGON ((-75.19800 40.03948, -75.19613 40.037... 256 42 \n", "256 POLYGON ((-75.18392 40.04922, -75.18397 40.049... 257 42 \n", "257 POLYGON ((-75.17863 40.04046, -75.17871 40.040... 258 42 \n", "258 POLYGON ((-75.18823 40.03119, -75.18821 40.031... 259 42 \n", "259 POLYGON ((-75.17473 40.02763, -75.17463 40.027... 260 42 \n", "260 POLYGON ((-75.19879 40.06868, -75.19868 40.068... 261 42 \n", "261 POLYGON ((-75.18265 40.06942, -75.18252 40.069... 262 42 \n", "262 POLYGON ((-75.17191 40.08200, -75.17294 40.082... 263 42 \n", "263 POLYGON ((-75.17394 40.07432, -75.17355 40.074... 264 42 \n", "264 POLYGON ((-75.16899 40.07148, -75.16935 40.071... 265 42 \n", "265 POLYGON ((-75.17145 40.06300, -75.17118 40.062... 266 42 \n", "266 POLYGON ((-75.02119 40.06170, -75.02131 40.061... 267 42 \n", "267 POLYGON ((-75.15411 40.06366, -75.15359 40.064... 268 42 \n", "268 POLYGON ((-75.16596 40.05983, -75.16577 40.059... 269 42 \n", "269 POLYGON ((-75.15649 40.05453, -75.15556 40.054... 270 42 \n", "270 POLYGON ((-75.15233 40.06891, -75.15260 40.067... 271 42 \n", "271 POLYGON ((-75.14858 40.05139, -75.14701 40.051... 272 42 \n", "272 POLYGON ((-75.13655 40.06180, -75.13684 40.061... 273 42 \n", "273 POLYGON ((-75.07441 40.00959, -75.07237 40.010... 274 42 \n", "274 POLYGON ((-75.07726 40.01498, -75.07668 40.015... 275 42 \n", "275 POLYGON ((-75.09061 40.02576, -75.09113 40.025... 276 42 \n", "276 POLYGON ((-75.08536 40.03110, -75.08575 40.030... 277 42 \n", "277 POLYGON ((-75.09772 40.05454, -75.09781 40.054... 278 42 \n", "278 POLYGON ((-75.08747 40.06359, -75.09130 40.059... 279 42 \n", "279 POLYGON ((-75.08231 40.04884, -75.08210 40.049... 280 42 \n", "280 POLYGON ((-75.08838 40.03987, -75.08857 40.039... 281 42 \n", "281 POLYGON ((-75.06669 40.05055, -75.06605 40.051... 282 42 \n", "282 POLYGON ((-75.07053 40.03563, -75.07090 40.035... 283 42 \n", "283 POLYGON ((-75.06138 40.03816, -75.06155 40.038... 284 42 \n", "284 POLYGON ((-75.06433 40.03619, -75.06425 40.035... 285 42 \n", "285 POLYGON ((-75.06437 40.03632, -75.06445 40.036... 286 42 \n", "286 POLYGON ((-74.96443 40.11728, -74.96461 40.117... 287 42 \n", "287 POLYGON ((-75.02961 40.06813, -75.02966 40.068... 288 42 \n", "288 POLYGON ((-75.02119 40.06170, -75.02105 40.061... 289 42 \n", "289 POLYGON ((-75.00616 40.05372, -75.00789 40.052... 290 42 \n", "290 POLYGON ((-74.97479 40.04932, -74.97500 40.049... 291 42 \n", "291 POLYGON ((-74.98437 40.05779, -74.98429 40.057... 292 42 \n", "292 POLYGON ((-74.98242 40.06552, -74.98242 40.065... 293 42 \n", "293 POLYGON ((-75.15907 40.07353, -75.15876 40.073... 294 42 \n", "294 POLYGON ((-75.16485 39.94701, -75.16475 39.947... 295 42 \n", "295 POLYGON ((-75.16534 39.94467, -75.16531 39.944... 296 42 \n", "296 POLYGON ((-75.18639 39.94658, -75.18617 39.946... 297 42 \n", "297 POLYGON ((-75.17742 39.95050, -75.17747 39.950... 298 42 \n", "298 POLYGON ((-75.20165 39.93757, -75.20215 39.937... 299 42 \n", "299 POLYGON ((-75.14758 39.92521, -75.14749 39.925... 300 42 \n", "300 POLYGON ((-75.16842 39.93047, -75.16815 39.931... 301 42 \n", "301 POLYGON ((-75.16896 39.92804, -75.16882 39.928... 302 42 \n", "302 POLYGON ((-75.16394 39.92947, -75.16472 39.928... 303 42 \n", "303 POLYGON ((-75.13515 39.92863, -75.14138 39.929... 304 42 \n", "304 POLYGON ((-75.15168 39.93038, -75.15160 39.930... 305 42 \n", "305 POLYGON ((-75.17270 39.90868, -75.17285 39.907... 306 42 \n", "306 POLYGON ((-75.04496 40.06511, -75.04616 40.065... 307 42 \n", "307 POLYGON ((-75.06923 40.07151, -75.06981 40.070... 308 42 \n", "308 POLYGON ((-75.05429 40.04446, -75.05493 40.043... 309 42 \n", "309 POLYGON ((-75.06496 40.04107, -75.06492 40.041... 310 42 \n", "310 POLYGON ((-75.06138 40.03816, -75.06104 40.037... 311 42 \n", "311 POLYGON ((-75.16340 39.98722, -75.16318 39.987... 312 42 \n", "312 POLYGON ((-75.15718 39.98642, -75.15711 39.986... 313 42 \n", "313 POLYGON ((-75.15810 40.04712, -75.15813 40.046... 314 42 \n", "314 POLYGON ((-75.15967 40.03508, -75.15782 40.033... 315 42 \n", "315 POLYGON ((-75.23110 39.94876, -75.23107 39.948... 316 42 \n", "316 POLYGON ((-75.22343 39.94118, -75.22324 39.941... 317 42 \n", "317 POLYGON ((-75.19952 39.95023, -75.19943 39.950... 318 42 \n", "318 POLYGON ((-75.20576 39.94984, -75.20582 39.950... 319 42 \n", "319 POLYGON ((-75.20942 39.95808, -75.20959 39.958... 320 42 \n", "320 POLYGON ((-75.23080 39.95018, -75.23064 39.950... 321 42 \n", "321 POLYGON ((-75.21896 39.95927, -75.21918 39.959... 322 42 \n", "322 POLYGON ((-75.26120 39.97830, -75.26092 39.978... 323 42 \n", "323 POLYGON ((-75.25593 39.97813, -75.25650 39.981... 324 42 \n", "324 POLYGON ((-75.10832 39.97939, -75.10820 39.979... 325 42 \n", "325 POLYGON ((-75.19701 39.95227, -75.19686 39.952... 326 42 \n", "326 POLYGON ((-75.20759 40.00641, -75.20774 40.006... 327 42 \n", "327 POLYGON ((-75.26927 39.98018, -75.27134 39.979... 328 42 \n", "328 POLYGON ((-75.22028 39.93958, -75.22155 39.940... 329 42 \n", "329 POLYGON ((-75.15446 39.93243, -75.15496 39.932... 330 42 \n", "330 POLYGON ((-75.14148 40.02070, -75.14159 40.020... 331 42 \n", "331 POLYGON ((-75.17742 39.95050, -75.17733 39.950... 332 42 \n", "332 POLYGON ((-75.16477 39.94699, -75.16485 39.947... 333 42 \n", "333 POLYGON ((-75.12403 40.03405, -75.12395 40.034... 334 42 \n", "334 POLYGON ((-75.21217 39.95288, -75.21216 39.952... 335 42 \n", "335 POLYGON ((-74.99420 40.13152, -74.99745 40.128... 336 42 \n", "336 POLYGON ((-75.14161 39.95550, -75.14160 39.955... 337 42 \n", "337 POLYGON ((-75.15215 39.96246, -75.15276 39.962... 338 42 \n", "338 POLYGON ((-75.21539 40.07327, -75.21575 40.072... 339 42 \n", "339 POLYGON ((-75.20733 40.07657, -75.20744 40.076... 340 42 \n", "340 POLYGON ((-75.22797 40.08435, -75.22790 40.084... 341 42 \n", "341 POLYGON ((-75.19289 40.06267, -75.19412 40.064... 342 42 \n", "342 POLYGON ((-75.17520 40.05678, -75.17526 40.056... 343 42 \n", "343 POLYGON ((-75.20724 40.01102, -75.20732 40.010... 344 42 \n", "344 POLYGON ((-75.13409 40.06035, -75.13439 40.060... 345 42 \n", "345 POLYGON ((-75.13294 40.04607, -75.13212 40.046... 346 42 \n", "346 POLYGON ((-75.12334 40.04657, -75.12326 40.046... 347 42 \n", "347 POLYGON ((-75.11315 40.04364, -75.11210 40.043... 348 42 \n", "348 POLYGON ((-75.11223 40.04332, -75.11219 40.043... 349 42 \n", "349 POLYGON ((-75.13477 40.04171, -75.13478 40.041... 350 42 \n", "350 POLYGON ((-75.14311 40.04648, -75.14327 40.045... 351 42 \n", "351 POLYGON ((-75.14384 40.05078, -75.14464 40.050... 352 42 \n", "352 POLYGON ((-75.14290 40.04750, -75.14345 40.047... 353 42 \n", "353 POLYGON ((-75.15385 40.02217, -75.15336 40.022... 354 42 \n", "354 POLYGON ((-75.14658 40.03065, -75.14652 40.030... 355 42 \n", "355 POLYGON ((-75.13507 40.03129, -75.13497 40.032... 356 42 \n", "356 POLYGON ((-75.07123 40.03458, -75.07110 40.034... 357 42 \n", "357 POLYGON ((-75.06716 40.01983, -75.06701 40.019... 358 42 \n", "358 POLYGON ((-75.05406 40.03119, -75.05480 40.030... 359 42 \n", "359 POLYGON ((-75.05275 40.01616, -75.05341 40.016... 360 42 \n", "360 POLYGON ((-75.04538 40.01988, -75.04574 40.020... 361 42 \n", "361 POLYGON ((-75.03863 40.02425, -75.03933 40.025... 362 42 \n", "362 POLYGON ((-75.03311 40.02751, -75.03353 40.028... 363 42 \n", "363 POLYGON ((-74.99256 40.03577, -74.98789 40.039... 364 42 \n", "364 POLYGON ((-75.02050 40.04355, -75.02063 40.043... 365 42 \n", "365 POLYGON ((-75.02854 40.02968, -75.02971 40.030... 366 42 \n", "366 POLYGON ((-75.05406 40.04433, -75.05312 40.043... 367 42 \n", "367 POLYGON ((-75.02400 40.08612, -75.02466 40.085... 368 42 \n", "368 POLYGON ((-75.02703 40.09835, -75.03073 40.095... 369 42 \n", "369 POLYGON ((-75.03363 40.12314, -75.03756 40.120... 370 42 \n", "370 POLYGON ((-75.01235 40.10951, -75.01027 40.111... 371 42 \n", "371 POLYGON ((-75.01235 40.10951, -75.01403 40.108... 372 42 \n", "372 POLYGON ((-74.99233 40.10409, -74.99444 40.105... 373 42 \n", "373 POLYGON ((-74.96488 40.07728, -74.96490 40.077... 374 42 \n", "374 POLYGON ((-74.98757 40.07583, -74.98827 40.076... 375 42 \n", "375 POLYGON ((-74.98499 40.07453, -74.98490 40.074... 376 42 \n", "376 POLYGON ((-74.97990 40.09382, -74.97869 40.092... 377 42 \n", "377 POLYGON ((-75.18947 39.94525, -75.18688 39.946... 378 42 \n", "378 POLYGON ((-75.17001 39.91004, -75.16973 39.911... 379 42 \n", "379 POLYGON ((-75.17135 39.91678, -75.17143 39.916... 380 42 \n", "380 POLYGON ((-75.11627 40.01743, -75.11660 40.017... 381 42 \n", "381 POLYGON ((-75.08824 40.04034, -75.08820 40.040... 382 42 \n", "382 POLYGON ((-75.11051 39.96952, -75.10676 39.970... 383 42 \n", "383 POLYGON ((-75.15170 39.98571, -75.15249 39.985... 384 42 \n", "\n", " COUNTYFP10 TRACTCE10 GEOID10 NAME10 NAMELSAD10 MTFCC10 \\\n", "0 101 009400 42101009400 94 Census Tract 94 G5020 \n", "1 101 009500 42101009500 95 Census Tract 95 G5020 \n", "2 101 009600 42101009600 96 Census Tract 96 G5020 \n", "3 101 013800 42101013800 138 Census Tract 138 G5020 \n", "4 101 013900 42101013900 139 Census Tract 139 G5020 \n", "5 101 014000 42101014000 140 Census Tract 140 G5020 \n", "6 101 014100 42101014100 141 Census Tract 141 G5020 \n", "7 101 014200 42101014200 142 Census Tract 142 G5020 \n", "8 101 014300 42101014300 143 Census Tract 143 G5020 \n", "9 101 014400 42101014400 144 Census Tract 144 G5020 \n", "10 101 014500 42101014500 145 Census Tract 145 G5020 \n", "11 101 014600 42101014600 146 Census Tract 146 G5020 \n", "12 101 014700 42101014700 147 Census Tract 147 G5020 \n", "13 101 014800 42101014800 148 Census Tract 148 G5020 \n", "14 101 014900 42101014900 149 Census Tract 149 G5020 \n", "15 101 015200 42101015200 152 Census Tract 152 G5020 \n", "16 101 015300 42101015300 153 Census Tract 153 G5020 \n", "17 101 015600 42101015600 156 Census Tract 156 G5020 \n", "18 101 019000 42101019000 190 Census Tract 190 G5020 \n", "19 101 019100 42101019100 191 Census Tract 191 G5020 \n", "20 101 019200 42101019200 192 Census Tract 192 G5020 \n", "21 101 019700 42101019700 197 Census Tract 197 G5020 \n", "22 101 019800 42101019800 198 Census Tract 198 G5020 \n", "23 101 019900 42101019900 199 Census Tract 199 G5020 \n", "24 101 020000 42101020000 200 Census Tract 200 G5020 \n", "25 101 020200 42101020200 202 Census Tract 202 G5020 \n", "26 101 020300 42101020300 203 Census Tract 203 G5020 \n", "27 101 020400 42101020400 204 Census Tract 204 G5020 \n", "28 101 020500 42101020500 205 Census Tract 205 G5020 \n", "29 101 020600 42101020600 206 Census Tract 206 G5020 \n", "30 101 001300 42101001300 13 Census Tract 13 G5020 \n", "31 101 001400 42101001400 14 Census Tract 14 G5020 \n", "32 101 001500 42101001500 15 Census Tract 15 G5020 \n", "33 101 001600 42101001600 16 Census Tract 16 G5020 \n", "34 101 001700 42101001700 17 Census Tract 17 G5020 \n", "35 101 001800 42101001800 18 Census Tract 18 G5020 \n", "36 101 001900 42101001900 19 Census Tract 19 G5020 \n", "37 101 002000 42101002000 20 Census Tract 20 G5020 \n", "38 101 002100 42101002100 21 Census Tract 21 G5020 \n", "39 101 002200 42101002200 22 Census Tract 22 G5020 \n", "40 101 002300 42101002300 23 Census Tract 23 G5020 \n", "41 101 002400 42101002400 24 Census Tract 24 G5020 \n", "42 101 002500 42101002500 25 Census Tract 25 G5020 \n", "43 101 002900 42101002900 29 Census Tract 29 G5020 \n", "44 101 003100 42101003100 31 Census Tract 31 G5020 \n", "45 101 005000 42101005000 50 Census Tract 50 G5020 \n", "46 101 005400 42101005400 54 Census Tract 54 G5020 \n", "47 101 005500 42101005500 55 Census Tract 55 G5020 \n", "48 101 005600 42101005600 56 Census Tract 56 G5020 \n", "49 101 006000 42101006000 60 Census Tract 60 G5020 \n", "50 101 006100 42101006100 61 Census Tract 61 G5020 \n", "51 101 006200 42101006200 62 Census Tract 62 G5020 \n", "52 101 006300 42101006300 63 Census Tract 63 G5020 \n", "53 101 010000 42101010000 100 Census Tract 100 G5020 \n", "54 101 010100 42101010100 101 Census Tract 101 G5020 \n", "55 101 010200 42101010200 102 Census Tract 102 G5020 \n", "56 101 010300 42101010300 103 Census Tract 103 G5020 \n", "57 101 010400 42101010400 104 Census Tract 104 G5020 \n", "58 101 010500 42101010500 105 Census Tract 105 G5020 \n", "59 101 010600 42101010600 106 Census Tract 106 G5020 \n", "60 101 010700 42101010700 107 Census Tract 107 G5020 \n", "61 101 010800 42101010800 108 Census Tract 108 G5020 \n", "62 101 010900 42101010900 109 Census Tract 109 G5020 \n", "63 101 011000 42101011000 110 Census Tract 110 G5020 \n", "64 101 011100 42101011100 111 Census Tract 111 G5020 \n", "65 101 011200 42101011200 112 Census Tract 112 G5020 \n", "66 101 011300 42101011300 113 Census Tract 113 G5020 \n", "67 101 011400 42101011400 114 Census Tract 114 G5020 \n", "68 101 015700 42101015700 157 Census Tract 157 G5020 \n", "69 101 015800 42101015800 158 Census Tract 158 G5020 \n", "70 101 016000 42101016000 160 Census Tract 160 G5020 \n", "71 101 016100 42101016100 161 Census Tract 161 G5020 \n", "72 101 016200 42101016200 162 Census Tract 162 G5020 \n", "73 101 016300 42101016300 163 Census Tract 163 G5020 \n", "74 101 016400 42101016400 164 Census Tract 164 G5020 \n", "75 101 016500 42101016500 165 Census Tract 165 G5020 \n", "76 101 016600 42101016600 166 Census Tract 166 G5020 \n", "77 101 016800 42101016800 168 Census Tract 168 G5020 \n", "78 101 003901 42101003901 39.01 Census Tract 39.01 G5020 \n", "79 101 016902 42101016902 169.02 Census Tract 169.02 G5020 \n", "80 101 016901 42101016901 169.01 Census Tract 169.01 G5020 \n", "81 101 020700 42101020700 207 Census Tract 207 G5020 \n", "82 101 020800 42101020800 208 Census Tract 208 G5020 \n", "83 101 020900 42101020900 209 Census Tract 209 G5020 \n", "84 101 021000 42101021000 210 Census Tract 210 G5020 \n", "85 101 021100 42101021100 211 Census Tract 211 G5020 \n", "86 101 021200 42101021200 212 Census Tract 212 G5020 \n", "87 101 021300 42101021300 213 Census Tract 213 G5020 \n", "88 101 021400 42101021400 214 Census Tract 214 G5020 \n", "89 101 021500 42101021500 215 Census Tract 215 G5020 \n", "90 101 021600 42101021600 216 Census Tract 216 G5020 \n", "91 101 024100 42101024100 241 Census Tract 241 G5020 \n", "92 101 024200 42101024200 242 Census Tract 242 G5020 \n", "93 101 024300 42101024300 243 Census Tract 243 G5020 \n", "94 101 024400 42101024400 244 Census Tract 244 G5020 \n", "95 101 024500 42101024500 245 Census Tract 245 G5020 \n", "96 101 024600 42101024600 246 Census Tract 246 G5020 \n", "97 101 024700 42101024700 247 Census Tract 247 G5020 \n", "98 101 024800 42101024800 248 Census Tract 248 G5020 \n", "99 101 024900 42101024900 249 Census Tract 249 G5020 \n", "100 101 025200 42101025200 252 Census Tract 252 G5020 \n", "101 101 025300 42101025300 253 Census Tract 253 G5020 \n", "102 101 025400 42101025400 254 Census Tract 254 G5020 \n", "103 101 025500 42101025500 255 Census Tract 255 G5020 \n", "104 101 025600 42101025600 256 Census Tract 256 G5020 \n", "105 101 028300 42101028300 283 Census Tract 283 G5020 \n", "106 101 028400 42101028400 284 Census Tract 284 G5020 \n", "107 101 028500 42101028500 285 Census Tract 285 G5020 \n", "108 101 028600 42101028600 286 Census Tract 286 G5020 \n", "109 101 028700 42101028700 287 Census Tract 287 G5020 \n", "110 101 028800 42101028800 288 Census Tract 288 G5020 \n", "111 101 029000 42101029000 290 Census Tract 290 G5020 \n", "112 101 029100 42101029100 291 Census Tract 291 G5020 \n", "113 101 029200 42101029200 292 Census Tract 292 G5020 \n", "114 101 029300 42101029300 293 Census Tract 293 G5020 \n", "115 101 029400 42101029400 294 Census Tract 294 G5020 \n", "116 101 029800 42101029800 298 Census Tract 298 G5020 \n", "117 101 033300 42101033300 333 Census Tract 333 G5020 \n", "118 101 033400 42101033400 334 Census Tract 334 G5020 \n", "119 101 033500 42101033500 335 Census Tract 335 G5020 \n", "120 101 033600 42101033600 336 Census Tract 336 G5020 \n", "121 101 033800 42101033800 338 Census Tract 338 G5020 \n", "122 101 033900 42101033900 339 Census Tract 339 G5020 \n", "123 101 034000 42101034000 340 Census Tract 340 G5020 \n", "124 101 034100 42101034100 341 Census Tract 341 G5020 \n", "125 101 034200 42101034200 342 Census Tract 342 G5020 \n", "126 101 980200 42101980200 9802 Census Tract 9802 G5020 \n", "127 101 034400 42101034400 344 Census Tract 344 G5020 \n", "128 101 034600 42101034600 346 Census Tract 346 G5020 \n", "129 101 006400 42101006400 64 Census Tract 64 G5020 \n", "130 101 006500 42101006500 65 Census Tract 65 G5020 \n", "131 101 006600 42101006600 66 Census Tract 66 G5020 \n", "132 101 036301 42101036301 363.01 Census Tract 363.01 G5020 \n", "133 101 036400 42101036400 364 Census Tract 364 G5020 \n", "134 101 036600 42101036600 366 Census Tract 366 G5020 \n", "135 101 034803 42101034803 348.03 Census Tract 348.03 G5020 \n", "136 101 034702 42101034702 347.02 Census Tract 347.02 G5020 \n", "137 101 036202 42101036202 362.02 Census Tract 362.02 G5020 \n", "138 101 003800 42101003800 38 Census Tract 38 G5020 \n", "139 101 008302 42101008302 83.02 Census Tract 83.02 G5020 \n", "140 101 017602 42101017602 176.02 Census Tract 176.02 G5020 \n", "141 101 001002 42101001002 10.02 Census Tract 10.02 G5020 \n", "142 101 001001 42101001001 10.01 Census Tract 10.01 G5020 \n", "143 101 000402 42101000402 4.02 Census Tract 4.02 G5020 \n", "144 101 000401 42101000401 4.01 Census Tract 4.01 G5020 \n", "145 101 012204 42101012204 122.04 Census Tract 122.04 G5020 \n", "146 101 012203 42101012203 122.03 Census Tract 122.03 G5020 \n", "147 101 013602 42101013602 136.02 Census Tract 136.02 G5020 \n", "148 101 034501 42101034501 345.01 Census Tract 345.01 G5020 \n", "149 101 034502 42101034502 345.02 Census Tract 345.02 G5020 \n", "150 101 001102 42101001102 11.02 Census Tract 11.02 G5020 \n", "151 101 000902 42101000902 9.02 Census Tract 9.02 G5020 \n", "152 101 000901 42101000901 9.01 Census Tract 9.01 G5020 \n", "153 101 017201 42101017201 172.01 Census Tract 172.01 G5020 \n", "154 101 017202 42101017202 172.02 Census Tract 172.02 G5020 \n", "155 101 027401 42101027401 274.01 Census Tract 274.01 G5020 \n", "156 101 020101 42101020101 201.01 Census Tract 201.01 G5020 \n", "157 101 020102 42101020102 201.02 Census Tract 201.02 G5020 \n", "158 101 031101 42101031101 311.01 Census Tract 311.01 G5020 \n", "159 101 031102 42101031102 311.02 Census Tract 311.02 G5020 \n", "160 101 019502 42101019502 195.02 Census Tract 195.02 G5020 \n", "161 101 019501 42101019501 195.01 Census Tract 195.01 G5020 \n", "162 101 028901 42101028901 289.01 Census Tract 289.01 G5020 \n", "163 101 028902 42101028902 289.02 Census Tract 289.02 G5020 \n", "164 101 033101 42101033101 331.01 Census Tract 331.01 G5020 \n", "165 101 033102 42101033102 331.02 Census Tract 331.02 G5020 \n", "166 101 031501 42101031501 315.01 Census Tract 315.01 G5020 \n", "167 101 030501 42101030501 305.01 Census Tract 305.01 G5020 \n", "168 101 030502 42101030502 305.02 Census Tract 305.02 G5020 \n", "169 101 009802 42101009802 98.02 Census Tract 98.02 G5020 \n", "170 101 018001 42101018001 180.01 Census Tract 180.01 G5020 \n", "171 101 017702 42101017702 177.02 Census Tract 177.02 G5020 \n", "172 101 017701 42101017701 177.01 Census Tract 177.01 G5020 \n", "173 101 035602 42101035602 356.02 Census Tract 356.02 G5020 \n", "174 101 035701 42101035701 357.01 Census Tract 357.01 G5020 \n", "175 101 035702 42101035702 357.02 Census Tract 357.02 G5020 \n", "176 101 035601 42101035601 356.01 Census Tract 356.01 G5020 \n", "177 101 015101 42101015101 151.01 Census Tract 151.01 G5020 \n", "178 101 015102 42101015102 151.02 Census Tract 151.02 G5020 \n", "179 101 036501 42101036501 365.01 Census Tract 365.01 G5020 \n", "180 101 980400 42101980400 9804 Census Tract 9804 G5020 \n", "181 101 013402 42101013402 134.02 Census Tract 134.02 G5020 \n", "182 101 013401 42101013401 134.01 Census Tract 134.01 G5020 \n", "183 101 013601 42101013601 136.01 Census Tract 136.01 G5020 \n", "184 101 037900 42101037900 379 Census Tract 379 G5020 \n", "185 101 038200 42101038200 382 Census Tract 382 G5020 \n", "186 101 038000 42101038000 380 Census Tract 380 G5020 \n", "187 101 038100 42101038100 381 Census Tract 381 G5020 \n", "188 101 038400 42101038400 384 Census Tract 384 G5020 \n", "189 101 000100 42101000100 1 Census Tract 1 G5020 \n", "190 101 000200 42101000200 2 Census Tract 2 G5020 \n", "191 101 000300 42101000300 3 Census Tract 3 G5020 \n", "192 101 000500 42101000500 5 Census Tract 5 G5020 \n", "193 101 000600 42101000600 6 Census Tract 6 G5020 \n", "194 101 000700 42101000700 7 Census Tract 7 G5020 \n", "195 101 003200 42101003200 32 Census Tract 32 G5020 \n", "196 101 003300 42101003300 33 Census Tract 33 G5020 \n", "197 101 003600 42101003600 36 Census Tract 36 G5020 \n", "198 101 003701 42101003701 37.01 Census Tract 37.01 G5020 \n", "199 101 003702 42101003702 37.02 Census Tract 37.02 G5020 \n", "200 101 004101 42101004101 41.01 Census Tract 41.01 G5020 \n", "201 101 004002 42101004002 40.02 Census Tract 40.02 G5020 \n", "202 101 003902 42101003902 39.02 Census Tract 39.02 G5020 \n", "203 101 004001 42101004001 40.01 Census Tract 40.01 G5020 \n", "204 101 004102 42101004102 41.02 Census Tract 41.02 G5020 \n", "205 101 004202 42101004202 42.02 Census Tract 42.02 G5020 \n", "206 101 004201 42101004201 42.01 Census Tract 42.01 G5020 \n", "207 101 007900 42101007900 79 Census Tract 79 G5020 \n", "208 101 008000 42101008000 80 Census Tract 80 G5020 \n", "209 101 008200 42101008200 82 Census Tract 82 G5020 \n", "210 101 017601 42101017601 176.01 Census Tract 176.01 G5020 \n", "211 101 008301 42101008301 83.01 Census Tract 83.01 G5020 \n", "212 101 008400 42101008400 84 Census Tract 84 G5020 \n", "213 101 008500 42101008500 85 Census Tract 85 G5020 \n", "214 101 009000 42101009000 90 Census Tract 90 G5020 \n", "215 101 009100 42101009100 91 Census Tract 91 G5020 \n", "216 101 009200 42101009200 92 Census Tract 92 G5020 \n", "217 101 009300 42101009300 93 Census Tract 93 G5020 \n", "218 101 006700 42101006700 67 Census Tract 67 G5020 \n", "219 101 006900 42101006900 69 Census Tract 69 G5020 \n", "220 101 007000 42101007000 70 Census Tract 70 G5020 \n", "221 101 007200 42101007200 72 Census Tract 72 G5020 \n", "222 101 007300 42101007300 73 Census Tract 73 G5020 \n", "223 101 007400 42101007400 74 Census Tract 74 G5020 \n", "224 101 007700 42101007700 77 Census Tract 77 G5020 \n", "225 101 007800 42101007800 78 Census Tract 78 G5020 \n", "226 101 011500 42101011500 115 Census Tract 115 G5020 \n", "227 101 011700 42101011700 117 Census Tract 117 G5020 \n", "228 101 011800 42101011800 118 Census Tract 118 G5020 \n", "229 101 011900 42101011900 119 Census Tract 119 G5020 \n", "230 101 012000 42101012000 120 Census Tract 120 G5020 \n", "231 101 012100 42101012100 121 Census Tract 121 G5020 \n", "232 101 012500 42101012500 125 Census Tract 125 G5020 \n", "233 101 013100 42101013100 131 Census Tract 131 G5020 \n", "234 101 013200 42101013200 132 Census Tract 132 G5020 \n", "235 101 013300 42101013300 133 Census Tract 133 G5020 \n", "236 101 013500 42101013500 135 Census Tract 135 G5020 \n", "237 101 013700 42101013700 137 Census Tract 137 G5020 \n", "238 101 017000 42101017000 170 Census Tract 170 G5020 \n", "239 101 017100 42101017100 171 Census Tract 171 G5020 \n", "240 101 017300 42101017300 173 Census Tract 173 G5020 \n", "241 101 017400 42101017400 174 Census Tract 174 G5020 \n", "242 101 017500 42101017500 175 Census Tract 175 G5020 \n", "243 101 017800 42101017800 178 Census Tract 178 G5020 \n", "244 101 017900 42101017900 179 Census Tract 179 G5020 \n", "245 101 018300 42101018300 183 Census Tract 183 G5020 \n", "246 101 018400 42101018400 184 Census Tract 184 G5020 \n", "247 101 018800 42101018800 188 Census Tract 188 G5020 \n", "248 101 021700 42101021700 217 Census Tract 217 G5020 \n", "249 101 021800 42101021800 218 Census Tract 218 G5020 \n", "250 101 021900 42101021900 219 Census Tract 219 G5020 \n", "251 101 022000 42101022000 220 Census Tract 220 G5020 \n", "252 101 980100 42101980100 9801 Census Tract 9801 G5020 \n", "253 101 023100 42101023100 231 Census Tract 231 G5020 \n", "254 101 023500 42101023500 235 Census Tract 235 G5020 \n", "255 101 023600 42101023600 236 Census Tract 236 G5020 \n", "256 101 023700 42101023700 237 Census Tract 237 G5020 \n", "257 101 023800 42101023800 238 Census Tract 238 G5020 \n", "258 101 023900 42101023900 239 Census Tract 239 G5020 \n", "259 101 024000 42101024000 240 Census Tract 240 G5020 \n", "260 101 025700 42101025700 257 Census Tract 257 G5020 \n", "261 101 025800 42101025800 258 Census Tract 258 G5020 \n", "262 101 025900 42101025900 259 Census Tract 259 G5020 \n", "263 101 026000 42101026000 260 Census Tract 260 G5020 \n", "264 101 026100 42101026100 261 Census Tract 261 G5020 \n", "265 101 026200 42101026200 262 Census Tract 262 G5020 \n", "266 101 034801 42101034801 348.01 Census Tract 348.01 G5020 \n", "267 101 026302 42101026302 263.02 Census Tract 263.02 G5020 \n", "268 101 026400 42101026400 264 Census Tract 264 G5020 \n", "269 101 026500 42101026500 265 Census Tract 265 G5020 \n", "270 101 026600 42101026600 266 Census Tract 266 G5020 \n", "271 101 026700 42101026700 267 Census Tract 267 G5020 \n", "272 101 026800 42101026800 268 Census Tract 268 G5020 \n", "273 101 029900 42101029900 299 Census Tract 299 G5020 \n", "274 101 030000 42101030000 300 Census Tract 300 G5020 \n", "275 101 030100 42101030100 301 Census Tract 301 G5020 \n", "276 101 030200 42101030200 302 Census Tract 302 G5020 \n", "277 101 030600 42101030600 306 Census Tract 306 G5020 \n", "278 101 030700 42101030700 307 Census Tract 307 G5020 \n", "279 101 030800 42101030800 308 Census Tract 308 G5020 \n", "280 101 030900 42101030900 309 Census Tract 309 G5020 \n", "281 101 031000 42101031000 310 Census Tract 310 G5020 \n", "282 101 031200 42101031200 312 Census Tract 312 G5020 \n", "283 101 031300 42101031300 313 Census Tract 313 G5020 \n", "284 101 031600 42101031600 316 Census Tract 316 G5020 \n", "285 101 031700 42101031700 317 Census Tract 317 G5020 \n", "286 101 036303 42101036303 363.03 Census Tract 363.03 G5020 \n", "287 101 034701 42101034701 347.01 Census Tract 347.01 G5020 \n", "288 101 034802 42101034802 348.02 Census Tract 348.02 G5020 \n", "289 101 034900 42101034900 349 Census Tract 349 G5020 \n", "290 101 035100 42101035100 351 Census Tract 351 G5020 \n", "291 101 035200 42101035200 352 Census Tract 352 G5020 \n", "292 101 035301 42101035301 353.01 Census Tract 353.01 G5020 \n", "293 101 026301 42101026301 263.01 Census Tract 263.01 G5020 \n", "294 101 000804 42101000804 8.04 Census Tract 8.04 G5020 \n", "295 101 001202 42101001202 12.02 Census Tract 12.02 G5020 \n", "296 101 001201 42101001201 12.01 Census Tract 12.01 G5020 \n", "297 101 000803 42101000803 8.03 Census Tract 8.03 G5020 \n", "298 101 980900 42101980900 9809 Census Tract 9809 G5020 \n", "299 101 002702 42101002702 27.02 Census Tract 27.02 G5020 \n", "300 101 003002 42101003002 30.02 Census Tract 30.02 G5020 \n", "301 101 003001 42101003001 30.01 Census Tract 30.01 G5020 \n", "302 101 002802 42101002802 28.02 Census Tract 28.02 G5020 \n", "303 101 980700 42101980700 9807 Census Tract 9807 G5020 \n", "304 101 002701 42101002701 27.01 Census Tract 27.01 G5020 \n", "305 101 980600 42101980600 9806 Census Tract 9806 G5020 \n", "306 101 033701 42101033701 337.01 Census Tract 337.01 G5020 \n", "307 101 033702 42101033702 337.02 Census Tract 337.02 G5020 \n", "308 101 031502 42101031502 315.02 Census Tract 315.02 G5020 \n", "309 101 031401 42101031401 314.01 Census Tract 314.01 G5020 \n", "310 101 031402 42101031402 314.02 Census Tract 314.02 G5020 \n", "311 101 016701 42101016701 167.01 Census Tract 167.01 G5020 \n", "312 101 016702 42101016702 167.02 Census Tract 167.02 G5020 \n", "313 101 027901 42101027901 279.01 Census Tract 279.01 G5020 \n", "314 101 027902 42101027902 279.02 Census Tract 279.02 G5020 \n", "315 101 008101 42101008101 81.01 Census Tract 81.01 G5020 \n", "316 101 007102 42101007102 71.02 Census Tract 71.02 G5020 \n", "317 101 008802 42101008802 88.02 Census Tract 88.02 G5020 \n", "318 101 008702 42101008702 87.02 Census Tract 87.02 G5020 \n", "319 101 008701 42101008701 87.01 Census Tract 87.01 G5020 \n", "320 101 008102 42101008102 81.02 Census Tract 81.02 G5020 \n", "321 101 008602 42101008602 86.02 Census Tract 86.02 G5020 \n", "322 101 037500 42101037500 375 Census Tract 375 G5020 \n", "323 101 980800 42101980800 9808 Census Tract 9808 G5020 \n", "324 101 018002 42101018002 180.02 Census Tract 180.02 G5020 \n", "325 101 008801 42101008801 88.01 Census Tract 88.01 G5020 \n", "326 101 012201 42101012201 122.01 Census Tract 122.01 G5020 \n", "327 101 009801 42101009801 98.01 Census Tract 98.01 G5020 \n", "328 101 007101 42101007101 71.01 Census Tract 71.01 G5020 \n", "329 101 002801 42101002801 28.01 Census Tract 28.01 G5020 \n", "330 101 980500 42101980500 9805 Census Tract 9805 G5020 \n", "331 101 000801 42101000801 8.01 Census Tract 8.01 G5020 \n", "332 101 001101 42101001101 11.01 Census Tract 11.01 G5020 \n", "333 101 027402 42101027402 274.02 Census Tract 274.02 G5020 \n", "334 101 008601 42101008601 86.01 Census Tract 86.01 G5020 \n", "335 101 036502 42101036502 365.02 Census Tract 365.02 G5020 \n", "336 101 036700 42101036700 367 Census Tract 367 G5020 \n", "337 101 037600 42101037600 376 Census Tract 376 G5020 \n", "338 101 038600 42101038600 386 Census Tract 386 G5020 \n", "339 101 038500 42101038500 385 Census Tract 385 G5020 \n", "340 101 038700 42101038700 387 Census Tract 387 G5020 \n", "341 101 038800 42101038800 388 Census Tract 388 G5020 \n", "342 101 038900 42101038900 389 Census Tract 389 G5020 \n", "343 101 980000 42101980000 9800 Census Tract 9800 G5020 \n", "344 101 026900 42101026900 269 Census Tract 269 G5020 \n", "345 101 027000 42101027000 270 Census Tract 270 G5020 \n", "346 101 027100 42101027100 271 Census Tract 271 G5020 \n", "347 101 027200 42101027200 272 Census Tract 272 G5020 \n", "348 101 027300 42101027300 273 Census Tract 273 G5020 \n", "349 101 027500 42101027500 275 Census Tract 275 G5020 \n", "350 101 027600 42101027600 276 Census Tract 276 G5020 \n", "351 101 027700 42101027700 277 Census Tract 277 G5020 \n", "352 101 027800 42101027800 278 Census Tract 278 G5020 \n", "353 101 028000 42101028000 280 Census Tract 280 G5020 \n", "354 101 028100 42101028100 281 Census Tract 281 G5020 \n", "355 101 028200 42101028200 282 Census Tract 282 G5020 \n", "356 101 031800 42101031800 318 Census Tract 318 G5020 \n", "357 101 031900 42101031900 319 Census Tract 319 G5020 \n", "358 101 032000 42101032000 320 Census Tract 320 G5020 \n", "359 101 032100 42101032100 321 Census Tract 321 G5020 \n", "360 101 032300 42101032300 323 Census Tract 323 G5020 \n", "361 101 032500 42101032500 325 Census Tract 325 G5020 \n", "362 101 032600 42101032600 326 Census Tract 326 G5020 \n", "363 101 989100 42101989100 9891 Census Tract 9891 G5020 \n", "364 101 032900 42101032900 329 Census Tract 329 G5020 \n", "365 101 033000 42101033000 330 Census Tract 330 G5020 \n", "366 101 033200 42101033200 332 Census Tract 332 G5020 \n", "367 101 980300 42101980300 9803 Census Tract 9803 G5020 \n", "368 101 035500 42101035500 355 Census Tract 355 G5020 \n", "369 101 035800 42101035800 358 Census Tract 358 G5020 \n", "370 101 035900 42101035900 359 Census Tract 359 G5020 \n", "371 101 036000 42101036000 360 Census Tract 360 G5020 \n", "372 101 036100 42101036100 361 Census Tract 361 G5020 \n", "373 101 036203 42101036203 362.03 Census Tract 362.03 G5020 \n", "374 101 035302 42101035302 353.02 Census Tract 353.02 G5020 \n", "375 101 036201 42101036201 362.01 Census Tract 362.01 G5020 \n", "376 101 036302 42101036302 363.02 Census Tract 363.02 G5020 \n", "377 101 036900 42101036900 369 Census Tract 369 G5020 \n", "378 101 037300 42101037300 373 Census Tract 373 G5020 \n", "379 101 037200 42101037200 372 Census Tract 372 G5020 \n", "380 101 038300 42101038300 383 Census Tract 383 G5020 \n", "381 101 039000 42101039000 390 Census Tract 390 G5020 \n", "382 101 037800 42101037800 378 Census Tract 378 G5020 \n", "383 101 037700 42101037700 377 Census Tract 377 G5020 \n", "\n", " FUNCSTAT10 ALAND10 AWATER10 INTPTLAT10 INTPTLON10 LOGRECNO \n", "0 S 366717 0 +39.9632709 -075.2322437 10429 \n", "1 S 319070 0 +39.9658709 -075.2379140 10430 \n", "2 S 405273 0 +39.9655396 -075.2435075 10431 \n", "3 S 341256 0 +39.9764504 -075.1771771 10468 \n", "4 S 562934 0 +39.9750563 -075.1711846 10469 \n", "5 S 439802 0 +39.9735358 -075.1630966 10470 \n", "6 S 562132 0 +39.9708771 -075.1524555 10471 \n", "7 S 789935 277434 +39.9652375 -075.1359612 10472 \n", "8 S 570015 282808 +39.9671225 -075.1265617 10473 \n", "9 S 609439 0 +39.9722286 -075.1400952 10474 \n", "10 S 321464 0 +39.9760715 -075.1484189 10475 \n", "11 S 445048 0 +39.9764305 -075.1546990 10476 \n", "12 S 337677 0 +39.9785489 -075.1620244 10477 \n", "13 S 191126 0 +39.9802047 -075.1691610 10478 \n", "14 S 453221 0 +39.9816503 -075.1804029 10479 \n", "15 S 669101 0 +39.9854546 -075.1700491 10482 \n", "16 S 469136 0 +39.9837644 -075.1608849 10483 \n", "17 S 429567 0 +39.9790066 -075.1418910 10484 \n", "18 S 778606 12639 +40.0095015 -075.0986136 10517 \n", "19 S 1439101 20770 +40.0095510 -075.1071820 10518 \n", "20 S 656913 0 +40.0006393 -075.1150648 10519 \n", "21 S 450587 0 +40.0162799 -075.1379372 10522 \n", "22 S 541006 0 +40.0107245 -075.1421472 10523 \n", "23 S 661884 0 +40.0048515 -075.1435463 10524 \n", "24 S 316676 0 +40.0025289 -075.1508995 10525 \n", "25 S 756814 0 +40.0081282 -075.1621609 10528 \n", "26 S 508176 0 +40.0125820 -075.1495922 10529 \n", "27 S 407372 0 +40.0198216 -075.1525117 10530 \n", "28 S 1429510 0 +40.0158738 -075.1643607 10531 \n", "29 S 1295848 56842 +40.0198000 -075.1827740 10532 \n", "30 S 727889 60713 +39.9445258 -075.1862050 10354 \n", "31 S 315832 0 +39.9429436 -075.1715930 10355 \n", "32 S 239383 0 +39.9419037 -075.1591158 10356 \n", "33 S 196392 0 +39.9402546 -075.1483127 10357 \n", "34 S 221530 0 +39.9377593 -075.1483114 10358 \n", "35 S 242483 0 +39.9399998 -075.1593091 10359 \n", "36 S 328327 0 +39.9400454 -075.1722270 10360 \n", "37 S 289368 0 +39.9381416 -075.1843145 10361 \n", "38 S 237519 0 +39.9372214 -075.1768955 10362 \n", "39 S 228696 0 +39.9364111 -075.1703923 10363 \n", "40 S 212379 0 +39.9348217 -075.1629799 10364 \n", "41 S 535421 0 +39.9367634 -075.1595100 10365 \n", "42 S 398697 0 +39.9342960 -075.1498023 10366 \n", "43 S 370217 0 +39.9306984 -075.1655729 10371 \n", "44 S 395908 0 +39.9323428 -075.1779572 10374 \n", "45 S 4504459 3340294 +39.8898768 -075.1691412 10389 \n", "46 S 1846253 530013 +39.8904539 -075.2513923 10390 \n", "47 S 1168442 12010 +39.9074191 -075.2489174 10391 \n", "48 S 840411 0 +39.8988328 -075.2447347 10392 \n", "49 S 1089657 0 +39.9115196 -075.2381570 10393 \n", "50 S 534201 0 +39.9150013 -075.2288094 10394 \n", "51 S 509636 0 +39.9194134 -075.2335257 10395 \n", "52 S 555602 0 +39.9210843 -075.2399762 10396 \n", "53 S 497695 0 +39.9710834 -075.2503759 10434 \n", "54 S 601437 0 +39.9721396 -075.2425290 10435 \n", "55 S 360618 0 +39.9680830 -075.2316701 10436 \n", "56 S 281357 0 +39.9678322 -075.2254383 10437 \n", "57 S 472051 0 +39.9654995 -075.2191193 10438 \n", "58 S 657766 0 +39.9665652 -075.2142018 10439 \n", "59 S 265466 0 +39.9646327 -075.2079213 10440 \n", "60 S 460475 0 +39.9687475 -075.2069442 10441 \n", "61 S 585732 0 +39.9660217 -075.1989890 10442 \n", "62 S 248168 0 +39.9649286 -075.1917650 10443 \n", "63 S 472868 0 +39.9737291 -075.2062951 10444 \n", "64 S 1301411 0 +39.9752003 -075.2215745 10445 \n", "65 S 503162 0 +39.9736041 -075.2336533 10446 \n", "66 S 334899 0 +39.9786554 -075.2353346 10447 \n", "67 S 972947 0 +39.9807388 -075.2440178 10448 \n", "68 S 485211 0 +39.9780463 -075.1355242 10485 \n", "69 S 580218 0 +39.9735773 -075.1294327 10486 \n", "70 S 720839 0 +39.9793809 -075.1231903 10487 \n", "71 S 707586 0 +39.9844571 -075.1275250 10488 \n", "72 S 364983 0 +39.9840197 -075.1384217 10489 \n", "73 S 572226 0 +39.9885061 -075.1339156 10490 \n", "74 S 485026 0 +39.9896437 -075.1431665 10491 \n", "75 S 394713 0 +39.9890550 -075.1491723 10492 \n", "76 S 261133 0 +39.9890491 -075.1536062 10493 \n", "77 S 581301 0 +39.9917820 -075.1676540 10496 \n", "78 S 420397 0 +39.9238262 -075.1732854 10381 \n", "79 S 563700 0 +39.9939857 -075.1831934 10498 \n", "80 S 512907 0 +39.9930523 -075.1758394 10497 \n", "81 S 1428274 99543 +40.0126929 -075.1944867 10533 \n", "82 S 880647 0 +40.0213151 -075.1936140 10534 \n", "83 S 509953 35428 +40.0186576 -075.2089795 10535 \n", "84 S 858223 55719 +40.0244730 -075.2151045 10536 \n", "85 S 540313 0 +40.0264564 -075.2065293 10537 \n", "86 S 515705 0 +40.0348390 -075.2125337 10538 \n", "87 S 538876 0 +40.0322339 -075.2181175 10539 \n", "88 S 607138 56535 +40.0279290 -075.2240827 10540 \n", "89 S 1003279 40236 +40.0350417 -075.2288249 10541 \n", "90 S 1991850 111706 +40.0436758 -075.2403985 10542 \n", "91 S 407855 0 +40.0332734 -075.1759175 10554 \n", "92 S 532060 0 +40.0285110 -075.1697086 10555 \n", "93 S 679035 0 +40.0215855 -075.1710376 10556 \n", "94 S 421189 0 +40.0248284 -075.1638925 10557 \n", "95 S 801001 0 +40.0333286 -075.1620463 10558 \n", "96 S 621264 0 +40.0409623 -075.1729016 10559 \n", "97 S 941266 0 +40.0417034 -075.1645311 10560 \n", "98 S 319263 0 +40.0468442 -075.1668818 10561 \n", "99 S 325198 0 +40.0511009 -075.1601167 10562 \n", "100 S 952423 0 +40.0468352 -075.1771588 10563 \n", "101 S 581298 0 +40.0542198 -075.1822200 10564 \n", "102 S 769760 0 +40.0604202 -075.1760718 10565 \n", "103 S 766603 0 +40.0625796 -075.1840640 10566 \n", "104 S 863997 1979 +40.0683411 -075.1883025 10567 \n", "105 S 673067 0 +40.0260505 -075.1438525 10597 \n", "106 S 492451 0 +40.0251577 -075.1381287 10598 \n", "107 S 267006 0 +40.0287154 -075.1337359 10599 \n", "108 S 717845 0 +40.0285757 -075.1276448 10600 \n", "109 S 340972 0 +40.0218194 -075.1314402 10601 \n", "110 S 442001 0 +40.0222841 -075.1240562 10602 \n", "111 S 818133 20001 +40.0296096 -075.1166058 10605 \n", "112 S 1327550 0 +40.0361323 -075.1074594 10606 \n", "113 S 1732847 28953 +40.0249561 -075.1021580 10607 \n", "114 S 685641 0 +40.0137540 -075.0917655 10608 \n", "115 S 647647 0 +40.0094789 -075.0854721 10609 \n", "116 S 649155 0 +40.0159529 -075.0678013 10610 \n", "117 S 1011566 0 +40.0550147 -075.0440558 10644 \n", "118 S 1218434 0 +40.0535052 -075.0529610 10645 \n", "119 S 942793 0 +40.0546014 -075.0648677 10646 \n", "120 S 1153639 0 +40.0614785 -075.0592350 10647 \n", "121 S 1400220 0 +40.0626481 -075.0736440 10650 \n", "122 S 1141156 0 +40.0685560 -075.0873418 10651 \n", "123 S 763893 729 +40.0711759 -075.0735007 10652 \n", "124 S 1333267 0 +40.0763415 -075.0806938 10653 \n", "125 S 1000768 0 +40.0825947 -075.0721585 10654 \n", "126 S 5200674 250845 +40.0714709 -075.0443910 10710 \n", "127 S 3399171 13905 +40.0943325 -075.0564419 10655 \n", "128 S 1853669 5746 +40.0708314 -075.0207264 10658 \n", "129 S 645368 16097 +39.9251805 -075.2428396 10397 \n", "130 S 1111283 29425 +39.9330955 -075.2318406 10398 \n", "131 S 651244 0 +39.9293155 -075.2298425 10399 \n", "132 S 2322732 66075 +40.0895349 -074.9667387 10681 \n", "133 S 4501110 8014 +40.1127747 -074.9789137 10684 \n", "134 S 1004313 1426278 +39.9470272 -075.1404472 10687 \n", "135 S 1271533 8021 +40.0619427 -075.0023705 10663 \n", "136 S 1016206 0 +40.0570427 -075.0283288 10660 \n", "137 S 1116115 2329 +40.0838623 -074.9781805 10679 \n", "138 S 1089154 0 +39.9184658 -075.1831323 10380 \n", "139 S 425234 0 +39.9566981 -075.2414378 10416 \n", "140 S 400458 0 +39.9967182 -075.1305528 10507 \n", "141 S 471662 0 +39.9450045 -075.1466193 10349 \n", "142 S 229399 0 +39.9456722 -075.1516020 10348 \n", "143 S 303680 0 +39.9532973 -075.1686952 10339 \n", "144 S 214766 14981 +39.9541871 -075.1758082 10338 \n", "145 S 849290 56473 +40.0009407 -075.2120769 10457 \n", "146 S 226108 0 +40.0074668 -075.2093526 10456 \n", "147 S 234732 0 +39.9715714 -075.1798097 10466 \n", "148 S 447469 0 +40.0749091 -075.0392089 10656 \n", "149 S 1009269 0 +40.0814446 -075.0383811 10657 \n", "150 S 204062 0 +39.9442654 -075.1566960 10351 \n", "151 S 155164 0 +39.9471596 -075.1566389 10347 \n", "152 S 105510 0 +39.9478866 -075.1623004 10346 \n", "153 S 262958 0 +39.9993972 -075.1686145 10501 \n", "154 S 290610 0 +39.9986670 -075.1742061 10502 \n", "155 S 326659 0 +40.0386049 -075.1286496 10586 \n", "156 S 483577 0 +40.0036824 -075.1553072 10526 \n", "157 S 373125 0 +40.0111415 -075.1545676 10527 \n", "158 S 349649 0 +40.0422496 -075.0785449 10622 \n", "159 S 397973 0 +40.0370850 -075.0833729 10623 \n", "160 S 370302 0 +40.0034030 -075.1300445 10521 \n", "161 S 393883 0 +40.0004303 -075.1316227 10520 \n", "162 S 598655 0 +40.0171008 -075.1151820 10603 \n", "163 S 772294 6267 +40.0216105 -075.1116877 10604 \n", "164 S 486954 0 +40.0403093 -075.0379505 10641 \n", "165 S 718272 0 +40.0451050 -075.0272869 10642 \n", "166 S 587242 0 +40.0365919 -075.0481642 10628 \n", "167 S 377375 0 +40.0428163 -075.0994351 10615 \n", "168 S 699246 0 +40.0457206 -075.1046619 10616 \n", "169 S 611026 0 +39.9745879 -075.2679037 10433 \n", "170 S 387383 0 +39.9810569 -075.1128000 10512 \n", "171 S 489258 0 +39.9950621 -075.1231399 10509 \n", "172 S 241053 0 +39.9964470 -075.1167526 10508 \n", "173 S 1394868 1863 +40.1079419 -075.0480601 10671 \n", "174 S 598625 718 +40.1095846 -075.0286811 10672 \n", "175 S 1559149 0 +40.1130914 -075.0374316 10673 \n", "176 S 2029707 12498 +40.0973908 -075.0388184 10670 \n", "177 S 193072 0 +39.9869632 -075.1857502 10480 \n", "178 S 556570 0 +39.9861430 -075.1794280 10481 \n", "179 S 1816093 7168 +40.1290877 -075.0120077 10685 \n", "180 S 2923998 51364 +39.8798897 -075.2337414 10712 \n", "181 S 238612 0 +39.9653623 -075.1690326 10463 \n", "182 S 164058 0 +39.9659574 -075.1752507 10462 \n", "183 S 167625 0 +39.9689697 -075.1785774 10465 \n", "184 S 1374524 0 +39.9910899 -075.0927158 10696 \n", "185 S 1828671 25840 +39.9963741 -075.0973643 10699 \n", "186 S 874602 0 +40.0052279 -075.0807845 10697 \n", "187 S 3335029 1629584 +40.0189334 -075.0399564 10698 \n", "188 S 2546785 0 +40.0714163 -075.2332568 10701 \n", "189 S 704909 0 +39.9523827 -075.1466628 10335 \n", "190 S 382478 0 +39.9553999 -075.1569775 10336 \n", "191 S 548342 356 +39.9568780 -075.1716655 10337 \n", "192 S 428783 0 +39.9519534 -075.1581776 10340 \n", "193 S 172655 0 +39.9493845 -075.1583354 10341 \n", "194 S 246682 7087 +39.9510463 -075.1729143 10342 \n", "195 S 491790 0 +39.9333011 -075.1854187 10375 \n", "196 S 1062354 72863 +39.9384405 -075.1958253 10376 \n", "197 S 964539 0 +39.9279255 -075.1920206 10377 \n", "198 S 355619 0 +39.9276728 -075.1806654 10378 \n", "199 S 247413 0 +39.9245283 -075.1824354 10379 \n", "200 S 374000 0 +39.9229611 -075.1589741 10385 \n", "201 S 344837 0 +39.9188943 -075.1674160 10384 \n", "202 S 452596 0 +39.9167178 -075.1744119 10382 \n", "203 S 314952 0 +39.9238035 -075.1662102 10383 \n", "204 S 391854 0 +39.9179425 -075.1600629 10386 \n", "205 S 453343 0 +39.9168570 -075.1516284 10388 \n", "206 S 361679 0 +39.9219554 -075.1512640 10387 \n", "207 S 377950 0 +39.9504630 -075.2182570 10410 \n", "208 S 430471 0 +39.9506613 -075.2268423 10411 \n", "209 S 832334 11136 +39.9491574 -075.2444494 10414 \n", "210 S 579127 0 +39.9939260 -075.1343448 10506 \n", "211 S 510557 6713 +39.9577810 -075.2467384 10415 \n", "212 S 501765 0 +39.9579899 -075.2354681 10417 \n", "213 S 621445 0 +39.9568821 -075.2265389 10418 \n", "214 S 436319 0 +39.9595116 -075.1906245 10425 \n", "215 S 425573 0 +39.9594179 -075.1977245 10426 \n", "216 S 512009 0 +39.9601608 -075.2074723 10427 \n", "217 S 402475 0 +39.9622914 -075.2240225 10428 \n", "218 S 1001467 0 +39.9242475 -075.2242816 10400 \n", "219 S 704352 102803 +39.9306204 -075.2146526 10401 \n", "220 S 469047 0 +39.9351850 -075.2214770 10402 \n", "221 S 502614 0 +39.9446370 -075.2332168 10405 \n", "222 S 387201 0 +39.9448185 -075.2232916 10406 \n", "223 S 675930 0 +39.9408575 -075.2143067 10407 \n", "224 S 322260 0 +39.9463523 -075.2082584 10408 \n", "225 S 427404 0 +39.9464580 -075.2162637 10409 \n", "226 S 370456 0 +39.9773687 -075.2518303 10449 \n", "227 S 654019 0 +39.9919070 -075.2404371 10450 \n", "228 S 915129 0 +39.9852889 -075.2357395 10451 \n", "229 S 691111 0 +39.9861142 -075.2288429 10452 \n", "230 S 600681 0 +39.9955323 -075.2297466 10453 \n", "231 S 876796 5378 +39.9964998 -075.2223795 10454 \n", "232 S 864810 49075 +39.9613701 -075.1720837 10458 \n", "233 S 322157 0 +39.9651312 -075.1507381 10459 \n", "234 S 426671 0 +39.9662042 -075.1571335 10460 \n", "235 S 357932 0 +39.9666126 -075.1629455 10461 \n", "236 S 404891 0 +39.9693564 -075.1700367 10464 \n", "237 S 589738 0 +39.9772752 -075.1842323 10467 \n", "238 S 1570376 50400 +40.0078614 -075.1834204 10499 \n", "239 S 1140882 0 +40.0027449 -075.1763248 10500 \n", "240 S 874586 0 +39.9985707 -075.1609337 10503 \n", "241 S 353985 0 +39.9962138 -075.1503586 10504 \n", "242 S 719915 6252 +39.9979150 -075.1429842 10505 \n", "243 S 662905 0 +39.9913734 -075.1173063 10510 \n", "244 S 714008 0 +39.9870535 -075.1139340 10511 \n", "245 S 1834680 185387 +39.9956035 -075.0746225 10514 \n", "246 S 1285745 949471 +39.9996644 -075.0637363 10515 \n", "247 S 663288 0 +39.9973659 -075.1058296 10516 \n", "248 S 1559576 0 +40.0450277 -075.2239451 10543 \n", "249 S 996088 0 +40.0574759 -075.2324353 10544 \n", "250 S 1410069 51091 +40.0505829 -075.2470033 10545 \n", "251 S 2944018 99558 +40.0562177 -075.2520092 10546 \n", "252 S 5476589 240667 +40.0509585 -075.2149160 10709 \n", "253 S 732803 1270 +40.0666637 -075.2038514 10547 \n", "254 S 775430 0 +40.0394435 -075.2007925 10548 \n", "255 S 978096 0 +40.0427145 -075.1946940 10549 \n", "256 S 1072973 0 +40.0487394 -075.1886069 10550 \n", "257 S 781630 0 +40.0389370 -075.1827038 10551 \n", "258 S 486037 2704 +40.0339713 -075.1875115 10552 \n", "259 S 617080 0 +40.0280807 -075.1794623 10553 \n", "260 S 748205 0 +40.0724586 -075.1962708 10568 \n", "261 S 586719 0 +40.0739801 -075.1823113 10569 \n", "262 S 549415 0 +40.0799255 -075.1759762 10570 \n", "263 S 543433 0 +40.0761235 -075.1694560 10571 \n", "264 S 649364 0 +40.0704645 -075.1755189 10572 \n", "265 S 555958 0 +40.0664940 -075.1692176 10573 \n", "266 S 1385963 5188 +40.0545325 -075.0163104 10661 \n", "267 S 704112 0 +40.0687425 -075.1571945 10575 \n", "268 S 796819 0 +40.0625462 -075.1620066 10576 \n", "269 S 545961 0 +40.0587255 -075.1546921 10577 \n", "270 S 913982 0 +40.0634828 -075.1473266 10578 \n", "271 S 643873 0 +40.0547569 -075.1479247 10579 \n", "272 S 774174 0 +40.0555270 -075.1399312 10580 \n", "273 S 591451 0 +40.0131465 -075.0747146 10611 \n", "274 S 910854 0 +40.0186719 -075.0780880 10612 \n", "275 S 725113 0 +40.0204947 -075.0885046 10613 \n", "276 S 901710 0 +40.0259863 -075.0823128 10614 \n", "277 S 1007799 0 +40.0504922 -075.0943787 10617 \n", "278 S 653309 0 +40.0573133 -075.0885390 10618 \n", "279 S 795704 0 +40.0547831 -075.0819056 10619 \n", "280 S 645014 0 +40.0437632 -075.0851914 10620 \n", "281 S 1063411 0 +40.0497292 -075.0744541 10621 \n", "282 S 429736 0 +40.0354204 -075.0774550 10624 \n", "283 S 711141 0 +40.0393190 -075.0698140 10625 \n", "284 S 713953 0 +40.0326126 -075.0590717 10630 \n", "285 S 881689 0 +40.0306050 -075.0683989 10631 \n", "286 S 2555861 0 +40.1051833 -074.9702250 10683 \n", "287 S 1148190 57 +40.0645576 -075.0329783 10659 \n", "288 S 1232182 8014 +40.0687035 -075.0097300 10662 \n", "289 S 1944040 0 +40.0453848 -075.0090768 10664 \n", "290 S 997442 666018 +40.0488411 -074.9859716 10665 \n", "291 S 1838264 27863 +40.0559122 -074.9907443 10666 \n", "292 S 1375222 36973 +40.0659313 -074.9934646 10667 \n", "293 S 406340 0 +40.0728148 -075.1637161 10574 \n", "294 S 145453 0 +39.9485646 -075.1677563 10345 \n", "295 S 308560 0 +39.9459117 -075.1699475 10353 \n", "296 S 327555 30728 +39.9471666 -075.1798721 10352 \n", "297 S 152820 0 +39.9493748 -075.1742489 10344 \n", "298 S 17228698 3463789 +39.9051799 -075.2174145 10717 \n", "299 S 367673 0 +39.9280114 -075.1495606 10368 \n", "300 S 226951 0 +39.9327263 -075.1711915 10373 \n", "301 S 226547 0 +39.9290640 -075.1719912 10372 \n", "302 S 362690 0 +39.9288001 -075.1614073 10370 \n", "303 S 5957147 1730038 +39.9104684 -075.1431656 10715 \n", "304 S 224840 0 +39.9285526 -075.1537033 10367 \n", "305 S 1286624 0 +39.9055378 -075.1707151 10714 \n", "306 S 973653 0 +40.0672105 -075.0482983 10648 \n", "307 S 1057798 0 +40.0707532 -075.0578212 10649 \n", "308 S 578101 0 +40.0392658 -075.0548693 10629 \n", "309 S 594849 0 +40.0457134 -075.0665728 10626 \n", "310 S 564136 0 +40.0432797 -075.0602860 10627 \n", "311 S 254046 0 +39.9911965 -075.1619017 10494 \n", "312 S 355103 0 +39.9904175 -075.1578177 10495 \n", "313 S 415780 0 +40.0458879 -075.1544482 10592 \n", "314 S 889784 0 +40.0374381 -075.1543087 10593 \n", "315 S 243700 0 +39.9483649 -075.2360506 10412 \n", "316 S 415761 0 +39.9409204 -075.2282511 10404 \n", "317 S 390951 0 +39.9529808 -075.2027893 10424 \n", "318 S 283566 0 +39.9538114 -075.2070435 10422 \n", "319 S 259523 0 +39.9535656 -075.2104988 10421 \n", "320 S 362526 0 +39.9522216 -075.2345584 10413 \n", "321 S 369142 0 +39.9569725 -075.2167030 10420 \n", "322 S 1032702 1496 +39.9840699 -075.2551922 10692 \n", "323 S 2106698 43823 +39.9714517 -075.2621770 10716 \n", "324 S 439791 0 +39.9836344 -075.1067096 10513 \n", "325 S 184674 0 +39.9539319 -075.1984477 10423 \n", "326 S 380689 2325 +40.0034648 -075.2106388 10455 \n", "327 S 297977 0 +39.9775172 -075.2665972 10432 \n", "328 S 253256 0 +39.9381580 -075.2249984 10403 \n", "329 S 222950 0 +39.9289729 -075.1568319 10369 \n", "330 S 401968 13468 +40.0177581 -075.1441820 10713 \n", "331 S 99958 12755 +39.9497374 -075.1804054 10343 \n", "332 S 174014 0 +39.9449918 -075.1625240 10350 \n", "333 S 511360 0 +40.0390702 -075.1251352 10587 \n", "334 S 252482 0 +39.9537341 -075.2165930 10419 \n", "335 S 1733189 0 +40.1235705 -074.9993521 10686 \n", "336 S 801969 0 +39.9607248 -075.1439885 10688 \n", "337 S 717304 0 +39.9599009 -075.1551651 10693 \n", "338 S 3304398 32066 +40.0582762 -075.2110913 10703 \n", "339 S 1338941 2576 +40.0757528 -075.2146234 10702 \n", "340 S 2053212 22241 +40.0833122 -075.2130770 10704 \n", "341 S 1383530 4751 +40.0571595 -075.1982438 10705 \n", "342 S 1280551 0 +40.0543431 -075.1682764 10706 \n", "343 S 8922478 1508835 +39.9880961 -075.1967773 10708 \n", "344 S 614686 0 +40.0556007 -075.1324048 10581 \n", "345 S 642216 0 +40.0493231 -075.1331512 10582 \n", "346 S 372278 39344 +40.0484793 -075.1263611 10583 \n", "347 S 679046 794 +40.0472339 -075.1180889 10584 \n", "348 S 938011 14079 +40.0377547 -075.1189432 10585 \n", "349 S 606825 0 +40.0400497 -075.1322707 10588 \n", "350 S 663745 0 +40.0429404 -075.1392771 10589 \n", "351 S 542404 0 +40.0505444 -075.1512267 10590 \n", "352 S 724725 0 +40.0425278 -075.1471626 10591 \n", "353 S 718346 0 +40.0261190 -075.1546481 10594 \n", "354 S 503541 0 +40.0304473 -075.1491299 10595 \n", "355 S 855812 0 +40.0348704 -075.1403327 10596 \n", "356 S 464290 0 +40.0311021 -075.0769892 10632 \n", "357 S 773285 0 +40.0230600 -075.0648988 10633 \n", "358 S 681549 0 +40.0271751 -075.0548674 10634 \n", "359 S 552928 0 +40.0170175 -075.0589752 10635 \n", "360 S 600043 0 +40.0210898 -075.0515270 10636 \n", "361 S 839319 0 +40.0263918 -075.0452561 10637 \n", "362 S 809898 0 +40.0302773 -075.0396263 10638 \n", "363 S 2664969 1649710 +40.0377830 -075.0034085 10718 \n", "364 S 922922 21617 +40.0379010 -075.0249713 10639 \n", "365 S 732860 0 +40.0335974 -075.0338492 10640 \n", "366 S 828420 0 +40.0439411 -075.0448281 10643 \n", "367 S 7594331 24435 +40.0812065 -075.0106977 10711 \n", "368 S 2290053 1067 +40.0911285 -075.0293244 10669 \n", "369 S 1757756 2013 +40.1213169 -075.0257898 10674 \n", "370 S 2244717 2511 +40.1103418 -075.0151645 10675 \n", "371 S 2043084 638 +40.1042670 -075.0108187 10676 \n", "372 S 1230432 7138 +40.0987766 -074.9907481 10677 \n", "373 S 1475496 68020 +40.0760921 -074.9742967 10680 \n", "374 S 1498641 17292 +40.0730774 -074.9968713 10668 \n", "375 S 1031929 15195 +40.0820300 -074.9868079 10678 \n", "376 S 502696 0 +40.0973153 -074.9805151 10682 \n", "377 S 1859159 193283 +39.9494281 -075.1957548 10689 \n", "378 S 2573046 162376 +39.9024981 -075.1879361 10691 \n", "379 S 1028984 0 +39.9129487 -075.1599379 10690 \n", "380 S 3064496 0 +40.0108630 -075.1248984 10700 \n", "381 S 2032689 0 +40.0357300 -075.0938840 10707 \n", "382 S 3760084 1936838 +39.9805802 -075.0956845 10695 \n", "383 S 736894 0 +39.9824381 -075.1506932 10694 " ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "census_tracts = tracts.to_crs('epsg:4326')\n", "census_tracts" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometryOBJECTIDSTATEFP10COUNTYFP10TRACTCE10GEOID10NAME10NAMELSAD10MTFCC10FUNCSTAT10ALAND10AWATER10INTPTLAT10INTPTLON10LOGRECNOMAPE
0POLYGON ((-75.22927 39.96054, -75.22865 39.960...1421010094004210100940094Census Tract 94G5020S3667170+39.9632709-075.2322437104292.745771
1POLYGON ((-75.23536 39.96852, -75.23545 39.969...2421010095004210100950095Census Tract 95G5020S3190700+39.9658709-075.2379140104303.050939
2POLYGON ((-75.24343 39.96230, -75.24339 39.962...3421010096004210100960096Census Tract 96G5020S4052730+39.9655396-075.2435075104311.851506
3POLYGON ((-75.17341 39.97779, -75.17386 39.977...44210101380042101013800138Census Tract 138G5020S3412560+39.9764504-075.1771771104681.356420
4POLYGON ((-75.17313 39.97776, -75.17321 39.977...54210101390042101013900139Census Tract 139G5020S5629340+39.9750563-075.1711846104690.510644
5POLYGON ((-75.16141 39.97044, -75.16056 39.970...64210101400042101014000140Census Tract 140G5020S4398020+39.9735358-075.1630966104700.716524
6POLYGON ((-75.15719 39.96959, -75.15609 39.969...74210101410042101014100141Census Tract 141G5020S5621320+39.9708771-075.1524555104710.372744
7POLYGON ((-75.13330 39.96102, -75.13084 39.959...84210101420042101014200142Census Tract 142G5020S789935277434+39.9652375-075.1359612104720.896706
8POLYGON ((-75.12110 39.96858, -75.12225 39.970...94210101430042101014300143Census Tract 143G5020S570015282808+39.9671225-075.1265617104731.343638
9POLYGON ((-75.13574 39.96880, -75.13536 39.968...104210101440042101014400144Census Tract 144G5020S6094390+39.9722286-075.1400952104740.733026
10POLYGON ((-75.14936 39.97327, -75.14887 39.973...114210101450042101014500145Census Tract 145G5020S3214640+39.9760715-075.1484189104752.573990
11POLYGON ((-75.15224 39.97954, -75.15381 39.979...124210101460042101014600146Census Tract 146G5020S4450480+39.9764305-075.1546990104761.423147
12POLYGON ((-75.16018 39.97608, -75.15947 39.975...134210101470042101014700147Census Tract 147G5020S3376770+39.9785489-075.1620244104772.145712
13POLYGON ((-75.18786 39.98112, -75.18701 39.981...154210101490042101014900149Census Tract 149G5020S4532210+39.9816503-075.1804029104793.241847
14POLYGON ((-75.17226 39.98999, -75.17236 39.990...164210101520042101015200152Census Tract 152G5020S6691010+39.9854546-075.1700491104823.760764
15POLYGON ((-75.16362 39.98725, -75.16419 39.987...174210101530042101015300153Census Tract 153G5020S4691360+39.9837644-075.1608849104831.509038
16POLYGON ((-75.13941 39.97634, -75.13911 39.977...184210101560042101015600156Census Tract 156G5020S4295670+39.9790066-075.1418910104840.956792
17POLYGON ((-75.09490 40.01049, -75.09489 40.010...194210101900042101019000190Census Tract 190G5020S77860612639+40.0095015-075.0986136105171.697944
18POLYGON ((-75.10715 40.01674, -75.10724 40.016...204210101910042101019100191Census Tract 191G5020S143910120770+40.0095510-075.1071820105181.215722
19POLYGON ((-75.10760 39.99967, -75.10645 40.000...214210101920042101019200192Census Tract 192G5020S6569130+40.0006393-075.1150648105193.730986
20POLYGON ((-75.13586 40.01199, -75.13554 40.013...224210101970042101019700197Census Tract 197G5020S4505870+40.0162799-075.1379372105224.394752
21POLYGON ((-75.13672 40.00803, -75.13661 40.008...234210101980042101019800198Census Tract 198G5020S5410060+40.0107245-075.1421472105233.827342
22POLYGON ((-75.13886 40.00322, -75.13821 40.003...244210101990042101019900199Census Tract 199G5020S6618840+40.0048515-075.1435463105242.187150
23POLYGON ((-75.16429 40.00308, -75.16385 40.003...264210102020042101020200202Census Tract 202G5020S7568140+40.0081282-075.1621609105282.649841
24POLYGON ((-75.14955 40.01788, -75.15031 40.017...274210102030042101020300203Census Tract 203G5020S5081760+40.0125820-075.1495922105294.242486
25POLYGON ((-75.14955 40.01788, -75.14935 40.017...284210102040042101020400204Census Tract 204G5020S4073720+40.0198216-075.1525117105303.971670
26POLYGON ((-75.17404 40.01697, -75.17486 40.016...294210102050042101020500205Census Tract 205G5020S14295100+40.0158738-075.1643607105313.539795
27POLYGON ((-75.18196 40.02554, -75.18251 40.025...304210102060042101020600206Census Tract 206G5020S129584856842+40.0198000-075.1827740105321.859173
28POLYGON ((-75.18953 39.94521, -75.18959 39.945...31421010013004210100130013Census Tract 13G5020S72788960713+39.9445258-075.1862050103540.808594
29POLYGON ((-75.16582 39.94254, -75.16578 39.942...32421010014004210100140014Census Tract 14G5020S3158320+39.9429436-075.1715930103551.137513
30POLYGON ((-75.16549 39.94366, -75.16558 39.943...33421010015004210100150015Census Tract 15G5020S2393830+39.9419037-075.1591158103560.554873
31POLYGON ((-75.15119 39.94189, -75.15156 39.941...34421010016004210100160016Census Tract 16G5020S1963920+39.9402546-075.1483127103570.986651
32POLYGON ((-75.14347 39.93873, -75.14388 39.938...35421010017004210100170017Census Tract 17G5020S2215300+39.9377593-075.1483114103581.232508
33POLYGON ((-75.16591 39.94182, -75.16599 39.941...36421010018004210100180018Census Tract 18G5020S2424830+39.9399998-075.1593091103590.598195
34POLYGON ((-75.16636 39.94004, -75.16628 39.940...37421010019004210100190019Census Tract 19G5020S3283270+39.9400454-075.1722270103600.521558
35POLYGON ((-75.18855 39.93846, -75.18859 39.938...38421010020004210100200020Census Tract 20G5020S2893680+39.9381416-075.1843145103610.705205
36POLYGON ((-75.17370 39.93624, -75.17369 39.936...39421010021004210100210021Census Tract 21G5020S2375190+39.9372214-075.1768955103620.786956
37POLYGON ((-75.17370 39.93624, -75.17378 39.935...40421010022004210100220022Census Tract 22G5020S2286960+39.9364111-075.1703923103631.326978
38POLYGON ((-75.16702 39.93675, -75.16709 39.936...41421010023004210100230023Census Tract 23G5020S2123790+39.9348217-075.1629799103640.759536
39POLYGON ((-75.16629 39.94004, -75.16636 39.940...42421010024004210100240024Census Tract 24G5020S5354210+39.9367634-075.1595100103650.801001
40POLYGON ((-75.14526 39.93557, -75.14574 39.935...43421010025004210100250025Census Tract 25G5020S3986970+39.9342960-075.1498023103661.348228
41POLYGON ((-75.16758 39.93415, -75.16764 39.934...44421010029004210100290029Census Tract 29G5020S3702170+39.9306984-075.1655729103711.119681
42POLYGON ((-75.17520 39.92930, -75.17512 39.929...45421010031004210100310031Census Tract 31G5020S3959080+39.9323428-075.1779572103741.323973
43POLYGON ((-75.24623 39.88951, -75.24585 39.889...47421010054004210100540054Census Tract 54G5020S1846253530013+39.8904539-075.2513923103900.456891
44POLYGON ((-75.25129 39.90441, -75.25179 39.903...48421010055004210100550055Census Tract 55G5020S116844212010+39.9074191-075.2489174103911.688587
45POLYGON ((-75.24184 39.90384, -75.24196 39.903...49421010056004210100560056Census Tract 56G5020S8404110+39.8988328-075.2447347103922.935936
46POLYGON ((-75.23342 39.91385, -75.23369 39.914...50421010060004210100600060Census Tract 60G5020S10896570+39.9115196-075.2381570103932.152633
47POLYGON ((-75.22664 39.91909, -75.22684 39.919...51421010061004210100610061Census Tract 61G5020S5342010+39.9150013-075.2288094103941.393739
48POLYGON ((-75.23679 39.92091, -75.23722 39.920...52421010062004210100620062Census Tract 62G5020S5096360+39.9194134-075.2335257103952.655354
49POLYGON ((-75.23650 39.92112, -75.23570 39.921...53421010063004210100630063Census Tract 63G5020S5556020+39.9210843-075.2399762103962.558589
50POLYGON ((-75.24701 39.96668, -75.24685 39.967...544210101000042101010000100Census Tract 100G5020S4976950+39.9710834-075.2503759104342.667778
51POLYGON ((-75.23914 39.96990, -75.23905 39.969...554210101010042101010100101Census Tract 101G5020S6014370+39.9721396-075.2425290104352.533748
52POLYGON ((-75.23536 39.96852, -75.23535 39.968...564210101020042101010200102Census Tract 102G5020S3606180+39.9680830-075.2316701104364.572634
53POLYGON ((-75.22245 39.96654, -75.22262 39.967...574210101030042101010300103Census Tract 103G5020S2813570+39.9678322-075.2254383104372.829125
54POLYGON ((-75.22262 39.96735, -75.22245 39.966...584210101040042101010400104Census Tract 104G5020S4720510+39.9654995-075.2191193104383.739420
55POLYGON ((-75.21619 39.96249, -75.21700 39.959...594210101050042101010500105Census Tract 105G5020S6577660+39.9665652-075.2142018104390.893084
56POLYGON ((-75.20622 39.96255, -75.20558 39.962...604210101060042101010600106Census Tract 106G5020S2654660+39.9646327-075.2079213104404.285643
57POLYGON ((-75.20233 39.96321, -75.20231 39.963...614210101070042101010700107Census Tract 107G5020S4604750+39.9687475-075.2069442104418.969148
58POLYGON ((-75.19851 39.96945, -75.20372 39.970...624210101080042101010800108Census Tract 108G5020S5857320+39.9660217-075.1989890104422.194624
59POLYGON ((-75.18803 39.96330, -75.18742 39.963...634210101090042101010900109Census Tract 109G5020S2481680+39.9649286-075.1917650104431.858471
60POLYGON ((-75.19881 39.97473, -75.19900 39.974...644210101100042101011000110Census Tract 110G5020S4728680+39.9737291-075.2062951104444.473532
61POLYGON ((-75.21331 39.97723, -75.21347 39.977...654210101110042101011100111Census Tract 111G5020S13014110+39.9752003-075.2215745104454.918676
62POLYGON ((-75.23799 39.97297, -75.23774 39.971...664210101120042101011200112Census Tract 112G5020S5031620+39.9736041-075.2336533104463.129238
63POLYGON ((-75.23769 39.97621, -75.23681 39.976...674210101130042101011300113Census Tract 113G5020S3348990+39.9786554-075.2353346104474.776817
64POLYGON ((-75.23869 39.97674, -75.23879 39.977...684210101140042101011400114Census Tract 114G5020S9729470+39.9807388-075.2440178104483.342287
65POLYGON ((-75.13507 39.97432, -75.13463 39.974...694210101570042101015700157Census Tract 157G5020S4852110+39.9780463-075.1355242104851.035320
66POLYGON ((-75.12275 39.97373, -75.12260 39.973...704210101580042101015800158Census Tract 158G5020S5802180+39.9735773-075.1294327104860.834374
67POLYGON ((-75.11997 39.97592, -75.11977 39.976...714210101600042101016000160Census Tract 160G5020S7208390+39.9793809-075.1231903104871.265259
68POLYGON ((-75.12242 39.98701, -75.12292 39.987...724210101610042101016100161Census Tract 161G5020S7075860+39.9844571-075.1275250104880.924393
69POLYGON ((-75.14284 39.98620, -75.14350 39.986...734210101620042101016200162Census Tract 162G5020S3649830+39.9840197-075.1384217104890.854450
70POLYGON ((-75.13952 39.98652, -75.13957 39.986...744210101630042101016300163Census Tract 163G5020S5722260+39.9885061-075.1339156104903.379384
71POLYGON ((-75.13952 39.98652, -75.13935 39.987...754210101640042101016400164Census Tract 164G5020S4850260+39.9896437-075.1431665104913.351309
72POLYGON ((-75.15274 39.99204, -75.15283 39.991...764210101650042101016500165Census Tract 165G5020S3947130+39.9890550-075.1491723104922.704522
73POLYGON ((-75.15092 39.98561, -75.15020 39.985...774210101660042101016600166Census Tract 166G5020S2611330+39.9890491-075.1536062104935.059672
74POLYGON ((-75.17226 39.98999, -75.17214 39.989...784210101680042101016800168Census Tract 168G5020S5813010+39.9917820-075.1676540104964.126242
75POLYGON ((-75.17708 39.92022, -75.17637 39.920...79421010039014210100390139.01Census Tract 39.01G5020S4203970+39.9238262-075.1732854103811.442107
76POLYGON ((-75.18600 39.99013, -75.18590 39.990...804210101690242101016902169.02Census Tract 169.02G5020S5637000+39.9939857-075.1831934104984.011507
77POLYGON ((-75.17117 39.99417, -75.17112 39.994...814210101690142101016901169.01Census Tract 169.01G5020S5129070+39.9930523-075.1758394104973.426876
78POLYGON ((-75.19134 40.00791, -75.19052 40.008...824210102070042101020700207Census Tract 207G5020S142827499543+40.0126929-075.1944867105330.708376
79POLYGON ((-75.18251 40.02533, -75.18196 40.025...834210102080042101020800208Census Tract 208G5020S8806470+40.0213151-075.1936140105343.509548
80POLYGON ((-75.21465 40.01787, -75.21431 40.017...844210102090042101020900209Census Tract 209G5020S50995335428+40.0186576-075.2089795105350.961397
81POLYGON ((-75.21951 40.02186, -75.21940 40.021...854210102100042101021000210Census Tract 210G5020S85822355719+40.0244730-075.2151045105360.796325
82POLYGON ((-75.20876 40.03111, -75.20880 40.031...864210102110042101021100211Census Tract 211G5020S5403130+40.0264564-075.2065293105371.246719
83POLYGON ((-75.20876 40.03111, -75.20872 40.031...874210102120042101021200212Census Tract 212G5020S5157050+40.0348390-075.2125337105380.837651
84POLYGON ((-75.22585 40.03352, -75.22537 40.032...884210102130042101021300213Census Tract 213G5020S5388760+40.0322339-075.2181175105391.127624
85POLYGON ((-75.22671 40.02536, -75.22614 40.025...894210102140042101021400214Census Tract 214G5020S60713856535+40.0279290-075.2240827105400.463996
86POLYGON ((-75.22746 40.03047, -75.22679 40.030...904210102150042101021500215Census Tract 215G5020S100327940236+40.0350417-075.2288249105411.009710
87POLYGON ((-75.24481 40.04580, -75.24487 40.045...914210102160042101021600216Census Tract 216G5020S1991850111706+40.0436758-075.2403985105420.460086
88POLYGON ((-75.17771 40.03655, -75.17876 40.035...924210102410042101024100241Census Tract 241G5020S4078550+40.0332734-075.1759175105541.407552
89POLYGON ((-75.16456 40.02845, -75.16436 40.028...934210102420042101024200242Census Tract 242G5020S5320600+40.0285110-075.1697086105551.973094
90POLYGON ((-75.16448 40.02131, -75.16459 40.021...944210102430042101024300243Census Tract 243G5020S6790350+40.0215855-075.1710376105561.183769
91POLYGON ((-75.16058 40.02673, -75.16098 40.027...954210102440042101024400244Census Tract 244G5020S4211890+40.0248284-075.1638925105571.227933
92POLYGON ((-75.16166 40.02793, -75.16143 40.027...964210102450042101024500245Census Tract 245G5020S8010010+40.0333286-075.1620463105582.349511
93POLYGON ((-75.17638 40.03774, -75.17615 40.037...974210102460042101024600246Census Tract 246G5020S6212640+40.0409623-075.1729016105597.318828
94POLYGON ((-75.16208 40.03817, -75.16127 40.038...984210102470042101024700247Census Tract 247G5020S9412660+40.0417034-075.1645311105603.874590
95POLYGON ((-75.16885 40.04796, -75.16927 40.048...994210102480042101024800248Census Tract 248G5020S3192630+40.0468442-075.1668818105611.973247
96POLYGON ((-75.15807 40.04747, -75.15806 40.047...1004210102490042101024900249Census Tract 249G5020S3251980+40.0511009-075.1601167105622.378088
97POLYGON ((-75.17573 40.04134, -75.17336 40.043...1014210102520042101025200252Census Tract 252G5020S9524230+40.0468352-075.1771588105631.342717
98POLYGON ((-75.18392 40.04922, -75.18376 40.048...1024210102530042101025300253Census Tract 253G5020S5812980+40.0542198-075.1822200105641.348398
99POLYGON ((-75.17515 40.05685, -75.17476 40.057...1034210102540042101025400254Census Tract 254G5020S7697600+40.0604202-075.1760718105650.833425
100POLYGON ((-75.17916 40.06333, -75.17842 40.064...1044210102550042101025500255Census Tract 255G5020S7666030+40.0625796-075.1840640105661.228763
101POLYGON ((-75.19188 40.06127, -75.19129 40.060...1054210102560042101025600256Census Tract 256G5020S8639971979+40.0683411-075.1883025105671.153535
102POLYGON ((-75.14169 40.02076, -75.14159 40.020...1064210102830042101028300283Census Tract 283G5020S6730670+40.0260505-075.1438525105972.779916
103POLYGON ((-75.13571 40.02392, -75.13555 40.026...1074210102840042101028400284Census Tract 284G5020S4924510+40.0251577-075.1381287105982.869539
104POLYGON ((-75.13527 40.02919, -75.13541 40.027...1084210102850042101028500285Census Tract 285G5020S2670060+40.0287154-075.1337359105990.491397
105POLYGON ((-75.12197 40.03373, -75.12223 40.033...1094210102860042101028600286Census Tract 286G5020S7178450+40.0285757-075.1276448106004.557556
106POLYGON ((-75.12882 40.02450, -75.13037 40.024...1104210102870042101028700287Census Tract 287G5020S3409720+40.0218194-075.1314402106014.769191
107POLYGON ((-75.12549 40.02504, -75.12587 40.024...1114210102880042101028800288Census Tract 288G5020S4420010+40.0222841-075.1240562106022.390966
108POLYGON ((-75.11321 40.03645, -75.11403 40.035...1124210102900042101029000290Census Tract 290G5020S81813320001+40.0296096-075.1166058106051.741328
109POLYGON ((-75.10460 40.02979, -75.10437 40.029...1134210102910042101029100291Census Tract 291G5020S13275500+40.0361323-075.1074594106061.341042
110POLYGON ((-75.10613 40.02930, -75.10643 40.029...1144210102920042101029200292Census Tract 292G5020S173284728953+40.0249561-075.1021580106072.309641
111POLYGON ((-75.09500 40.00999, -75.09487 40.009...1154210102930042101029300293Census Tract 293G5020S6856410+40.0137540-075.0917655106083.670560
112POLYGON ((-75.09007 40.00429, -75.09005 40.004...1164210102940042101029400294Census Tract 294G5020S6476470+40.0094789-075.0854721106093.458182
113POLYGON ((-75.06741 40.02012, -75.06752 40.020...1174210102980042101029800298Census Tract 298G5020S6491550+40.0159529-075.0678013106102.099877
114POLYGON ((-75.04135 40.06474, -75.04142 40.064...1184210103330042101033300333Census Tract 333G5020S10115660+40.0550147-075.0440558106440.557469
115POLYGON ((-75.04483 40.05900, -75.04482 40.059...1194210103340042101033400334Census Tract 334G5020S12184340+40.0535052-075.0529610106450.815903
116POLYGON ((-75.05947 40.05226, -75.05887 40.052...1204210103350042101033500335Census Tract 335G5020S9427930+40.0546014-075.0648677106460.976214
117POLYGON ((-75.05594 40.05600, -75.05535 40.056...1214210103360042101033600336Census Tract 336G5020S11536390+40.0614785-075.0592350106470.833286
118POLYGON ((-75.06580 40.06781, -75.06736 40.068...1224210103380042101033800338Census Tract 338G5020S14002200+40.0626481-075.0736440106500.621981
119POLYGON ((-75.09495 40.06796, -75.09322 40.066...1234210103390042101033900339Census Tract 339G5020S11411560+40.0685560-075.0873418106510.091232
120POLYGON ((-75.06756 40.07514, -75.06756 40.075...1244210103400042101034000340Census Tract 340G5020S763893729+40.0711759-075.0735007106520.503407
121POLYGON ((-75.07626 40.08061, -75.07712 40.081...1254210103410042101034100341Census Tract 341G5020S13332670+40.0763415-075.0806938106530.335359
122POLYGON ((-75.06698 40.07628, -75.06618 40.077...1264210103420042101034200342Census Tract 342G5020S10007680+40.0825947-075.0721585106540.392411
123POLYGON ((-75.04609 40.08385, -75.04149 40.087...1284210103440042101034400344Census Tract 344G5020S339917113905+40.0943325-075.0564419106550.621665
124POLYGON ((-75.01953 40.06559, -75.01947 40.065...1294210103460042101034600346Census Tract 346G5020S18536695746+40.0708314-075.0207264106580.602014
125POLYGON ((-75.24749 39.91925, -75.24746 39.919...130421010064004210100640064Census Tract 64G5020S64536816097+39.9251805-075.2428396103972.200737
126POLYGON ((-75.23666 39.93355, -75.23672 39.933...131421010065004210100650065Census Tract 65G5020S111128329425+39.9330955-075.2318406103982.375204
127POLYGON ((-75.22415 39.92980, -75.22278 39.930...132421010066004210100660066Census Tract 66G5020S6512440+39.9293155-075.2298425103995.826381
128POLYGON ((-74.96172 40.09772, -74.96179 40.097...1334210103630142101036301363.01Census Tract 363.01G5020S232273266075+40.0895349-074.9667387106810.505371
129POLYGON ((-74.97780 40.10710, -74.97381 40.110...1344210103640042101036400364Census Tract 364G5020S45011108014+40.1127747-074.9789137106840.863887
130POLYGON ((-75.14147 39.95171, -75.14150 39.951...1354210103660042101036600366Census Tract 366G5020S10043131426278+39.9470272-075.1404472106870.357485
131POLYGON ((-75.00888 40.05866, -75.00880 40.058...1364210103480342101034803348.03Census Tract 348.03G5020S12715338021+40.0619427-075.0023705106630.364997
132POLYGON ((-75.02543 40.06566, -75.02587 40.065...1374210103470242101034702347.02Census Tract 347.02G5020S10162060+40.0570427-075.0283288106600.498704
133POLYGON ((-74.97517 40.08998, -74.97607 40.090...1384210103620242101036202362.02Census Tract 362.02G5020S11161152329+40.0838623-074.9781805106790.498850
134POLYGON ((-75.17772 39.91765, -75.17771 39.917...139421010038004210100380038Census Tract 38G5020S10891540+39.9184658-075.1831323103801.235618
135POLYGON ((-75.24001 39.95588, -75.23991 39.956...140421010083024210100830283.02Census Tract 83.02G5020S4252340+39.9566981-075.2414378104162.866473
136POLYGON ((-75.13012 39.99458, -75.12872 39.993...1414210101760242101017602176.02Census Tract 176.02G5020S4004580+39.9967182-075.1305528105077.400394
137POLYGON ((-75.15034 39.94374, -75.15043 39.943...142421010010024210100100210.02Census Tract 10.02G5020S4716620+39.9450045-075.1466193103490.898934
138POLYGON ((-75.15313 39.94579, -75.15318 39.945...143421010010014210100100110.01Census Tract 10.01G5020S2293990+39.9456722-075.1516020103481.004737
139POLYGON ((-75.16333 39.95334, -75.16319 39.953...14442101000402421010004024.02Census Tract 4.02G5020S3036800+39.9532973-075.1686952103390.667352
140POLYGON ((-75.17299 39.95464, -75.17295 39.954...14542101000401421010004014.01Census Tract 4.01G5020S21476614981+39.9541871-075.1758082103380.346953
141POLYGON ((-75.21048 40.00225, -75.21114 40.002...1464210101220442101012204122.04Census Tract 122.04G5020S84929056473+40.0009407-075.2120769104578.747971
142POLYGON ((-75.17464 39.97083, -75.17453 39.971...1484210101360242101013602136.02Census Tract 136.02G5020S2347320+39.9715714-075.1798097104660.678804
143POLYGON ((-75.03666 40.07860, -75.03676 40.079...1494210103450142101034501345.01Census Tract 345.01G5020S4474690+40.0749091-075.0392089106562.796862
144POLYGON ((-75.04652 40.08352, -75.04751 40.082...1504210103450242101034502345.02Census Tract 345.02G5020S10092690+40.0814446-075.0383811106570.462933
145POLYGON ((-75.15383 39.94261, -75.15377 39.942...151421010011024210100110211.02Census Tract 11.02G5020S2040620+39.9442654-075.1566960103510.652332
146POLYGON ((-75.15309 39.94600, -75.15303 39.946...15242101000902421010009029.02Census Tract 9.02G5020S1551640+39.9471596-075.1566389103471.392639
147POLYGON ((-75.16427 39.94935, -75.16434 39.949...15342101000901421010009019.01Census Tract 9.01G5020S1055100+39.9478866-075.1623004103460.408559
148POLYGON ((-75.16690 39.99870, -75.16657 40.000...1544210101720142101017201172.01Census Tract 172.01G5020S2629580+39.9993972-075.1686145105015.900407
149POLYGON ((-75.17077 40.00076, -75.17135 40.000...1554210101720242101017202172.02Census Tract 172.02G5020S2906100+39.9986670-075.1742061105024.283649
150POLYGON ((-75.12698 40.03916, -75.12681 40.039...1564210102740142101027401274.01Census Tract 274.01G5020S3266590+40.0386049-075.1286496105862.685159
151POLYGON ((-75.15548 39.99877, -75.15523 39.998...1574210102010142101020101201.01Census Tract 201.01G5020S4835770+40.0036824-075.1553072105263.675688
152POLYGON ((-75.15243 40.01322, -75.15307 40.014...1584210102010242101020102201.02Census Tract 201.02G5020S3731250+40.0111415-075.1545676105274.440937
153POLYGON ((-75.07783 40.03901, -75.07740 40.039...1594210103110142101031101311.01Census Tract 311.01G5020S3496490+40.0422496-075.0785449106220.986836
154POLYGON ((-75.07900 40.03781, -75.07862 40.038...1604210103110242101031102311.02Census Tract 311.02G5020S3979730+40.0370850-075.0833729106230.902764
155POLYGON ((-75.12755 40.00505, -75.12787 40.005...1614210101950242101019502195.02Census Tract 195.02G5020S3703020+40.0034030-075.1300445105216.094490
156POLYGON ((-75.13441 39.99922, -75.13383 39.999...1624210101950142101019501195.01Census Tract 195.01G5020S3938830+40.0004303-075.1316227105202.306282
157POLYGON ((-75.11663 40.01697, -75.11748 40.015...1634210102890142101028901289.01Census Tract 289.01G5020S5986550+40.0171008-075.1151820106031.833837
158POLYGON ((-75.11285 40.02703, -75.11324 40.026...1644210102890242101028902289.02Census Tract 289.02G5020S7722946267+40.0216105-075.1116877106044.218694
159POLYGON ((-75.03799 40.03781, -75.03739 40.038...1654210103310142101033101331.01Census Tract 331.01G5020S4869540+40.0403093-075.0379505106410.301460
160POLYGON ((-75.02185 40.04369, -75.02175 40.043...1664210103310242101033102331.02Census Tract 331.02G5020S7182720+40.0451050-075.0272869106421.071637
161POLYGON ((-75.04254 40.03773, -75.04420 40.038...1674210103150142101031501315.01Census Tract 315.01G5020S5872420+40.0365919-075.0481642106281.028085
162POLYGON ((-75.10396 40.04083, -75.10463 40.040...1684210103050142101030501305.01Census Tract 305.01G5020S3773750+40.0428163-075.0994351106151.167469
163POLYGON ((-75.10457 40.05057, -75.10465 40.050...1694210103050242101030502305.02Census Tract 305.02G5020S6992460+40.0457206-075.1046619106160.595980
164POLYGON ((-75.25980 39.97482, -75.25981 39.974...170421010098024210100980298.02Census Tract 98.02G5020S6110260+39.9745879-075.2679037104330.973089
165POLYGON ((-75.11344 39.97706, -75.11333 39.976...1714210101800142101018001180.01Census Tract 180.01G5020S3873830+39.9810569-075.1128000105121.607120
166POLYGON ((-75.12692 39.99184, -75.12711 39.991...1724210101770242101017702177.02Census Tract 177.02G5020S4892580+39.9950621-075.1231399105094.193964
167POLYGON ((-75.11099 39.99781, -75.11153 39.997...1734210101770142101017701177.01Census Tract 177.01G5020S2410530+39.9964470-075.1167526105084.160820
168POLYGON ((-75.04930 40.11221, -75.04939 40.112...1744210103560242101035602356.02Census Tract 356.02G5020S13948681863+40.1079419-075.0480601106710.718738
169POLYGON ((-75.02889 40.10255, -75.02840 40.103...1754210103570142101035701357.01Census Tract 357.01G5020S598625718+40.1095846-075.0286811106720.879989
170POLYGON ((-75.04386 40.11601, -75.04422 40.115...1764210103570242101035702357.02Census Tract 357.02G5020S15591490+40.1130914-075.0374316106731.639800
171POLYGON ((-75.03024 40.10340, -75.03300 40.105...1774210103560142101035601356.01Census Tract 356.01G5020S202970712498+40.0973908-075.0388184106700.467254
172POLYGON ((-75.18672 39.99022, -75.18706 39.988...1784210101510142101015101151.01Census Tract 151.01G5020S1930720+39.9869632-075.1857502104804.193519
173POLYGON ((-75.17425 39.98757, -75.17403 39.988...1794210101510242101015102151.02Census Tract 151.02G5020S5565700+39.9861430-075.1794280104816.856765
174POLYGON ((-75.02010 40.12637, -75.01780 40.125...1804210103650142101036501365.01Census Tract 365.01G5020S18160937168+40.1290877-075.0120077106850.599420
175POLYGON ((-75.17248 39.96564, -75.17256 39.965...1824210101340242101013402134.02Census Tract 134.02G5020S2386120+39.9653623-075.1690326104630.977793
176POLYGON ((-75.17240 39.96597, -75.17227 39.966...1834210101340142101013401134.01Census Tract 134.01G5020S1640580+39.9659574-075.1752507104620.445545
177POLYGON ((-75.18160 39.96919, -75.18153 39.969...1844210101360142101013601136.01Census Tract 136.01G5020S1676250+39.9689697-075.1785774104651.135340
178POLYGON ((-75.08141 39.99327, -75.08093 39.993...1854210103790042101037900379Census Tract 379G5020S13745240+39.9910899-075.0927158106960.836326
179POLYGON ((-75.09266 40.00790, -75.09360 40.007...1864210103820042101038200382Census Tract 382G5020S182867125840+39.9963741-075.0973643106992.391199
180POLYGON ((-75.07369 40.00712, -75.07340 40.007...1874210103800042101038000380Census Tract 380G5020S8746020+40.0052279-075.0807845106971.343239
181POLYGON ((-75.02130 40.03380, -75.02141 40.033...1884210103810042101038100381Census Tract 381G5020S33350291629584+40.0189334-075.0399564106983.074876
182POLYGON ((-75.22845 40.06255, -75.22689 40.061...1894210103840042101038400384Census Tract 384G5020S25467850+40.0714163-075.2332568107010.679298
183POLYGON ((-75.14147 39.95171, -75.14146 39.952...19042101000100421010001001Census Tract 1G5020S7049090+39.9523827-075.1466628103350.529238
184POLYGON ((-75.16238 39.95765, -75.16269 39.956...19142101000200421010002002Census Tract 2G5020S3824780+39.9553999-075.1569775103361.173437
185POLYGON ((-75.17820 39.95981, -75.17908 39.959...19242101000300421010003003Census Tract 3G5020S548342356+39.9568780-075.1716655103370.456348
186POLYGON ((-75.17349 39.95206, -75.17417 39.952...19542101000700421010007007Census Tract 7G5020S2466827087+39.9510463-075.1729143103421.452704
187POLYGON ((-75.18703 39.93039, -75.18627 39.930...196421010032004210100320032Census Tract 32G5020S4917900+39.9333011-075.1854187103751.840167
188POLYGON ((-75.20522 39.93833, -75.20330 39.937...197421010033004210100330033Census Tract 33G5020S106235472863+39.9384405-075.1958253103762.310018
189POLYGON ((-75.19032 39.92169, -75.19016 39.921...198421010036004210100360036Census Tract 36G5020S9645390+39.9279255-075.1920206103770.932894
190POLYGON ((-75.17584 39.92643, -75.17574 39.926...199421010037014210100370137.01Census Tract 37.01G5020S3556190+39.9276728-075.1806654103781.506221
191POLYGON ((-75.18170 39.92330, -75.18135 39.923...200421010037024210100370237.02Census Tract 37.02G5020S2474130+39.9245283-075.1824354103791.725467
192POLYGON ((-75.15560 39.92002, -75.15550 39.920...201421010041014210100410141.01Census Tract 41.01G5020S3740000+39.9229611-075.1589741103852.202312
193POLYGON ((-75.17025 39.92189, -75.17031 39.921...202421010040024210100400240.02Census Tract 40.02G5020S3448370+39.9188943-075.1674160103841.312094
194POLYGON ((-75.17774 39.91758, -75.17801 39.916...203421010039024210100390239.02Census Tract 39.02G5020S4525960+39.9167178-075.1744119103821.368968
195POLYGON ((-75.16943 39.92560, -75.16950 39.925...204421010040014210100400140.01Census Tract 40.01G5020S3149520+39.9238035-075.1662102103831.074509
196POLYGON ((-75.15775 39.91501, -75.15749 39.914...205421010041024210100410241.02Census Tract 41.02G5020S3918540+39.9179425-075.1600629103861.729109
197POLYGON ((-75.15656 39.91558, -75.15664 39.915...206421010042024210100420242.02Census Tract 42.02G5020S4533430+39.9168570-075.1516284103881.479097
198POLYGON ((-75.14782 39.91901, -75.14788 39.919...207421010042014210100420142.01Census Tract 42.01G5020S3616790+39.9219554-075.1512640103871.358214
199POLYGON ((-75.21445 39.94893, -75.21399 39.948...208421010079004210100790079Census Tract 79G5020S3779500+39.9504630-075.2182570104101.695051
200POLYGON ((-75.22524 39.94776, -75.22495 39.947...209421010080004210100800080Census Tract 80G5020S4304710+39.9506613-075.2268423104112.207412
201POLYGON ((-75.24005 39.94593, -75.23996 39.946...210421010082004210100820082Census Tract 82G5020S83233411136+39.9491574-075.2444494104142.049494
202MULTIPOLYGON (((-75.12709 39.99200, -75.12842 ...2114210101760142101017601176.01Census Tract 176.01G5020S5791270+39.9939260-075.1343448105065.513079
203POLYGON ((-75.24403 39.96237, -75.24471 39.962...212421010083014210100830183.01Census Tract 83.01G5020S5105576713+39.9577810-075.2467384104151.235583
204POLYGON ((-75.24014 39.95526, -75.23817 39.955...213421010084004210100840084Census Tract 84G5020S5017650+39.9579899-075.2354681104171.809689
205POLYGON ((-75.22979 39.96061, -75.23025 39.960...214421010085004210100850085Census Tract 85G5020S6214450+39.9568821-075.2265389104182.552330
206POLYGON ((-75.19358 39.95870, -75.19364 39.958...215421010090004210100900090Census Tract 90G5020S4363190+39.9595116-075.1906245104250.768557
207POLYGON ((-75.19358 39.95870, -75.19360 39.958...216421010091004210100910091Census Tract 91G5020S4255730+39.9594179-075.1977245104262.010275
208POLYGON ((-75.20236 39.96287, -75.20398 39.962...217421010092004210100920092Census Tract 92G5020S5120090+39.9601608-075.2074723104272.906507
209POLYGON ((-75.22005 39.96383, -75.22098 39.964...218421010093004210100930093Census Tract 93G5020S4024750+39.9622914-075.2240225104285.090539
210POLYGON ((-75.22059 39.92906, -75.22111 39.929...219421010067004210100670067Census Tract 67G5020S10014670+39.9242475-075.2242816104003.397763
211POLYGON ((-75.21931 39.92802, -75.21768 39.927...220421010069004210100690069Census Tract 69G5020S704352102803+39.9306204-075.2146526104014.280559
212POLYGON ((-75.21706 39.93474, -75.21652 39.935...221421010070004210100700070Census Tract 70G5020S4690470+39.9351850-075.2214770104024.492678
213POLYGON ((-75.22890 39.94686, -75.22960 39.947...222421010072004210100720072Census Tract 72G5020S5026140+39.9446370-075.2332168104052.786448
214POLYGON ((-75.21882 39.94412, -75.21914 39.944...223421010073004210100730073Census Tract 73G5020S3872010+39.9448185-075.2232916104063.995648
215POLYGON ((-75.21315 39.93746, -75.21297 39.937...224421010074004210100740074Census Tract 74G5020S6759300+39.9408575-075.2143067104073.668980
216POLYGON ((-75.20714 39.94979, -75.20805 39.949...225421010077004210100770077Census Tract 77G5020S3222600+39.9463523-075.2082584104082.129493
217POLYGON ((-75.21714 39.94375, -75.21562 39.943...226421010078004210100780078Census Tract 78G5020S4274040+39.9464580-075.2162637104090.551582
218POLYGON ((-75.24834 39.97503, -75.24823 39.975...2274210101150042101011500115Census Tract 115G5020S3704560+39.9773687-075.2518303104491.693977
219POLYGON ((-75.23403 39.99475, -75.23413 39.995...2284210101170042101011700117Census Tract 117G5020S6540190+39.9919070-075.2404371104503.281246
220POLYGON ((-75.22890 39.98045, -75.22879 39.980...2294210101180042101011800118Census Tract 118G5020S9151290+39.9852889-075.2357395104511.089631
221POLYGON ((-75.22567 39.99148, -75.22657 39.991...2304210101190042101011900119Census Tract 119G5020S6911110+39.9861142-075.2288429104521.872779
222POLYGON ((-75.22568 39.99326, -75.22568 39.994...2314210101200042101012000120Census Tract 120G5020S6006810+39.9955323-075.2297466104531.142156
223POLYGON ((-75.22568 39.99326, -75.22568 39.993...2324210101210042101012100121Census Tract 121G5020S8767965378+39.9964998-075.2223795104540.754682
224POLYGON ((-75.18081 39.96136, -75.18060 39.961...2334210101250042101012500125Census Tract 125G5020S86481049075+39.9613701-075.1720837104580.297482
225POLYGON ((-75.15302 39.96856, -75.15455 39.968...2354210101320042101013200132Census Tract 132G5020S4266710+39.9662042-075.1571335104600.309623
226POLYGON ((-75.16131 39.96290, -75.16126 39.963...2364210101330042101013300133Census Tract 133G5020S3579320+39.9666126-075.1629455104610.778079
227POLYGON ((-75.17211 39.96729, -75.17135 39.967...2374210101350042101013500135Census Tract 135G5020S4048910+39.9693564-075.1700367104640.682101
228POLYGON ((-75.18898 39.97982, -75.18906 39.979...2384210101370042101013700137Census Tract 137G5020S5897380+39.9772752-075.1842323104670.870228
229POLYGON ((-75.17662 40.00610, -75.17543 40.006...2394210101700042101017000170Census Tract 170G5020S157037650400+40.0078614-075.1834204104993.261462
230POLYGON ((-75.17689 40.00595, -75.17864 40.005...2404210101710042101017100171Census Tract 171G5020S11408820+40.0027449-075.1763248105001.588665
231POLYGON ((-75.15602 39.99884, -75.15680 39.998...2414210101730042101017300173Census Tract 173G5020S8745860+39.9985707-075.1609337105034.863495
232POLYGON ((-75.14746 39.99467, -75.14708 39.996...2424210101740042101017400174Census Tract 174G5020S3539850+39.9962138-075.1503586105042.805288
233POLYGON ((-75.13930 40.00306, -75.13988 40.002...2434210101750042101017500175Census Tract 175G5020S7199156252+39.9979150-075.1429842105053.631309
234POLYGON ((-75.11077 39.99153, -75.11023 39.991...2444210101780042101017800178Census Tract 178G5020S6629050+39.9913734-075.1173063105103.878410
235POLYGON ((-75.11561 39.98356, -75.11525 39.983...2454210101790042101017900179Census Tract 179G5020S7140080+39.9870535-075.1139340105112.487401
236POLYGON ((-75.06802 39.98314, -75.06588 39.984...2464210101830042101018300183Census Tract 183G5020S1834680185387+39.9956035-075.0746225105140.868175
237POLYGON ((-75.06835 40.00693, -75.06851 40.007...2474210101840042101018400184Census Tract 184G5020S1285745949471+39.9996644-075.0637363105151.642781
238POLYGON ((-75.09843 39.99908, -75.09898 39.999...2484210101880042101018800188Census Tract 188G5020S6632880+39.9973659-075.1058296105163.583565
239POLYGON ((-75.22430 40.05119, -75.22716 40.052...2494210102170042101021700217Census Tract 217G5020S15595760+40.0450277-075.2239451105430.720405
240POLYGON ((-75.22790 40.06346, -75.22791 40.063...2504210102180042101021800218Census Tract 218G5020S9960880+40.0574759-075.2324353105441.666256
241POLYGON ((-75.25415 40.04723, -75.25384 40.046...2514210102190042101021900219Census Tract 219G5020S141006951091+40.0505829-075.2470033105450.586897
242POLYGON ((-75.25501 40.06271, -75.25669 40.061...2524210102200042101022000220Census Tract 220G5020S294401899558+40.0562177-075.2520092105460.930327
243POLYGON ((-75.20951 40.06645, -75.20675 40.064...2544210102310042101023100231Census Tract 231G5020S7328031270+40.0666637-075.2038514105470.766095
244POLYGON ((-75.20275 40.04351, -75.20298 40.043...2554210102350042101023500235Census Tract 235G5020S7754300+40.0394435-075.2007925105481.330585
245POLYGON ((-75.19800 40.03948, -75.19613 40.037...2564210102360042101023600236Census Tract 236G5020S9780960+40.0427145-075.1946940105491.975610
246POLYGON ((-75.18392 40.04922, -75.18397 40.049...2574210102370042101023700237Census Tract 237G5020S10729730+40.0487394-075.1886069105501.705331
247POLYGON ((-75.17863 40.04046, -75.17871 40.040...2584210102380042101023800238Census Tract 238G5020S7816300+40.0389370-075.1827038105511.204295
248POLYGON ((-75.18823 40.03119, -75.18821 40.031...2594210102390042101023900239Census Tract 239G5020S4860372704+40.0339713-075.1875115105521.476379
249POLYGON ((-75.17473 40.02763, -75.17463 40.027...2604210102400042101024000240Census Tract 240G5020S6170800+40.0280807-075.1794623105532.465676
250POLYGON ((-75.19879 40.06868, -75.19868 40.068...2614210102570042101025700257Census Tract 257G5020S7482050+40.0724586-075.1962708105680.603483
251POLYGON ((-75.18265 40.06942, -75.18252 40.069...2624210102580042101025800258Census Tract 258G5020S5867190+40.0739801-075.1823113105690.741123
252POLYGON ((-75.17191 40.08200, -75.17294 40.082...2634210102590042101025900259Census Tract 259G5020S5494150+40.0799255-075.1759762105700.720621
253POLYGON ((-75.17394 40.07432, -75.17355 40.074...2644210102600042101026000260Census Tract 260G5020S5434330+40.0761235-075.1694560105710.267057
254POLYGON ((-75.16899 40.07148, -75.16935 40.071...2654210102610042101026100261Census Tract 261G5020S6493640+40.0704645-075.1755189105721.717996
255POLYGON ((-75.17145 40.06300, -75.17118 40.062...2664210102620042101026200262Census Tract 262G5020S5559580+40.0664940-075.1692176105731.187777
256POLYGON ((-75.02119 40.06170, -75.02131 40.061...2674210103480142101034801348.01Census Tract 348.01G5020S13859635188+40.0545325-075.0163104106610.610756
257POLYGON ((-75.15411 40.06366, -75.15359 40.064...2684210102630242101026302263.02Census Tract 263.02G5020S7041120+40.0687425-075.1571945105752.248950
258POLYGON ((-75.16596 40.05983, -75.16577 40.059...2694210102640042101026400264Census Tract 264G5020S7968190+40.0625462-075.1620066105761.444457
259POLYGON ((-75.15649 40.05453, -75.15556 40.054...2704210102650042101026500265Census Tract 265G5020S5459610+40.0587255-075.1546921105772.111888
260POLYGON ((-75.15233 40.06891, -75.15260 40.067...2714210102660042101026600266Census Tract 266G5020S9139820+40.0634828-075.1473266105781.783286
261POLYGON ((-75.14858 40.05139, -75.14701 40.051...2724210102670042101026700267Census Tract 267G5020S6438730+40.0547569-075.1479247105791.611342
262POLYGON ((-75.13655 40.06180, -75.13684 40.061...2734210102680042101026800268Census Tract 268G5020S7741740+40.0555270-075.1399312105801.838384
263POLYGON ((-75.07441 40.00959, -75.07237 40.010...2744210102990042101029900299Census Tract 299G5020S5914510+40.0131465-075.0747146106111.418518
264POLYGON ((-75.07726 40.01498, -75.07668 40.015...2754210103000042101030000300Census Tract 300G5020S9108540+40.0186719-075.0780880106121.099609
265POLYGON ((-75.09061 40.02576, -75.09113 40.025...2764210103010042101030100301Census Tract 301G5020S7251130+40.0204947-075.0885046106131.358859
266POLYGON ((-75.08536 40.03110, -75.08575 40.030...2774210103020042101030200302Census Tract 302G5020S9017100+40.0259863-075.0823128106141.788143
267POLYGON ((-75.09772 40.05454, -75.09781 40.054...2784210103060042101030600306Census Tract 306G5020S10077990+40.0504922-075.0943787106170.942683
268POLYGON ((-75.08747 40.06359, -75.09130 40.059...2794210103070042101030700307Census Tract 307G5020S6533090+40.0573133-075.0885390106180.848273
269POLYGON ((-75.08231 40.04884, -75.08210 40.049...2804210103080042101030800308Census Tract 308G5020S7957040+40.0547831-075.0819056106191.041778
270POLYGON ((-75.08838 40.03987, -75.08857 40.039...2814210103090042101030900309Census Tract 309G5020S6450140+40.0437632-075.0851914106201.450055
271POLYGON ((-75.06669 40.05055, -75.06605 40.051...2824210103100042101031000310Census Tract 310G5020S10634110+40.0497292-075.0744541106210.717442
272POLYGON ((-75.07053 40.03563, -75.07090 40.035...2834210103120042101031200312Census Tract 312G5020S4297360+40.0354204-075.0774550106241.987885
273POLYGON ((-75.06138 40.03816, -75.06155 40.038...2844210103130042101031300313Census Tract 313G5020S7111410+40.0393190-075.0698140106250.836430
274POLYGON ((-75.06433 40.03619, -75.06425 40.035...2854210103160042101031600316Census Tract 316G5020S7139530+40.0326126-075.0590717106301.017628
275POLYGON ((-75.06437 40.03632, -75.06445 40.036...2864210103170042101031700317Census Tract 317G5020S8816890+40.0306050-075.0683989106311.102542
276POLYGON ((-74.96443 40.11728, -74.96461 40.117...2874210103630342101036303363.03Census Tract 363.03G5020S25558610+40.1051833-074.9702250106830.544092
277POLYGON ((-75.02961 40.06813, -75.02966 40.068...2884210103470142101034701347.01Census Tract 347.01G5020S114819057+40.0645576-075.0329783106590.637886
278POLYGON ((-75.02119 40.06170, -75.02105 40.061...2894210103480242101034802348.02Census Tract 348.02G5020S12321828014+40.0687035-075.0097300106620.681427
279POLYGON ((-75.00616 40.05372, -75.00789 40.052...2904210103490042101034900349Census Tract 349G5020S19440400+40.0453848-075.0090768106641.058091
280POLYGON ((-74.97479 40.04932, -74.97500 40.049...2914210103510042101035100351Census Tract 351G5020S997442666018+40.0488411-074.9859716106651.189730
281POLYGON ((-74.98437 40.05779, -74.98429 40.057...2924210103520042101035200352Census Tract 352G5020S183826427863+40.0559122-074.9907443106660.588885
282POLYGON ((-74.98242 40.06552, -74.98242 40.065...2934210103530142101035301353.01Census Tract 353.01G5020S137522236973+40.0659313-074.9934646106670.802006
283POLYGON ((-75.15907 40.07353, -75.15876 40.073...2944210102630142101026301263.01Census Tract 263.01G5020S4063400+40.0728148-075.1637161105740.950635
284POLYGON ((-75.16485 39.94701, -75.16475 39.947...29542101000804421010008048.04Census Tract 8.04G5020S1454530+39.9485646-075.1677563103450.871965
285POLYGON ((-75.16534 39.94467, -75.16531 39.944...296421010012024210100120212.02Census Tract 12.02G5020S3085600+39.9459117-075.1699475103530.787586
286POLYGON ((-75.18639 39.94658, -75.18617 39.946...297421010012014210100120112.01Census Tract 12.01G5020S32755530728+39.9471666-075.1798721103520.687258
287POLYGON ((-75.17742 39.95050, -75.17747 39.950...29842101000803421010008038.03Census Tract 8.03G5020S1528200+39.9493748-075.1742489103441.123181
288POLYGON ((-75.14758 39.92521, -75.14749 39.925...300421010027024210100270227.02Census Tract 27.02G5020S3676730+39.9280114-075.1495606103680.452116
289POLYGON ((-75.16842 39.93047, -75.16815 39.931...301421010030024210100300230.02Census Tract 30.02G5020S2269510+39.9327263-075.1711915103731.388373
290POLYGON ((-75.16896 39.92804, -75.16882 39.928...302421010030014210100300130.01Census Tract 30.01G5020S2265470+39.9290640-075.1719912103721.765428
291POLYGON ((-75.16394 39.92947, -75.16472 39.928...303421010028024210100280228.02Census Tract 28.02G5020S3626900+39.9288001-075.1614073103701.012686
292POLYGON ((-75.15168 39.93038, -75.15160 39.930...305421010027014210100270127.01Census Tract 27.01G5020S2248400+39.9285526-075.1537033103671.118664
293POLYGON ((-75.04496 40.06511, -75.04616 40.065...3074210103370142101033701337.01Census Tract 337.01G5020S9736530+40.0672105-075.0482983106480.640119
294POLYGON ((-75.06923 40.07151, -75.06981 40.070...3084210103370242101033702337.02Census Tract 337.02G5020S10577980+40.0707532-075.0578212106490.879809
295POLYGON ((-75.05429 40.04446, -75.05493 40.043...3094210103150242101031502315.02Census Tract 315.02G5020S5781010+40.0392658-075.0548693106290.340961
296POLYGON ((-75.06496 40.04107, -75.06492 40.041...3104210103140142101031401314.01Census Tract 314.01G5020S5948490+40.0457134-075.0665728106260.926557
297POLYGON ((-75.06138 40.03816, -75.06104 40.037...3114210103140242101031402314.02Census Tract 314.02G5020S5641360+40.0432797-075.0602860106271.034146
298POLYGON ((-75.16340 39.98722, -75.16318 39.987...3124210101670142101016701167.01Census Tract 167.01G5020S2540460+39.9911965-075.1619017104945.785006
299POLYGON ((-75.15718 39.98642, -75.15711 39.986...3134210101670242101016702167.02Census Tract 167.02G5020S3551030+39.9904175-075.1578177104952.962814
300POLYGON ((-75.15810 40.04712, -75.15813 40.046...3144210102790142101027901279.01Census Tract 279.01G5020S4157800+40.0458879-075.1544482105921.001127
301POLYGON ((-75.15967 40.03508, -75.15782 40.033...3154210102790242101027902279.02Census Tract 279.02G5020S8897840+40.0374381-075.1543087105931.420989
302POLYGON ((-75.23110 39.94876, -75.23107 39.948...316421010081014210100810181.01Census Tract 81.01G5020S2437000+39.9483649-075.2360506104120.856397
303POLYGON ((-75.22343 39.94118, -75.22324 39.941...317421010071024210100710271.02Census Tract 71.02G5020S4157610+39.9409204-075.2282511104044.178984
304POLYGON ((-75.20942 39.95808, -75.20959 39.958...320421010087014210100870187.01Census Tract 87.01G5020S2595230+39.9535656-075.2104988104211.095814
305POLYGON ((-75.23080 39.95018, -75.23064 39.950...321421010081024210100810281.02Census Tract 81.02G5020S3625260+39.9522216-075.2345584104132.348387
306POLYGON ((-75.21896 39.95927, -75.21918 39.959...322421010086024210100860286.02Census Tract 86.02G5020S3691420+39.9569725-075.2167030104202.432651
307POLYGON ((-75.26120 39.97830, -75.26092 39.978...3234210103750042101037500375Census Tract 375G5020S10327021496+39.9840699-075.2551922106921.418450
308POLYGON ((-75.10832 39.97939, -75.10820 39.979...3254210101800242101018002180.02Census Tract 180.02G5020S4397910+39.9836344-075.1067096105131.252623
309POLYGON ((-75.26927 39.98018, -75.27134 39.979...328421010098014210100980198.01Census Tract 98.01G5020S2979770+39.9775172-075.2665972104321.189928
310POLYGON ((-75.22028 39.93958, -75.22155 39.940...329421010071014210100710171.01Census Tract 71.01G5020S2532560+39.9381580-075.2249984104032.687449
311POLYGON ((-75.15446 39.93243, -75.15496 39.932...330421010028014210100280128.01Census Tract 28.01G5020S2229500+39.9289729-075.1568319103691.012295
312POLYGON ((-75.17742 39.95050, -75.17733 39.950...33242101000801421010008018.01Census Tract 8.01G5020S9995812755+39.9497374-075.1804054103430.771041
313POLYGON ((-75.16477 39.94699, -75.16485 39.947...333421010011014210100110111.01Census Tract 11.01G5020S1740140+39.9449918-075.1625240103500.640819
314POLYGON ((-75.12403 40.03405, -75.12395 40.034...3344210102740242101027402274.02Census Tract 274.02G5020S5113600+40.0390702-075.1251352105871.300048
315POLYGON ((-75.21217 39.95288, -75.21216 39.952...335421010086014210100860186.01Census Tract 86.01G5020S2524820+39.9537341-075.2165930104190.843436
316POLYGON ((-74.99420 40.13152, -74.99745 40.128...3364210103650242101036502365.02Census Tract 365.02G5020S17331890+40.1235705-074.9993521106860.677934
317POLYGON ((-75.14161 39.95550, -75.14160 39.955...3374210103670042101036700367Census Tract 367G5020S8019690+39.9607248-075.1439885106880.601560
318POLYGON ((-75.15215 39.96246, -75.15276 39.962...3384210103760042101037600376Census Tract 376G5020S7173040+39.9599009-075.1551651106930.597881
319POLYGON ((-75.21539 40.07327, -75.21575 40.072...3394210103860042101038600386Census Tract 386G5020S330439832066+40.0582762-075.2110913107031.199319
320POLYGON ((-75.20733 40.07657, -75.20744 40.076...3404210103850042101038500385Census Tract 385G5020S13389412576+40.0757528-075.2146234107020.649587
321POLYGON ((-75.22797 40.08435, -75.22790 40.084...3414210103870042101038700387Census Tract 387G5020S205321222241+40.0833122-075.2130770107040.834007
322POLYGON ((-75.19289 40.06267, -75.19412 40.064...3424210103880042101038800388Census Tract 388G5020S13835304751+40.0571595-075.1982438107051.526218
323POLYGON ((-75.17520 40.05678, -75.17526 40.056...3434210103890042101038900389Census Tract 389G5020S12805510+40.0543431-075.1682764107065.583023
324POLYGON ((-75.20724 40.01102, -75.20732 40.010...34442101980000421019800009800Census Tract 9800G5020S89224781508835+39.9880961-075.1967773107082.273760
325POLYGON ((-75.13409 40.06035, -75.13439 40.060...3454210102690042101026900269Census Tract 269G5020S6146860+40.0556007-075.1324048105814.000767
326POLYGON ((-75.13294 40.04607, -75.13212 40.046...3464210102700042101027000270Census Tract 270G5020S6422160+40.0493231-075.1331512105821.819271
327POLYGON ((-75.12334 40.04657, -75.12326 40.046...3474210102710042101027100271Census Tract 271G5020S37227839344+40.0484793-075.1263611105831.121994
328POLYGON ((-75.11315 40.04364, -75.11210 40.043...3484210102720042101027200272Census Tract 272G5020S679046794+40.0472339-075.1180889105841.066915
329POLYGON ((-75.11223 40.04332, -75.11219 40.043...3494210102730042101027300273Census Tract 273G5020S93801114079+40.0377547-075.1189432105851.333811
330POLYGON ((-75.13477 40.04171, -75.13478 40.041...3504210102750042101027500275Census Tract 275G5020S6068250+40.0400497-075.1322707105881.898365
331POLYGON ((-75.14311 40.04648, -75.14327 40.045...3514210102760042101027600276Census Tract 276G5020S6637450+40.0429404-075.1392771105896.416389
332POLYGON ((-75.14384 40.05078, -75.14464 40.050...3524210102770042101027700277Census Tract 277G5020S5424040+40.0505444-075.1512267105902.983294
333POLYGON ((-75.14290 40.04750, -75.14345 40.047...3534210102780042101027800278Census Tract 278G5020S7247250+40.0425278-075.1471626105912.226849
334POLYGON ((-75.15385 40.02217, -75.15336 40.022...3544210102800042101028000280Census Tract 280G5020S7183460+40.0261190-075.1546481105942.679496
335POLYGON ((-75.14658 40.03065, -75.14652 40.030...3554210102810042101028100281Census Tract 281G5020S5035410+40.0304473-075.1491299105953.662781
336POLYGON ((-75.13507 40.03129, -75.13497 40.032...3564210102820042101028200282Census Tract 282G5020S8558120+40.0348704-075.1403327105962.708857
337POLYGON ((-75.07123 40.03458, -75.07110 40.034...3574210103180042101031800318Census Tract 318G5020S4642900+40.0311021-075.0769892106320.868766
338POLYGON ((-75.06716 40.01983, -75.06701 40.019...3584210103190042101031900319Census Tract 319G5020S7732850+40.0230600-075.0648988106331.355104
339POLYGON ((-75.05406 40.03119, -75.05480 40.030...3594210103200042101032000320Census Tract 320G5020S6815490+40.0271751-075.0548674106341.119235
340POLYGON ((-75.05275 40.01616, -75.05341 40.016...3604210103210042101032100321Census Tract 321G5020S5529280+40.0170175-075.0589752106352.824743
341POLYGON ((-75.04538 40.01988, -75.04574 40.020...3614210103230042101032300323Census Tract 323G5020S6000430+40.0210898-075.0515270106361.571980
342POLYGON ((-75.03863 40.02425, -75.03933 40.025...3624210103250042101032500325Census Tract 325G5020S8393190+40.0263918-075.0452561106371.522216
343POLYGON ((-75.03311 40.02751, -75.03353 40.028...3634210103260042101032600326Census Tract 326G5020S8098980+40.0302773-075.0396263106381.493093
344POLYGON ((-75.02050 40.04355, -75.02063 40.043...3654210103290042101032900329Census Tract 329G5020S92292221617+40.0379010-075.0249713106390.595910
345POLYGON ((-75.02854 40.02968, -75.02971 40.030...3664210103300042101033000330Census Tract 330G5020S7328600+40.0335974-075.0338492106401.045225
346POLYGON ((-75.05406 40.04433, -75.05312 40.043...3674210103320042101033200332Census Tract 332G5020S8284200+40.0439411-075.0448281106430.257911
347POLYGON ((-75.02703 40.09835, -75.03073 40.095...3694210103550042101035500355Census Tract 355G5020S22900531067+40.0911285-075.0293244106690.645997
348POLYGON ((-75.03363 40.12314, -75.03756 40.120...3704210103580042101035800358Census Tract 358G5020S17577562013+40.1213169-075.0257898106740.853745
349POLYGON ((-75.01235 40.10951, -75.01027 40.111...3714210103590042101035900359Census Tract 359G5020S22447172511+40.1103418-075.0151645106750.863698
350POLYGON ((-75.01235 40.10951, -75.01403 40.108...3724210103600042101036000360Census Tract 360G5020S2043084638+40.1042670-075.0108187106760.549410
351POLYGON ((-74.99233 40.10409, -74.99444 40.105...3734210103610042101036100361Census Tract 361G5020S12304327138+40.0987766-074.9907481106771.182931
352POLYGON ((-74.96488 40.07728, -74.96490 40.077...3744210103620342101036203362.03Census Tract 362.03G5020S147549668020+40.0760921-074.9742967106800.612166
353POLYGON ((-74.98757 40.07583, -74.98827 40.076...3754210103530242101035302353.02Census Tract 353.02G5020S149864117292+40.0730774-074.9968713106680.592294
354POLYGON ((-74.98499 40.07453, -74.98490 40.074...3764210103620142101036201362.01Census Tract 362.01G5020S103192915195+40.0820300-074.9868079106780.795982
355POLYGON ((-74.97990 40.09382, -74.97869 40.092...3774210103630242101036302363.02Census Tract 363.02G5020S5026960+40.0973153-074.9805151106820.437581
356POLYGON ((-75.17001 39.91004, -75.16973 39.911...3794210103730042101037300373Census Tract 373G5020S2573046162376+39.9024981-075.1879361106910.977495
357POLYGON ((-75.17135 39.91678, -75.17143 39.916...3804210103720042101037200372Census Tract 372G5020S10289840+39.9129487-075.1599379106901.193019
358POLYGON ((-75.11627 40.01743, -75.11660 40.017...3814210103830042101038300383Census Tract 383G5020S30644960+40.0108630-075.1248984107004.624979
359POLYGON ((-75.08824 40.04034, -75.08820 40.040...3824210103900042101039000390Census Tract 390G5020S20326890+40.0357300-075.0938840107071.097566
360POLYGON ((-75.11051 39.96952, -75.10676 39.970...3834210103780042101037800378Census Tract 378G5020S37600841936838+39.9805802-075.0956845106951.226389
361POLYGON ((-75.15170 39.98571, -75.15249 39.985...3844210103770042101037700377Census Tract 377G5020S7368940+39.9824381-075.1506932106941.757139
\n", "
" ], "text/plain": [ " geometry OBJECTID STATEFP10 \\\n", "0 POLYGON ((-75.22927 39.96054, -75.22865 39.960... 1 42 \n", "1 POLYGON ((-75.23536 39.96852, -75.23545 39.969... 2 42 \n", "2 POLYGON ((-75.24343 39.96230, -75.24339 39.962... 3 42 \n", "3 POLYGON ((-75.17341 39.97779, -75.17386 39.977... 4 42 \n", "4 POLYGON ((-75.17313 39.97776, -75.17321 39.977... 5 42 \n", "5 POLYGON ((-75.16141 39.97044, -75.16056 39.970... 6 42 \n", "6 POLYGON ((-75.15719 39.96959, -75.15609 39.969... 7 42 \n", "7 POLYGON ((-75.13330 39.96102, -75.13084 39.959... 8 42 \n", "8 POLYGON ((-75.12110 39.96858, -75.12225 39.970... 9 42 \n", "9 POLYGON ((-75.13574 39.96880, -75.13536 39.968... 10 42 \n", "10 POLYGON ((-75.14936 39.97327, -75.14887 39.973... 11 42 \n", "11 POLYGON ((-75.15224 39.97954, -75.15381 39.979... 12 42 \n", "12 POLYGON ((-75.16018 39.97608, -75.15947 39.975... 13 42 \n", "13 POLYGON ((-75.18786 39.98112, -75.18701 39.981... 15 42 \n", "14 POLYGON ((-75.17226 39.98999, -75.17236 39.990... 16 42 \n", "15 POLYGON ((-75.16362 39.98725, -75.16419 39.987... 17 42 \n", "16 POLYGON ((-75.13941 39.97634, -75.13911 39.977... 18 42 \n", "17 POLYGON ((-75.09490 40.01049, -75.09489 40.010... 19 42 \n", "18 POLYGON ((-75.10715 40.01674, -75.10724 40.016... 20 42 \n", "19 POLYGON ((-75.10760 39.99967, -75.10645 40.000... 21 42 \n", "20 POLYGON ((-75.13586 40.01199, -75.13554 40.013... 22 42 \n", "21 POLYGON ((-75.13672 40.00803, -75.13661 40.008... 23 42 \n", "22 POLYGON ((-75.13886 40.00322, -75.13821 40.003... 24 42 \n", "23 POLYGON ((-75.16429 40.00308, -75.16385 40.003... 26 42 \n", "24 POLYGON ((-75.14955 40.01788, -75.15031 40.017... 27 42 \n", "25 POLYGON ((-75.14955 40.01788, -75.14935 40.017... 28 42 \n", "26 POLYGON ((-75.17404 40.01697, -75.17486 40.016... 29 42 \n", "27 POLYGON ((-75.18196 40.02554, -75.18251 40.025... 30 42 \n", "28 POLYGON ((-75.18953 39.94521, -75.18959 39.945... 31 42 \n", "29 POLYGON ((-75.16582 39.94254, -75.16578 39.942... 32 42 \n", "30 POLYGON ((-75.16549 39.94366, -75.16558 39.943... 33 42 \n", "31 POLYGON ((-75.15119 39.94189, -75.15156 39.941... 34 42 \n", "32 POLYGON ((-75.14347 39.93873, -75.14388 39.938... 35 42 \n", "33 POLYGON ((-75.16591 39.94182, -75.16599 39.941... 36 42 \n", "34 POLYGON ((-75.16636 39.94004, -75.16628 39.940... 37 42 \n", "35 POLYGON ((-75.18855 39.93846, -75.18859 39.938... 38 42 \n", "36 POLYGON ((-75.17370 39.93624, -75.17369 39.936... 39 42 \n", "37 POLYGON ((-75.17370 39.93624, -75.17378 39.935... 40 42 \n", "38 POLYGON ((-75.16702 39.93675, -75.16709 39.936... 41 42 \n", "39 POLYGON ((-75.16629 39.94004, -75.16636 39.940... 42 42 \n", "40 POLYGON ((-75.14526 39.93557, -75.14574 39.935... 43 42 \n", "41 POLYGON ((-75.16758 39.93415, -75.16764 39.934... 44 42 \n", "42 POLYGON ((-75.17520 39.92930, -75.17512 39.929... 45 42 \n", "43 POLYGON ((-75.24623 39.88951, -75.24585 39.889... 47 42 \n", "44 POLYGON ((-75.25129 39.90441, -75.25179 39.903... 48 42 \n", "45 POLYGON ((-75.24184 39.90384, -75.24196 39.903... 49 42 \n", "46 POLYGON ((-75.23342 39.91385, -75.23369 39.914... 50 42 \n", "47 POLYGON ((-75.22664 39.91909, -75.22684 39.919... 51 42 \n", "48 POLYGON ((-75.23679 39.92091, -75.23722 39.920... 52 42 \n", "49 POLYGON ((-75.23650 39.92112, -75.23570 39.921... 53 42 \n", "50 POLYGON ((-75.24701 39.96668, -75.24685 39.967... 54 42 \n", "51 POLYGON ((-75.23914 39.96990, -75.23905 39.969... 55 42 \n", "52 POLYGON ((-75.23536 39.96852, -75.23535 39.968... 56 42 \n", "53 POLYGON ((-75.22245 39.96654, -75.22262 39.967... 57 42 \n", "54 POLYGON ((-75.22262 39.96735, -75.22245 39.966... 58 42 \n", "55 POLYGON ((-75.21619 39.96249, -75.21700 39.959... 59 42 \n", "56 POLYGON ((-75.20622 39.96255, -75.20558 39.962... 60 42 \n", "57 POLYGON ((-75.20233 39.96321, -75.20231 39.963... 61 42 \n", "58 POLYGON ((-75.19851 39.96945, -75.20372 39.970... 62 42 \n", "59 POLYGON ((-75.18803 39.96330, -75.18742 39.963... 63 42 \n", "60 POLYGON ((-75.19881 39.97473, -75.19900 39.974... 64 42 \n", "61 POLYGON ((-75.21331 39.97723, -75.21347 39.977... 65 42 \n", "62 POLYGON ((-75.23799 39.97297, -75.23774 39.971... 66 42 \n", "63 POLYGON ((-75.23769 39.97621, -75.23681 39.976... 67 42 \n", "64 POLYGON ((-75.23869 39.97674, -75.23879 39.977... 68 42 \n", "65 POLYGON ((-75.13507 39.97432, -75.13463 39.974... 69 42 \n", "66 POLYGON ((-75.12275 39.97373, -75.12260 39.973... 70 42 \n", "67 POLYGON ((-75.11997 39.97592, -75.11977 39.976... 71 42 \n", "68 POLYGON ((-75.12242 39.98701, -75.12292 39.987... 72 42 \n", "69 POLYGON ((-75.14284 39.98620, -75.14350 39.986... 73 42 \n", "70 POLYGON ((-75.13952 39.98652, -75.13957 39.986... 74 42 \n", "71 POLYGON ((-75.13952 39.98652, -75.13935 39.987... 75 42 \n", "72 POLYGON ((-75.15274 39.99204, -75.15283 39.991... 76 42 \n", "73 POLYGON ((-75.15092 39.98561, -75.15020 39.985... 77 42 \n", "74 POLYGON ((-75.17226 39.98999, -75.17214 39.989... 78 42 \n", "75 POLYGON ((-75.17708 39.92022, -75.17637 39.920... 79 42 \n", "76 POLYGON ((-75.18600 39.99013, -75.18590 39.990... 80 42 \n", "77 POLYGON ((-75.17117 39.99417, -75.17112 39.994... 81 42 \n", "78 POLYGON ((-75.19134 40.00791, -75.19052 40.008... 82 42 \n", "79 POLYGON ((-75.18251 40.02533, -75.18196 40.025... 83 42 \n", "80 POLYGON ((-75.21465 40.01787, -75.21431 40.017... 84 42 \n", "81 POLYGON ((-75.21951 40.02186, -75.21940 40.021... 85 42 \n", "82 POLYGON ((-75.20876 40.03111, -75.20880 40.031... 86 42 \n", "83 POLYGON ((-75.20876 40.03111, -75.20872 40.031... 87 42 \n", "84 POLYGON ((-75.22585 40.03352, -75.22537 40.032... 88 42 \n", "85 POLYGON ((-75.22671 40.02536, -75.22614 40.025... 89 42 \n", "86 POLYGON ((-75.22746 40.03047, -75.22679 40.030... 90 42 \n", "87 POLYGON ((-75.24481 40.04580, -75.24487 40.045... 91 42 \n", "88 POLYGON ((-75.17771 40.03655, -75.17876 40.035... 92 42 \n", "89 POLYGON ((-75.16456 40.02845, -75.16436 40.028... 93 42 \n", "90 POLYGON ((-75.16448 40.02131, -75.16459 40.021... 94 42 \n", "91 POLYGON ((-75.16058 40.02673, -75.16098 40.027... 95 42 \n", "92 POLYGON ((-75.16166 40.02793, -75.16143 40.027... 96 42 \n", "93 POLYGON ((-75.17638 40.03774, -75.17615 40.037... 97 42 \n", "94 POLYGON ((-75.16208 40.03817, -75.16127 40.038... 98 42 \n", "95 POLYGON ((-75.16885 40.04796, -75.16927 40.048... 99 42 \n", "96 POLYGON ((-75.15807 40.04747, -75.15806 40.047... 100 42 \n", "97 POLYGON ((-75.17573 40.04134, -75.17336 40.043... 101 42 \n", "98 POLYGON ((-75.18392 40.04922, -75.18376 40.048... 102 42 \n", "99 POLYGON ((-75.17515 40.05685, -75.17476 40.057... 103 42 \n", "100 POLYGON ((-75.17916 40.06333, -75.17842 40.064... 104 42 \n", "101 POLYGON ((-75.19188 40.06127, -75.19129 40.060... 105 42 \n", "102 POLYGON ((-75.14169 40.02076, -75.14159 40.020... 106 42 \n", "103 POLYGON ((-75.13571 40.02392, -75.13555 40.026... 107 42 \n", "104 POLYGON ((-75.13527 40.02919, -75.13541 40.027... 108 42 \n", "105 POLYGON ((-75.12197 40.03373, -75.12223 40.033... 109 42 \n", "106 POLYGON ((-75.12882 40.02450, -75.13037 40.024... 110 42 \n", "107 POLYGON ((-75.12549 40.02504, -75.12587 40.024... 111 42 \n", "108 POLYGON ((-75.11321 40.03645, -75.11403 40.035... 112 42 \n", "109 POLYGON ((-75.10460 40.02979, -75.10437 40.029... 113 42 \n", "110 POLYGON ((-75.10613 40.02930, -75.10643 40.029... 114 42 \n", "111 POLYGON ((-75.09500 40.00999, -75.09487 40.009... 115 42 \n", "112 POLYGON ((-75.09007 40.00429, -75.09005 40.004... 116 42 \n", "113 POLYGON ((-75.06741 40.02012, -75.06752 40.020... 117 42 \n", "114 POLYGON ((-75.04135 40.06474, -75.04142 40.064... 118 42 \n", "115 POLYGON ((-75.04483 40.05900, -75.04482 40.059... 119 42 \n", "116 POLYGON ((-75.05947 40.05226, -75.05887 40.052... 120 42 \n", "117 POLYGON ((-75.05594 40.05600, -75.05535 40.056... 121 42 \n", "118 POLYGON ((-75.06580 40.06781, -75.06736 40.068... 122 42 \n", "119 POLYGON ((-75.09495 40.06796, -75.09322 40.066... 123 42 \n", "120 POLYGON ((-75.06756 40.07514, -75.06756 40.075... 124 42 \n", "121 POLYGON ((-75.07626 40.08061, -75.07712 40.081... 125 42 \n", "122 POLYGON ((-75.06698 40.07628, -75.06618 40.077... 126 42 \n", "123 POLYGON ((-75.04609 40.08385, -75.04149 40.087... 128 42 \n", "124 POLYGON ((-75.01953 40.06559, -75.01947 40.065... 129 42 \n", "125 POLYGON ((-75.24749 39.91925, -75.24746 39.919... 130 42 \n", "126 POLYGON ((-75.23666 39.93355, -75.23672 39.933... 131 42 \n", "127 POLYGON ((-75.22415 39.92980, -75.22278 39.930... 132 42 \n", "128 POLYGON ((-74.96172 40.09772, -74.96179 40.097... 133 42 \n", "129 POLYGON ((-74.97780 40.10710, -74.97381 40.110... 134 42 \n", "130 POLYGON ((-75.14147 39.95171, -75.14150 39.951... 135 42 \n", "131 POLYGON ((-75.00888 40.05866, -75.00880 40.058... 136 42 \n", "132 POLYGON ((-75.02543 40.06566, -75.02587 40.065... 137 42 \n", "133 POLYGON ((-74.97517 40.08998, -74.97607 40.090... 138 42 \n", "134 POLYGON ((-75.17772 39.91765, -75.17771 39.917... 139 42 \n", "135 POLYGON ((-75.24001 39.95588, -75.23991 39.956... 140 42 \n", "136 POLYGON ((-75.13012 39.99458, -75.12872 39.993... 141 42 \n", "137 POLYGON ((-75.15034 39.94374, -75.15043 39.943... 142 42 \n", "138 POLYGON ((-75.15313 39.94579, -75.15318 39.945... 143 42 \n", "139 POLYGON ((-75.16333 39.95334, -75.16319 39.953... 144 42 \n", "140 POLYGON ((-75.17299 39.95464, -75.17295 39.954... 145 42 \n", "141 POLYGON ((-75.21048 40.00225, -75.21114 40.002... 146 42 \n", "142 POLYGON ((-75.17464 39.97083, -75.17453 39.971... 148 42 \n", "143 POLYGON ((-75.03666 40.07860, -75.03676 40.079... 149 42 \n", "144 POLYGON ((-75.04652 40.08352, -75.04751 40.082... 150 42 \n", "145 POLYGON ((-75.15383 39.94261, -75.15377 39.942... 151 42 \n", "146 POLYGON ((-75.15309 39.94600, -75.15303 39.946... 152 42 \n", "147 POLYGON ((-75.16427 39.94935, -75.16434 39.949... 153 42 \n", "148 POLYGON ((-75.16690 39.99870, -75.16657 40.000... 154 42 \n", "149 POLYGON ((-75.17077 40.00076, -75.17135 40.000... 155 42 \n", "150 POLYGON ((-75.12698 40.03916, -75.12681 40.039... 156 42 \n", "151 POLYGON ((-75.15548 39.99877, -75.15523 39.998... 157 42 \n", "152 POLYGON ((-75.15243 40.01322, -75.15307 40.014... 158 42 \n", "153 POLYGON ((-75.07783 40.03901, -75.07740 40.039... 159 42 \n", "154 POLYGON ((-75.07900 40.03781, -75.07862 40.038... 160 42 \n", "155 POLYGON ((-75.12755 40.00505, -75.12787 40.005... 161 42 \n", "156 POLYGON ((-75.13441 39.99922, -75.13383 39.999... 162 42 \n", "157 POLYGON ((-75.11663 40.01697, -75.11748 40.015... 163 42 \n", "158 POLYGON ((-75.11285 40.02703, -75.11324 40.026... 164 42 \n", "159 POLYGON ((-75.03799 40.03781, -75.03739 40.038... 165 42 \n", "160 POLYGON ((-75.02185 40.04369, -75.02175 40.043... 166 42 \n", "161 POLYGON ((-75.04254 40.03773, -75.04420 40.038... 167 42 \n", "162 POLYGON ((-75.10396 40.04083, -75.10463 40.040... 168 42 \n", "163 POLYGON ((-75.10457 40.05057, -75.10465 40.050... 169 42 \n", "164 POLYGON ((-75.25980 39.97482, -75.25981 39.974... 170 42 \n", "165 POLYGON ((-75.11344 39.97706, -75.11333 39.976... 171 42 \n", "166 POLYGON ((-75.12692 39.99184, -75.12711 39.991... 172 42 \n", "167 POLYGON ((-75.11099 39.99781, -75.11153 39.997... 173 42 \n", "168 POLYGON ((-75.04930 40.11221, -75.04939 40.112... 174 42 \n", "169 POLYGON ((-75.02889 40.10255, -75.02840 40.103... 175 42 \n", "170 POLYGON ((-75.04386 40.11601, -75.04422 40.115... 176 42 \n", "171 POLYGON ((-75.03024 40.10340, -75.03300 40.105... 177 42 \n", "172 POLYGON ((-75.18672 39.99022, -75.18706 39.988... 178 42 \n", "173 POLYGON ((-75.17425 39.98757, -75.17403 39.988... 179 42 \n", "174 POLYGON ((-75.02010 40.12637, -75.01780 40.125... 180 42 \n", "175 POLYGON ((-75.17248 39.96564, -75.17256 39.965... 182 42 \n", "176 POLYGON ((-75.17240 39.96597, -75.17227 39.966... 183 42 \n", "177 POLYGON ((-75.18160 39.96919, -75.18153 39.969... 184 42 \n", "178 POLYGON ((-75.08141 39.99327, -75.08093 39.993... 185 42 \n", "179 POLYGON ((-75.09266 40.00790, -75.09360 40.007... 186 42 \n", "180 POLYGON ((-75.07369 40.00712, -75.07340 40.007... 187 42 \n", "181 POLYGON ((-75.02130 40.03380, -75.02141 40.033... 188 42 \n", "182 POLYGON ((-75.22845 40.06255, -75.22689 40.061... 189 42 \n", "183 POLYGON ((-75.14147 39.95171, -75.14146 39.952... 190 42 \n", "184 POLYGON ((-75.16238 39.95765, -75.16269 39.956... 191 42 \n", "185 POLYGON ((-75.17820 39.95981, -75.17908 39.959... 192 42 \n", "186 POLYGON ((-75.17349 39.95206, -75.17417 39.952... 195 42 \n", "187 POLYGON ((-75.18703 39.93039, -75.18627 39.930... 196 42 \n", "188 POLYGON ((-75.20522 39.93833, -75.20330 39.937... 197 42 \n", "189 POLYGON ((-75.19032 39.92169, -75.19016 39.921... 198 42 \n", "190 POLYGON ((-75.17584 39.92643, -75.17574 39.926... 199 42 \n", "191 POLYGON ((-75.18170 39.92330, -75.18135 39.923... 200 42 \n", "192 POLYGON ((-75.15560 39.92002, -75.15550 39.920... 201 42 \n", "193 POLYGON ((-75.17025 39.92189, -75.17031 39.921... 202 42 \n", "194 POLYGON ((-75.17774 39.91758, -75.17801 39.916... 203 42 \n", "195 POLYGON ((-75.16943 39.92560, -75.16950 39.925... 204 42 \n", "196 POLYGON ((-75.15775 39.91501, -75.15749 39.914... 205 42 \n", "197 POLYGON ((-75.15656 39.91558, -75.15664 39.915... 206 42 \n", "198 POLYGON ((-75.14782 39.91901, -75.14788 39.919... 207 42 \n", "199 POLYGON ((-75.21445 39.94893, -75.21399 39.948... 208 42 \n", "200 POLYGON ((-75.22524 39.94776, -75.22495 39.947... 209 42 \n", "201 POLYGON ((-75.24005 39.94593, -75.23996 39.946... 210 42 \n", "202 MULTIPOLYGON (((-75.12709 39.99200, -75.12842 ... 211 42 \n", "203 POLYGON ((-75.24403 39.96237, -75.24471 39.962... 212 42 \n", "204 POLYGON ((-75.24014 39.95526, -75.23817 39.955... 213 42 \n", "205 POLYGON ((-75.22979 39.96061, -75.23025 39.960... 214 42 \n", "206 POLYGON ((-75.19358 39.95870, -75.19364 39.958... 215 42 \n", "207 POLYGON ((-75.19358 39.95870, -75.19360 39.958... 216 42 \n", "208 POLYGON ((-75.20236 39.96287, -75.20398 39.962... 217 42 \n", "209 POLYGON ((-75.22005 39.96383, -75.22098 39.964... 218 42 \n", "210 POLYGON ((-75.22059 39.92906, -75.22111 39.929... 219 42 \n", "211 POLYGON ((-75.21931 39.92802, -75.21768 39.927... 220 42 \n", "212 POLYGON ((-75.21706 39.93474, -75.21652 39.935... 221 42 \n", "213 POLYGON ((-75.22890 39.94686, -75.22960 39.947... 222 42 \n", "214 POLYGON ((-75.21882 39.94412, -75.21914 39.944... 223 42 \n", "215 POLYGON ((-75.21315 39.93746, -75.21297 39.937... 224 42 \n", "216 POLYGON ((-75.20714 39.94979, -75.20805 39.949... 225 42 \n", "217 POLYGON ((-75.21714 39.94375, -75.21562 39.943... 226 42 \n", "218 POLYGON ((-75.24834 39.97503, -75.24823 39.975... 227 42 \n", "219 POLYGON ((-75.23403 39.99475, -75.23413 39.995... 228 42 \n", "220 POLYGON ((-75.22890 39.98045, -75.22879 39.980... 229 42 \n", "221 POLYGON ((-75.22567 39.99148, -75.22657 39.991... 230 42 \n", "222 POLYGON ((-75.22568 39.99326, -75.22568 39.994... 231 42 \n", "223 POLYGON ((-75.22568 39.99326, -75.22568 39.993... 232 42 \n", "224 POLYGON ((-75.18081 39.96136, -75.18060 39.961... 233 42 \n", "225 POLYGON ((-75.15302 39.96856, -75.15455 39.968... 235 42 \n", "226 POLYGON ((-75.16131 39.96290, -75.16126 39.963... 236 42 \n", "227 POLYGON ((-75.17211 39.96729, -75.17135 39.967... 237 42 \n", "228 POLYGON ((-75.18898 39.97982, -75.18906 39.979... 238 42 \n", "229 POLYGON ((-75.17662 40.00610, -75.17543 40.006... 239 42 \n", "230 POLYGON ((-75.17689 40.00595, -75.17864 40.005... 240 42 \n", "231 POLYGON ((-75.15602 39.99884, -75.15680 39.998... 241 42 \n", "232 POLYGON ((-75.14746 39.99467, -75.14708 39.996... 242 42 \n", "233 POLYGON ((-75.13930 40.00306, -75.13988 40.002... 243 42 \n", "234 POLYGON ((-75.11077 39.99153, -75.11023 39.991... 244 42 \n", "235 POLYGON ((-75.11561 39.98356, -75.11525 39.983... 245 42 \n", "236 POLYGON ((-75.06802 39.98314, -75.06588 39.984... 246 42 \n", "237 POLYGON ((-75.06835 40.00693, -75.06851 40.007... 247 42 \n", "238 POLYGON ((-75.09843 39.99908, -75.09898 39.999... 248 42 \n", "239 POLYGON ((-75.22430 40.05119, -75.22716 40.052... 249 42 \n", "240 POLYGON ((-75.22790 40.06346, -75.22791 40.063... 250 42 \n", "241 POLYGON ((-75.25415 40.04723, -75.25384 40.046... 251 42 \n", "242 POLYGON ((-75.25501 40.06271, -75.25669 40.061... 252 42 \n", "243 POLYGON ((-75.20951 40.06645, -75.20675 40.064... 254 42 \n", "244 POLYGON ((-75.20275 40.04351, -75.20298 40.043... 255 42 \n", "245 POLYGON ((-75.19800 40.03948, -75.19613 40.037... 256 42 \n", "246 POLYGON ((-75.18392 40.04922, -75.18397 40.049... 257 42 \n", "247 POLYGON ((-75.17863 40.04046, -75.17871 40.040... 258 42 \n", "248 POLYGON ((-75.18823 40.03119, -75.18821 40.031... 259 42 \n", "249 POLYGON ((-75.17473 40.02763, -75.17463 40.027... 260 42 \n", "250 POLYGON ((-75.19879 40.06868, -75.19868 40.068... 261 42 \n", "251 POLYGON ((-75.18265 40.06942, -75.18252 40.069... 262 42 \n", "252 POLYGON ((-75.17191 40.08200, -75.17294 40.082... 263 42 \n", "253 POLYGON ((-75.17394 40.07432, -75.17355 40.074... 264 42 \n", "254 POLYGON ((-75.16899 40.07148, -75.16935 40.071... 265 42 \n", "255 POLYGON ((-75.17145 40.06300, -75.17118 40.062... 266 42 \n", "256 POLYGON ((-75.02119 40.06170, -75.02131 40.061... 267 42 \n", "257 POLYGON ((-75.15411 40.06366, -75.15359 40.064... 268 42 \n", "258 POLYGON ((-75.16596 40.05983, -75.16577 40.059... 269 42 \n", "259 POLYGON ((-75.15649 40.05453, -75.15556 40.054... 270 42 \n", "260 POLYGON ((-75.15233 40.06891, -75.15260 40.067... 271 42 \n", "261 POLYGON ((-75.14858 40.05139, -75.14701 40.051... 272 42 \n", "262 POLYGON ((-75.13655 40.06180, -75.13684 40.061... 273 42 \n", "263 POLYGON ((-75.07441 40.00959, -75.07237 40.010... 274 42 \n", "264 POLYGON ((-75.07726 40.01498, -75.07668 40.015... 275 42 \n", "265 POLYGON ((-75.09061 40.02576, -75.09113 40.025... 276 42 \n", "266 POLYGON ((-75.08536 40.03110, -75.08575 40.030... 277 42 \n", "267 POLYGON ((-75.09772 40.05454, -75.09781 40.054... 278 42 \n", "268 POLYGON ((-75.08747 40.06359, -75.09130 40.059... 279 42 \n", "269 POLYGON ((-75.08231 40.04884, -75.08210 40.049... 280 42 \n", "270 POLYGON ((-75.08838 40.03987, -75.08857 40.039... 281 42 \n", "271 POLYGON ((-75.06669 40.05055, -75.06605 40.051... 282 42 \n", "272 POLYGON ((-75.07053 40.03563, -75.07090 40.035... 283 42 \n", "273 POLYGON ((-75.06138 40.03816, -75.06155 40.038... 284 42 \n", "274 POLYGON ((-75.06433 40.03619, -75.06425 40.035... 285 42 \n", "275 POLYGON ((-75.06437 40.03632, -75.06445 40.036... 286 42 \n", "276 POLYGON ((-74.96443 40.11728, -74.96461 40.117... 287 42 \n", "277 POLYGON ((-75.02961 40.06813, -75.02966 40.068... 288 42 \n", "278 POLYGON ((-75.02119 40.06170, -75.02105 40.061... 289 42 \n", "279 POLYGON ((-75.00616 40.05372, -75.00789 40.052... 290 42 \n", "280 POLYGON ((-74.97479 40.04932, -74.97500 40.049... 291 42 \n", "281 POLYGON ((-74.98437 40.05779, -74.98429 40.057... 292 42 \n", "282 POLYGON ((-74.98242 40.06552, -74.98242 40.065... 293 42 \n", "283 POLYGON ((-75.15907 40.07353, -75.15876 40.073... 294 42 \n", "284 POLYGON ((-75.16485 39.94701, -75.16475 39.947... 295 42 \n", "285 POLYGON ((-75.16534 39.94467, -75.16531 39.944... 296 42 \n", "286 POLYGON ((-75.18639 39.94658, -75.18617 39.946... 297 42 \n", "287 POLYGON ((-75.17742 39.95050, -75.17747 39.950... 298 42 \n", "288 POLYGON ((-75.14758 39.92521, -75.14749 39.925... 300 42 \n", "289 POLYGON ((-75.16842 39.93047, -75.16815 39.931... 301 42 \n", "290 POLYGON ((-75.16896 39.92804, -75.16882 39.928... 302 42 \n", "291 POLYGON ((-75.16394 39.92947, -75.16472 39.928... 303 42 \n", "292 POLYGON ((-75.15168 39.93038, -75.15160 39.930... 305 42 \n", "293 POLYGON ((-75.04496 40.06511, -75.04616 40.065... 307 42 \n", "294 POLYGON ((-75.06923 40.07151, -75.06981 40.070... 308 42 \n", "295 POLYGON ((-75.05429 40.04446, -75.05493 40.043... 309 42 \n", "296 POLYGON ((-75.06496 40.04107, -75.06492 40.041... 310 42 \n", "297 POLYGON ((-75.06138 40.03816, -75.06104 40.037... 311 42 \n", "298 POLYGON ((-75.16340 39.98722, -75.16318 39.987... 312 42 \n", "299 POLYGON ((-75.15718 39.98642, -75.15711 39.986... 313 42 \n", "300 POLYGON ((-75.15810 40.04712, -75.15813 40.046... 314 42 \n", "301 POLYGON ((-75.15967 40.03508, -75.15782 40.033... 315 42 \n", "302 POLYGON ((-75.23110 39.94876, -75.23107 39.948... 316 42 \n", "303 POLYGON ((-75.22343 39.94118, -75.22324 39.941... 317 42 \n", "304 POLYGON ((-75.20942 39.95808, -75.20959 39.958... 320 42 \n", "305 POLYGON ((-75.23080 39.95018, -75.23064 39.950... 321 42 \n", "306 POLYGON ((-75.21896 39.95927, -75.21918 39.959... 322 42 \n", "307 POLYGON ((-75.26120 39.97830, -75.26092 39.978... 323 42 \n", "308 POLYGON ((-75.10832 39.97939, -75.10820 39.979... 325 42 \n", "309 POLYGON ((-75.26927 39.98018, -75.27134 39.979... 328 42 \n", "310 POLYGON ((-75.22028 39.93958, -75.22155 39.940... 329 42 \n", "311 POLYGON ((-75.15446 39.93243, -75.15496 39.932... 330 42 \n", "312 POLYGON ((-75.17742 39.95050, -75.17733 39.950... 332 42 \n", "313 POLYGON ((-75.16477 39.94699, -75.16485 39.947... 333 42 \n", "314 POLYGON ((-75.12403 40.03405, -75.12395 40.034... 334 42 \n", "315 POLYGON ((-75.21217 39.95288, -75.21216 39.952... 335 42 \n", "316 POLYGON ((-74.99420 40.13152, -74.99745 40.128... 336 42 \n", "317 POLYGON ((-75.14161 39.95550, -75.14160 39.955... 337 42 \n", "318 POLYGON ((-75.15215 39.96246, -75.15276 39.962... 338 42 \n", "319 POLYGON ((-75.21539 40.07327, -75.21575 40.072... 339 42 \n", "320 POLYGON ((-75.20733 40.07657, -75.20744 40.076... 340 42 \n", "321 POLYGON ((-75.22797 40.08435, -75.22790 40.084... 341 42 \n", "322 POLYGON ((-75.19289 40.06267, -75.19412 40.064... 342 42 \n", "323 POLYGON ((-75.17520 40.05678, -75.17526 40.056... 343 42 \n", "324 POLYGON ((-75.20724 40.01102, -75.20732 40.010... 344 42 \n", "325 POLYGON ((-75.13409 40.06035, -75.13439 40.060... 345 42 \n", "326 POLYGON ((-75.13294 40.04607, -75.13212 40.046... 346 42 \n", "327 POLYGON ((-75.12334 40.04657, -75.12326 40.046... 347 42 \n", "328 POLYGON ((-75.11315 40.04364, -75.11210 40.043... 348 42 \n", "329 POLYGON ((-75.11223 40.04332, -75.11219 40.043... 349 42 \n", "330 POLYGON ((-75.13477 40.04171, -75.13478 40.041... 350 42 \n", "331 POLYGON ((-75.14311 40.04648, -75.14327 40.045... 351 42 \n", "332 POLYGON ((-75.14384 40.05078, -75.14464 40.050... 352 42 \n", "333 POLYGON ((-75.14290 40.04750, -75.14345 40.047... 353 42 \n", "334 POLYGON ((-75.15385 40.02217, -75.15336 40.022... 354 42 \n", "335 POLYGON ((-75.14658 40.03065, -75.14652 40.030... 355 42 \n", "336 POLYGON ((-75.13507 40.03129, -75.13497 40.032... 356 42 \n", "337 POLYGON ((-75.07123 40.03458, -75.07110 40.034... 357 42 \n", "338 POLYGON ((-75.06716 40.01983, -75.06701 40.019... 358 42 \n", "339 POLYGON ((-75.05406 40.03119, -75.05480 40.030... 359 42 \n", "340 POLYGON ((-75.05275 40.01616, -75.05341 40.016... 360 42 \n", "341 POLYGON ((-75.04538 40.01988, -75.04574 40.020... 361 42 \n", "342 POLYGON ((-75.03863 40.02425, -75.03933 40.025... 362 42 \n", "343 POLYGON ((-75.03311 40.02751, -75.03353 40.028... 363 42 \n", "344 POLYGON ((-75.02050 40.04355, -75.02063 40.043... 365 42 \n", "345 POLYGON ((-75.02854 40.02968, -75.02971 40.030... 366 42 \n", "346 POLYGON ((-75.05406 40.04433, -75.05312 40.043... 367 42 \n", "347 POLYGON ((-75.02703 40.09835, -75.03073 40.095... 369 42 \n", "348 POLYGON ((-75.03363 40.12314, -75.03756 40.120... 370 42 \n", "349 POLYGON ((-75.01235 40.10951, -75.01027 40.111... 371 42 \n", "350 POLYGON ((-75.01235 40.10951, -75.01403 40.108... 372 42 \n", "351 POLYGON ((-74.99233 40.10409, -74.99444 40.105... 373 42 \n", "352 POLYGON ((-74.96488 40.07728, -74.96490 40.077... 374 42 \n", "353 POLYGON ((-74.98757 40.07583, -74.98827 40.076... 375 42 \n", "354 POLYGON ((-74.98499 40.07453, -74.98490 40.074... 376 42 \n", "355 POLYGON ((-74.97990 40.09382, -74.97869 40.092... 377 42 \n", "356 POLYGON ((-75.17001 39.91004, -75.16973 39.911... 379 42 \n", "357 POLYGON ((-75.17135 39.91678, -75.17143 39.916... 380 42 \n", "358 POLYGON ((-75.11627 40.01743, -75.11660 40.017... 381 42 \n", "359 POLYGON ((-75.08824 40.04034, -75.08820 40.040... 382 42 \n", "360 POLYGON ((-75.11051 39.96952, -75.10676 39.970... 383 42 \n", "361 POLYGON ((-75.15170 39.98571, -75.15249 39.985... 384 42 \n", "\n", " COUNTYFP10 TRACTCE10 GEOID10 NAME10 NAMELSAD10 MTFCC10 \\\n", "0 101 009400 42101009400 94 Census Tract 94 G5020 \n", "1 101 009500 42101009500 95 Census Tract 95 G5020 \n", "2 101 009600 42101009600 96 Census Tract 96 G5020 \n", "3 101 013800 42101013800 138 Census Tract 138 G5020 \n", "4 101 013900 42101013900 139 Census Tract 139 G5020 \n", "5 101 014000 42101014000 140 Census Tract 140 G5020 \n", "6 101 014100 42101014100 141 Census Tract 141 G5020 \n", "7 101 014200 42101014200 142 Census Tract 142 G5020 \n", "8 101 014300 42101014300 143 Census Tract 143 G5020 \n", "9 101 014400 42101014400 144 Census Tract 144 G5020 \n", "10 101 014500 42101014500 145 Census Tract 145 G5020 \n", "11 101 014600 42101014600 146 Census Tract 146 G5020 \n", "12 101 014700 42101014700 147 Census Tract 147 G5020 \n", "13 101 014900 42101014900 149 Census Tract 149 G5020 \n", "14 101 015200 42101015200 152 Census Tract 152 G5020 \n", "15 101 015300 42101015300 153 Census Tract 153 G5020 \n", "16 101 015600 42101015600 156 Census Tract 156 G5020 \n", "17 101 019000 42101019000 190 Census Tract 190 G5020 \n", "18 101 019100 42101019100 191 Census Tract 191 G5020 \n", "19 101 019200 42101019200 192 Census Tract 192 G5020 \n", "20 101 019700 42101019700 197 Census Tract 197 G5020 \n", "21 101 019800 42101019800 198 Census Tract 198 G5020 \n", "22 101 019900 42101019900 199 Census Tract 199 G5020 \n", "23 101 020200 42101020200 202 Census Tract 202 G5020 \n", "24 101 020300 42101020300 203 Census Tract 203 G5020 \n", "25 101 020400 42101020400 204 Census Tract 204 G5020 \n", "26 101 020500 42101020500 205 Census Tract 205 G5020 \n", "27 101 020600 42101020600 206 Census Tract 206 G5020 \n", "28 101 001300 42101001300 13 Census Tract 13 G5020 \n", "29 101 001400 42101001400 14 Census Tract 14 G5020 \n", "30 101 001500 42101001500 15 Census Tract 15 G5020 \n", "31 101 001600 42101001600 16 Census Tract 16 G5020 \n", "32 101 001700 42101001700 17 Census Tract 17 G5020 \n", "33 101 001800 42101001800 18 Census Tract 18 G5020 \n", "34 101 001900 42101001900 19 Census Tract 19 G5020 \n", "35 101 002000 42101002000 20 Census Tract 20 G5020 \n", "36 101 002100 42101002100 21 Census Tract 21 G5020 \n", "37 101 002200 42101002200 22 Census Tract 22 G5020 \n", "38 101 002300 42101002300 23 Census Tract 23 G5020 \n", "39 101 002400 42101002400 24 Census Tract 24 G5020 \n", "40 101 002500 42101002500 25 Census Tract 25 G5020 \n", "41 101 002900 42101002900 29 Census Tract 29 G5020 \n", "42 101 003100 42101003100 31 Census Tract 31 G5020 \n", "43 101 005400 42101005400 54 Census Tract 54 G5020 \n", "44 101 005500 42101005500 55 Census Tract 55 G5020 \n", "45 101 005600 42101005600 56 Census Tract 56 G5020 \n", "46 101 006000 42101006000 60 Census Tract 60 G5020 \n", "47 101 006100 42101006100 61 Census Tract 61 G5020 \n", "48 101 006200 42101006200 62 Census Tract 62 G5020 \n", "49 101 006300 42101006300 63 Census Tract 63 G5020 \n", "50 101 010000 42101010000 100 Census Tract 100 G5020 \n", "51 101 010100 42101010100 101 Census Tract 101 G5020 \n", "52 101 010200 42101010200 102 Census Tract 102 G5020 \n", "53 101 010300 42101010300 103 Census Tract 103 G5020 \n", "54 101 010400 42101010400 104 Census Tract 104 G5020 \n", "55 101 010500 42101010500 105 Census Tract 105 G5020 \n", "56 101 010600 42101010600 106 Census Tract 106 G5020 \n", "57 101 010700 42101010700 107 Census Tract 107 G5020 \n", "58 101 010800 42101010800 108 Census Tract 108 G5020 \n", "59 101 010900 42101010900 109 Census Tract 109 G5020 \n", "60 101 011000 42101011000 110 Census Tract 110 G5020 \n", "61 101 011100 42101011100 111 Census Tract 111 G5020 \n", "62 101 011200 42101011200 112 Census Tract 112 G5020 \n", "63 101 011300 42101011300 113 Census Tract 113 G5020 \n", "64 101 011400 42101011400 114 Census Tract 114 G5020 \n", "65 101 015700 42101015700 157 Census Tract 157 G5020 \n", "66 101 015800 42101015800 158 Census Tract 158 G5020 \n", "67 101 016000 42101016000 160 Census Tract 160 G5020 \n", "68 101 016100 42101016100 161 Census Tract 161 G5020 \n", "69 101 016200 42101016200 162 Census Tract 162 G5020 \n", "70 101 016300 42101016300 163 Census Tract 163 G5020 \n", "71 101 016400 42101016400 164 Census Tract 164 G5020 \n", "72 101 016500 42101016500 165 Census Tract 165 G5020 \n", "73 101 016600 42101016600 166 Census Tract 166 G5020 \n", "74 101 016800 42101016800 168 Census Tract 168 G5020 \n", "75 101 003901 42101003901 39.01 Census Tract 39.01 G5020 \n", "76 101 016902 42101016902 169.02 Census Tract 169.02 G5020 \n", "77 101 016901 42101016901 169.01 Census Tract 169.01 G5020 \n", "78 101 020700 42101020700 207 Census Tract 207 G5020 \n", "79 101 020800 42101020800 208 Census Tract 208 G5020 \n", "80 101 020900 42101020900 209 Census Tract 209 G5020 \n", "81 101 021000 42101021000 210 Census Tract 210 G5020 \n", "82 101 021100 42101021100 211 Census Tract 211 G5020 \n", "83 101 021200 42101021200 212 Census Tract 212 G5020 \n", "84 101 021300 42101021300 213 Census Tract 213 G5020 \n", "85 101 021400 42101021400 214 Census Tract 214 G5020 \n", "86 101 021500 42101021500 215 Census Tract 215 G5020 \n", "87 101 021600 42101021600 216 Census Tract 216 G5020 \n", "88 101 024100 42101024100 241 Census Tract 241 G5020 \n", "89 101 024200 42101024200 242 Census Tract 242 G5020 \n", "90 101 024300 42101024300 243 Census Tract 243 G5020 \n", "91 101 024400 42101024400 244 Census Tract 244 G5020 \n", "92 101 024500 42101024500 245 Census Tract 245 G5020 \n", "93 101 024600 42101024600 246 Census Tract 246 G5020 \n", "94 101 024700 42101024700 247 Census Tract 247 G5020 \n", "95 101 024800 42101024800 248 Census Tract 248 G5020 \n", "96 101 024900 42101024900 249 Census Tract 249 G5020 \n", "97 101 025200 42101025200 252 Census Tract 252 G5020 \n", "98 101 025300 42101025300 253 Census Tract 253 G5020 \n", "99 101 025400 42101025400 254 Census Tract 254 G5020 \n", "100 101 025500 42101025500 255 Census Tract 255 G5020 \n", "101 101 025600 42101025600 256 Census Tract 256 G5020 \n", "102 101 028300 42101028300 283 Census Tract 283 G5020 \n", "103 101 028400 42101028400 284 Census Tract 284 G5020 \n", "104 101 028500 42101028500 285 Census Tract 285 G5020 \n", "105 101 028600 42101028600 286 Census Tract 286 G5020 \n", "106 101 028700 42101028700 287 Census Tract 287 G5020 \n", "107 101 028800 42101028800 288 Census Tract 288 G5020 \n", "108 101 029000 42101029000 290 Census Tract 290 G5020 \n", "109 101 029100 42101029100 291 Census Tract 291 G5020 \n", "110 101 029200 42101029200 292 Census Tract 292 G5020 \n", "111 101 029300 42101029300 293 Census Tract 293 G5020 \n", "112 101 029400 42101029400 294 Census Tract 294 G5020 \n", "113 101 029800 42101029800 298 Census Tract 298 G5020 \n", "114 101 033300 42101033300 333 Census Tract 333 G5020 \n", "115 101 033400 42101033400 334 Census Tract 334 G5020 \n", "116 101 033500 42101033500 335 Census Tract 335 G5020 \n", "117 101 033600 42101033600 336 Census Tract 336 G5020 \n", "118 101 033800 42101033800 338 Census Tract 338 G5020 \n", "119 101 033900 42101033900 339 Census Tract 339 G5020 \n", "120 101 034000 42101034000 340 Census Tract 340 G5020 \n", "121 101 034100 42101034100 341 Census Tract 341 G5020 \n", "122 101 034200 42101034200 342 Census Tract 342 G5020 \n", "123 101 034400 42101034400 344 Census Tract 344 G5020 \n", "124 101 034600 42101034600 346 Census Tract 346 G5020 \n", "125 101 006400 42101006400 64 Census Tract 64 G5020 \n", "126 101 006500 42101006500 65 Census Tract 65 G5020 \n", "127 101 006600 42101006600 66 Census Tract 66 G5020 \n", "128 101 036301 42101036301 363.01 Census Tract 363.01 G5020 \n", "129 101 036400 42101036400 364 Census Tract 364 G5020 \n", "130 101 036600 42101036600 366 Census Tract 366 G5020 \n", "131 101 034803 42101034803 348.03 Census Tract 348.03 G5020 \n", "132 101 034702 42101034702 347.02 Census Tract 347.02 G5020 \n", "133 101 036202 42101036202 362.02 Census Tract 362.02 G5020 \n", "134 101 003800 42101003800 38 Census Tract 38 G5020 \n", "135 101 008302 42101008302 83.02 Census Tract 83.02 G5020 \n", "136 101 017602 42101017602 176.02 Census Tract 176.02 G5020 \n", "137 101 001002 42101001002 10.02 Census Tract 10.02 G5020 \n", "138 101 001001 42101001001 10.01 Census Tract 10.01 G5020 \n", "139 101 000402 42101000402 4.02 Census Tract 4.02 G5020 \n", "140 101 000401 42101000401 4.01 Census Tract 4.01 G5020 \n", "141 101 012204 42101012204 122.04 Census Tract 122.04 G5020 \n", "142 101 013602 42101013602 136.02 Census Tract 136.02 G5020 \n", "143 101 034501 42101034501 345.01 Census Tract 345.01 G5020 \n", "144 101 034502 42101034502 345.02 Census Tract 345.02 G5020 \n", "145 101 001102 42101001102 11.02 Census Tract 11.02 G5020 \n", "146 101 000902 42101000902 9.02 Census Tract 9.02 G5020 \n", "147 101 000901 42101000901 9.01 Census Tract 9.01 G5020 \n", "148 101 017201 42101017201 172.01 Census Tract 172.01 G5020 \n", "149 101 017202 42101017202 172.02 Census Tract 172.02 G5020 \n", "150 101 027401 42101027401 274.01 Census Tract 274.01 G5020 \n", "151 101 020101 42101020101 201.01 Census Tract 201.01 G5020 \n", "152 101 020102 42101020102 201.02 Census Tract 201.02 G5020 \n", "153 101 031101 42101031101 311.01 Census Tract 311.01 G5020 \n", "154 101 031102 42101031102 311.02 Census Tract 311.02 G5020 \n", "155 101 019502 42101019502 195.02 Census Tract 195.02 G5020 \n", "156 101 019501 42101019501 195.01 Census Tract 195.01 G5020 \n", "157 101 028901 42101028901 289.01 Census Tract 289.01 G5020 \n", "158 101 028902 42101028902 289.02 Census Tract 289.02 G5020 \n", "159 101 033101 42101033101 331.01 Census Tract 331.01 G5020 \n", "160 101 033102 42101033102 331.02 Census Tract 331.02 G5020 \n", "161 101 031501 42101031501 315.01 Census Tract 315.01 G5020 \n", "162 101 030501 42101030501 305.01 Census Tract 305.01 G5020 \n", "163 101 030502 42101030502 305.02 Census Tract 305.02 G5020 \n", "164 101 009802 42101009802 98.02 Census Tract 98.02 G5020 \n", "165 101 018001 42101018001 180.01 Census Tract 180.01 G5020 \n", "166 101 017702 42101017702 177.02 Census Tract 177.02 G5020 \n", "167 101 017701 42101017701 177.01 Census Tract 177.01 G5020 \n", "168 101 035602 42101035602 356.02 Census Tract 356.02 G5020 \n", "169 101 035701 42101035701 357.01 Census Tract 357.01 G5020 \n", "170 101 035702 42101035702 357.02 Census Tract 357.02 G5020 \n", "171 101 035601 42101035601 356.01 Census Tract 356.01 G5020 \n", "172 101 015101 42101015101 151.01 Census Tract 151.01 G5020 \n", "173 101 015102 42101015102 151.02 Census Tract 151.02 G5020 \n", "174 101 036501 42101036501 365.01 Census Tract 365.01 G5020 \n", "175 101 013402 42101013402 134.02 Census Tract 134.02 G5020 \n", "176 101 013401 42101013401 134.01 Census Tract 134.01 G5020 \n", "177 101 013601 42101013601 136.01 Census Tract 136.01 G5020 \n", "178 101 037900 42101037900 379 Census Tract 379 G5020 \n", "179 101 038200 42101038200 382 Census Tract 382 G5020 \n", "180 101 038000 42101038000 380 Census Tract 380 G5020 \n", "181 101 038100 42101038100 381 Census Tract 381 G5020 \n", "182 101 038400 42101038400 384 Census Tract 384 G5020 \n", "183 101 000100 42101000100 1 Census Tract 1 G5020 \n", "184 101 000200 42101000200 2 Census Tract 2 G5020 \n", "185 101 000300 42101000300 3 Census Tract 3 G5020 \n", "186 101 000700 42101000700 7 Census Tract 7 G5020 \n", "187 101 003200 42101003200 32 Census Tract 32 G5020 \n", "188 101 003300 42101003300 33 Census Tract 33 G5020 \n", "189 101 003600 42101003600 36 Census Tract 36 G5020 \n", "190 101 003701 42101003701 37.01 Census Tract 37.01 G5020 \n", "191 101 003702 42101003702 37.02 Census Tract 37.02 G5020 \n", "192 101 004101 42101004101 41.01 Census Tract 41.01 G5020 \n", "193 101 004002 42101004002 40.02 Census Tract 40.02 G5020 \n", "194 101 003902 42101003902 39.02 Census Tract 39.02 G5020 \n", "195 101 004001 42101004001 40.01 Census Tract 40.01 G5020 \n", "196 101 004102 42101004102 41.02 Census Tract 41.02 G5020 \n", "197 101 004202 42101004202 42.02 Census Tract 42.02 G5020 \n", "198 101 004201 42101004201 42.01 Census Tract 42.01 G5020 \n", "199 101 007900 42101007900 79 Census Tract 79 G5020 \n", "200 101 008000 42101008000 80 Census Tract 80 G5020 \n", "201 101 008200 42101008200 82 Census Tract 82 G5020 \n", "202 101 017601 42101017601 176.01 Census Tract 176.01 G5020 \n", "203 101 008301 42101008301 83.01 Census Tract 83.01 G5020 \n", "204 101 008400 42101008400 84 Census Tract 84 G5020 \n", "205 101 008500 42101008500 85 Census Tract 85 G5020 \n", "206 101 009000 42101009000 90 Census Tract 90 G5020 \n", "207 101 009100 42101009100 91 Census Tract 91 G5020 \n", "208 101 009200 42101009200 92 Census Tract 92 G5020 \n", "209 101 009300 42101009300 93 Census Tract 93 G5020 \n", "210 101 006700 42101006700 67 Census Tract 67 G5020 \n", "211 101 006900 42101006900 69 Census Tract 69 G5020 \n", "212 101 007000 42101007000 70 Census Tract 70 G5020 \n", "213 101 007200 42101007200 72 Census Tract 72 G5020 \n", "214 101 007300 42101007300 73 Census Tract 73 G5020 \n", "215 101 007400 42101007400 74 Census Tract 74 G5020 \n", "216 101 007700 42101007700 77 Census Tract 77 G5020 \n", "217 101 007800 42101007800 78 Census Tract 78 G5020 \n", "218 101 011500 42101011500 115 Census Tract 115 G5020 \n", "219 101 011700 42101011700 117 Census Tract 117 G5020 \n", "220 101 011800 42101011800 118 Census Tract 118 G5020 \n", "221 101 011900 42101011900 119 Census Tract 119 G5020 \n", "222 101 012000 42101012000 120 Census Tract 120 G5020 \n", "223 101 012100 42101012100 121 Census Tract 121 G5020 \n", "224 101 012500 42101012500 125 Census Tract 125 G5020 \n", "225 101 013200 42101013200 132 Census Tract 132 G5020 \n", "226 101 013300 42101013300 133 Census Tract 133 G5020 \n", "227 101 013500 42101013500 135 Census Tract 135 G5020 \n", "228 101 013700 42101013700 137 Census Tract 137 G5020 \n", "229 101 017000 42101017000 170 Census Tract 170 G5020 \n", "230 101 017100 42101017100 171 Census Tract 171 G5020 \n", "231 101 017300 42101017300 173 Census Tract 173 G5020 \n", "232 101 017400 42101017400 174 Census Tract 174 G5020 \n", "233 101 017500 42101017500 175 Census Tract 175 G5020 \n", "234 101 017800 42101017800 178 Census Tract 178 G5020 \n", "235 101 017900 42101017900 179 Census Tract 179 G5020 \n", "236 101 018300 42101018300 183 Census Tract 183 G5020 \n", "237 101 018400 42101018400 184 Census Tract 184 G5020 \n", "238 101 018800 42101018800 188 Census Tract 188 G5020 \n", "239 101 021700 42101021700 217 Census Tract 217 G5020 \n", "240 101 021800 42101021800 218 Census Tract 218 G5020 \n", "241 101 021900 42101021900 219 Census Tract 219 G5020 \n", "242 101 022000 42101022000 220 Census Tract 220 G5020 \n", "243 101 023100 42101023100 231 Census Tract 231 G5020 \n", "244 101 023500 42101023500 235 Census Tract 235 G5020 \n", "245 101 023600 42101023600 236 Census Tract 236 G5020 \n", "246 101 023700 42101023700 237 Census Tract 237 G5020 \n", "247 101 023800 42101023800 238 Census Tract 238 G5020 \n", "248 101 023900 42101023900 239 Census Tract 239 G5020 \n", "249 101 024000 42101024000 240 Census Tract 240 G5020 \n", "250 101 025700 42101025700 257 Census Tract 257 G5020 \n", "251 101 025800 42101025800 258 Census Tract 258 G5020 \n", "252 101 025900 42101025900 259 Census Tract 259 G5020 \n", "253 101 026000 42101026000 260 Census Tract 260 G5020 \n", "254 101 026100 42101026100 261 Census Tract 261 G5020 \n", "255 101 026200 42101026200 262 Census Tract 262 G5020 \n", "256 101 034801 42101034801 348.01 Census Tract 348.01 G5020 \n", "257 101 026302 42101026302 263.02 Census Tract 263.02 G5020 \n", "258 101 026400 42101026400 264 Census Tract 264 G5020 \n", "259 101 026500 42101026500 265 Census Tract 265 G5020 \n", "260 101 026600 42101026600 266 Census Tract 266 G5020 \n", "261 101 026700 42101026700 267 Census Tract 267 G5020 \n", "262 101 026800 42101026800 268 Census Tract 268 G5020 \n", "263 101 029900 42101029900 299 Census Tract 299 G5020 \n", "264 101 030000 42101030000 300 Census Tract 300 G5020 \n", "265 101 030100 42101030100 301 Census Tract 301 G5020 \n", "266 101 030200 42101030200 302 Census Tract 302 G5020 \n", "267 101 030600 42101030600 306 Census Tract 306 G5020 \n", "268 101 030700 42101030700 307 Census Tract 307 G5020 \n", "269 101 030800 42101030800 308 Census Tract 308 G5020 \n", "270 101 030900 42101030900 309 Census Tract 309 G5020 \n", "271 101 031000 42101031000 310 Census Tract 310 G5020 \n", "272 101 031200 42101031200 312 Census Tract 312 G5020 \n", "273 101 031300 42101031300 313 Census Tract 313 G5020 \n", "274 101 031600 42101031600 316 Census Tract 316 G5020 \n", "275 101 031700 42101031700 317 Census Tract 317 G5020 \n", "276 101 036303 42101036303 363.03 Census Tract 363.03 G5020 \n", "277 101 034701 42101034701 347.01 Census Tract 347.01 G5020 \n", "278 101 034802 42101034802 348.02 Census Tract 348.02 G5020 \n", "279 101 034900 42101034900 349 Census Tract 349 G5020 \n", "280 101 035100 42101035100 351 Census Tract 351 G5020 \n", "281 101 035200 42101035200 352 Census Tract 352 G5020 \n", "282 101 035301 42101035301 353.01 Census Tract 353.01 G5020 \n", "283 101 026301 42101026301 263.01 Census Tract 263.01 G5020 \n", "284 101 000804 42101000804 8.04 Census Tract 8.04 G5020 \n", "285 101 001202 42101001202 12.02 Census Tract 12.02 G5020 \n", "286 101 001201 42101001201 12.01 Census Tract 12.01 G5020 \n", "287 101 000803 42101000803 8.03 Census Tract 8.03 G5020 \n", "288 101 002702 42101002702 27.02 Census Tract 27.02 G5020 \n", "289 101 003002 42101003002 30.02 Census Tract 30.02 G5020 \n", "290 101 003001 42101003001 30.01 Census Tract 30.01 G5020 \n", "291 101 002802 42101002802 28.02 Census Tract 28.02 G5020 \n", "292 101 002701 42101002701 27.01 Census Tract 27.01 G5020 \n", "293 101 033701 42101033701 337.01 Census Tract 337.01 G5020 \n", "294 101 033702 42101033702 337.02 Census Tract 337.02 G5020 \n", "295 101 031502 42101031502 315.02 Census Tract 315.02 G5020 \n", "296 101 031401 42101031401 314.01 Census Tract 314.01 G5020 \n", "297 101 031402 42101031402 314.02 Census Tract 314.02 G5020 \n", "298 101 016701 42101016701 167.01 Census Tract 167.01 G5020 \n", "299 101 016702 42101016702 167.02 Census Tract 167.02 G5020 \n", "300 101 027901 42101027901 279.01 Census Tract 279.01 G5020 \n", "301 101 027902 42101027902 279.02 Census Tract 279.02 G5020 \n", "302 101 008101 42101008101 81.01 Census Tract 81.01 G5020 \n", "303 101 007102 42101007102 71.02 Census Tract 71.02 G5020 \n", "304 101 008701 42101008701 87.01 Census Tract 87.01 G5020 \n", "305 101 008102 42101008102 81.02 Census Tract 81.02 G5020 \n", "306 101 008602 42101008602 86.02 Census Tract 86.02 G5020 \n", "307 101 037500 42101037500 375 Census Tract 375 G5020 \n", "308 101 018002 42101018002 180.02 Census Tract 180.02 G5020 \n", "309 101 009801 42101009801 98.01 Census Tract 98.01 G5020 \n", "310 101 007101 42101007101 71.01 Census Tract 71.01 G5020 \n", "311 101 002801 42101002801 28.01 Census Tract 28.01 G5020 \n", "312 101 000801 42101000801 8.01 Census Tract 8.01 G5020 \n", "313 101 001101 42101001101 11.01 Census Tract 11.01 G5020 \n", "314 101 027402 42101027402 274.02 Census Tract 274.02 G5020 \n", "315 101 008601 42101008601 86.01 Census Tract 86.01 G5020 \n", "316 101 036502 42101036502 365.02 Census Tract 365.02 G5020 \n", "317 101 036700 42101036700 367 Census Tract 367 G5020 \n", "318 101 037600 42101037600 376 Census Tract 376 G5020 \n", "319 101 038600 42101038600 386 Census Tract 386 G5020 \n", "320 101 038500 42101038500 385 Census Tract 385 G5020 \n", "321 101 038700 42101038700 387 Census Tract 387 G5020 \n", "322 101 038800 42101038800 388 Census Tract 388 G5020 \n", "323 101 038900 42101038900 389 Census Tract 389 G5020 \n", "324 101 980000 42101980000 9800 Census Tract 9800 G5020 \n", "325 101 026900 42101026900 269 Census Tract 269 G5020 \n", "326 101 027000 42101027000 270 Census Tract 270 G5020 \n", "327 101 027100 42101027100 271 Census Tract 271 G5020 \n", "328 101 027200 42101027200 272 Census Tract 272 G5020 \n", "329 101 027300 42101027300 273 Census Tract 273 G5020 \n", "330 101 027500 42101027500 275 Census Tract 275 G5020 \n", "331 101 027600 42101027600 276 Census Tract 276 G5020 \n", "332 101 027700 42101027700 277 Census Tract 277 G5020 \n", "333 101 027800 42101027800 278 Census Tract 278 G5020 \n", "334 101 028000 42101028000 280 Census Tract 280 G5020 \n", "335 101 028100 42101028100 281 Census Tract 281 G5020 \n", "336 101 028200 42101028200 282 Census Tract 282 G5020 \n", "337 101 031800 42101031800 318 Census Tract 318 G5020 \n", "338 101 031900 42101031900 319 Census Tract 319 G5020 \n", "339 101 032000 42101032000 320 Census Tract 320 G5020 \n", "340 101 032100 42101032100 321 Census Tract 321 G5020 \n", "341 101 032300 42101032300 323 Census Tract 323 G5020 \n", "342 101 032500 42101032500 325 Census Tract 325 G5020 \n", "343 101 032600 42101032600 326 Census Tract 326 G5020 \n", "344 101 032900 42101032900 329 Census Tract 329 G5020 \n", "345 101 033000 42101033000 330 Census Tract 330 G5020 \n", "346 101 033200 42101033200 332 Census Tract 332 G5020 \n", "347 101 035500 42101035500 355 Census Tract 355 G5020 \n", "348 101 035800 42101035800 358 Census Tract 358 G5020 \n", "349 101 035900 42101035900 359 Census Tract 359 G5020 \n", "350 101 036000 42101036000 360 Census Tract 360 G5020 \n", "351 101 036100 42101036100 361 Census Tract 361 G5020 \n", "352 101 036203 42101036203 362.03 Census Tract 362.03 G5020 \n", "353 101 035302 42101035302 353.02 Census Tract 353.02 G5020 \n", "354 101 036201 42101036201 362.01 Census Tract 362.01 G5020 \n", "355 101 036302 42101036302 363.02 Census Tract 363.02 G5020 \n", "356 101 037300 42101037300 373 Census Tract 373 G5020 \n", "357 101 037200 42101037200 372 Census Tract 372 G5020 \n", "358 101 038300 42101038300 383 Census Tract 383 G5020 \n", "359 101 039000 42101039000 390 Census Tract 390 G5020 \n", "360 101 037800 42101037800 378 Census Tract 378 G5020 \n", "361 101 037700 42101037700 377 Census Tract 377 G5020 \n", "\n", " FUNCSTAT10 ALAND10 AWATER10 INTPTLAT10 INTPTLON10 LOGRECNO \\\n", "0 S 366717 0 +39.9632709 -075.2322437 10429 \n", "1 S 319070 0 +39.9658709 -075.2379140 10430 \n", "2 S 405273 0 +39.9655396 -075.2435075 10431 \n", "3 S 341256 0 +39.9764504 -075.1771771 10468 \n", "4 S 562934 0 +39.9750563 -075.1711846 10469 \n", "5 S 439802 0 +39.9735358 -075.1630966 10470 \n", "6 S 562132 0 +39.9708771 -075.1524555 10471 \n", "7 S 789935 277434 +39.9652375 -075.1359612 10472 \n", "8 S 570015 282808 +39.9671225 -075.1265617 10473 \n", "9 S 609439 0 +39.9722286 -075.1400952 10474 \n", "10 S 321464 0 +39.9760715 -075.1484189 10475 \n", "11 S 445048 0 +39.9764305 -075.1546990 10476 \n", "12 S 337677 0 +39.9785489 -075.1620244 10477 \n", "13 S 453221 0 +39.9816503 -075.1804029 10479 \n", "14 S 669101 0 +39.9854546 -075.1700491 10482 \n", "15 S 469136 0 +39.9837644 -075.1608849 10483 \n", "16 S 429567 0 +39.9790066 -075.1418910 10484 \n", "17 S 778606 12639 +40.0095015 -075.0986136 10517 \n", "18 S 1439101 20770 +40.0095510 -075.1071820 10518 \n", "19 S 656913 0 +40.0006393 -075.1150648 10519 \n", "20 S 450587 0 +40.0162799 -075.1379372 10522 \n", "21 S 541006 0 +40.0107245 -075.1421472 10523 \n", "22 S 661884 0 +40.0048515 -075.1435463 10524 \n", "23 S 756814 0 +40.0081282 -075.1621609 10528 \n", "24 S 508176 0 +40.0125820 -075.1495922 10529 \n", "25 S 407372 0 +40.0198216 -075.1525117 10530 \n", "26 S 1429510 0 +40.0158738 -075.1643607 10531 \n", "27 S 1295848 56842 +40.0198000 -075.1827740 10532 \n", "28 S 727889 60713 +39.9445258 -075.1862050 10354 \n", "29 S 315832 0 +39.9429436 -075.1715930 10355 \n", "30 S 239383 0 +39.9419037 -075.1591158 10356 \n", "31 S 196392 0 +39.9402546 -075.1483127 10357 \n", "32 S 221530 0 +39.9377593 -075.1483114 10358 \n", "33 S 242483 0 +39.9399998 -075.1593091 10359 \n", "34 S 328327 0 +39.9400454 -075.1722270 10360 \n", "35 S 289368 0 +39.9381416 -075.1843145 10361 \n", "36 S 237519 0 +39.9372214 -075.1768955 10362 \n", "37 S 228696 0 +39.9364111 -075.1703923 10363 \n", "38 S 212379 0 +39.9348217 -075.1629799 10364 \n", "39 S 535421 0 +39.9367634 -075.1595100 10365 \n", "40 S 398697 0 +39.9342960 -075.1498023 10366 \n", "41 S 370217 0 +39.9306984 -075.1655729 10371 \n", "42 S 395908 0 +39.9323428 -075.1779572 10374 \n", "43 S 1846253 530013 +39.8904539 -075.2513923 10390 \n", "44 S 1168442 12010 +39.9074191 -075.2489174 10391 \n", "45 S 840411 0 +39.8988328 -075.2447347 10392 \n", "46 S 1089657 0 +39.9115196 -075.2381570 10393 \n", "47 S 534201 0 +39.9150013 -075.2288094 10394 \n", "48 S 509636 0 +39.9194134 -075.2335257 10395 \n", "49 S 555602 0 +39.9210843 -075.2399762 10396 \n", "50 S 497695 0 +39.9710834 -075.2503759 10434 \n", "51 S 601437 0 +39.9721396 -075.2425290 10435 \n", "52 S 360618 0 +39.9680830 -075.2316701 10436 \n", "53 S 281357 0 +39.9678322 -075.2254383 10437 \n", "54 S 472051 0 +39.9654995 -075.2191193 10438 \n", "55 S 657766 0 +39.9665652 -075.2142018 10439 \n", "56 S 265466 0 +39.9646327 -075.2079213 10440 \n", "57 S 460475 0 +39.9687475 -075.2069442 10441 \n", "58 S 585732 0 +39.9660217 -075.1989890 10442 \n", "59 S 248168 0 +39.9649286 -075.1917650 10443 \n", "60 S 472868 0 +39.9737291 -075.2062951 10444 \n", "61 S 1301411 0 +39.9752003 -075.2215745 10445 \n", "62 S 503162 0 +39.9736041 -075.2336533 10446 \n", "63 S 334899 0 +39.9786554 -075.2353346 10447 \n", "64 S 972947 0 +39.9807388 -075.2440178 10448 \n", "65 S 485211 0 +39.9780463 -075.1355242 10485 \n", "66 S 580218 0 +39.9735773 -075.1294327 10486 \n", "67 S 720839 0 +39.9793809 -075.1231903 10487 \n", "68 S 707586 0 +39.9844571 -075.1275250 10488 \n", "69 S 364983 0 +39.9840197 -075.1384217 10489 \n", "70 S 572226 0 +39.9885061 -075.1339156 10490 \n", "71 S 485026 0 +39.9896437 -075.1431665 10491 \n", "72 S 394713 0 +39.9890550 -075.1491723 10492 \n", "73 S 261133 0 +39.9890491 -075.1536062 10493 \n", "74 S 581301 0 +39.9917820 -075.1676540 10496 \n", "75 S 420397 0 +39.9238262 -075.1732854 10381 \n", "76 S 563700 0 +39.9939857 -075.1831934 10498 \n", "77 S 512907 0 +39.9930523 -075.1758394 10497 \n", "78 S 1428274 99543 +40.0126929 -075.1944867 10533 \n", "79 S 880647 0 +40.0213151 -075.1936140 10534 \n", "80 S 509953 35428 +40.0186576 -075.2089795 10535 \n", "81 S 858223 55719 +40.0244730 -075.2151045 10536 \n", "82 S 540313 0 +40.0264564 -075.2065293 10537 \n", "83 S 515705 0 +40.0348390 -075.2125337 10538 \n", "84 S 538876 0 +40.0322339 -075.2181175 10539 \n", "85 S 607138 56535 +40.0279290 -075.2240827 10540 \n", "86 S 1003279 40236 +40.0350417 -075.2288249 10541 \n", "87 S 1991850 111706 +40.0436758 -075.2403985 10542 \n", "88 S 407855 0 +40.0332734 -075.1759175 10554 \n", "89 S 532060 0 +40.0285110 -075.1697086 10555 \n", "90 S 679035 0 +40.0215855 -075.1710376 10556 \n", "91 S 421189 0 +40.0248284 -075.1638925 10557 \n", "92 S 801001 0 +40.0333286 -075.1620463 10558 \n", "93 S 621264 0 +40.0409623 -075.1729016 10559 \n", "94 S 941266 0 +40.0417034 -075.1645311 10560 \n", "95 S 319263 0 +40.0468442 -075.1668818 10561 \n", "96 S 325198 0 +40.0511009 -075.1601167 10562 \n", "97 S 952423 0 +40.0468352 -075.1771588 10563 \n", "98 S 581298 0 +40.0542198 -075.1822200 10564 \n", "99 S 769760 0 +40.0604202 -075.1760718 10565 \n", "100 S 766603 0 +40.0625796 -075.1840640 10566 \n", "101 S 863997 1979 +40.0683411 -075.1883025 10567 \n", "102 S 673067 0 +40.0260505 -075.1438525 10597 \n", "103 S 492451 0 +40.0251577 -075.1381287 10598 \n", "104 S 267006 0 +40.0287154 -075.1337359 10599 \n", "105 S 717845 0 +40.0285757 -075.1276448 10600 \n", "106 S 340972 0 +40.0218194 -075.1314402 10601 \n", "107 S 442001 0 +40.0222841 -075.1240562 10602 \n", "108 S 818133 20001 +40.0296096 -075.1166058 10605 \n", "109 S 1327550 0 +40.0361323 -075.1074594 10606 \n", "110 S 1732847 28953 +40.0249561 -075.1021580 10607 \n", "111 S 685641 0 +40.0137540 -075.0917655 10608 \n", "112 S 647647 0 +40.0094789 -075.0854721 10609 \n", "113 S 649155 0 +40.0159529 -075.0678013 10610 \n", "114 S 1011566 0 +40.0550147 -075.0440558 10644 \n", "115 S 1218434 0 +40.0535052 -075.0529610 10645 \n", "116 S 942793 0 +40.0546014 -075.0648677 10646 \n", "117 S 1153639 0 +40.0614785 -075.0592350 10647 \n", "118 S 1400220 0 +40.0626481 -075.0736440 10650 \n", "119 S 1141156 0 +40.0685560 -075.0873418 10651 \n", "120 S 763893 729 +40.0711759 -075.0735007 10652 \n", "121 S 1333267 0 +40.0763415 -075.0806938 10653 \n", "122 S 1000768 0 +40.0825947 -075.0721585 10654 \n", "123 S 3399171 13905 +40.0943325 -075.0564419 10655 \n", "124 S 1853669 5746 +40.0708314 -075.0207264 10658 \n", "125 S 645368 16097 +39.9251805 -075.2428396 10397 \n", "126 S 1111283 29425 +39.9330955 -075.2318406 10398 \n", "127 S 651244 0 +39.9293155 -075.2298425 10399 \n", "128 S 2322732 66075 +40.0895349 -074.9667387 10681 \n", "129 S 4501110 8014 +40.1127747 -074.9789137 10684 \n", "130 S 1004313 1426278 +39.9470272 -075.1404472 10687 \n", "131 S 1271533 8021 +40.0619427 -075.0023705 10663 \n", "132 S 1016206 0 +40.0570427 -075.0283288 10660 \n", "133 S 1116115 2329 +40.0838623 -074.9781805 10679 \n", "134 S 1089154 0 +39.9184658 -075.1831323 10380 \n", "135 S 425234 0 +39.9566981 -075.2414378 10416 \n", "136 S 400458 0 +39.9967182 -075.1305528 10507 \n", "137 S 471662 0 +39.9450045 -075.1466193 10349 \n", "138 S 229399 0 +39.9456722 -075.1516020 10348 \n", "139 S 303680 0 +39.9532973 -075.1686952 10339 \n", "140 S 214766 14981 +39.9541871 -075.1758082 10338 \n", "141 S 849290 56473 +40.0009407 -075.2120769 10457 \n", "142 S 234732 0 +39.9715714 -075.1798097 10466 \n", "143 S 447469 0 +40.0749091 -075.0392089 10656 \n", "144 S 1009269 0 +40.0814446 -075.0383811 10657 \n", "145 S 204062 0 +39.9442654 -075.1566960 10351 \n", "146 S 155164 0 +39.9471596 -075.1566389 10347 \n", "147 S 105510 0 +39.9478866 -075.1623004 10346 \n", "148 S 262958 0 +39.9993972 -075.1686145 10501 \n", "149 S 290610 0 +39.9986670 -075.1742061 10502 \n", "150 S 326659 0 +40.0386049 -075.1286496 10586 \n", "151 S 483577 0 +40.0036824 -075.1553072 10526 \n", "152 S 373125 0 +40.0111415 -075.1545676 10527 \n", "153 S 349649 0 +40.0422496 -075.0785449 10622 \n", "154 S 397973 0 +40.0370850 -075.0833729 10623 \n", "155 S 370302 0 +40.0034030 -075.1300445 10521 \n", "156 S 393883 0 +40.0004303 -075.1316227 10520 \n", "157 S 598655 0 +40.0171008 -075.1151820 10603 \n", "158 S 772294 6267 +40.0216105 -075.1116877 10604 \n", "159 S 486954 0 +40.0403093 -075.0379505 10641 \n", "160 S 718272 0 +40.0451050 -075.0272869 10642 \n", "161 S 587242 0 +40.0365919 -075.0481642 10628 \n", "162 S 377375 0 +40.0428163 -075.0994351 10615 \n", "163 S 699246 0 +40.0457206 -075.1046619 10616 \n", "164 S 611026 0 +39.9745879 -075.2679037 10433 \n", "165 S 387383 0 +39.9810569 -075.1128000 10512 \n", "166 S 489258 0 +39.9950621 -075.1231399 10509 \n", "167 S 241053 0 +39.9964470 -075.1167526 10508 \n", "168 S 1394868 1863 +40.1079419 -075.0480601 10671 \n", "169 S 598625 718 +40.1095846 -075.0286811 10672 \n", "170 S 1559149 0 +40.1130914 -075.0374316 10673 \n", "171 S 2029707 12498 +40.0973908 -075.0388184 10670 \n", "172 S 193072 0 +39.9869632 -075.1857502 10480 \n", "173 S 556570 0 +39.9861430 -075.1794280 10481 \n", "174 S 1816093 7168 +40.1290877 -075.0120077 10685 \n", "175 S 238612 0 +39.9653623 -075.1690326 10463 \n", "176 S 164058 0 +39.9659574 -075.1752507 10462 \n", "177 S 167625 0 +39.9689697 -075.1785774 10465 \n", "178 S 1374524 0 +39.9910899 -075.0927158 10696 \n", "179 S 1828671 25840 +39.9963741 -075.0973643 10699 \n", "180 S 874602 0 +40.0052279 -075.0807845 10697 \n", "181 S 3335029 1629584 +40.0189334 -075.0399564 10698 \n", "182 S 2546785 0 +40.0714163 -075.2332568 10701 \n", "183 S 704909 0 +39.9523827 -075.1466628 10335 \n", "184 S 382478 0 +39.9553999 -075.1569775 10336 \n", "185 S 548342 356 +39.9568780 -075.1716655 10337 \n", "186 S 246682 7087 +39.9510463 -075.1729143 10342 \n", "187 S 491790 0 +39.9333011 -075.1854187 10375 \n", "188 S 1062354 72863 +39.9384405 -075.1958253 10376 \n", "189 S 964539 0 +39.9279255 -075.1920206 10377 \n", "190 S 355619 0 +39.9276728 -075.1806654 10378 \n", "191 S 247413 0 +39.9245283 -075.1824354 10379 \n", "192 S 374000 0 +39.9229611 -075.1589741 10385 \n", "193 S 344837 0 +39.9188943 -075.1674160 10384 \n", "194 S 452596 0 +39.9167178 -075.1744119 10382 \n", "195 S 314952 0 +39.9238035 -075.1662102 10383 \n", "196 S 391854 0 +39.9179425 -075.1600629 10386 \n", "197 S 453343 0 +39.9168570 -075.1516284 10388 \n", "198 S 361679 0 +39.9219554 -075.1512640 10387 \n", "199 S 377950 0 +39.9504630 -075.2182570 10410 \n", "200 S 430471 0 +39.9506613 -075.2268423 10411 \n", "201 S 832334 11136 +39.9491574 -075.2444494 10414 \n", "202 S 579127 0 +39.9939260 -075.1343448 10506 \n", "203 S 510557 6713 +39.9577810 -075.2467384 10415 \n", "204 S 501765 0 +39.9579899 -075.2354681 10417 \n", "205 S 621445 0 +39.9568821 -075.2265389 10418 \n", "206 S 436319 0 +39.9595116 -075.1906245 10425 \n", "207 S 425573 0 +39.9594179 -075.1977245 10426 \n", "208 S 512009 0 +39.9601608 -075.2074723 10427 \n", "209 S 402475 0 +39.9622914 -075.2240225 10428 \n", "210 S 1001467 0 +39.9242475 -075.2242816 10400 \n", "211 S 704352 102803 +39.9306204 -075.2146526 10401 \n", "212 S 469047 0 +39.9351850 -075.2214770 10402 \n", "213 S 502614 0 +39.9446370 -075.2332168 10405 \n", "214 S 387201 0 +39.9448185 -075.2232916 10406 \n", "215 S 675930 0 +39.9408575 -075.2143067 10407 \n", "216 S 322260 0 +39.9463523 -075.2082584 10408 \n", "217 S 427404 0 +39.9464580 -075.2162637 10409 \n", "218 S 370456 0 +39.9773687 -075.2518303 10449 \n", "219 S 654019 0 +39.9919070 -075.2404371 10450 \n", "220 S 915129 0 +39.9852889 -075.2357395 10451 \n", "221 S 691111 0 +39.9861142 -075.2288429 10452 \n", "222 S 600681 0 +39.9955323 -075.2297466 10453 \n", "223 S 876796 5378 +39.9964998 -075.2223795 10454 \n", "224 S 864810 49075 +39.9613701 -075.1720837 10458 \n", "225 S 426671 0 +39.9662042 -075.1571335 10460 \n", "226 S 357932 0 +39.9666126 -075.1629455 10461 \n", "227 S 404891 0 +39.9693564 -075.1700367 10464 \n", "228 S 589738 0 +39.9772752 -075.1842323 10467 \n", "229 S 1570376 50400 +40.0078614 -075.1834204 10499 \n", "230 S 1140882 0 +40.0027449 -075.1763248 10500 \n", "231 S 874586 0 +39.9985707 -075.1609337 10503 \n", "232 S 353985 0 +39.9962138 -075.1503586 10504 \n", "233 S 719915 6252 +39.9979150 -075.1429842 10505 \n", "234 S 662905 0 +39.9913734 -075.1173063 10510 \n", "235 S 714008 0 +39.9870535 -075.1139340 10511 \n", "236 S 1834680 185387 +39.9956035 -075.0746225 10514 \n", "237 S 1285745 949471 +39.9996644 -075.0637363 10515 \n", "238 S 663288 0 +39.9973659 -075.1058296 10516 \n", "239 S 1559576 0 +40.0450277 -075.2239451 10543 \n", "240 S 996088 0 +40.0574759 -075.2324353 10544 \n", "241 S 1410069 51091 +40.0505829 -075.2470033 10545 \n", "242 S 2944018 99558 +40.0562177 -075.2520092 10546 \n", "243 S 732803 1270 +40.0666637 -075.2038514 10547 \n", "244 S 775430 0 +40.0394435 -075.2007925 10548 \n", "245 S 978096 0 +40.0427145 -075.1946940 10549 \n", "246 S 1072973 0 +40.0487394 -075.1886069 10550 \n", "247 S 781630 0 +40.0389370 -075.1827038 10551 \n", "248 S 486037 2704 +40.0339713 -075.1875115 10552 \n", "249 S 617080 0 +40.0280807 -075.1794623 10553 \n", "250 S 748205 0 +40.0724586 -075.1962708 10568 \n", "251 S 586719 0 +40.0739801 -075.1823113 10569 \n", "252 S 549415 0 +40.0799255 -075.1759762 10570 \n", "253 S 543433 0 +40.0761235 -075.1694560 10571 \n", "254 S 649364 0 +40.0704645 -075.1755189 10572 \n", "255 S 555958 0 +40.0664940 -075.1692176 10573 \n", "256 S 1385963 5188 +40.0545325 -075.0163104 10661 \n", "257 S 704112 0 +40.0687425 -075.1571945 10575 \n", "258 S 796819 0 +40.0625462 -075.1620066 10576 \n", "259 S 545961 0 +40.0587255 -075.1546921 10577 \n", "260 S 913982 0 +40.0634828 -075.1473266 10578 \n", "261 S 643873 0 +40.0547569 -075.1479247 10579 \n", "262 S 774174 0 +40.0555270 -075.1399312 10580 \n", "263 S 591451 0 +40.0131465 -075.0747146 10611 \n", "264 S 910854 0 +40.0186719 -075.0780880 10612 \n", "265 S 725113 0 +40.0204947 -075.0885046 10613 \n", "266 S 901710 0 +40.0259863 -075.0823128 10614 \n", "267 S 1007799 0 +40.0504922 -075.0943787 10617 \n", "268 S 653309 0 +40.0573133 -075.0885390 10618 \n", "269 S 795704 0 +40.0547831 -075.0819056 10619 \n", "270 S 645014 0 +40.0437632 -075.0851914 10620 \n", "271 S 1063411 0 +40.0497292 -075.0744541 10621 \n", "272 S 429736 0 +40.0354204 -075.0774550 10624 \n", "273 S 711141 0 +40.0393190 -075.0698140 10625 \n", "274 S 713953 0 +40.0326126 -075.0590717 10630 \n", "275 S 881689 0 +40.0306050 -075.0683989 10631 \n", "276 S 2555861 0 +40.1051833 -074.9702250 10683 \n", "277 S 1148190 57 +40.0645576 -075.0329783 10659 \n", "278 S 1232182 8014 +40.0687035 -075.0097300 10662 \n", "279 S 1944040 0 +40.0453848 -075.0090768 10664 \n", "280 S 997442 666018 +40.0488411 -074.9859716 10665 \n", "281 S 1838264 27863 +40.0559122 -074.9907443 10666 \n", "282 S 1375222 36973 +40.0659313 -074.9934646 10667 \n", "283 S 406340 0 +40.0728148 -075.1637161 10574 \n", "284 S 145453 0 +39.9485646 -075.1677563 10345 \n", "285 S 308560 0 +39.9459117 -075.1699475 10353 \n", "286 S 327555 30728 +39.9471666 -075.1798721 10352 \n", "287 S 152820 0 +39.9493748 -075.1742489 10344 \n", "288 S 367673 0 +39.9280114 -075.1495606 10368 \n", "289 S 226951 0 +39.9327263 -075.1711915 10373 \n", "290 S 226547 0 +39.9290640 -075.1719912 10372 \n", "291 S 362690 0 +39.9288001 -075.1614073 10370 \n", "292 S 224840 0 +39.9285526 -075.1537033 10367 \n", "293 S 973653 0 +40.0672105 -075.0482983 10648 \n", "294 S 1057798 0 +40.0707532 -075.0578212 10649 \n", "295 S 578101 0 +40.0392658 -075.0548693 10629 \n", "296 S 594849 0 +40.0457134 -075.0665728 10626 \n", "297 S 564136 0 +40.0432797 -075.0602860 10627 \n", "298 S 254046 0 +39.9911965 -075.1619017 10494 \n", "299 S 355103 0 +39.9904175 -075.1578177 10495 \n", "300 S 415780 0 +40.0458879 -075.1544482 10592 \n", "301 S 889784 0 +40.0374381 -075.1543087 10593 \n", "302 S 243700 0 +39.9483649 -075.2360506 10412 \n", "303 S 415761 0 +39.9409204 -075.2282511 10404 \n", "304 S 259523 0 +39.9535656 -075.2104988 10421 \n", "305 S 362526 0 +39.9522216 -075.2345584 10413 \n", "306 S 369142 0 +39.9569725 -075.2167030 10420 \n", "307 S 1032702 1496 +39.9840699 -075.2551922 10692 \n", "308 S 439791 0 +39.9836344 -075.1067096 10513 \n", "309 S 297977 0 +39.9775172 -075.2665972 10432 \n", "310 S 253256 0 +39.9381580 -075.2249984 10403 \n", "311 S 222950 0 +39.9289729 -075.1568319 10369 \n", "312 S 99958 12755 +39.9497374 -075.1804054 10343 \n", "313 S 174014 0 +39.9449918 -075.1625240 10350 \n", "314 S 511360 0 +40.0390702 -075.1251352 10587 \n", "315 S 252482 0 +39.9537341 -075.2165930 10419 \n", "316 S 1733189 0 +40.1235705 -074.9993521 10686 \n", "317 S 801969 0 +39.9607248 -075.1439885 10688 \n", "318 S 717304 0 +39.9599009 -075.1551651 10693 \n", "319 S 3304398 32066 +40.0582762 -075.2110913 10703 \n", "320 S 1338941 2576 +40.0757528 -075.2146234 10702 \n", "321 S 2053212 22241 +40.0833122 -075.2130770 10704 \n", "322 S 1383530 4751 +40.0571595 -075.1982438 10705 \n", "323 S 1280551 0 +40.0543431 -075.1682764 10706 \n", "324 S 8922478 1508835 +39.9880961 -075.1967773 10708 \n", "325 S 614686 0 +40.0556007 -075.1324048 10581 \n", "326 S 642216 0 +40.0493231 -075.1331512 10582 \n", "327 S 372278 39344 +40.0484793 -075.1263611 10583 \n", "328 S 679046 794 +40.0472339 -075.1180889 10584 \n", "329 S 938011 14079 +40.0377547 -075.1189432 10585 \n", "330 S 606825 0 +40.0400497 -075.1322707 10588 \n", "331 S 663745 0 +40.0429404 -075.1392771 10589 \n", "332 S 542404 0 +40.0505444 -075.1512267 10590 \n", "333 S 724725 0 +40.0425278 -075.1471626 10591 \n", "334 S 718346 0 +40.0261190 -075.1546481 10594 \n", "335 S 503541 0 +40.0304473 -075.1491299 10595 \n", "336 S 855812 0 +40.0348704 -075.1403327 10596 \n", "337 S 464290 0 +40.0311021 -075.0769892 10632 \n", "338 S 773285 0 +40.0230600 -075.0648988 10633 \n", "339 S 681549 0 +40.0271751 -075.0548674 10634 \n", "340 S 552928 0 +40.0170175 -075.0589752 10635 \n", "341 S 600043 0 +40.0210898 -075.0515270 10636 \n", "342 S 839319 0 +40.0263918 -075.0452561 10637 \n", "343 S 809898 0 +40.0302773 -075.0396263 10638 \n", "344 S 922922 21617 +40.0379010 -075.0249713 10639 \n", "345 S 732860 0 +40.0335974 -075.0338492 10640 \n", "346 S 828420 0 +40.0439411 -075.0448281 10643 \n", "347 S 2290053 1067 +40.0911285 -075.0293244 10669 \n", "348 S 1757756 2013 +40.1213169 -075.0257898 10674 \n", "349 S 2244717 2511 +40.1103418 -075.0151645 10675 \n", "350 S 2043084 638 +40.1042670 -075.0108187 10676 \n", "351 S 1230432 7138 +40.0987766 -074.9907481 10677 \n", "352 S 1475496 68020 +40.0760921 -074.9742967 10680 \n", "353 S 1498641 17292 +40.0730774 -074.9968713 10668 \n", "354 S 1031929 15195 +40.0820300 -074.9868079 10678 \n", "355 S 502696 0 +40.0973153 -074.9805151 10682 \n", "356 S 2573046 162376 +39.9024981 -075.1879361 10691 \n", "357 S 1028984 0 +39.9129487 -075.1599379 10690 \n", "358 S 3064496 0 +40.0108630 -075.1248984 10700 \n", "359 S 2032689 0 +40.0357300 -075.0938840 10707 \n", "360 S 3760084 1936838 +39.9805802 -075.0956845 10695 \n", "361 S 736894 0 +39.9824381 -075.1506932 10694 \n", "\n", " MAPE \n", "0 2.745771 \n", "1 3.050939 \n", "2 1.851506 \n", "3 1.356420 \n", "4 0.510644 \n", "5 0.716524 \n", "6 0.372744 \n", "7 0.896706 \n", "8 1.343638 \n", "9 0.733026 \n", "10 2.573990 \n", "11 1.423147 \n", "12 2.145712 \n", "13 3.241847 \n", "14 3.760764 \n", "15 1.509038 \n", "16 0.956792 \n", "17 1.697944 \n", "18 1.215722 \n", "19 3.730986 \n", "20 4.394752 \n", "21 3.827342 \n", "22 2.187150 \n", "23 2.649841 \n", "24 4.242486 \n", "25 3.971670 \n", "26 3.539795 \n", "27 1.859173 \n", "28 0.808594 \n", "29 1.137513 \n", "30 0.554873 \n", "31 0.986651 \n", "32 1.232508 \n", "33 0.598195 \n", "34 0.521558 \n", "35 0.705205 \n", "36 0.786956 \n", "37 1.326978 \n", "38 0.759536 \n", "39 0.801001 \n", "40 1.348228 \n", "41 1.119681 \n", "42 1.323973 \n", "43 0.456891 \n", "44 1.688587 \n", "45 2.935936 \n", "46 2.152633 \n", "47 1.393739 \n", "48 2.655354 \n", "49 2.558589 \n", "50 2.667778 \n", "51 2.533748 \n", "52 4.572634 \n", "53 2.829125 \n", "54 3.739420 \n", "55 0.893084 \n", "56 4.285643 \n", "57 8.969148 \n", "58 2.194624 \n", "59 1.858471 \n", "60 4.473532 \n", "61 4.918676 \n", "62 3.129238 \n", "63 4.776817 \n", "64 3.342287 \n", "65 1.035320 \n", "66 0.834374 \n", "67 1.265259 \n", "68 0.924393 \n", "69 0.854450 \n", "70 3.379384 \n", "71 3.351309 \n", "72 2.704522 \n", "73 5.059672 \n", "74 4.126242 \n", "75 1.442107 \n", "76 4.011507 \n", "77 3.426876 \n", "78 0.708376 \n", "79 3.509548 \n", "80 0.961397 \n", "81 0.796325 \n", "82 1.246719 \n", "83 0.837651 \n", "84 1.127624 \n", "85 0.463996 \n", "86 1.009710 \n", "87 0.460086 \n", "88 1.407552 \n", "89 1.973094 \n", "90 1.183769 \n", "91 1.227933 \n", "92 2.349511 \n", "93 7.318828 \n", "94 3.874590 \n", "95 1.973247 \n", "96 2.378088 \n", "97 1.342717 \n", "98 1.348398 \n", "99 0.833425 \n", "100 1.228763 \n", "101 1.153535 \n", "102 2.779916 \n", "103 2.869539 \n", "104 0.491397 \n", "105 4.557556 \n", "106 4.769191 \n", "107 2.390966 \n", "108 1.741328 \n", "109 1.341042 \n", "110 2.309641 \n", "111 3.670560 \n", "112 3.458182 \n", "113 2.099877 \n", "114 0.557469 \n", "115 0.815903 \n", "116 0.976214 \n", "117 0.833286 \n", "118 0.621981 \n", "119 0.091232 \n", "120 0.503407 \n", "121 0.335359 \n", "122 0.392411 \n", "123 0.621665 \n", "124 0.602014 \n", "125 2.200737 \n", "126 2.375204 \n", "127 5.826381 \n", "128 0.505371 \n", "129 0.863887 \n", "130 0.357485 \n", "131 0.364997 \n", "132 0.498704 \n", "133 0.498850 \n", "134 1.235618 \n", "135 2.866473 \n", "136 7.400394 \n", "137 0.898934 \n", "138 1.004737 \n", "139 0.667352 \n", "140 0.346953 \n", "141 8.747971 \n", "142 0.678804 \n", "143 2.796862 \n", "144 0.462933 \n", "145 0.652332 \n", "146 1.392639 \n", "147 0.408559 \n", "148 5.900407 \n", "149 4.283649 \n", "150 2.685159 \n", "151 3.675688 \n", "152 4.440937 \n", "153 0.986836 \n", "154 0.902764 \n", "155 6.094490 \n", "156 2.306282 \n", "157 1.833837 \n", "158 4.218694 \n", "159 0.301460 \n", "160 1.071637 \n", "161 1.028085 \n", "162 1.167469 \n", "163 0.595980 \n", "164 0.973089 \n", "165 1.607120 \n", "166 4.193964 \n", "167 4.160820 \n", "168 0.718738 \n", "169 0.879989 \n", "170 1.639800 \n", "171 0.467254 \n", "172 4.193519 \n", "173 6.856765 \n", "174 0.599420 \n", "175 0.977793 \n", "176 0.445545 \n", "177 1.135340 \n", "178 0.836326 \n", "179 2.391199 \n", "180 1.343239 \n", "181 3.074876 \n", "182 0.679298 \n", "183 0.529238 \n", "184 1.173437 \n", "185 0.456348 \n", "186 1.452704 \n", "187 1.840167 \n", "188 2.310018 \n", "189 0.932894 \n", "190 1.506221 \n", "191 1.725467 \n", "192 2.202312 \n", "193 1.312094 \n", "194 1.368968 \n", "195 1.074509 \n", "196 1.729109 \n", "197 1.479097 \n", "198 1.358214 \n", "199 1.695051 \n", "200 2.207412 \n", "201 2.049494 \n", "202 5.513079 \n", "203 1.235583 \n", "204 1.809689 \n", "205 2.552330 \n", "206 0.768557 \n", "207 2.010275 \n", "208 2.906507 \n", "209 5.090539 \n", "210 3.397763 \n", "211 4.280559 \n", "212 4.492678 \n", "213 2.786448 \n", "214 3.995648 \n", "215 3.668980 \n", "216 2.129493 \n", "217 0.551582 \n", "218 1.693977 \n", "219 3.281246 \n", "220 1.089631 \n", "221 1.872779 \n", "222 1.142156 \n", "223 0.754682 \n", "224 0.297482 \n", "225 0.309623 \n", "226 0.778079 \n", "227 0.682101 \n", "228 0.870228 \n", "229 3.261462 \n", "230 1.588665 \n", "231 4.863495 \n", "232 2.805288 \n", "233 3.631309 \n", "234 3.878410 \n", "235 2.487401 \n", "236 0.868175 \n", "237 1.642781 \n", "238 3.583565 \n", "239 0.720405 \n", "240 1.666256 \n", "241 0.586897 \n", "242 0.930327 \n", "243 0.766095 \n", "244 1.330585 \n", "245 1.975610 \n", "246 1.705331 \n", "247 1.204295 \n", "248 1.476379 \n", "249 2.465676 \n", "250 0.603483 \n", "251 0.741123 \n", "252 0.720621 \n", "253 0.267057 \n", "254 1.717996 \n", "255 1.187777 \n", "256 0.610756 \n", "257 2.248950 \n", "258 1.444457 \n", "259 2.111888 \n", "260 1.783286 \n", "261 1.611342 \n", "262 1.838384 \n", "263 1.418518 \n", "264 1.099609 \n", "265 1.358859 \n", "266 1.788143 \n", "267 0.942683 \n", "268 0.848273 \n", "269 1.041778 \n", "270 1.450055 \n", "271 0.717442 \n", "272 1.987885 \n", "273 0.836430 \n", "274 1.017628 \n", "275 1.102542 \n", "276 0.544092 \n", "277 0.637886 \n", "278 0.681427 \n", "279 1.058091 \n", "280 1.189730 \n", "281 0.588885 \n", "282 0.802006 \n", "283 0.950635 \n", "284 0.871965 \n", "285 0.787586 \n", "286 0.687258 \n", "287 1.123181 \n", "288 0.452116 \n", "289 1.388373 \n", "290 1.765428 \n", "291 1.012686 \n", "292 1.118664 \n", "293 0.640119 \n", "294 0.879809 \n", "295 0.340961 \n", "296 0.926557 \n", "297 1.034146 \n", "298 5.785006 \n", "299 2.962814 \n", "300 1.001127 \n", "301 1.420989 \n", "302 0.856397 \n", "303 4.178984 \n", "304 1.095814 \n", "305 2.348387 \n", "306 2.432651 \n", "307 1.418450 \n", "308 1.252623 \n", "309 1.189928 \n", "310 2.687449 \n", "311 1.012295 \n", "312 0.771041 \n", "313 0.640819 \n", "314 1.300048 \n", "315 0.843436 \n", "316 0.677934 \n", "317 0.601560 \n", "318 0.597881 \n", "319 1.199319 \n", "320 0.649587 \n", "321 0.834007 \n", "322 1.526218 \n", "323 5.583023 \n", "324 2.273760 \n", "325 4.000767 \n", "326 1.819271 \n", "327 1.121994 \n", "328 1.066915 \n", "329 1.333811 \n", "330 1.898365 \n", "331 6.416389 \n", "332 2.983294 \n", "333 2.226849 \n", "334 2.679496 \n", "335 3.662781 \n", "336 2.708857 \n", "337 0.868766 \n", "338 1.355104 \n", "339 1.119235 \n", "340 2.824743 \n", "341 1.571980 \n", "342 1.522216 \n", "343 1.493093 \n", "344 0.595910 \n", "345 1.045225 \n", "346 0.257911 \n", "347 0.645997 \n", "348 0.853745 \n", "349 0.863698 \n", "350 0.549410 \n", "351 1.182931 \n", "352 0.612166 \n", "353 0.592294 \n", "354 0.795982 \n", "355 0.437581 \n", "356 0.977495 \n", "357 1.193019 \n", "358 4.624979 \n", "359 1.097566 \n", "360 1.226389 \n", "361 1.757139 " ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mape_cens = census_tracts.merge(mape_cen, on = 'NAME10')\n", "mape_cens" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometryNAME10MAPE
0POLYGON ((-8374483.498 4860210.393, -8374414.8...942.745771
1POLYGON ((-8375161.875 4861368.604, -8375172.1...953.050939
2POLYGON ((-8376060.068 4860464.903, -8376055.8...961.851506
3POLYGON ((-8368265.478 4862715.709, -8368315.5...1381.356420
4POLYGON ((-8368234.501 4862710.916, -8368243.7...1390.510644
5POLYGON ((-8366929.478 4861647.296, -8366835.5...1400.716524
6POLYGON ((-8366459.589 4861524.115, -8366337.3...1410.372744
7POLYGON ((-8363801.228 4860279.583, -8363526.7...1420.896706
8POLYGON ((-8362442.368 4861377.035, -8362570.2...1431.343638
9POLYGON ((-8364072.375 4861410.104, -8364029.6...1440.733026
10POLYGON ((-8365588.828 4862058.024, -8365534.0...1452.573990
11POLYGON ((-8365908.950 4862969.607, -8366083.8...1461.423147
12POLYGON ((-8366793.479 4862467.509, -8366713.6...1472.145712
13POLYGON ((-8369874.082 4863198.850, -8369779.5...1493.241847
14POLYGON ((-8368137.903 4864487.771, -8368148.4...1523.760764
15POLYGON ((-8367175.751 4864090.054, -8367239.0...1531.509038
16POLYGON ((-8364481.138 4862505.108, -8364447.6...1560.956792
17POLYGON ((-8359526.447 4867466.205, -8359525.1...1901.697944
18POLYGON ((-8360890.111 4868374.619, -8360899.5...1911.215722
19POLYGON ((-8360939.303 4865894.565, -8360811.2...1923.730986
20POLYGON ((-8364085.657 4867684.976, -8364049.6...1974.394752
21POLYGON ((-8364180.977 4867109.212, -8364169.4...1983.827342
22POLYGON ((-8364419.608 4866409.642, -8364347.5...1992.187150
23POLYGON ((-8367250.301 4866390.043, -8367201.8...2022.649841
24POLYGON ((-8365609.168 4868540.613, -8365693.7...2034.242486
25POLYGON ((-8365609.168 4868540.613, -8365587.2...2043.971670
26POLYGON ((-8368335.806 4868408.790, -8368427.4...2053.539795
27POLYGON ((-8369217.027 4869654.309, -8369279.0...2061.859173
28POLYGON ((-8370060.386 4857984.192, -8370066.9...130.808594
29POLYGON ((-8367421.339 4857596.013, -8367416.4...141.137513
30POLYGON ((-8367384.603 4857758.633, -8367393.7...150.554873
31POLYGON ((-8365792.337 4857500.969, -8365833.7...160.986651
32POLYGON ((-8364932.951 4857043.182, -8364978.3...171.232508
33POLYGON ((-8367430.912 4857491.183, -8367439.8...180.598195
34POLYGON ((-8367481.286 4857232.826, -8367471.7...190.521558
35POLYGON ((-8369950.926 4857003.959, -8369955.7...200.705205
36POLYGON ((-8368297.932 4856681.121, -8368296.7...210.786956
37POLYGON ((-8368297.932 4856681.121, -8368306.7...221.326978
38POLYGON ((-8367554.477 4856754.497, -8367561.6...230.759536
39POLYGON ((-8367473.547 4857232.741, -8367481.2...240.801001
40POLYGON ((-8365132.240 4856584.525, -8365185.8...251.348228
41POLYGON ((-8367616.704 4856377.900, -8367623.7...291.119681
42POLYGON ((-8368464.772 4855674.222, -8368455.8...311.323973
43POLYGON ((-8376372.359 4849899.783, -8376329.4...540.456891
44POLYGON ((-8376935.407 4852061.500, -8376991.1...551.688587
45POLYGON ((-8375882.958 4851977.676, -8375896.8...562.935936
46POLYGON ((-8374945.553 4853430.800, -8374976.1...602.152633
47POLYGON ((-8374191.222 4854192.327, -8374213.9...611.393739
48POLYGON ((-8375321.240 4854455.356, -8375368.5...622.655354
49POLYGON ((-8375288.512 4854485.547, -8375200.2...632.558589
50POLYGON ((-8376459.164 4861101.785, -8376441.0...1002.667778
51POLYGON ((-8375582.343 4861569.516, -8375572.4...1012.533748
52POLYGON ((-8375161.875 4861368.604, -8375161.3...1024.572634
53POLYGON ((-8373724.362 4861081.019, -8373743.7...1032.829125
54POLYGON ((-8373743.798 4861199.245, -8373724.3...1043.739420
55POLYGON ((-8373028.457 4860492.353, -8373118.5...1050.893084
56POLYGON ((-8371918.202 4860501.213, -8371847.0...1064.285643
57POLYGON ((-8371485.484 4860597.311, -8371483.0...1078.969148
58POLYGON ((-8371060.374 4861503.694, -8371640.3...1082.194624
59POLYGON ((-8369892.975 4860611.064, -8369825.0...1091.858471
60POLYGON ((-8371093.480 4862270.990, -8371113.9...1104.473532
61POLYGON ((-8372707.025 4862633.443, -8372725.4...1114.918676
62POLYGON ((-8375454.197 4862014.641, -8375427.4...1123.129238
63POLYGON ((-8375421.816 4862485.926, -8375323.8...1134.776817
64POLYGON ((-8375532.955 4862562.226, -8375544.3...1143.342287
65POLYGON ((-8363998.104 4862211.746, -8363949.1...1571.035320
66POLYGON ((-8362626.250 4862125.394, -8362609.1...1580.834374
67POLYGON ((-8362317.111 4862443.730, -8362294.1...1601.265259
68POLYGON ((-8362589.403 4864054.653, -8362644.7...1610.924393
69POLYGON ((-8364863.064 4863937.129, -8364936.4...1620.854450
70POLYGON ((-8364493.035 4863982.941, -8364499.1...1633.379384
71POLYGON ((-8364493.035 4863982.941, -8364474.5...1643.351309
72POLYGON ((-8365965.057 4864785.196, -8365974.3...1652.704522
73POLYGON ((-8365761.781 4863850.892, -8365681.9...1665.059672
74POLYGON ((-8368137.903 4864487.771, -8368124.4...1684.126242
75POLYGON ((-8368674.685 4854354.914, -8368595.1...39.011.442107
76POLYGON ((-8369667.191 4864508.450, -8369655.6...169.024.011507
77POLYGON ((-8368016.898 4865095.562, -8368010.5...169.013.426876
78POLYGON ((-8370261.419 4867092.069, -8370170.0...2070.708376
79POLYGON ((-8369279.058 4869624.265, -8369217.0...2083.509548
80POLYGON ((-8372856.060 4868539.968, -8372818.1...2090.961397
81POLYGON ((-8373396.999 4869119.705, -8373385.1...2100.796325
82POLYGON ((-8372201.177 4870463.560, -8372205.1...2111.246719
83POLYGON ((-8372201.177 4870463.560, -8372195.9...2120.837651
84POLYGON ((-8374103.430 4870813.818, -8374049.6...2131.127624
85POLYGON ((-8374199.491 4869627.552, -8374135.2...2140.463996
86POLYGON ((-8374282.015 4870371.294, -8374207.8...2151.009710
87POLYGON ((-8376213.807 4872599.685, -8376221.0...2160.460086
88POLYGON ((-8368744.199 4871254.565, -8368860.7...2411.407552
89POLYGON ((-8367280.867 4870076.753, -8367257.8...2421.973094
90POLYGON ((-8367271.447 4869040.057, -8367284.1...2431.183769
91POLYGON ((-8366837.183 4869827.789, -8366882.5...2441.227933
92POLYGON ((-8366957.805 4870002.269, -8366931.9...2452.349511
93POLYGON ((-8368596.205 4871428.082, -8368570.2...2467.318828
94POLYGON ((-8367004.462 4871491.027, -8366914.8...2473.874590
95POLYGON ((-8367758.218 4872914.603, -8367805.0...2481.973247
96POLYGON ((-8366557.978 4872843.012, -8366557.0...2492.378088
97POLYGON ((-8368524.262 4871951.920, -8368259.9...2521.342717
98POLYGON ((-8369435.710 4873097.015, -8369418.0...2531.348398
99POLYGON ((-8368459.392 4874206.690, -8368416.1...2540.833425
100POLYGON ((-8368905.927 4875148.950, -8368823.7...2551.228763
101POLYGON ((-8370321.759 4874849.406, -8370256.4...2561.153535
102POLYGON ((-8364734.177 4868959.067, -8364723.7...2832.779916
103POLYGON ((-8364069.111 4869419.455, -8364051.5...2842.869539
104POLYGON ((-8364019.446 4870184.332, -8364035.5...2850.491397
105POLYGON ((-8362539.985 4870845.618, -8362568.3...2864.557556
106POLYGON ((-8363302.071 4869503.058, -8363474.5...2874.769191
107POLYGON ((-8362931.337 4869582.124, -8362973.7...2882.390966
108POLYGON ((-8361564.262 4871241.103, -8361655.9...2901.741328
109POLYGON ((-8360606.351 4870272.158, -8360580.7...2911.341042
110POLYGON ((-8360776.684 4870200.988, -8360809.8...2922.309641
111POLYGON ((-8359536.800 4867394.408, -8359523.2...2933.670560
112POLYGON ((-8358988.662 4866565.867, -8358986.6...2943.458182
113POLYGON ((-8356466.273 4868866.361, -8356478.5...2982.099877
114POLYGON ((-8353564.614 4875354.931, -8353572.3...3330.557469
115POLYGON ((-8353951.813 4874520.323, -8353951.2...3340.815903
116POLYGON ((-8355582.341 4873539.354, -8355515.1...3350.976214
117POLYGON ((-8355189.037 4874083.794, -8355123.0...3360.833286
118POLYGON ((-8356287.049 4875801.592, -8356460.0...3380.621981
119POLYGON ((-8359531.568 4875822.248, -8359339.5...3390.091232
120POLYGON ((-8356482.873 4876867.711, -8356482.6...3400.503407
121POLYGON ((-8357451.168 4877663.932, -8357547.2...3410.335359
122POLYGON ((-8356417.983 4877033.716, -8356328.5...3420.392411
123POLYGON ((-8354092.607 4878134.493, -8353580.6...3440.621665
124POLYGON ((-8351136.297 4875478.716, -8351129.0...3460.602014
125POLYGON ((-8376512.219 4854214.917, -8376508.4...642.200737
126POLYGON ((-8375306.585 4856291.324, -8375313.2...652.375204
127POLYGON ((-8373913.665 4855746.512, -8373761.8...665.826381
128POLYGON ((-8344700.888 4880152.273, -8344708.1...363.010.505371
129POLYGON ((-8346490.441 4881518.658, -8346046.5...3640.863887
130POLYGON ((-8364710.415 4858926.985, -8364714.0...3660.357485
131POLYGON ((-8349949.926 4874469.887, -8349941.7...348.030.364997
132POLYGON ((-8351792.587 4875487.915, -8351842.0...347.020.498704
133POLYGON ((-8346198.272 4879026.862, -8346298.3...362.020.498850
134POLYGON ((-8368745.373 4853983.052, -8368744.2...381.235618
135POLYGON ((-8375679.646 4859533.620, -8375668.6...83.022.866473
136POLYGON ((-8363447.120 4865154.847, -8363290.9...176.027.400394
137POLYGON ((-8365697.832 4857770.055, -8365707.4...10.020.898934
138POLYGON ((-8366008.694 4858067.328, -8366013.2...10.011.004737
139POLYGON ((-8367143.774 4859163.976, -8367128.5...4.020.667352
140POLYGON ((-8368219.166 4859353.414, -8368214.1...4.010.346953
141POLYGON ((-8372391.867 4866268.969, -8372466.1...122.048.747971
142POLYGON ((-8368402.718 4861703.983, -8368390.5...136.020.678804
143POLYGON ((-8353042.864 4877370.523, -8353053.9...345.012.796862
144POLYGON ((-8354140.252 4878087.207, -8354250.5...345.020.462933
145POLYGON ((-8366086.030 4857606.493, -8366079.5...11.020.652332
146POLYGON ((-8366003.640 4858098.867, -8365996.6...9.021.392639
147POLYGON ((-8367247.903 4858584.406, -8367256.1...9.010.408559
148POLYGON ((-8367540.772 4865752.993, -8367503.8...172.015.900407
149POLYGON ((-8367972.160 4866052.665, -8368036.4...172.024.283649
150POLYGON ((-8363097.030 4871635.238, -8363077.8...274.012.685159
151POLYGON ((-8366269.250 4865763.557, -8366242.3...201.013.675688
152POLYGON ((-8365930.672 4867863.567, -8366001.7...201.024.440937
153POLYGON ((-8357625.992 4871612.774, -8357577.6...311.010.986836
154POLYGON ((-8357756.241 4871437.543, -8357714.0...311.020.902764
155POLYGON ((-8363160.872 4866676.221, -8363195.6...195.026.094490
156POLYGON ((-8363924.806 4865828.453, -8363859.9...195.012.306282
157POLYGON ((-8361944.586 4868408.143, -8362039.4...289.011.833837
158POLYGON ((-8361523.830 4869871.605, -8361567.2...289.024.218694
159POLYGON ((-8353190.859 4871438.668, -8353124.2...331.010.301460
160POLYGON ((-8351394.664 4872292.693, -8351383.5...331.021.071637
161POLYGON ((-8353697.142 4871426.897, -8353881.6...315.011.028085
162POLYGON ((-8360534.261 4871877.577, -8360609.7...305.011.167469
163POLYGON ((-8360602.462 4873293.856, -8360611.0...305.020.595980
164POLYGON ((-8377882.868 4862283.591, -8377883.2...98.020.973089
165POLYGON ((-8361589.473 4862609.199, -8361578.0...180.011.607120
166POLYGON ((-8363090.119 4864756.863, -8363111.9...177.024.193964
167POLYGON ((-8361316.662 4865624.111, -8361377.6...177.014.160820
168POLYGON ((-8354450.055 4882261.332, -8354460.2...356.020.718738
169POLYGON ((-8352177.421 4880856.118, -8352123.1...357.010.879989
170POLYGON ((-8353844.031 4882814.172, -8353884.1...357.021.639800
171POLYGON ((-8352327.748 4880978.769, -8352635.3...356.010.467254
172POLYGON ((-8369746.974 4864521.820, -8369785.4...151.014.193519
173POLYGON ((-8368359.095 4864136.161, -8368334.3...151.026.856765
174POLYGON ((-8351199.538 4884322.689, -8350942.9...365.010.599420
175POLYGON ((-8368162.257 4860949.867, -8368171.4...134.020.977793
176POLYGON ((-8368152.889 4860998.378, -8368138.8...134.010.445545
177POLYGON ((-8369177.577 4861466.135, -8369170.0...136.011.135340
178POLYGON ((-8358024.370 4864963.855, -8357971.4...3790.836326
179POLYGON ((-8359276.636 4867089.924, -8359380.7...3822.391199
180POLYGON ((-8357165.471 4866977.295, -8357133.0...3801.343239
181POLYGON ((-8351332.439 4870854.942, -8351345.1...3813.074876
182POLYGON ((-8374392.713 4875035.988, -8374218.5...3840.679298
183POLYGON ((-8364710.415 4858926.985, -8364708.8...10.529238
184POLYGON ((-8367037.612 4859790.661, -8367072.5...21.173437
185POLYGON ((-8368799.480 4860104.192, -8368897.0...30.456348
186POLYGON ((-8368274.899 4858978.481, -8368350.3...71.452704
187POLYGON ((-8369781.799 4855832.030, -8369697.5...321.840167
188POLYGON ((-8371806.874 4856984.754, -8371593.5...332.310018
189POLYGON ((-8370148.124 4854568.427, -8370130.3...360.932894
190POLYGON ((-8368535.993 4855257.692, -8368525.4...37.011.506221
191POLYGON ((-8369189.092 4854802.415, -8369149.8...37.021.725467
192POLYGON ((-8366283.029 4854326.952, -8366272.2...41.012.202312
193POLYGON ((-8367913.593 4854598.475, -8367920.8...40.021.312094
194POLYGON ((-8368747.224 4853973.143, -8368777.7...39.021.368968
195POLYGON ((-8367822.645 4855136.711, -8367830.0...40.011.074509
196POLYGON ((-8366522.279 4853599.601, -8366493.2...41.021.729109
197POLYGON ((-8366390.074 4853681.596, -8366398.4...42.021.479097
198POLYGON ((-8365416.647 4854180.126, -8365423.9...42.011.358214
199POLYGON ((-8372834.517 4858523.195, -8372782.7...791.695051
200POLYGON ((-8374035.241 4858353.286, -8374003.0...802.207412
201POLYGON ((-8375684.605 4858087.595, -8375674.2...822.049494
202MULTIPOLYGON (((-8363109.752 4864780.210, -836...176.015.513079
203POLYGON ((-8376127.510 4860476.047, -8376203.0...83.011.235583
204POLYGON ((-8375694.125 4859443.135, -8375474.6...841.809689
205POLYGON ((-8374541.637 4860219.655, -8374593.1...852.552330
206POLYGON ((-8370510.567 4859942.064, -8370518.1...900.768557
207POLYGON ((-8370510.567 4859942.064, -8370513.0...912.010275
208POLYGON ((-8371488.834 4860547.932, -8371668.8...922.906507
209POLYGON ((-8373457.282 4860687.390, -8373561.7...935.090539
210POLYGON ((-8373517.845 4855638.287, -8373575.1...673.397763
211POLYGON ((-8373375.486 4855487.857, -8373193.5...694.280559
212POLYGON ((-8373124.997 4856463.795, -8373064.9...704.492678
213POLYGON ((-8374442.593 4858223.769, -8374520.5...722.786448
214POLYGON ((-8373320.494 4857825.569, -8373356.4...733.995648
215POLYGON ((-8372689.424 4856858.884, -8372669.8...743.668980
216POLYGON ((-8372020.532 4858649.148, -8372121.3...772.129493
217POLYGON ((-8373133.683 4857771.523, -8372964.2...780.551582
218POLYGON ((-8376606.404 4862313.939, -8376594.9...1151.693977
219POLYGON ((-8375013.946 4865178.726, -8375025.3...1173.281246
220POLYGON ((-8374442.293 4863101.690, -8374431.0...1181.089631
221POLYGON ((-8374082.728 4864703.979, -8374184.0...1191.872779
222POLYGON ((-8374084.194 4864962.236, -8374084.4...1201.142156
223POLYGON ((-8374084.194 4864962.236, -8374083.9...1210.754682
224POLYGON ((-8369089.405 4860328.379, -8369066.2...1250.297482
225POLYGON ((-8365996.030 4861374.316, -8366166.3...1320.309623
226POLYGON ((-8366918.239 4860552.925, -8366913.5...1330.778079
227POLYGON ((-8368121.089 4861190.630, -8368036.0...1350.682101
228POLYGON ((-8369999.054 4863010.075, -8370008.3...1370.870228
229POLYGON ((-8368623.390 4866828.075, -8368490.9...1703.261462
230POLYGON ((-8368653.090 4866807.257, -8368848.4...1711.588665
231POLYGON ((-8366329.622 4865773.661, -8366416.9...1734.863495
232POLYGON ((-8365377.338 4865167.063, -8365335.0...1742.805288
233POLYGON ((-8364468.329 4866387.084, -8364532.9...1753.631309
234POLYGON ((-8361293.121 4864710.866, -8361232.4...1783.878410
235POLYGON ((-8361831.232 4863553.651, -8361791.7...1792.487401
236POLYGON ((-8356533.448 4863493.073, -8356295.7...1830.868175
237POLYGON ((-8356570.289 4866949.879, -8356588.3...1841.642781
238POLYGON ((-8359918.520 4865808.205, -8359980.4...1883.583565
239POLYGON ((-8373930.526 4873384.164, -8374249.6...2170.720405
240POLYGON ((-8374331.573 4875168.249, -8374332.5...2181.666256
241POLYGON ((-8377253.748 4872807.565, -8377219.1...2190.586897
242POLYGON ((-8377349.149 4875059.618, -8377536.1...2200.930327
243POLYGON ((-8372284.382 4875603.300, -8371977.4...2310.766095
244POLYGON ((-8371531.590 4872267.644, -8371557.5...2351.330585
245POLYGON ((-8371002.853 4871680.759, -8370794.9...2361.975610
246POLYGON ((-8369435.710 4873097.015, -8369441.1...2371.705331
247POLYGON ((-8368847.163 4871824.011, -8368856.2...2381.204295
248POLYGON ((-8369915.176 4870475.365, -8369913.5...2391.476379
249POLYGON ((-8368412.963 4869958.363, -8368401.8...2402.465676
250POLYGON ((-8371091.047 4875928.214, -8371078.2...2570.603483
251POLYGON ((-8369294.028 4876034.658, -8369279.5...2580.741123
252POLYGON ((-8368098.496 4877864.747, -8368213.3...2590.720621
253POLYGON ((-8368325.107 4876748.039, -8368281.6...2600.267057
254POLYGON ((-8367773.920 4876335.416, -8367813.5...2611.717996
255POLYGON ((-8368047.904 4875101.207, -8368017.3...2621.187777
256POLYGON ((-8351320.337 4874912.523, -8351333.7...348.010.610756
257POLYGON ((-8366117.539 4875197.027, -8366058.9...263.022.248950
258POLYGON ((-8367435.863 4874640.598, -8367415.6...2641.444457
259POLYGON ((-8366382.103 4873869.474, -8366278.4...2652.111888
260POLYGON ((-8365918.557 4875961.269, -8365949.6...2661.783286
261POLYGON ((-8365501.657 4873413.331, -8365326.5...2671.611342
262POLYGON ((-8364162.785 4874927.620, -8364194.6...2681.838384
263POLYGON ((-8357245.176 4867336.418, -8357018.5...2991.418518
264POLYGON ((-8357562.396 4868119.809, -8357497.9...3001.099609
265POLYGON ((-8359048.490 4869685.747, -8359106.5...3011.358859
266POLYGON ((-8358463.677 4870463.119, -8358507.5...3021.788143
267POLYGON ((-8359840.146 4873870.919, -8359850.3...3060.942683
268POLYGON ((-8358698.512 4875187.806, -8359125.3...3070.848273
269POLYGON ((-8358124.840 4873042.304, -8358101.5...3081.041778
270POLYGON ((-8358800.524 4871737.311, -8358821.2...3091.450055
271POLYGON ((-8356386.107 4873290.953, -8356314.3...3100.717442
272POLYGON ((-8356812.700 4871120.896, -8356854.2...3121.987885
273POLYGON ((-8355795.017 4871489.440, -8355813.1...3130.836430
274POLYGON ((-8356123.065 4871201.992, -8356114.3...3161.017628
275POLYGON ((-8356126.931 4871220.940, -8356135.9...3171.102542
276POLYGON ((-8345002.705 4882999.341, -8345022.2...363.030.544092
277POLYGON ((-8352258.395 4875848.140, -8352263.8...347.010.637886
278POLYGON ((-8351320.337 4874912.523, -8351305.5...348.020.681427
279POLYGON ((-8349647.669 4873752.132, -8349840.0...3491.058091
280POLYGON ((-8346154.984 4873112.526, -8346178.5...3511.189730
281POLYGON ((-8347222.261 4874344.308, -8347212.8...3520.588885
282POLYGON ((-8347004.559 4875467.763, -8347004.3...353.010.802006
283POLYGON ((-8366669.360 4876633.160, -8366634.5...263.010.950635
284POLYGON ((-8367312.560 4858244.671, -8367302.1...8.040.871965
285POLYGON ((-8367367.727 4857905.662, -8367363.5...12.020.787586
286POLYGON ((-8369711.181 4858181.748, -8369685.9...12.010.687258
287POLYGON ((-8368712.537 4858752.269, -8368717.2...8.031.123181
288POLYGON ((-8365390.202 4855079.518, -8365380.0...27.020.452116
289POLYGON ((-8367710.783 4855844.195, -8367680.5...30.021.388373
290POLYGON ((-8367770.296 4855491.439, -8367755.0...30.011.765428
291POLYGON ((-8367211.278 4855698.783, -8367298.4...28.021.012686
292POLYGON ((-8365847.064 4855830.380, -8365837.8...27.011.118664
293POLYGON ((-8353967.289 4875408.605, -8354100.2...337.010.640119
294POLYGON ((-8356668.940 4876338.892, -8356733.4...337.020.879809
295POLYGON ((-8355005.215 4872404.795, -8355076.5...315.020.340961
296POLYGON ((-8356193.428 4871912.107, -8356188.6...314.010.926557
297POLYGON ((-8355795.017 4871489.440, -8355757.2...314.021.034146
298POLYGON ((-8367151.787 4864085.119, -8367126.8...167.015.785006
299POLYGON ((-8366459.152 4863968.718, -8366451.6...167.022.962814
300POLYGON ((-8366560.879 4872791.480, -8366565.1...279.011.001127
301POLYGON ((-8366736.499 4871040.932, -8366530.1...279.021.420989
302POLYGON ((-8374687.623 4858498.388, -8374684.2...81.010.856397
303POLYGON ((-8373833.758 4857399.077, -8373812.8...71.024.178984
304POLYGON ((-8372274.821 4859852.894, -8372293.6...87.011.095814
305POLYGON ((-8374653.982 4858705.464, -8374636.3...81.022.348387
306POLYGON ((-8373335.955 4860025.164, -8373360.6...86.022.432651
307POLYGON ((-8378038.647 4862789.029, -8378007.4...3751.418450
308POLYGON ((-8361019.405 4862948.285, -8361006.1...180.021.252623
309POLYGON ((-8378937.055 4863062.452, -8379167.1...98.011.189928
310POLYGON ((-8373483.413 4857166.266, -8373624.4...71.012.687449
311POLYGON ((-8366155.936 4856127.934, -8366211.5...28.011.012295
312POLYGON ((-8368712.537 4858752.269, -8368701.5...8.010.771041
313POLYGON ((-8367304.342 4858242.153, -8367312.5...11.010.640819
314POLYGON ((-8362769.308 4870891.431, -8362760.3...274.021.300048
315POLYGON ((-8372580.842 4859097.809, -8372579.5...86.010.843436
316POLYGON ((-8348315.824 4885072.600, -8348678.0...365.020.677934
317POLYGON ((-8364725.625 4859477.631, -8364724.3...3670.601560
318POLYGON ((-8365898.822 4860488.577, -8365966.8...3760.597881
319POLYGON ((-8372938.599 4876594.851, -8372979.3...3861.199319
320POLYGON ((-8372041.708 4877075.570, -8372053.8...3850.649587
321POLYGON ((-8374339.631 4878207.718, -8374331.6...3870.834007
322POLYGON ((-8370434.563 4875053.677, -8370571.4...3881.526218
323POLYGON ((-8368465.517 4874196.986, -8368471.8...3895.583023
324POLYGON ((-8372031.712 4867544.315, -8372040.2...98002.273760
325POLYGON ((-8363888.503 4874715.342, -8363922.4...2694.000767
326POLYGON ((-8363760.963 4872639.107, -8363669.7...2701.819271
327POLYGON ((-8362692.085 4872712.529, -8362683.1...2711.121994
328POLYGON ((-8361557.528 4872286.205, -8361440.4...2721.066915
329POLYGON ((-8361455.091 4872239.010, -8361451.2...2731.333811
330POLYGON ((-8363964.027 4872004.801, -8363965.3...2751.898365
331POLYGON ((-8364892.204 4872699.162, -8364910.0...2766.416389
332POLYGON ((-8364974.482 4873324.269, -8365063.3...2772.983294
333POLYGON ((-8364869.364 4872847.693, -8364930.9...2782.226849
334POLYGON ((-8366088.259 4869163.826, -8366033.8...2802.679496
335POLYGON ((-8365278.799 4870396.762, -8365272.5...2813.662781
336POLYGON ((-8363997.619 4870490.694, -8363987.0...2822.708857
337POLYGON ((-8356890.923 4870968.628, -8356876.5...3180.868766
338POLYGON ((-8356437.624 4868823.702, -8356421.5...3191.355104
339POLYGON ((-8354979.462 4870475.746, -8355062.3...3201.119235
340POLYGON ((-8354833.608 4868291.543, -8354906.9...3212.824743
341POLYGON ((-8354013.859 4868831.195, -8354053.5...3231.571980
342POLYGON ((-8353261.843 4869466.625, -8353339.9...3251.522216
343POLYGON ((-8352647.631 4869940.833, -8352694.0...3261.493093
344POLYGON ((-8351244.176 4872273.096, -8351257.9...3290.595910
345POLYGON ((-8352139.133 4870256.615, -8352268.9...3301.045225
346POLYGON ((-8354980.268 4872386.991, -8354874.6...3320.257911
347POLYGON ((-8351971.191 4880244.266, -8352382.3...3550.645997
348POLYGON ((-8352706.012 4883852.541, -8353142.4...3580.853745
349POLYGON ((-8350336.353 4881868.628, -8350105.0...3590.863698
350POLYGON ((-8350336.353 4881868.628, -8350523.3...3600.549410
351POLYGON ((-8348107.513 4881080.210, -8348342.6...3611.182931
352POLYGON ((-8345052.794 4877178.921, -8345054.4...362.030.612166
353POLYGON ((-8347578.182 4876968.499, -8347656.4...353.020.592294
354POLYGON ((-8347290.762 4876779.290, -8347281.1...362.010.795982
355POLYGON ((-8346723.847 4879585.335, -8346589.7...363.020.437581
356POLYGON ((-8367886.806 4852878.324, -8367855.5...3730.977495
357POLYGON ((-8368036.268 4853855.618, -8368044.7...3721.193019
358POLYGON ((-8361905.362 4868475.786, -8361941.3...3834.624979
359POLYGON ((-8358784.579 4871805.576, -8358780.1...3901.097566
360POLYGON ((-8361264.220 4861513.714, -8360845.9...3781.226389
361POLYGON ((-8365849.395 4863865.879, -8365936.6...3771.757139
\n", "
" ], "text/plain": [ " geometry NAME10 MAPE\n", "0 POLYGON ((-8374483.498 4860210.393, -8374414.8... 94 2.745771\n", "1 POLYGON ((-8375161.875 4861368.604, -8375172.1... 95 3.050939\n", "2 POLYGON ((-8376060.068 4860464.903, -8376055.8... 96 1.851506\n", "3 POLYGON ((-8368265.478 4862715.709, -8368315.5... 138 1.356420\n", "4 POLYGON ((-8368234.501 4862710.916, -8368243.7... 139 0.510644\n", "5 POLYGON ((-8366929.478 4861647.296, -8366835.5... 140 0.716524\n", "6 POLYGON ((-8366459.589 4861524.115, -8366337.3... 141 0.372744\n", "7 POLYGON ((-8363801.228 4860279.583, -8363526.7... 142 0.896706\n", "8 POLYGON ((-8362442.368 4861377.035, -8362570.2... 143 1.343638\n", "9 POLYGON ((-8364072.375 4861410.104, -8364029.6... 144 0.733026\n", "10 POLYGON ((-8365588.828 4862058.024, -8365534.0... 145 2.573990\n", "11 POLYGON ((-8365908.950 4862969.607, -8366083.8... 146 1.423147\n", "12 POLYGON ((-8366793.479 4862467.509, -8366713.6... 147 2.145712\n", "13 POLYGON ((-8369874.082 4863198.850, -8369779.5... 149 3.241847\n", "14 POLYGON ((-8368137.903 4864487.771, -8368148.4... 152 3.760764\n", "15 POLYGON ((-8367175.751 4864090.054, -8367239.0... 153 1.509038\n", "16 POLYGON ((-8364481.138 4862505.108, -8364447.6... 156 0.956792\n", "17 POLYGON ((-8359526.447 4867466.205, -8359525.1... 190 1.697944\n", "18 POLYGON ((-8360890.111 4868374.619, -8360899.5... 191 1.215722\n", "19 POLYGON ((-8360939.303 4865894.565, -8360811.2... 192 3.730986\n", "20 POLYGON ((-8364085.657 4867684.976, -8364049.6... 197 4.394752\n", "21 POLYGON ((-8364180.977 4867109.212, -8364169.4... 198 3.827342\n", "22 POLYGON ((-8364419.608 4866409.642, -8364347.5... 199 2.187150\n", "23 POLYGON ((-8367250.301 4866390.043, -8367201.8... 202 2.649841\n", "24 POLYGON ((-8365609.168 4868540.613, -8365693.7... 203 4.242486\n", "25 POLYGON ((-8365609.168 4868540.613, -8365587.2... 204 3.971670\n", "26 POLYGON ((-8368335.806 4868408.790, -8368427.4... 205 3.539795\n", "27 POLYGON ((-8369217.027 4869654.309, -8369279.0... 206 1.859173\n", "28 POLYGON ((-8370060.386 4857984.192, -8370066.9... 13 0.808594\n", "29 POLYGON ((-8367421.339 4857596.013, -8367416.4... 14 1.137513\n", "30 POLYGON ((-8367384.603 4857758.633, -8367393.7... 15 0.554873\n", "31 POLYGON ((-8365792.337 4857500.969, -8365833.7... 16 0.986651\n", "32 POLYGON ((-8364932.951 4857043.182, -8364978.3... 17 1.232508\n", "33 POLYGON ((-8367430.912 4857491.183, -8367439.8... 18 0.598195\n", "34 POLYGON ((-8367481.286 4857232.826, -8367471.7... 19 0.521558\n", "35 POLYGON ((-8369950.926 4857003.959, -8369955.7... 20 0.705205\n", "36 POLYGON ((-8368297.932 4856681.121, -8368296.7... 21 0.786956\n", "37 POLYGON ((-8368297.932 4856681.121, -8368306.7... 22 1.326978\n", "38 POLYGON ((-8367554.477 4856754.497, -8367561.6... 23 0.759536\n", "39 POLYGON ((-8367473.547 4857232.741, -8367481.2... 24 0.801001\n", "40 POLYGON ((-8365132.240 4856584.525, -8365185.8... 25 1.348228\n", "41 POLYGON ((-8367616.704 4856377.900, -8367623.7... 29 1.119681\n", "42 POLYGON ((-8368464.772 4855674.222, -8368455.8... 31 1.323973\n", "43 POLYGON ((-8376372.359 4849899.783, -8376329.4... 54 0.456891\n", "44 POLYGON ((-8376935.407 4852061.500, -8376991.1... 55 1.688587\n", "45 POLYGON ((-8375882.958 4851977.676, -8375896.8... 56 2.935936\n", "46 POLYGON ((-8374945.553 4853430.800, -8374976.1... 60 2.152633\n", "47 POLYGON ((-8374191.222 4854192.327, -8374213.9... 61 1.393739\n", "48 POLYGON ((-8375321.240 4854455.356, -8375368.5... 62 2.655354\n", "49 POLYGON ((-8375288.512 4854485.547, -8375200.2... 63 2.558589\n", "50 POLYGON ((-8376459.164 4861101.785, -8376441.0... 100 2.667778\n", "51 POLYGON ((-8375582.343 4861569.516, -8375572.4... 101 2.533748\n", "52 POLYGON ((-8375161.875 4861368.604, -8375161.3... 102 4.572634\n", "53 POLYGON ((-8373724.362 4861081.019, -8373743.7... 103 2.829125\n", "54 POLYGON ((-8373743.798 4861199.245, -8373724.3... 104 3.739420\n", "55 POLYGON ((-8373028.457 4860492.353, -8373118.5... 105 0.893084\n", "56 POLYGON ((-8371918.202 4860501.213, -8371847.0... 106 4.285643\n", "57 POLYGON ((-8371485.484 4860597.311, -8371483.0... 107 8.969148\n", "58 POLYGON ((-8371060.374 4861503.694, -8371640.3... 108 2.194624\n", "59 POLYGON ((-8369892.975 4860611.064, -8369825.0... 109 1.858471\n", "60 POLYGON ((-8371093.480 4862270.990, -8371113.9... 110 4.473532\n", "61 POLYGON ((-8372707.025 4862633.443, -8372725.4... 111 4.918676\n", "62 POLYGON ((-8375454.197 4862014.641, -8375427.4... 112 3.129238\n", "63 POLYGON ((-8375421.816 4862485.926, -8375323.8... 113 4.776817\n", "64 POLYGON ((-8375532.955 4862562.226, -8375544.3... 114 3.342287\n", "65 POLYGON ((-8363998.104 4862211.746, -8363949.1... 157 1.035320\n", "66 POLYGON ((-8362626.250 4862125.394, -8362609.1... 158 0.834374\n", "67 POLYGON ((-8362317.111 4862443.730, -8362294.1... 160 1.265259\n", "68 POLYGON ((-8362589.403 4864054.653, -8362644.7... 161 0.924393\n", "69 POLYGON ((-8364863.064 4863937.129, -8364936.4... 162 0.854450\n", "70 POLYGON ((-8364493.035 4863982.941, -8364499.1... 163 3.379384\n", "71 POLYGON ((-8364493.035 4863982.941, -8364474.5... 164 3.351309\n", "72 POLYGON ((-8365965.057 4864785.196, -8365974.3... 165 2.704522\n", "73 POLYGON ((-8365761.781 4863850.892, -8365681.9... 166 5.059672\n", "74 POLYGON ((-8368137.903 4864487.771, -8368124.4... 168 4.126242\n", "75 POLYGON ((-8368674.685 4854354.914, -8368595.1... 39.01 1.442107\n", "76 POLYGON ((-8369667.191 4864508.450, -8369655.6... 169.02 4.011507\n", "77 POLYGON ((-8368016.898 4865095.562, -8368010.5... 169.01 3.426876\n", "78 POLYGON ((-8370261.419 4867092.069, -8370170.0... 207 0.708376\n", "79 POLYGON ((-8369279.058 4869624.265, -8369217.0... 208 3.509548\n", "80 POLYGON ((-8372856.060 4868539.968, -8372818.1... 209 0.961397\n", "81 POLYGON ((-8373396.999 4869119.705, -8373385.1... 210 0.796325\n", "82 POLYGON ((-8372201.177 4870463.560, -8372205.1... 211 1.246719\n", "83 POLYGON ((-8372201.177 4870463.560, -8372195.9... 212 0.837651\n", "84 POLYGON ((-8374103.430 4870813.818, -8374049.6... 213 1.127624\n", "85 POLYGON ((-8374199.491 4869627.552, -8374135.2... 214 0.463996\n", "86 POLYGON ((-8374282.015 4870371.294, -8374207.8... 215 1.009710\n", "87 POLYGON ((-8376213.807 4872599.685, -8376221.0... 216 0.460086\n", "88 POLYGON ((-8368744.199 4871254.565, -8368860.7... 241 1.407552\n", "89 POLYGON ((-8367280.867 4870076.753, -8367257.8... 242 1.973094\n", "90 POLYGON ((-8367271.447 4869040.057, -8367284.1... 243 1.183769\n", "91 POLYGON ((-8366837.183 4869827.789, -8366882.5... 244 1.227933\n", "92 POLYGON ((-8366957.805 4870002.269, -8366931.9... 245 2.349511\n", "93 POLYGON ((-8368596.205 4871428.082, -8368570.2... 246 7.318828\n", "94 POLYGON ((-8367004.462 4871491.027, -8366914.8... 247 3.874590\n", "95 POLYGON ((-8367758.218 4872914.603, -8367805.0... 248 1.973247\n", "96 POLYGON ((-8366557.978 4872843.012, -8366557.0... 249 2.378088\n", "97 POLYGON ((-8368524.262 4871951.920, -8368259.9... 252 1.342717\n", "98 POLYGON ((-8369435.710 4873097.015, -8369418.0... 253 1.348398\n", "99 POLYGON ((-8368459.392 4874206.690, -8368416.1... 254 0.833425\n", "100 POLYGON ((-8368905.927 4875148.950, -8368823.7... 255 1.228763\n", "101 POLYGON ((-8370321.759 4874849.406, -8370256.4... 256 1.153535\n", "102 POLYGON ((-8364734.177 4868959.067, -8364723.7... 283 2.779916\n", "103 POLYGON ((-8364069.111 4869419.455, -8364051.5... 284 2.869539\n", "104 POLYGON ((-8364019.446 4870184.332, -8364035.5... 285 0.491397\n", "105 POLYGON ((-8362539.985 4870845.618, -8362568.3... 286 4.557556\n", "106 POLYGON ((-8363302.071 4869503.058, -8363474.5... 287 4.769191\n", "107 POLYGON ((-8362931.337 4869582.124, -8362973.7... 288 2.390966\n", "108 POLYGON ((-8361564.262 4871241.103, -8361655.9... 290 1.741328\n", "109 POLYGON ((-8360606.351 4870272.158, -8360580.7... 291 1.341042\n", "110 POLYGON ((-8360776.684 4870200.988, -8360809.8... 292 2.309641\n", "111 POLYGON ((-8359536.800 4867394.408, -8359523.2... 293 3.670560\n", "112 POLYGON ((-8358988.662 4866565.867, -8358986.6... 294 3.458182\n", "113 POLYGON ((-8356466.273 4868866.361, -8356478.5... 298 2.099877\n", "114 POLYGON ((-8353564.614 4875354.931, -8353572.3... 333 0.557469\n", "115 POLYGON ((-8353951.813 4874520.323, -8353951.2... 334 0.815903\n", "116 POLYGON ((-8355582.341 4873539.354, -8355515.1... 335 0.976214\n", "117 POLYGON ((-8355189.037 4874083.794, -8355123.0... 336 0.833286\n", "118 POLYGON ((-8356287.049 4875801.592, -8356460.0... 338 0.621981\n", "119 POLYGON ((-8359531.568 4875822.248, -8359339.5... 339 0.091232\n", "120 POLYGON ((-8356482.873 4876867.711, -8356482.6... 340 0.503407\n", "121 POLYGON ((-8357451.168 4877663.932, -8357547.2... 341 0.335359\n", "122 POLYGON ((-8356417.983 4877033.716, -8356328.5... 342 0.392411\n", "123 POLYGON ((-8354092.607 4878134.493, -8353580.6... 344 0.621665\n", "124 POLYGON ((-8351136.297 4875478.716, -8351129.0... 346 0.602014\n", "125 POLYGON ((-8376512.219 4854214.917, -8376508.4... 64 2.200737\n", "126 POLYGON ((-8375306.585 4856291.324, -8375313.2... 65 2.375204\n", "127 POLYGON ((-8373913.665 4855746.512, -8373761.8... 66 5.826381\n", "128 POLYGON ((-8344700.888 4880152.273, -8344708.1... 363.01 0.505371\n", "129 POLYGON ((-8346490.441 4881518.658, -8346046.5... 364 0.863887\n", "130 POLYGON ((-8364710.415 4858926.985, -8364714.0... 366 0.357485\n", "131 POLYGON ((-8349949.926 4874469.887, -8349941.7... 348.03 0.364997\n", "132 POLYGON ((-8351792.587 4875487.915, -8351842.0... 347.02 0.498704\n", "133 POLYGON ((-8346198.272 4879026.862, -8346298.3... 362.02 0.498850\n", "134 POLYGON ((-8368745.373 4853983.052, -8368744.2... 38 1.235618\n", "135 POLYGON ((-8375679.646 4859533.620, -8375668.6... 83.02 2.866473\n", "136 POLYGON ((-8363447.120 4865154.847, -8363290.9... 176.02 7.400394\n", "137 POLYGON ((-8365697.832 4857770.055, -8365707.4... 10.02 0.898934\n", "138 POLYGON ((-8366008.694 4858067.328, -8366013.2... 10.01 1.004737\n", "139 POLYGON ((-8367143.774 4859163.976, -8367128.5... 4.02 0.667352\n", "140 POLYGON ((-8368219.166 4859353.414, -8368214.1... 4.01 0.346953\n", "141 POLYGON ((-8372391.867 4866268.969, -8372466.1... 122.04 8.747971\n", "142 POLYGON ((-8368402.718 4861703.983, -8368390.5... 136.02 0.678804\n", "143 POLYGON ((-8353042.864 4877370.523, -8353053.9... 345.01 2.796862\n", "144 POLYGON ((-8354140.252 4878087.207, -8354250.5... 345.02 0.462933\n", "145 POLYGON ((-8366086.030 4857606.493, -8366079.5... 11.02 0.652332\n", "146 POLYGON ((-8366003.640 4858098.867, -8365996.6... 9.02 1.392639\n", "147 POLYGON ((-8367247.903 4858584.406, -8367256.1... 9.01 0.408559\n", "148 POLYGON ((-8367540.772 4865752.993, -8367503.8... 172.01 5.900407\n", "149 POLYGON ((-8367972.160 4866052.665, -8368036.4... 172.02 4.283649\n", "150 POLYGON ((-8363097.030 4871635.238, -8363077.8... 274.01 2.685159\n", "151 POLYGON ((-8366269.250 4865763.557, -8366242.3... 201.01 3.675688\n", "152 POLYGON ((-8365930.672 4867863.567, -8366001.7... 201.02 4.440937\n", "153 POLYGON ((-8357625.992 4871612.774, -8357577.6... 311.01 0.986836\n", "154 POLYGON ((-8357756.241 4871437.543, -8357714.0... 311.02 0.902764\n", "155 POLYGON ((-8363160.872 4866676.221, -8363195.6... 195.02 6.094490\n", "156 POLYGON ((-8363924.806 4865828.453, -8363859.9... 195.01 2.306282\n", "157 POLYGON ((-8361944.586 4868408.143, -8362039.4... 289.01 1.833837\n", "158 POLYGON ((-8361523.830 4869871.605, -8361567.2... 289.02 4.218694\n", "159 POLYGON ((-8353190.859 4871438.668, -8353124.2... 331.01 0.301460\n", "160 POLYGON ((-8351394.664 4872292.693, -8351383.5... 331.02 1.071637\n", "161 POLYGON ((-8353697.142 4871426.897, -8353881.6... 315.01 1.028085\n", "162 POLYGON ((-8360534.261 4871877.577, -8360609.7... 305.01 1.167469\n", "163 POLYGON ((-8360602.462 4873293.856, -8360611.0... 305.02 0.595980\n", "164 POLYGON ((-8377882.868 4862283.591, -8377883.2... 98.02 0.973089\n", "165 POLYGON ((-8361589.473 4862609.199, -8361578.0... 180.01 1.607120\n", "166 POLYGON ((-8363090.119 4864756.863, -8363111.9... 177.02 4.193964\n", "167 POLYGON ((-8361316.662 4865624.111, -8361377.6... 177.01 4.160820\n", "168 POLYGON ((-8354450.055 4882261.332, -8354460.2... 356.02 0.718738\n", "169 POLYGON ((-8352177.421 4880856.118, -8352123.1... 357.01 0.879989\n", "170 POLYGON ((-8353844.031 4882814.172, -8353884.1... 357.02 1.639800\n", "171 POLYGON ((-8352327.748 4880978.769, -8352635.3... 356.01 0.467254\n", "172 POLYGON ((-8369746.974 4864521.820, -8369785.4... 151.01 4.193519\n", "173 POLYGON ((-8368359.095 4864136.161, -8368334.3... 151.02 6.856765\n", "174 POLYGON ((-8351199.538 4884322.689, -8350942.9... 365.01 0.599420\n", "175 POLYGON ((-8368162.257 4860949.867, -8368171.4... 134.02 0.977793\n", "176 POLYGON ((-8368152.889 4860998.378, -8368138.8... 134.01 0.445545\n", "177 POLYGON ((-8369177.577 4861466.135, -8369170.0... 136.01 1.135340\n", "178 POLYGON ((-8358024.370 4864963.855, -8357971.4... 379 0.836326\n", "179 POLYGON ((-8359276.636 4867089.924, -8359380.7... 382 2.391199\n", "180 POLYGON ((-8357165.471 4866977.295, -8357133.0... 380 1.343239\n", "181 POLYGON ((-8351332.439 4870854.942, -8351345.1... 381 3.074876\n", "182 POLYGON ((-8374392.713 4875035.988, -8374218.5... 384 0.679298\n", "183 POLYGON ((-8364710.415 4858926.985, -8364708.8... 1 0.529238\n", "184 POLYGON ((-8367037.612 4859790.661, -8367072.5... 2 1.173437\n", "185 POLYGON ((-8368799.480 4860104.192, -8368897.0... 3 0.456348\n", "186 POLYGON ((-8368274.899 4858978.481, -8368350.3... 7 1.452704\n", "187 POLYGON ((-8369781.799 4855832.030, -8369697.5... 32 1.840167\n", "188 POLYGON ((-8371806.874 4856984.754, -8371593.5... 33 2.310018\n", "189 POLYGON ((-8370148.124 4854568.427, -8370130.3... 36 0.932894\n", "190 POLYGON ((-8368535.993 4855257.692, -8368525.4... 37.01 1.506221\n", "191 POLYGON ((-8369189.092 4854802.415, -8369149.8... 37.02 1.725467\n", "192 POLYGON ((-8366283.029 4854326.952, -8366272.2... 41.01 2.202312\n", "193 POLYGON ((-8367913.593 4854598.475, -8367920.8... 40.02 1.312094\n", "194 POLYGON ((-8368747.224 4853973.143, -8368777.7... 39.02 1.368968\n", "195 POLYGON ((-8367822.645 4855136.711, -8367830.0... 40.01 1.074509\n", "196 POLYGON ((-8366522.279 4853599.601, -8366493.2... 41.02 1.729109\n", "197 POLYGON ((-8366390.074 4853681.596, -8366398.4... 42.02 1.479097\n", "198 POLYGON ((-8365416.647 4854180.126, -8365423.9... 42.01 1.358214\n", "199 POLYGON ((-8372834.517 4858523.195, -8372782.7... 79 1.695051\n", "200 POLYGON ((-8374035.241 4858353.286, -8374003.0... 80 2.207412\n", "201 POLYGON ((-8375684.605 4858087.595, -8375674.2... 82 2.049494\n", "202 MULTIPOLYGON (((-8363109.752 4864780.210, -836... 176.01 5.513079\n", "203 POLYGON ((-8376127.510 4860476.047, -8376203.0... 83.01 1.235583\n", "204 POLYGON ((-8375694.125 4859443.135, -8375474.6... 84 1.809689\n", "205 POLYGON ((-8374541.637 4860219.655, -8374593.1... 85 2.552330\n", "206 POLYGON ((-8370510.567 4859942.064, -8370518.1... 90 0.768557\n", "207 POLYGON ((-8370510.567 4859942.064, -8370513.0... 91 2.010275\n", "208 POLYGON ((-8371488.834 4860547.932, -8371668.8... 92 2.906507\n", "209 POLYGON ((-8373457.282 4860687.390, -8373561.7... 93 5.090539\n", "210 POLYGON ((-8373517.845 4855638.287, -8373575.1... 67 3.397763\n", "211 POLYGON ((-8373375.486 4855487.857, -8373193.5... 69 4.280559\n", "212 POLYGON ((-8373124.997 4856463.795, -8373064.9... 70 4.492678\n", "213 POLYGON ((-8374442.593 4858223.769, -8374520.5... 72 2.786448\n", "214 POLYGON ((-8373320.494 4857825.569, -8373356.4... 73 3.995648\n", "215 POLYGON ((-8372689.424 4856858.884, -8372669.8... 74 3.668980\n", "216 POLYGON ((-8372020.532 4858649.148, -8372121.3... 77 2.129493\n", "217 POLYGON ((-8373133.683 4857771.523, -8372964.2... 78 0.551582\n", "218 POLYGON ((-8376606.404 4862313.939, -8376594.9... 115 1.693977\n", "219 POLYGON ((-8375013.946 4865178.726, -8375025.3... 117 3.281246\n", "220 POLYGON ((-8374442.293 4863101.690, -8374431.0... 118 1.089631\n", "221 POLYGON ((-8374082.728 4864703.979, -8374184.0... 119 1.872779\n", "222 POLYGON ((-8374084.194 4864962.236, -8374084.4... 120 1.142156\n", "223 POLYGON ((-8374084.194 4864962.236, -8374083.9... 121 0.754682\n", "224 POLYGON ((-8369089.405 4860328.379, -8369066.2... 125 0.297482\n", "225 POLYGON ((-8365996.030 4861374.316, -8366166.3... 132 0.309623\n", "226 POLYGON ((-8366918.239 4860552.925, -8366913.5... 133 0.778079\n", "227 POLYGON ((-8368121.089 4861190.630, -8368036.0... 135 0.682101\n", "228 POLYGON ((-8369999.054 4863010.075, -8370008.3... 137 0.870228\n", "229 POLYGON ((-8368623.390 4866828.075, -8368490.9... 170 3.261462\n", "230 POLYGON ((-8368653.090 4866807.257, -8368848.4... 171 1.588665\n", "231 POLYGON ((-8366329.622 4865773.661, -8366416.9... 173 4.863495\n", "232 POLYGON ((-8365377.338 4865167.063, -8365335.0... 174 2.805288\n", "233 POLYGON ((-8364468.329 4866387.084, -8364532.9... 175 3.631309\n", "234 POLYGON ((-8361293.121 4864710.866, -8361232.4... 178 3.878410\n", "235 POLYGON ((-8361831.232 4863553.651, -8361791.7... 179 2.487401\n", "236 POLYGON ((-8356533.448 4863493.073, -8356295.7... 183 0.868175\n", "237 POLYGON ((-8356570.289 4866949.879, -8356588.3... 184 1.642781\n", "238 POLYGON ((-8359918.520 4865808.205, -8359980.4... 188 3.583565\n", "239 POLYGON ((-8373930.526 4873384.164, -8374249.6... 217 0.720405\n", "240 POLYGON ((-8374331.573 4875168.249, -8374332.5... 218 1.666256\n", "241 POLYGON ((-8377253.748 4872807.565, -8377219.1... 219 0.586897\n", "242 POLYGON ((-8377349.149 4875059.618, -8377536.1... 220 0.930327\n", "243 POLYGON ((-8372284.382 4875603.300, -8371977.4... 231 0.766095\n", "244 POLYGON ((-8371531.590 4872267.644, -8371557.5... 235 1.330585\n", "245 POLYGON ((-8371002.853 4871680.759, -8370794.9... 236 1.975610\n", "246 POLYGON ((-8369435.710 4873097.015, -8369441.1... 237 1.705331\n", "247 POLYGON ((-8368847.163 4871824.011, -8368856.2... 238 1.204295\n", "248 POLYGON ((-8369915.176 4870475.365, -8369913.5... 239 1.476379\n", "249 POLYGON ((-8368412.963 4869958.363, -8368401.8... 240 2.465676\n", "250 POLYGON ((-8371091.047 4875928.214, -8371078.2... 257 0.603483\n", "251 POLYGON ((-8369294.028 4876034.658, -8369279.5... 258 0.741123\n", "252 POLYGON ((-8368098.496 4877864.747, -8368213.3... 259 0.720621\n", "253 POLYGON ((-8368325.107 4876748.039, -8368281.6... 260 0.267057\n", "254 POLYGON ((-8367773.920 4876335.416, -8367813.5... 261 1.717996\n", "255 POLYGON ((-8368047.904 4875101.207, -8368017.3... 262 1.187777\n", "256 POLYGON ((-8351320.337 4874912.523, -8351333.7... 348.01 0.610756\n", "257 POLYGON ((-8366117.539 4875197.027, -8366058.9... 263.02 2.248950\n", "258 POLYGON ((-8367435.863 4874640.598, -8367415.6... 264 1.444457\n", "259 POLYGON ((-8366382.103 4873869.474, -8366278.4... 265 2.111888\n", "260 POLYGON ((-8365918.557 4875961.269, -8365949.6... 266 1.783286\n", "261 POLYGON ((-8365501.657 4873413.331, -8365326.5... 267 1.611342\n", "262 POLYGON ((-8364162.785 4874927.620, -8364194.6... 268 1.838384\n", "263 POLYGON ((-8357245.176 4867336.418, -8357018.5... 299 1.418518\n", "264 POLYGON ((-8357562.396 4868119.809, -8357497.9... 300 1.099609\n", "265 POLYGON ((-8359048.490 4869685.747, -8359106.5... 301 1.358859\n", "266 POLYGON ((-8358463.677 4870463.119, -8358507.5... 302 1.788143\n", "267 POLYGON ((-8359840.146 4873870.919, -8359850.3... 306 0.942683\n", "268 POLYGON ((-8358698.512 4875187.806, -8359125.3... 307 0.848273\n", "269 POLYGON ((-8358124.840 4873042.304, -8358101.5... 308 1.041778\n", "270 POLYGON ((-8358800.524 4871737.311, -8358821.2... 309 1.450055\n", "271 POLYGON ((-8356386.107 4873290.953, -8356314.3... 310 0.717442\n", "272 POLYGON ((-8356812.700 4871120.896, -8356854.2... 312 1.987885\n", "273 POLYGON ((-8355795.017 4871489.440, -8355813.1... 313 0.836430\n", "274 POLYGON ((-8356123.065 4871201.992, -8356114.3... 316 1.017628\n", "275 POLYGON ((-8356126.931 4871220.940, -8356135.9... 317 1.102542\n", "276 POLYGON ((-8345002.705 4882999.341, -8345022.2... 363.03 0.544092\n", "277 POLYGON ((-8352258.395 4875848.140, -8352263.8... 347.01 0.637886\n", "278 POLYGON ((-8351320.337 4874912.523, -8351305.5... 348.02 0.681427\n", "279 POLYGON ((-8349647.669 4873752.132, -8349840.0... 349 1.058091\n", "280 POLYGON ((-8346154.984 4873112.526, -8346178.5... 351 1.189730\n", "281 POLYGON ((-8347222.261 4874344.308, -8347212.8... 352 0.588885\n", "282 POLYGON ((-8347004.559 4875467.763, -8347004.3... 353.01 0.802006\n", "283 POLYGON ((-8366669.360 4876633.160, -8366634.5... 263.01 0.950635\n", "284 POLYGON ((-8367312.560 4858244.671, -8367302.1... 8.04 0.871965\n", "285 POLYGON ((-8367367.727 4857905.662, -8367363.5... 12.02 0.787586\n", "286 POLYGON ((-8369711.181 4858181.748, -8369685.9... 12.01 0.687258\n", "287 POLYGON ((-8368712.537 4858752.269, -8368717.2... 8.03 1.123181\n", "288 POLYGON ((-8365390.202 4855079.518, -8365380.0... 27.02 0.452116\n", "289 POLYGON ((-8367710.783 4855844.195, -8367680.5... 30.02 1.388373\n", "290 POLYGON ((-8367770.296 4855491.439, -8367755.0... 30.01 1.765428\n", "291 POLYGON ((-8367211.278 4855698.783, -8367298.4... 28.02 1.012686\n", "292 POLYGON ((-8365847.064 4855830.380, -8365837.8... 27.01 1.118664\n", "293 POLYGON ((-8353967.289 4875408.605, -8354100.2... 337.01 0.640119\n", "294 POLYGON ((-8356668.940 4876338.892, -8356733.4... 337.02 0.879809\n", "295 POLYGON ((-8355005.215 4872404.795, -8355076.5... 315.02 0.340961\n", "296 POLYGON ((-8356193.428 4871912.107, -8356188.6... 314.01 0.926557\n", "297 POLYGON ((-8355795.017 4871489.440, -8355757.2... 314.02 1.034146\n", "298 POLYGON ((-8367151.787 4864085.119, -8367126.8... 167.01 5.785006\n", "299 POLYGON ((-8366459.152 4863968.718, -8366451.6... 167.02 2.962814\n", "300 POLYGON ((-8366560.879 4872791.480, -8366565.1... 279.01 1.001127\n", "301 POLYGON ((-8366736.499 4871040.932, -8366530.1... 279.02 1.420989\n", "302 POLYGON ((-8374687.623 4858498.388, -8374684.2... 81.01 0.856397\n", "303 POLYGON ((-8373833.758 4857399.077, -8373812.8... 71.02 4.178984\n", "304 POLYGON ((-8372274.821 4859852.894, -8372293.6... 87.01 1.095814\n", "305 POLYGON ((-8374653.982 4858705.464, -8374636.3... 81.02 2.348387\n", "306 POLYGON ((-8373335.955 4860025.164, -8373360.6... 86.02 2.432651\n", "307 POLYGON ((-8378038.647 4862789.029, -8378007.4... 375 1.418450\n", "308 POLYGON ((-8361019.405 4862948.285, -8361006.1... 180.02 1.252623\n", "309 POLYGON ((-8378937.055 4863062.452, -8379167.1... 98.01 1.189928\n", "310 POLYGON ((-8373483.413 4857166.266, -8373624.4... 71.01 2.687449\n", "311 POLYGON ((-8366155.936 4856127.934, -8366211.5... 28.01 1.012295\n", "312 POLYGON ((-8368712.537 4858752.269, -8368701.5... 8.01 0.771041\n", "313 POLYGON ((-8367304.342 4858242.153, -8367312.5... 11.01 0.640819\n", "314 POLYGON ((-8362769.308 4870891.431, -8362760.3... 274.02 1.300048\n", "315 POLYGON ((-8372580.842 4859097.809, -8372579.5... 86.01 0.843436\n", "316 POLYGON ((-8348315.824 4885072.600, -8348678.0... 365.02 0.677934\n", "317 POLYGON ((-8364725.625 4859477.631, -8364724.3... 367 0.601560\n", "318 POLYGON ((-8365898.822 4860488.577, -8365966.8... 376 0.597881\n", "319 POLYGON ((-8372938.599 4876594.851, -8372979.3... 386 1.199319\n", "320 POLYGON ((-8372041.708 4877075.570, -8372053.8... 385 0.649587\n", "321 POLYGON ((-8374339.631 4878207.718, -8374331.6... 387 0.834007\n", "322 POLYGON ((-8370434.563 4875053.677, -8370571.4... 388 1.526218\n", "323 POLYGON ((-8368465.517 4874196.986, -8368471.8... 389 5.583023\n", "324 POLYGON ((-8372031.712 4867544.315, -8372040.2... 9800 2.273760\n", "325 POLYGON ((-8363888.503 4874715.342, -8363922.4... 269 4.000767\n", "326 POLYGON ((-8363760.963 4872639.107, -8363669.7... 270 1.819271\n", "327 POLYGON ((-8362692.085 4872712.529, -8362683.1... 271 1.121994\n", "328 POLYGON ((-8361557.528 4872286.205, -8361440.4... 272 1.066915\n", "329 POLYGON ((-8361455.091 4872239.010, -8361451.2... 273 1.333811\n", "330 POLYGON ((-8363964.027 4872004.801, -8363965.3... 275 1.898365\n", "331 POLYGON ((-8364892.204 4872699.162, -8364910.0... 276 6.416389\n", "332 POLYGON ((-8364974.482 4873324.269, -8365063.3... 277 2.983294\n", "333 POLYGON ((-8364869.364 4872847.693, -8364930.9... 278 2.226849\n", "334 POLYGON ((-8366088.259 4869163.826, -8366033.8... 280 2.679496\n", "335 POLYGON ((-8365278.799 4870396.762, -8365272.5... 281 3.662781\n", "336 POLYGON ((-8363997.619 4870490.694, -8363987.0... 282 2.708857\n", "337 POLYGON ((-8356890.923 4870968.628, -8356876.5... 318 0.868766\n", "338 POLYGON ((-8356437.624 4868823.702, -8356421.5... 319 1.355104\n", "339 POLYGON ((-8354979.462 4870475.746, -8355062.3... 320 1.119235\n", "340 POLYGON ((-8354833.608 4868291.543, -8354906.9... 321 2.824743\n", "341 POLYGON ((-8354013.859 4868831.195, -8354053.5... 323 1.571980\n", "342 POLYGON ((-8353261.843 4869466.625, -8353339.9... 325 1.522216\n", "343 POLYGON ((-8352647.631 4869940.833, -8352694.0... 326 1.493093\n", "344 POLYGON ((-8351244.176 4872273.096, -8351257.9... 329 0.595910\n", "345 POLYGON ((-8352139.133 4870256.615, -8352268.9... 330 1.045225\n", "346 POLYGON ((-8354980.268 4872386.991, -8354874.6... 332 0.257911\n", "347 POLYGON ((-8351971.191 4880244.266, -8352382.3... 355 0.645997\n", "348 POLYGON ((-8352706.012 4883852.541, -8353142.4... 358 0.853745\n", "349 POLYGON ((-8350336.353 4881868.628, -8350105.0... 359 0.863698\n", "350 POLYGON ((-8350336.353 4881868.628, -8350523.3... 360 0.549410\n", "351 POLYGON ((-8348107.513 4881080.210, -8348342.6... 361 1.182931\n", "352 POLYGON ((-8345052.794 4877178.921, -8345054.4... 362.03 0.612166\n", "353 POLYGON ((-8347578.182 4876968.499, -8347656.4... 353.02 0.592294\n", "354 POLYGON ((-8347290.762 4876779.290, -8347281.1... 362.01 0.795982\n", "355 POLYGON ((-8346723.847 4879585.335, -8346589.7... 363.02 0.437581\n", "356 POLYGON ((-8367886.806 4852878.324, -8367855.5... 373 0.977495\n", "357 POLYGON ((-8368036.268 4853855.618, -8368044.7... 372 1.193019\n", "358 POLYGON ((-8361905.362 4868475.786, -8361941.3... 383 4.624979\n", "359 POLYGON ((-8358784.579 4871805.576, -8358780.1... 390 1.097566\n", "360 POLYGON ((-8361264.220 4861513.714, -8360845.9... 378 1.226389\n", "361 POLYGON ((-8365849.395 4863865.879, -8365936.6... 377 1.757139" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mape_clean = mape_cens[mape_cens.columns[mape_cens.columns.isin(['geometry', 'NAME10', 'MAPE'])]]\n", "mape_clean.to_crs('epsg:3857')" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [], "source": [ "median_errors = census_tracts.merge(\n", " salesTest.groupby(\"GEOID10\")[\"percent_error\"].median().reset_index(), on=\"GEOID10\"\n", ")" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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ERERERHVPkwsqiCRSLB23TqUlpaqNT4uPh69+/RhaVkiIiKiOkDx/w3ydP2rrmJiUY209HTs279P5XG3w24jqFcQYuNitR8UEREREVEtw8SiGgUFBVj6zTcQVKgpvHvPbgwcPBgJiYk1GBkRERERUe3BBnlKSElJwbk//kCvoKAq3yssLMRb06bi/J9/Ijs7+zlFR0RERETaINSCo0gCj0K92HJycrBw8aJKnwuCgD2//w6/dv44fOQIkwoiIiIieukwsVBSfHw8bobcLPOZIAg4e+4c2gW0x5x33kZcXJzaF72JiIiIiOoyHoVSUmZmJj7+5BOcOXUaABAWFoa3pk1FbFwccnJydBscEREREWlMIQAKFe7V1lQMdRUTCxWEhYfDrWULiEQiFBYWIi0tTdchERERERHVCkwsVJCdnc37E0REREREFWBiQUREREQE1IoGdbpeXxO8vE1ERERERBpjYkFERERERBrjUSgiIiIiIgAKKFCq66NQ4FEoIiIiIiJ6iTGxICIiIiIijfEoFBERERERHjfH03VVJl036NMEdyyIiIiIiEhjTCyIiIiIiEhjPApFRERERARAEASdH0USeBSKiIiIiIheZkwsiIiIiIhIYzwKRUREREQEQCEoakFVKDbIIyIiIiKilxgTCyIiIiIi0hiPQhERERERgQ3yNMUdCyIiIiIi0hgTCyIiIiIi0hiPQhERERERgQ3yNMUdCyIiIiIi0hgTCyIiIiIi0hiPQhERERERASiFAqU6rgpVCjbIIyIiIiKilxgTCyIiIiIi0hiPQhERERER4UlVKN0eRWJVKCIiIiIieqkxsSAiIiIiIo3xKBQREREREQBFLWiQp+v1NcEdCyIiIiIi0hgTCyIiIiIi0hgTCyIiIiIiAIKggELHvwQNq1IVFxdj5MiROHDgQJnPY2JiMHHiRPj6+qJz587YsGFDmed//fUXBg4ciDZt2qBfv344f/68ymszsSAiIiIiegE8fPgQY8eOxa1bt8p8XlJSgunTp8Pb2xtXr17Fpk2bsGPHDpw8eRIAEBsbizlz5uCdd97B9evXMWfOHMydOxepqakqrc/EgoiIiIiojrt8+TImTpyIoUOHonHjxmWeXbt2DWlpaXj77bdhZGQET09PjB8/Hjt27AAAHDx4EP7+/ggKCoJIJEL//v3Rrl077NmzR6UYlKoKpVA83pJxdHRUaXIiIiIiotruyRdxUyc7HUdSeQwSiaTSHYT69eujZcuWOH/+PIyNjbFt27Yyzx8+fAgnJycYGRk9/czV1RWbNm0CAERGRsLd3b3MGFdXV9y7d0+l2FUqN/vVV1+pNDkRERERUV3R8ovBug4BAKCvrw+RqOzX9NDQUEyYMKHC99etW4egoKBK5yssLIRYLC7zmVgsRlFRUaXPTUxMnj5XllKJhampKTw8PFSamIiIiIiorigpKYGBgQH09XV/U0AkEpXZXQCAgIAA3L9/X635TE1NUVxcXOaz4uJimJmZAXicZEgkkjLPJRLJ0+fKUiqx0NfXh6mpqUoTExERERGR7rm5uSE2NhZyufzpTkhkZCTc3NwAAO7u7rhz506ZMZGRkWjVqpVK6+g+JSMiIiIiohoTEBCAevXqYcWKFZBKpbh37x62b9+OESNGAAAGDRqE4OBgnDhxAnK5HCdOnEBwcDAGD1btaBgTCyIiIiKiF5hIJMLWrVvx4MEDdOrUCVOnTsX48eMxbNgwAICLiwvWrVuHjRs3ol27dli/fj3WrFkDJycnldbREwRBqIk/ABERERERvTy4Y0FERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBpjYkFERERERBr7P/Rd4nBoqi+GAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(10, 10))\n", "plt.style.use('seaborn-whitegrid')\n", "\n", "divider = make_axes_locatable(ax)\n", "cax = divider.append_axes(\"right\", size=\"5%\", pad=0)\n", "\n", "median_errors.to_crs(epsg=2272).plot(\n", " ax=ax, \n", " column=\"percent_error\", \n", " vmin=-100, \n", " vmax=100, \n", " legend=True, \n", " cax=cax, \n", " cmap='PiYG', \n", " edgecolor='k', \n", " linewidth=0.5)\n", "\n", "ax.set_title('Median % Error by Census Tract', fontsize=16)\n", "ax.set_facecolor(\"black\")\n", "ax.set_xticks([])\n", "ax.set_yticks([])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (8) Compare the percent errors in Qualifying Census Tracts and other tracts " ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [], "source": [ "qct = ['5',\n", " '20',\n", " '22',\n", " '28.01',\n", " '30.01',\n", " '30.02',\n", " '31',\n", " '32',\n", " '33',\n", " '36',\n", " '37.01',\n", " '37.02',\n", " '39.01',\n", " '41.01',\n", " '41.02',\n", " '56',\n", " '60',\n", " '61',\n", " '62',\n", " '63',\n", " '64',\n", " '65',\n", " '66',\n", " '67',\n", " '69',\n", " '70',\n", " '71.01',\n", " '71.02',\n", " '72',\n", " '73',\n", " '74',\n", " '77',\n", " '78',\n", " '80',\n", " '81.01',\n", " '81.02',\n", " '82',\n", " '83.01',\n", " '83.02',\n", " '84',\n", " '85',\n", " '86.01',\n", " '86.02',\n", " '87.01',\n", " '87.02',\n", " '88.01',\n", " '88.02',\n", " '90',\n", " '91',\n", " '92',\n", " '93',\n", " '94',\n", " '95',\n", " '96',\n", " '98.01',\n", " '100',\n", " '101',\n", " '102',\n", " '103',\n", " '104',\n", " '105',\n", " '106',\n", " '107',\n", " '108',\n", " '109',\n", " '110',\n", " '111',\n", " '112',\n", " '113',\n", " '119',\n", " '121',\n", " '122.01',\n", " '122.03',\n", " '131',\n", " '132',\n", " '137',\n", " '138',\n", " '139',\n", " '140',\n", " '141',\n", " '144',\n", " '145',\n", " '146',\n", " '147',\n", " '148',\n", " '149',\n", " '151.01',\n", " '151.02',\n", " '152',\n", " '153',\n", " '156',\n", " '157',\n", " '161',\n", " '162',\n", " '163',\n", " '164',\n", " '165',\n", " '167.01',\n", " '167.02',\n", " '168',\n", " '169.01',\n", " '169.02',\n", " '170',\n", " '171',\n", " '172.01',\n", " '172.02',\n", " '173',\n", " '174',\n", " '175',\n", " '176.01',\n", " '176.02',\n", " '177.01',\n", " '177.02',\n", " '178',\n", " '179',\n", " '180.02',\n", " '188',\n", " '190',\n", " '191',\n", " '192',\n", " '195.01',\n", " '195.02',\n", " '197',\n", " '198',\n", " '199',\n", " '200',\n", " '201.01',\n", " '201.02',\n", " '202',\n", " '203',\n", " '204',\n", " '205',\n", " '206',\n", " '208',\n", " '239',\n", " '240',\n", " '241',\n", " '242',\n", " '243',\n", " '244',\n", " '245',\n", " '246',\n", " '247',\n", " '249',\n", " '252',\n", " '253',\n", " '265',\n", " '267',\n", " '268',\n", " '271',\n", " '274.01',\n", " '274.02',\n", " '275',\n", " '276',\n", " '277',\n", " '278',\n", " '279.01',\n", " '279.02',\n", " '280',\n", " '281',\n", " '282',\n", " '283',\n", " '284',\n", " '285',\n", " '286',\n", " '287',\n", " '288',\n", " '289.01',\n", " '289.02',\n", " '290',\n", " '291',\n", " '293',\n", " '294',\n", " '298',\n", " '299',\n", " '300',\n", " '301',\n", " '302',\n", " '305.01',\n", " '305.02',\n", " '309',\n", " '311.01',\n", " '312',\n", " '313',\n", " '314.01',\n", " '314.02',\n", " '316',\n", " '318',\n", " '319',\n", " '321',\n", " '325',\n", " '329',\n", " '330',\n", " '337.01',\n", " '345.01',\n", " '357.01',\n", " '376',\n", " '377',\n", " '380',\n", " '381',\n", " '382',\n", " '383',\n", " '389',\n", " '390']" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
geometryOBJECTIDSTATEFP10COUNTYFP10TRACTCE10GEOID10NAME10NAMELSAD10MTFCC10FUNCSTAT10ALAND10AWATER10INTPTLAT10INTPTLON10LOGRECNOpercent_errorqct
0POLYGON ((-75.22927 39.96054, -75.22865 39.960...1421010094004210100940094Census Tract 94G5020S3667170+39.9632709-075.232243710429-28.483425True
1POLYGON ((-75.23536 39.96852, -75.23545 39.969...2421010095004210100950095Census Tract 95G5020S3190700+39.9658709-075.237914010430-4.364571True
2POLYGON ((-75.24343 39.96230, -75.24339 39.962...3421010096004210100960096Census Tract 96G5020S4052730+39.9655396-075.2435075104311.496405True
3POLYGON ((-75.17341 39.97779, -75.17386 39.977...44210101380042101013800138Census Tract 138G5020S3412560+39.9764504-075.177177110468-0.496751True
4POLYGON ((-75.17313 39.97776, -75.17321 39.977...54210101390042101013900139Census Tract 139G5020S5629340+39.9750563-075.1711846104695.325533True
5POLYGON ((-75.16141 39.97044, -75.16056 39.970...64210101400042101014000140Census Tract 140G5020S4398020+39.9735358-075.163096610470-5.708610True
6POLYGON ((-75.15719 39.96959, -75.15609 39.969...74210101410042101014100141Census Tract 141G5020S5621320+39.9708771-075.1524555104710.795801True
7POLYGON ((-75.13330 39.96102, -75.13084 39.959...84210101420042101014200142Census Tract 142G5020S789935277434+39.9652375-075.135961210472-2.017550False
8POLYGON ((-75.12110 39.96858, -75.12225 39.970...94210101430042101014300143Census Tract 143G5020S570015282808+39.9671225-075.1265617104730.547336False
9POLYGON ((-75.13574 39.96880, -75.13536 39.968...104210101440042101014400144Census Tract 144G5020S6094390+39.9722286-075.140095210474-6.826711True
10POLYGON ((-75.14936 39.97327, -75.14887 39.973...114210101450042101014500145Census Tract 145G5020S3214640+39.9760715-075.148418910475-25.153196True
11POLYGON ((-75.15224 39.97954, -75.15381 39.979...124210101460042101014600146Census Tract 146G5020S4450480+39.9764305-075.1546990104760.189507True
12POLYGON ((-75.16018 39.97608, -75.15947 39.975...134210101470042101014700147Census Tract 147G5020S3376770+39.9785489-075.16202441047729.350075True
13POLYGON ((-75.18786 39.98112, -75.18701 39.981...154210101490042101014900149Census Tract 149G5020S4532210+39.9816503-075.180402910479-16.192611True
14POLYGON ((-75.17226 39.98999, -75.17236 39.990...164210101520042101015200152Census Tract 152G5020S6691010+39.9854546-075.17004911048213.214748True
15POLYGON ((-75.16362 39.98725, -75.16419 39.987...174210101530042101015300153Census Tract 153G5020S4691360+39.9837644-075.1608849104833.407297True
16POLYGON ((-75.13941 39.97634, -75.13911 39.977...184210101560042101015600156Census Tract 156G5020S4295670+39.9790066-075.1418910104840.716415True
17POLYGON ((-75.09490 40.01049, -75.09489 40.010...194210101900042101019000190Census Tract 190G5020S77860612639+40.0095015-075.098613610517-12.446702True
18POLYGON ((-75.10715 40.01674, -75.10724 40.016...204210101910042101019100191Census Tract 191G5020S143910120770+40.0095510-075.107182010518-11.764962True
19POLYGON ((-75.10760 39.99967, -75.10645 40.000...214210101920042101019200192Census Tract 192G5020S6569130+40.0006393-075.115064810519-7.094655True
20POLYGON ((-75.13586 40.01199, -75.13554 40.013...224210101970042101019700197Census Tract 197G5020S4505870+40.0162799-075.1379372105220.781220True
21POLYGON ((-75.13672 40.00803, -75.13661 40.008...234210101980042101019800198Census Tract 198G5020S5410060+40.0107245-075.142147210523-17.533019True
22POLYGON ((-75.13886 40.00322, -75.13821 40.003...244210101990042101019900199Census Tract 199G5020S6618840+40.0048515-075.1435463105244.032752True
23POLYGON ((-75.16429 40.00308, -75.16385 40.003...264210102020042101020200202Census Tract 202G5020S7568140+40.0081282-075.162160910528-14.570002True
24POLYGON ((-75.14955 40.01788, -75.15031 40.017...274210102030042101020300203Census Tract 203G5020S5081760+40.0125820-075.149592210529-20.682314True
25POLYGON ((-75.14955 40.01788, -75.14935 40.017...284210102040042101020400204Census Tract 204G5020S4073720+40.0198216-075.1525117105302.897500True
26POLYGON ((-75.17404 40.01697, -75.17486 40.016...294210102050042101020500205Census Tract 205G5020S14295100+40.0158738-075.164360710531-6.760222True
27POLYGON ((-75.18196 40.02554, -75.18251 40.025...304210102060042101020600206Census Tract 206G5020S129584856842+40.0198000-075.1827740105327.447321True
28POLYGON ((-75.18953 39.94521, -75.18959 39.945...31421010013004210100130013Census Tract 13G5020S72788960713+39.9445258-075.186205010354-4.895036False
29POLYGON ((-75.16582 39.94254, -75.16578 39.942...32421010014004210100140014Census Tract 14G5020S3158320+39.9429436-075.171593010355-1.435920False
30POLYGON ((-75.16549 39.94366, -75.16558 39.943...33421010015004210100150015Census Tract 15G5020S2393830+39.9419037-075.1591158103566.472638False
31POLYGON ((-75.15119 39.94189, -75.15156 39.941...34421010016004210100160016Census Tract 16G5020S1963920+39.9402546-075.148312710357-1.873941False
32POLYGON ((-75.14347 39.93873, -75.14388 39.938...35421010017004210100170017Census Tract 17G5020S2215300+39.9377593-075.148311410358-9.286836False
33POLYGON ((-75.16591 39.94182, -75.16599 39.941...36421010018004210100180018Census Tract 18G5020S2424830+39.9399998-075.1593091103597.344322False
34POLYGON ((-75.16636 39.94004, -75.16628 39.940...37421010019004210100190019Census Tract 19G5020S3283270+39.9400454-075.1722270103600.397539False
35POLYGON ((-75.18855 39.93846, -75.18859 39.938...38421010020004210100200020Census Tract 20G5020S2893680+39.9381416-075.1843145103610.457820True
36POLYGON ((-75.17370 39.93624, -75.17369 39.936...39421010021004210100210021Census Tract 21G5020S2375190+39.9372214-075.1768955103629.588574False
37POLYGON ((-75.17370 39.93624, -75.17378 39.935...40421010022004210100220022Census Tract 22G5020S2286960+39.9364111-075.1703923103630.336966True
38POLYGON ((-75.16702 39.93675, -75.16709 39.936...41421010023004210100230023Census Tract 23G5020S2123790+39.9348217-075.162979910364-5.145292False
39POLYGON ((-75.16629 39.94004, -75.16636 39.940...42421010024004210100240024Census Tract 24G5020S5354210+39.9367634-075.159510010365-2.593394False
40POLYGON ((-75.14526 39.93557, -75.14574 39.935...43421010025004210100250025Census Tract 25G5020S3986970+39.9342960-075.1498023103660.196975False
41POLYGON ((-75.16758 39.93415, -75.16764 39.934...44421010029004210100290029Census Tract 29G5020S3702170+39.9306984-075.165572910371-0.395551False
42POLYGON ((-75.17520 39.92930, -75.17512 39.929...45421010031004210100310031Census Tract 31G5020S3959080+39.9323428-075.17795721037410.274746True
43POLYGON ((-75.24623 39.88951, -75.24585 39.889...47421010054004210100540054Census Tract 54G5020S1846253530013+39.8904539-075.251392310390-2.210262False
44POLYGON ((-75.25129 39.90441, -75.25179 39.903...48421010055004210100550055Census Tract 55G5020S116844212010+39.9074191-075.248917410391-5.311483False
45POLYGON ((-75.24184 39.90384, -75.24196 39.903...49421010056004210100560056Census Tract 56G5020S8404110+39.8988328-075.244734710392-30.677980True
46POLYGON ((-75.23342 39.91385, -75.23369 39.914...50421010060004210100600060Census Tract 60G5020S10896570+39.9115196-075.238157010393-18.971237True
47POLYGON ((-75.22664 39.91909, -75.22684 39.919...51421010061004210100610061Census Tract 61G5020S5342010+39.9150013-075.228809410394-19.117393True
48POLYGON ((-75.23679 39.92091, -75.23722 39.920...52421010062004210100620062Census Tract 62G5020S5096360+39.9194134-075.233525710395-12.073787True
49POLYGON ((-75.23650 39.92112, -75.23570 39.921...53421010063004210100630063Census Tract 63G5020S5556020+39.9210843-075.239976210396-14.907015True
50POLYGON ((-75.24701 39.96668, -75.24685 39.967...544210101000042101010000100Census Tract 100G5020S4976950+39.9710834-075.250375910434-5.723260True
51POLYGON ((-75.23914 39.96990, -75.23905 39.969...554210101010042101010100101Census Tract 101G5020S6014370+39.9721396-075.242529010435-14.034667True
52POLYGON ((-75.23536 39.96852, -75.23535 39.968...564210101020042101010200102Census Tract 102G5020S3606180+39.9680830-075.231670110436-33.474588True
53POLYGON ((-75.22245 39.96654, -75.22262 39.967...574210101030042101010300103Census Tract 103G5020S2813570+39.9678322-075.225438310437-12.701675True
54POLYGON ((-75.22262 39.96735, -75.22245 39.966...584210101040042101010400104Census Tract 104G5020S4720510+39.9654995-075.21911931043832.211146True
55POLYGON ((-75.21619 39.96249, -75.21700 39.959...594210101050042101010500105Census Tract 105G5020S6577660+39.9665652-075.214201810439-17.271596True
56POLYGON ((-75.20622 39.96255, -75.20558 39.962...604210101060042101010600106Census Tract 106G5020S2654660+39.9646327-075.20792131044033.617311True
57POLYGON ((-75.20233 39.96321, -75.20231 39.963...614210101070042101010700107Census Tract 107G5020S4604750+39.9687475-075.206944210441-19.514391True
58POLYGON ((-75.19851 39.96945, -75.20372 39.970...624210101080042101010800108Census Tract 108G5020S5857320+39.9660217-075.198989010442-7.282077True
59POLYGON ((-75.18803 39.96330, -75.18742 39.963...634210101090042101010900109Census Tract 109G5020S2481680+39.9649286-075.191765010443-0.381349True
60POLYGON ((-75.19881 39.97473, -75.19900 39.974...644210101100042101011000110Census Tract 110G5020S4728680+39.9737291-075.206295110444-41.775108True
61POLYGON ((-75.21331 39.97723, -75.21347 39.977...654210101110042101011100111Census Tract 111G5020S13014110+39.9752003-075.221574510445-6.039793True
62POLYGON ((-75.23799 39.97297, -75.23774 39.971...664210101120042101011200112Census Tract 112G5020S5031620+39.9736041-075.233653310446-5.931811True
63POLYGON ((-75.23769 39.97621, -75.23681 39.976...674210101130042101011300113Census Tract 113G5020S3348990+39.9786554-075.235334610447-26.679157True
64POLYGON ((-75.23869 39.97674, -75.23879 39.977...684210101140042101011400114Census Tract 114G5020S9729470+39.9807388-075.244017810448-9.134455False
65POLYGON ((-75.13507 39.97432, -75.13463 39.974...694210101570042101015700157Census Tract 157G5020S4852110+39.9780463-075.135524210485-0.844052True
66POLYGON ((-75.12275 39.97373, -75.12260 39.973...704210101580042101015800158Census Tract 158G5020S5802180+39.9735773-075.129432710486-1.826133False
67POLYGON ((-75.11997 39.97592, -75.11977 39.976...714210101600042101016000160Census Tract 160G5020S7208390+39.9793809-075.123190310487-0.568044False
68POLYGON ((-75.12242 39.98701, -75.12292 39.987...724210101610042101016100161Census Tract 161G5020S7075860+39.9844571-075.127525010488-0.903024True
69POLYGON ((-75.14284 39.98620, -75.14350 39.986...734210101620042101016200162Census Tract 162G5020S3649830+39.9840197-075.13842171048918.247338True
70POLYGON ((-75.13952 39.98652, -75.13957 39.986...744210101630042101016300163Census Tract 163G5020S5722260+39.9885061-075.13391561049036.390551True
71POLYGON ((-75.13952 39.98652, -75.13935 39.987...754210101640042101016400164Census Tract 164G5020S4850260+39.9896437-075.143166510491-29.717494True
72POLYGON ((-75.15274 39.99204, -75.15283 39.991...764210101650042101016500165Census Tract 165G5020S3947130+39.9890550-075.149172310492-4.442377True
73POLYGON ((-75.15092 39.98561, -75.15020 39.985...774210101660042101016600166Census Tract 166G5020S2611330+39.9890491-075.15360621049397.745219False
74POLYGON ((-75.17226 39.98999, -75.17214 39.989...784210101680042101016800168Census Tract 168G5020S5813010+39.9917820-075.1676540104960.874835True
75POLYGON ((-75.17708 39.92022, -75.17637 39.920...79421010039014210100390139.01Census Tract 39.01G5020S4203970+39.9238262-075.173285410381-10.967569True
76POLYGON ((-75.18600 39.99013, -75.18590 39.990...804210101690242101016902169.02Census Tract 169.02G5020S5637000+39.9939857-075.183193410498-22.371243True
77POLYGON ((-75.17117 39.99417, -75.17112 39.994...814210101690142101016901169.01Census Tract 169.01G5020S5129070+39.9930523-075.175839410497-7.814054True
78POLYGON ((-75.19134 40.00791, -75.19052 40.008...824210102070042101020700207Census Tract 207G5020S142827499543+40.0126929-075.194486710533-0.588830False
79POLYGON ((-75.18251 40.02533, -75.18196 40.025...834210102080042101020800208Census Tract 208G5020S8806470+40.0213151-075.193614010534-13.650912True
80POLYGON ((-75.21465 40.01787, -75.21431 40.017...844210102090042101020900209Census Tract 209G5020S50995335428+40.0186576-075.208979510535-5.828652False
81POLYGON ((-75.21951 40.02186, -75.21940 40.021...854210102100042101021000210Census Tract 210G5020S85822355719+40.0244730-075.215104510536-2.580233False
82POLYGON ((-75.20876 40.03111, -75.20880 40.031...864210102110042101021100211Census Tract 211G5020S5403130+40.0264564-075.206529310537-9.755634False
83POLYGON ((-75.20876 40.03111, -75.20872 40.031...874210102120042101021200212Census Tract 212G5020S5157050+40.0348390-075.212533710538-3.100734False
84POLYGON ((-75.22585 40.03352, -75.22537 40.032...884210102130042101021300213Census Tract 213G5020S5388760+40.0322339-075.218117510539-1.381236False
85POLYGON ((-75.22671 40.02536, -75.22614 40.025...894210102140042101021400214Census Tract 214G5020S60713856535+40.0279290-075.224082710540-3.818832False
86POLYGON ((-75.22746 40.03047, -75.22679 40.030...904210102150042101021500215Census Tract 215G5020S100327940236+40.0350417-075.228824910541-1.113070False
87POLYGON ((-75.24481 40.04580, -75.24487 40.045...914210102160042101021600216Census Tract 216G5020S1991850111706+40.0436758-075.2403985105423.528908False
88POLYGON ((-75.17771 40.03655, -75.17876 40.035...924210102410042101024100241Census Tract 241G5020S4078550+40.0332734-075.17591751055428.297371True
89POLYGON ((-75.16456 40.02845, -75.16436 40.028...934210102420042101024200242Census Tract 242G5020S5320600+40.0285110-075.16970861055517.469982True
90POLYGON ((-75.16448 40.02131, -75.16459 40.021...944210102430042101024300243Census Tract 243G5020S6790350+40.0215855-075.17103761055610.539242True
91POLYGON ((-75.16058 40.02673, -75.16098 40.027...954210102440042101024400244Census Tract 244G5020S4211890+40.0248284-075.163892510557-1.015023True
92POLYGON ((-75.16166 40.02793, -75.16143 40.027...964210102450042101024500245Census Tract 245G5020S8010010+40.0333286-075.162046310558-2.899402True
93POLYGON ((-75.17638 40.03774, -75.17615 40.037...974210102460042101024600246Census Tract 246G5020S6212640+40.0409623-075.172901610559114.323202True
94POLYGON ((-75.16208 40.03817, -75.16127 40.038...984210102470042101024700247Census Tract 247G5020S9412660+40.0417034-075.164531110560-29.379893True
95POLYGON ((-75.16885 40.04796, -75.16927 40.048...994210102480042101024800248Census Tract 248G5020S3192630+40.0468442-075.166881810561-2.803607False
96POLYGON ((-75.15807 40.04747, -75.15806 40.047...1004210102490042101024900249Census Tract 249G5020S3251980+40.0511009-075.160116710562-11.981156True
97POLYGON ((-75.17573 40.04134, -75.17336 40.043...1014210102520042101025200252Census Tract 252G5020S9524230+40.0468352-075.1771588105631.875159True
98POLYGON ((-75.18392 40.04922, -75.18376 40.048...1024210102530042101025300253Census Tract 253G5020S5812980+40.0542198-075.1822200105645.655480True
99POLYGON ((-75.17515 40.05685, -75.17476 40.057...1034210102540042101025400254Census Tract 254G5020S7697600+40.0604202-075.176071810565-8.012850False
100POLYGON ((-75.17916 40.06333, -75.17842 40.064...1044210102550042101025500255Census Tract 255G5020S7666030+40.0625796-075.184064010566-2.798363False
101POLYGON ((-75.19188 40.06127, -75.19129 40.060...1054210102560042101025600256Census Tract 256G5020S8639971979+40.0683411-075.1883025105673.395974False
102POLYGON ((-75.14169 40.02076, -75.14159 40.020...1064210102830042101028300283Census Tract 283G5020S6730670+40.0260505-075.14385251059727.932818True
103POLYGON ((-75.13571 40.02392, -75.13555 40.026...1074210102840042101028400284Census Tract 284G5020S4924510+40.0251577-075.138128710598-16.882161True
104POLYGON ((-75.13527 40.02919, -75.13541 40.027...1084210102850042101028500285Census Tract 285G5020S2670060+40.0287154-075.133735910599-13.709877True
105POLYGON ((-75.12197 40.03373, -75.12223 40.033...1094210102860042101028600286Census Tract 286G5020S7178450+40.0285757-075.127644810600-22.694345True
106POLYGON ((-75.12882 40.02450, -75.13037 40.024...1104210102870042101028700287Census Tract 287G5020S3409720+40.0218194-075.131440210601-5.545978True
107POLYGON ((-75.12549 40.02504, -75.12587 40.024...1114210102880042101028800288Census Tract 288G5020S4420010+40.0222841-075.124056210602-1.733512True
108POLYGON ((-75.11321 40.03645, -75.11403 40.035...1124210102900042101029000290Census Tract 290G5020S81813320001+40.0296096-075.116605810605-14.893101True
109POLYGON ((-75.10460 40.02979, -75.10437 40.029...1134210102910042101029100291Census Tract 291G5020S13275500+40.0361323-075.1074594106063.324310True
110POLYGON ((-75.10613 40.02930, -75.10643 40.029...1144210102920042101029200292Census Tract 292G5020S173284728953+40.0249561-075.1021580106073.562461False
111POLYGON ((-75.09500 40.00999, -75.09487 40.009...1154210102930042101029300293Census Tract 293G5020S6856410+40.0137540-075.091765510608-1.940667True
112POLYGON ((-75.09007 40.00429, -75.09005 40.004...1164210102940042101029400294Census Tract 294G5020S6476470+40.0094789-075.0854721106090.702318True
113POLYGON ((-75.06741 40.02012, -75.06752 40.020...1174210102980042101029800298Census Tract 298G5020S6491550+40.0159529-075.067801310610-12.114099True
114POLYGON ((-75.04135 40.06474, -75.04142 40.064...1184210103330042101033300333Census Tract 333G5020S10115660+40.0550147-075.0440558106444.914154False
115POLYGON ((-75.04483 40.05900, -75.04482 40.059...1194210103340042101033400334Census Tract 334G5020S12184340+40.0535052-075.0529610106451.760306False
116POLYGON ((-75.05947 40.05226, -75.05887 40.052...1204210103350042101033500335Census Tract 335G5020S9427930+40.0546014-075.064867710646-1.208627False
117POLYGON ((-75.05594 40.05600, -75.05535 40.056...1214210103360042101033600336Census Tract 336G5020S11536390+40.0614785-075.059235010647-2.485250False
118POLYGON ((-75.06580 40.06781, -75.06736 40.068...1224210103380042101033800338Census Tract 338G5020S14002200+40.0626481-075.073644010650-2.056393False
119POLYGON ((-75.09495 40.06796, -75.09322 40.066...1234210103390042101033900339Census Tract 339G5020S11411560+40.0685560-075.087341810651-5.321420False
120POLYGON ((-75.06756 40.07514, -75.06756 40.075...1244210103400042101034000340Census Tract 340G5020S763893729+40.0711759-075.073500710652-0.966848False
121POLYGON ((-75.07626 40.08061, -75.07712 40.081...1254210103410042101034100341Census Tract 341G5020S13332670+40.0763415-075.080693810653-1.982391False
122POLYGON ((-75.06698 40.07628, -75.06618 40.077...1264210103420042101034200342Census Tract 342G5020S10007680+40.0825947-075.0721585106540.684413False
123POLYGON ((-75.04609 40.08385, -75.04149 40.087...1284210103440042101034400344Census Tract 344G5020S339917113905+40.0943325-075.056441910655-2.981204False
124POLYGON ((-75.01953 40.06559, -75.01947 40.065...1294210103460042101034600346Census Tract 346G5020S18536695746+40.0708314-075.020726410658-3.818366False
125POLYGON ((-75.24749 39.91925, -75.24746 39.919...130421010064004210100640064Census Tract 64G5020S64536816097+39.9251805-075.242839610397-20.376464True
126POLYGON ((-75.23666 39.93355, -75.23672 39.933...131421010065004210100650065Census Tract 65G5020S111128329425+39.9330955-075.231840610398-10.172312True
127POLYGON ((-75.22415 39.92980, -75.22278 39.930...132421010066004210100660066Census Tract 66G5020S6512440+39.9293155-075.229842510399-35.668947True
128POLYGON ((-74.96172 40.09772, -74.96179 40.097...1334210103630142101036301363.01Census Tract 363.01G5020S232273266075+40.0895349-074.966738710681-2.438852False
129POLYGON ((-74.97780 40.10710, -74.97381 40.110...1344210103640042101036400364Census Tract 364G5020S45011108014+40.1127747-074.97891371068414.808986False
130POLYGON ((-75.14147 39.95171, -75.14150 39.951...1354210103660042101036600366Census Tract 366G5020S10043131426278+39.9470272-075.140447210687-1.544221False
131POLYGON ((-75.00888 40.05866, -75.00880 40.058...1364210103480342101034803348.03Census Tract 348.03G5020S12715338021+40.0619427-075.0023705106630.121130False
132POLYGON ((-75.02543 40.06566, -75.02587 40.065...1374210103470242101034702347.02Census Tract 347.02G5020S10162060+40.0570427-075.028328810660-0.357857False
133POLYGON ((-74.97517 40.08998, -74.97607 40.090...1384210103620242101036202362.02Census Tract 362.02G5020S11161152329+40.0838623-074.9781805106792.538063False
134POLYGON ((-75.17772 39.91765, -75.17771 39.917...139421010038004210100380038Census Tract 38G5020S10891540+39.9184658-075.183132310380-6.701772False
135POLYGON ((-75.24001 39.95588, -75.23991 39.956...140421010083024210100830283.02Census Tract 83.02G5020S4252340+39.9566981-075.2414378104161.125435True
136POLYGON ((-75.13012 39.99458, -75.12872 39.993...1414210101760242101017602176.02Census Tract 176.02G5020S4004580+39.9967182-075.13055281050715.249996True
137POLYGON ((-75.15034 39.94374, -75.15043 39.943...142421010010024210100100210.02Census Tract 10.02G5020S4716620+39.9450045-075.1466193103494.141022False
138POLYGON ((-75.15313 39.94579, -75.15318 39.945...143421010010014210100100110.01Census Tract 10.01G5020S2293990+39.9456722-075.15160201034813.199580False
139POLYGON ((-75.16333 39.95334, -75.16319 39.953...14442101000402421010004024.02Census Tract 4.02G5020S3036800+39.9532973-075.1686952103396.703593False
140POLYGON ((-75.17299 39.95464, -75.17295 39.954...14542101000401421010004014.01Census Tract 4.01G5020S21476614981+39.9541871-075.175808210338-0.132608False
141POLYGON ((-75.21048 40.00225, -75.21114 40.002...1464210101220442101012204122.04Census Tract 122.04G5020S84929056473+40.0009407-075.212076910457-58.939033False
142POLYGON ((-75.17464 39.97083, -75.17453 39.971...1484210101360242101013602136.02Census Tract 136.02G5020S2347320+39.9715714-075.179809710466-3.723740False
143POLYGON ((-75.03666 40.07860, -75.03676 40.079...1494210103450142101034501345.01Census Tract 345.01G5020S4474690+40.0749091-075.039208910656-1.062127True
144POLYGON ((-75.04652 40.08352, -75.04751 40.082...1504210103450242101034502345.02Census Tract 345.02G5020S10092690+40.0814446-075.038381110657-9.017654False
145POLYGON ((-75.15383 39.94261, -75.15377 39.942...151421010011024210100110211.02Census Tract 11.02G5020S2040620+39.9442654-075.1566960103514.520879False
146POLYGON ((-75.15309 39.94600, -75.15303 39.946...15242101000902421010009029.02Census Tract 9.02G5020S1551640+39.9471596-075.156638910347-16.330279False
147POLYGON ((-75.16427 39.94935, -75.16434 39.949...15342101000901421010009019.01Census Tract 9.01G5020S1055100+39.9478866-075.1623004103462.410632False
148POLYGON ((-75.16690 39.99870, -75.16657 40.000...1544210101720142101017201172.01Census Tract 172.01G5020S2629580+39.9993972-075.1686145105014.350992True
149POLYGON ((-75.17077 40.00076, -75.17135 40.000...1554210101720242101017202172.02Census Tract 172.02G5020S2906100+39.9986670-075.1742061105022.329863True
150POLYGON ((-75.12698 40.03916, -75.12681 40.039...1564210102740142101027401274.01Census Tract 274.01G5020S3266590+40.0386049-075.128649610586-7.633243True
151POLYGON ((-75.15548 39.99877, -75.15523 39.998...1574210102010142101020101201.01Census Tract 201.01G5020S4835770+40.0036824-075.155307210526-14.998775True
152POLYGON ((-75.15243 40.01322, -75.15307 40.014...1584210102010242101020102201.02Census Tract 201.02G5020S3731250+40.0111415-075.154567610527-19.278670True
153POLYGON ((-75.07783 40.03901, -75.07740 40.039...1594210103110142101031101311.01Census Tract 311.01G5020S3496490+40.0422496-075.078544910622-3.852695True
154POLYGON ((-75.07900 40.03781, -75.07862 40.038...1604210103110242101031102311.02Census Tract 311.02G5020S3979730+40.0370850-075.0833729106230.696432False
155POLYGON ((-75.12755 40.00505, -75.12787 40.005...1614210101950242101019502195.02Census Tract 195.02G5020S3703020+40.0034030-075.130044510521-25.618501True
156POLYGON ((-75.13441 39.99922, -75.13383 39.999...1624210101950142101019501195.01Census Tract 195.01G5020S3938830+40.0004303-075.1316227105205.256058True
157POLYGON ((-75.11663 40.01697, -75.11748 40.015...1634210102890142101028901289.01Census Tract 289.01G5020S5986550+40.0171008-075.115182010603-21.357157True
158POLYGON ((-75.11285 40.02703, -75.11324 40.026...1644210102890242101028902289.02Census Tract 289.02G5020S7722946267+40.0216105-075.111687710604-8.722088True
159POLYGON ((-75.03799 40.03781, -75.03739 40.038...1654210103310142101033101331.01Census Tract 331.01G5020S4869540+40.0403093-075.037950510641-5.061989False
160POLYGON ((-75.02185 40.04369, -75.02175 40.043...1664210103310242101033102331.02Census Tract 331.02G5020S7182720+40.0451050-075.027286910642-6.179777False
161POLYGON ((-75.04254 40.03773, -75.04420 40.038...1674210103150142101031501315.01Census Tract 315.01G5020S5872420+40.0365919-075.048164210628-1.098926False
162POLYGON ((-75.10396 40.04083, -75.10463 40.040...1684210103050142101030501305.01Census Tract 305.01G5020S3773750+40.0428163-075.099435110615-1.256703True
163POLYGON ((-75.10457 40.05057, -75.10465 40.050...1694210103050242101030502305.02Census Tract 305.02G5020S6992460+40.0457206-075.104661910616-1.625548True
164POLYGON ((-75.25980 39.97482, -75.25981 39.974...170421010098024210100980298.02Census Tract 98.02G5020S6110260+39.9745879-075.267903710433-7.843760False
165POLYGON ((-75.11344 39.97706, -75.11333 39.976...1714210101800142101018001180.01Census Tract 180.01G5020S3873830+39.9810569-075.1128000105121.931959False
166POLYGON ((-75.12692 39.99184, -75.12711 39.991...1724210101770242101017702177.02Census Tract 177.02G5020S4892580+39.9950621-075.123139910509-26.741756True
167POLYGON ((-75.11099 39.99781, -75.11153 39.997...1734210101770142101017701177.01Census Tract 177.01G5020S2410530+39.9964470-075.116752610508-20.029203True
168POLYGON ((-75.04930 40.11221, -75.04939 40.112...1744210103560242101035602356.02Census Tract 356.02G5020S13948681863+40.1079419-075.0480601106712.739271False
169POLYGON ((-75.02889 40.10255, -75.02840 40.103...1754210103570142101035701357.01Census Tract 357.01G5020S598625718+40.1095846-075.028681110672-5.741369True
170POLYGON ((-75.04386 40.11601, -75.04422 40.115...1764210103570242101035702357.02Census Tract 357.02G5020S15591490+40.1130914-075.0374316106733.012652False
171POLYGON ((-75.03024 40.10340, -75.03300 40.105...1774210103560142101035601356.01Census Tract 356.01G5020S202970712498+40.0973908-075.0388184106704.171760False
172POLYGON ((-75.18672 39.99022, -75.18706 39.988...1784210101510142101015101151.01Census Tract 151.01G5020S1930720+39.9869632-075.185750210480-15.860193True
173POLYGON ((-75.17425 39.98757, -75.17403 39.988...1794210101510242101015102151.02Census Tract 151.02G5020S5565700+39.9861430-075.17942801048150.281056True
174POLYGON ((-75.02010 40.12637, -75.01780 40.125...1804210103650142101036501365.01Census Tract 365.01G5020S18160937168+40.1290877-075.0120077106857.327739False
175POLYGON ((-75.17248 39.96564, -75.17256 39.965...1824210101340242101013402134.02Census Tract 134.02G5020S2386120+39.9653623-075.169032610463-8.526030False
176POLYGON ((-75.17240 39.96597, -75.17227 39.966...1834210101340142101013401134.01Census Tract 134.01G5020S1640580+39.9659574-075.175250710462-2.533512False
177POLYGON ((-75.18160 39.96919, -75.18153 39.969...1844210101360142101013601136.01Census Tract 136.01G5020S1676250+39.9689697-075.178577410465-1.900403False
178POLYGON ((-75.08141 39.99327, -75.08093 39.993...1854210103790042101037900379Census Tract 379G5020S13745240+39.9910899-075.092715810696-6.208838False
179POLYGON ((-75.09266 40.00790, -75.09360 40.007...1864210103820042101038200382Census Tract 382G5020S182867125840+39.9963741-075.097364310699-8.740525True
180POLYGON ((-75.07369 40.00712, -75.07340 40.007...1874210103800042101038000380Census Tract 380G5020S8746020+40.0052279-075.080784510697-14.778370True
181POLYGON ((-75.02130 40.03380, -75.02141 40.033...1884210103810042101038100381Census Tract 381G5020S33350291629584+40.0189334-075.039956410698-24.459256True
182POLYGON ((-75.22845 40.06255, -75.22689 40.061...1894210103840042101038400384Census Tract 384G5020S25467850+40.0714163-075.233256810701-0.766874False
183POLYGON ((-75.14147 39.95171, -75.14146 39.952...19042101000100421010001001Census Tract 1G5020S7049090+39.9523827-075.1466628103356.049941False
184POLYGON ((-75.16238 39.95765, -75.16269 39.956...19142101000200421010002002Census Tract 2G5020S3824780+39.9553999-075.156977510336-17.430503False
185POLYGON ((-75.17820 39.95981, -75.17908 39.959...19242101000300421010003003Census Tract 3G5020S548342356+39.9568780-075.1716655103372.067224False
186POLYGON ((-75.17349 39.95206, -75.17417 39.952...19542101000700421010007007Census Tract 7G5020S2466827087+39.9510463-075.172914310342-1.380494False
187POLYGON ((-75.18703 39.93039, -75.18627 39.930...196421010032004210100320032Census Tract 32G5020S4917900+39.9333011-075.18541871037515.867917True
188POLYGON ((-75.20522 39.93833, -75.20330 39.937...197421010033004210100330033Census Tract 33G5020S106235472863+39.9384405-075.195825310376-0.894727True
189POLYGON ((-75.19032 39.92169, -75.19016 39.921...198421010036004210100360036Census Tract 36G5020S9645390+39.9279255-075.1920206103772.967617True
190POLYGON ((-75.17584 39.92643, -75.17574 39.926...199421010037014210100370137.01Census Tract 37.01G5020S3556190+39.9276728-075.1806654103780.240931True
191POLYGON ((-75.18170 39.92330, -75.18135 39.923...200421010037024210100370237.02Census Tract 37.02G5020S2474130+39.9245283-075.182435410379-16.682348True
192POLYGON ((-75.15560 39.92002, -75.15550 39.920...201421010041014210100410141.01Census Tract 41.01G5020S3740000+39.9229611-075.1589741103851.279948True
193POLYGON ((-75.17025 39.92189, -75.17031 39.921...202421010040024210100400240.02Census Tract 40.02G5020S3448370+39.9188943-075.167416010384-1.027703False
194POLYGON ((-75.17774 39.91758, -75.17801 39.916...203421010039024210100390239.02Census Tract 39.02G5020S4525960+39.9167178-075.174411910382-7.075766False
195POLYGON ((-75.16943 39.92560, -75.16950 39.925...204421010040014210100400140.01Census Tract 40.01G5020S3149520+39.9238035-075.166210210383-8.464785False
196POLYGON ((-75.15775 39.91501, -75.15749 39.914...205421010041024210100410241.02Census Tract 41.02G5020S3918540+39.9179425-075.160062910386-16.545385True
197POLYGON ((-75.15656 39.91558, -75.15664 39.915...206421010042024210100420242.02Census Tract 42.02G5020S4533430+39.9168570-075.151628410388-6.906539False
198POLYGON ((-75.14782 39.91901, -75.14788 39.919...207421010042014210100420142.01Census Tract 42.01G5020S3616790+39.9219554-075.151264010387-7.391153False
199POLYGON ((-75.21445 39.94893, -75.21399 39.948...208421010079004210100790079Census Tract 79G5020S3779500+39.9504630-075.218257010410-15.014932False
200POLYGON ((-75.22524 39.94776, -75.22495 39.947...209421010080004210100800080Census Tract 80G5020S4304710+39.9506613-075.2268423104114.095772True
201POLYGON ((-75.24005 39.94593, -75.23996 39.946...210421010082004210100820082Census Tract 82G5020S83233411136+39.9491574-075.244449410414-0.829833True
202MULTIPOLYGON (((-75.12709 39.99200, -75.12842 ...2114210101760142101017601176.01Census Tract 176.01G5020S5791270+39.9939260-075.134344810506-23.695819True
203POLYGON ((-75.24403 39.96237, -75.24471 39.962...212421010083014210100830183.01Census Tract 83.01G5020S5105576713+39.9577810-075.246738410415-9.149356True
204POLYGON ((-75.24014 39.95526, -75.23817 39.955...213421010084004210100840084Census Tract 84G5020S5017650+39.9579899-075.235468110417-0.551571True
205POLYGON ((-75.22979 39.96061, -75.23025 39.960...214421010085004210100850085Census Tract 85G5020S6214450+39.9568821-075.2265389104180.791753True
206POLYGON ((-75.19358 39.95870, -75.19364 39.958...215421010090004210100900090Census Tract 90G5020S4363190+39.9595116-075.19062451042510.551589True
207POLYGON ((-75.19358 39.95870, -75.19360 39.958...216421010091004210100910091Census Tract 91G5020S4255730+39.9594179-075.197724510426-12.963769True
208POLYGON ((-75.20236 39.96287, -75.20398 39.962...217421010092004210100920092Census Tract 92G5020S5120090+39.9601608-075.20747231042743.725932True
209POLYGON ((-75.22005 39.96383, -75.22098 39.964...218421010093004210100930093Census Tract 93G5020S4024750+39.9622914-075.224022510428-5.698546True
210POLYGON ((-75.22059 39.92906, -75.22111 39.929...219421010067004210100670067Census Tract 67G5020S10014670+39.9242475-075.224281610400-5.094152True
211POLYGON ((-75.21931 39.92802, -75.21768 39.927...220421010069004210100690069Census Tract 69G5020S704352102803+39.9306204-075.214652610401-21.848776True
212POLYGON ((-75.21706 39.93474, -75.21652 39.935...221421010070004210100700070Census Tract 70G5020S4690470+39.9351850-075.221477010402-2.133156True
213POLYGON ((-75.22890 39.94686, -75.22960 39.947...222421010072004210100720072Census Tract 72G5020S5026140+39.9446370-075.233216810405-5.871223True
214POLYGON ((-75.21882 39.94412, -75.21914 39.944...223421010073004210100730073Census Tract 73G5020S3872010+39.9448185-075.223291610406-16.865024True
215POLYGON ((-75.21315 39.93746, -75.21297 39.937...224421010074004210100740074Census Tract 74G5020S6759300+39.9408575-075.214306710407-22.897060True
216POLYGON ((-75.20714 39.94979, -75.20805 39.949...225421010077004210100770077Census Tract 77G5020S3222600+39.9463523-075.208258410408-26.667897True
217POLYGON ((-75.21714 39.94375, -75.21562 39.943...226421010078004210100780078Census Tract 78G5020S4274040+39.9464580-075.216263710409-7.774731True
218POLYGON ((-75.24834 39.97503, -75.24823 39.975...2274210101150042101011500115Census Tract 115G5020S3704560+39.9773687-075.251830310449-7.722469False
219POLYGON ((-75.23403 39.99475, -75.23413 39.995...2284210101170042101011700117Census Tract 117G5020S6540190+39.9919070-075.24043711045029.102039False
220POLYGON ((-75.22890 39.98045, -75.22879 39.980...2294210101180042101011800118Census Tract 118G5020S9151290+39.9852889-075.235739510451-7.417587False
221POLYGON ((-75.22567 39.99148, -75.22657 39.991...2304210101190042101011900119Census Tract 119G5020S6911110+39.9861142-075.228842910452-11.154815True
222POLYGON ((-75.22568 39.99326, -75.22568 39.994...2314210101200042101012000120Census Tract 120G5020S6006810+39.9955323-075.2297466104530.414495False
223POLYGON ((-75.22568 39.99326, -75.22568 39.993...2324210101210042101012100121Census Tract 121G5020S8767965378+39.9964998-075.222379510454-5.489692True
224POLYGON ((-75.18081 39.96136, -75.18060 39.961...2334210101250042101012500125Census Tract 125G5020S86481049075+39.9613701-075.1720837104588.981041False
225POLYGON ((-75.15302 39.96856, -75.15455 39.968...2354210101320042101013200132Census Tract 132G5020S4266710+39.9662042-075.1571335104606.489882True
226POLYGON ((-75.16131 39.96290, -75.16126 39.963...2364210101330042101013300133Census Tract 133G5020S3579320+39.9666126-075.162945510461-7.132618False
227POLYGON ((-75.17211 39.96729, -75.17135 39.967...2374210101350042101013500135Census Tract 135G5020S4048910+39.9693564-075.170036710464-3.031774False
228POLYGON ((-75.18898 39.97982, -75.18906 39.979...2384210101370042101013700137Census Tract 137G5020S5897380+39.9772752-075.184232310467-2.484967True
229POLYGON ((-75.17662 40.00610, -75.17543 40.006...2394210101700042101017000170Census Tract 170G5020S157037650400+40.0078614-075.18342041049912.294454True
230POLYGON ((-75.17689 40.00595, -75.17864 40.005...2404210101710042101017100171Census Tract 171G5020S11408820+40.0027449-075.176324810500-6.414933True
231POLYGON ((-75.15602 39.99884, -75.15680 39.998...2414210101730042101017300173Census Tract 173G5020S8745860+39.9985707-075.1609337105031.563287True
232POLYGON ((-75.14746 39.99467, -75.14708 39.996...2424210101740042101017400174Census Tract 174G5020S3539850+39.9962138-075.150358610504-23.672193True
233POLYGON ((-75.13930 40.00306, -75.13988 40.002...2434210101750042101017500175Census Tract 175G5020S7199156252+39.9979150-075.142984210505-11.175458True
234POLYGON ((-75.11077 39.99153, -75.11023 39.991...2444210101780042101017800178Census Tract 178G5020S6629050+39.9913734-075.11730631051016.273563True
235POLYGON ((-75.11561 39.98356, -75.11525 39.983...2454210101790042101017900179Census Tract 179G5020S7140080+39.9870535-075.1139340105111.269837True
236POLYGON ((-75.06802 39.98314, -75.06588 39.984...2464210101830042101018300183Census Tract 183G5020S1834680185387+39.9956035-075.074622510514-0.453995False
237POLYGON ((-75.06835 40.00693, -75.06851 40.007...2474210101840042101018400184Census Tract 184G5020S1285745949471+39.9996644-075.063736310515-1.902125False
238POLYGON ((-75.09843 39.99908, -75.09898 39.999...2484210101880042101018800188Census Tract 188G5020S6632880+39.9973659-075.105829610516-4.681943True
239POLYGON ((-75.22430 40.05119, -75.22716 40.052...2494210102170042101021700217Census Tract 217G5020S15595760+40.0450277-075.223945110543-0.786649False
240POLYGON ((-75.22790 40.06346, -75.22791 40.063...2504210102180042101021800218Census Tract 218G5020S9960880+40.0574759-075.23243531054417.822672False
241POLYGON ((-75.25415 40.04723, -75.25384 40.046...2514210102190042101021900219Census Tract 219G5020S141006951091+40.0505829-075.2470033105453.848418False
242POLYGON ((-75.25501 40.06271, -75.25669 40.061...2524210102200042101022000220Census Tract 220G5020S294401899558+40.0562177-075.252009210546-7.762015False
243POLYGON ((-75.20951 40.06645, -75.20675 40.064...2544210102310042101023100231Census Tract 231G5020S7328031270+40.0666637-075.203851410547-2.895957False
244POLYGON ((-75.20275 40.04351, -75.20298 40.043...2554210102350042101023500235Census Tract 235G5020S7754300+40.0394435-075.200792510548-11.775076False
245POLYGON ((-75.19800 40.03948, -75.19613 40.037...2564210102360042101023600236Census Tract 236G5020S9780960+40.0427145-075.194694010549-2.656722False
246POLYGON ((-75.18392 40.04922, -75.18397 40.049...2574210102370042101023700237Census Tract 237G5020S10729730+40.0487394-075.188606910550-3.023876False
247POLYGON ((-75.17863 40.04046, -75.17871 40.040...2584210102380042101023800238Census Tract 238G5020S7816300+40.0389370-075.182703810551-12.734679False
248POLYGON ((-75.18823 40.03119, -75.18821 40.031...2594210102390042101023900239Census Tract 239G5020S4860372704+40.0339713-075.18751151055216.872134True
249POLYGON ((-75.17473 40.02763, -75.17463 40.027...2604210102400042101024000240Census Tract 240G5020S6170800+40.0280807-075.17946231055317.537848True
250POLYGON ((-75.19879 40.06868, -75.19868 40.068...2614210102570042101025700257Census Tract 257G5020S7482050+40.0724586-075.196270810568-8.111865False
251POLYGON ((-75.18265 40.06942, -75.18252 40.069...2624210102580042101025800258Census Tract 258G5020S5867190+40.0739801-075.1823113105692.752852False
252POLYGON ((-75.17191 40.08200, -75.17294 40.082...2634210102590042101025900259Census Tract 259G5020S5494150+40.0799255-075.175976210570-0.911860False
253POLYGON ((-75.17394 40.07432, -75.17355 40.074...2644210102600042101026000260Census Tract 260G5020S5434330+40.0761235-075.169456010571-4.048673False
254POLYGON ((-75.16899 40.07148, -75.16935 40.071...2654210102610042101026100261Census Tract 261G5020S6493640+40.0704645-075.1755189105722.035811False
255POLYGON ((-75.17145 40.06300, -75.17118 40.062...2664210102620042101026200262Census Tract 262G5020S5559580+40.0664940-075.169217610573-4.637986False
256POLYGON ((-75.02119 40.06170, -75.02131 40.061...2674210103480142101034801348.01Census Tract 348.01G5020S13859635188+40.0545325-075.016310410661-2.327555False
257POLYGON ((-75.15411 40.06366, -75.15359 40.064...2684210102630242101026302263.02Census Tract 263.02G5020S7041120+40.0687425-075.157194510575-7.495340False
258POLYGON ((-75.16596 40.05983, -75.16577 40.059...2694210102640042101026400264Census Tract 264G5020S7968190+40.0625462-075.1620066105765.583378False
259POLYGON ((-75.15649 40.05453, -75.15556 40.054...2704210102650042101026500265Census Tract 265G5020S5459610+40.0587255-075.154692110577-11.851466True
260POLYGON ((-75.15233 40.06891, -75.15260 40.067...2714210102660042101026600266Census Tract 266G5020S9139820+40.0634828-075.147326610578-11.197781False
261POLYGON ((-75.14858 40.05139, -75.14701 40.051...2724210102670042101026700267Census Tract 267G5020S6438730+40.0547569-075.147924710579-0.056351True
262POLYGON ((-75.13655 40.06180, -75.13684 40.061...2734210102680042101026800268Census Tract 268G5020S7741740+40.0555270-075.139931210580-9.568275True
263POLYGON ((-75.07441 40.00959, -75.07237 40.010...2744210102990042101029900299Census Tract 299G5020S5914510+40.0131465-075.0747146106111.003766True
264POLYGON ((-75.07726 40.01498, -75.07668 40.015...2754210103000042101030000300Census Tract 300G5020S9108540+40.0186719-075.078088010612-4.032769True
265POLYGON ((-75.09061 40.02576, -75.09113 40.025...2764210103010042101030100301Census Tract 301G5020S7251130+40.0204947-075.088504610613-13.335852True
266POLYGON ((-75.08536 40.03110, -75.08575 40.030...2774210103020042101030200302Census Tract 302G5020S9017100+40.0259863-075.082312810614-14.667796True
267POLYGON ((-75.09772 40.05454, -75.09781 40.054...2784210103060042101030600306Census Tract 306G5020S10077990+40.0504922-075.094378710617-2.362736False
268POLYGON ((-75.08747 40.06359, -75.09130 40.059...2794210103070042101030700307Census Tract 307G5020S6533090+40.0573133-075.088539010618-5.020771False
269POLYGON ((-75.08231 40.04884, -75.08210 40.049...2804210103080042101030800308Census Tract 308G5020S7957040+40.0547831-075.081905610619-4.694828False
270POLYGON ((-75.08838 40.03987, -75.08857 40.039...2814210103090042101030900309Census Tract 309G5020S6450140+40.0437632-075.085191410620-10.264600True
271POLYGON ((-75.06669 40.05055, -75.06605 40.051...2824210103100042101031000310Census Tract 310G5020S10634110+40.0497292-075.074454110621-2.397965False
272POLYGON ((-75.07053 40.03563, -75.07090 40.035...2834210103120042101031200312Census Tract 312G5020S4297360+40.0354204-075.0774550106245.609273True
273POLYGON ((-75.06138 40.03816, -75.06155 40.038...2844210103130042101031300313Census Tract 313G5020S7111410+40.0393190-075.069814010625-5.179628True
274POLYGON ((-75.06433 40.03619, -75.06425 40.035...2854210103160042101031600316Census Tract 316G5020S7139530+40.0326126-075.0590717106302.221142True
275POLYGON ((-75.06437 40.03632, -75.06445 40.036...2864210103170042101031700317Census Tract 317G5020S8816890+40.0306050-075.068398910631-6.196284False
276POLYGON ((-74.96443 40.11728, -74.96461 40.117...2874210103630342101036303363.03Census Tract 363.03G5020S25558610+40.1051833-074.9702250106830.628662False
277POLYGON ((-75.02961 40.06813, -75.02966 40.068...2884210103470142101034701347.01Census Tract 347.01G5020S114819057+40.0645576-075.032978310659-5.667120False
278POLYGON ((-75.02119 40.06170, -75.02105 40.061...2894210103480242101034802348.02Census Tract 348.02G5020S12321828014+40.0687035-075.0097300106622.677935False
279POLYGON ((-75.00616 40.05372, -75.00789 40.052...2904210103490042101034900349Census Tract 349G5020S19440400+40.0453848-075.009076810664-6.229353False
280POLYGON ((-74.97479 40.04932, -74.97500 40.049...2914210103510042101035100351Census Tract 351G5020S997442666018+40.0488411-074.985971610665-11.757813False
281POLYGON ((-74.98437 40.05779, -74.98429 40.057...2924210103520042101035200352Census Tract 352G5020S183826427863+40.0559122-074.9907443106661.132265False
282POLYGON ((-74.98242 40.06552, -74.98242 40.065...2934210103530142101035301353.01Census Tract 353.01G5020S137522236973+40.0659313-074.993464610667-5.105023False
283POLYGON ((-75.15907 40.07353, -75.15876 40.073...2944210102630142101026301263.01Census Tract 263.01G5020S4063400+40.0728148-075.1637161105740.690688False
284POLYGON ((-75.16485 39.94701, -75.16475 39.947...29542101000804421010008048.04Census Tract 8.04G5020S1454530+39.9485646-075.167756310345-3.278851False
285POLYGON ((-75.16534 39.94467, -75.16531 39.944...296421010012024210100120212.02Census Tract 12.02G5020S3085600+39.9459117-075.169947510353-3.615042False
286POLYGON ((-75.18639 39.94658, -75.18617 39.946...297421010012014210100120112.01Census Tract 12.01G5020S32755530728+39.9471666-075.179872110352-8.685243False
287POLYGON ((-75.17742 39.95050, -75.17747 39.950...29842101000803421010008038.03Census Tract 8.03G5020S1528200+39.9493748-075.174248910344-18.112550False
288POLYGON ((-75.14758 39.92521, -75.14749 39.925...300421010027024210100270227.02Census Tract 27.02G5020S3676730+39.9280114-075.149560610368-4.322307False
289POLYGON ((-75.16842 39.93047, -75.16815 39.931...301421010030024210100300230.02Census Tract 30.02G5020S2269510+39.9327263-075.17119151037314.008897True
290POLYGON ((-75.16896 39.92804, -75.16882 39.928...302421010030014210100300130.01Census Tract 30.01G5020S2265470+39.9290640-075.171991210372-16.096610True
291POLYGON ((-75.16394 39.92947, -75.16472 39.928...303421010028024210100280228.02Census Tract 28.02G5020S3626900+39.9288001-075.161407310370-6.882610False
292POLYGON ((-75.15168 39.93038, -75.15160 39.930...305421010027014210100270127.01Census Tract 27.01G5020S2248400+39.9285526-075.153703310367-4.297669False
293POLYGON ((-75.04496 40.06511, -75.04616 40.065...3074210103370142101033701337.01Census Tract 337.01G5020S9736530+40.0672105-075.048298310648-5.027022True
294POLYGON ((-75.06923 40.07151, -75.06981 40.070...3084210103370242101033702337.02Census Tract 337.02G5020S10577980+40.0707532-075.057821210649-0.990185False
295POLYGON ((-75.05429 40.04446, -75.05493 40.043...3094210103150242101031502315.02Census Tract 315.02G5020S5781010+40.0392658-075.0548693106291.227284False
296POLYGON ((-75.06496 40.04107, -75.06492 40.041...3104210103140142101031401314.01Census Tract 314.01G5020S5948490+40.0457134-075.066572810626-3.860546True
297POLYGON ((-75.06138 40.03816, -75.06104 40.037...3114210103140242101031402314.02Census Tract 314.02G5020S5641360+40.0432797-075.060286010627-4.306613True
298POLYGON ((-75.16340 39.98722, -75.16318 39.987...3124210101670142101016701167.01Census Tract 167.01G5020S2540460+39.9911965-075.161901710494-20.854896True
299POLYGON ((-75.15718 39.98642, -75.15711 39.986...3134210101670242101016702167.02Census Tract 167.02G5020S3551030+39.9904175-075.1578177104959.204303True
300POLYGON ((-75.15810 40.04712, -75.15813 40.046...3144210102790142101027901279.01Census Tract 279.01G5020S4157800+40.0458879-075.154448210592-10.879808True
301POLYGON ((-75.15967 40.03508, -75.15782 40.033...3154210102790242101027902279.02Census Tract 279.02G5020S8897840+40.0374381-075.154308710593-11.712087True
302POLYGON ((-75.23110 39.94876, -75.23107 39.948...316421010081014210100810181.01Census Tract 81.01G5020S2437000+39.9483649-075.236050610412-6.157932True
303POLYGON ((-75.22343 39.94118, -75.22324 39.941...317421010071024210100710271.02Census Tract 71.02G5020S4157610+39.9409204-075.228251110404-28.313818True
304POLYGON ((-75.20942 39.95808, -75.20959 39.958...320421010087014210100870187.01Census Tract 87.01G5020S2595230+39.9535656-075.210498810421-4.326004True
305POLYGON ((-75.23080 39.95018, -75.23064 39.950...321421010081024210100810281.02Census Tract 81.02G5020S3625260+39.9522216-075.234558410413-9.753120True
306POLYGON ((-75.21896 39.95927, -75.21918 39.959...322421010086024210100860286.02Census Tract 86.02G5020S3691420+39.9569725-075.21670301042022.676747True
307POLYGON ((-75.26120 39.97830, -75.26092 39.978...3234210103750042101037500375Census Tract 375G5020S10327021496+39.9840699-075.2551922106922.659440False
308POLYGON ((-75.10832 39.97939, -75.10820 39.979...3254210101800242101018002180.02Census Tract 180.02G5020S4397910+39.9836344-075.106709610513-7.776399True
309POLYGON ((-75.26927 39.98018, -75.27134 39.979...328421010098014210100980198.01Census Tract 98.01G5020S2979770+39.9775172-075.266597210432-12.779018True
310POLYGON ((-75.22028 39.93958, -75.22155 39.940...329421010071014210100710171.01Census Tract 71.01G5020S2532560+39.9381580-075.2249984104039.402844True
311POLYGON ((-75.15446 39.93243, -75.15496 39.932...330421010028014210100280128.01Census Tract 28.01G5020S2229500+39.9289729-075.1568319103691.714970True
312POLYGON ((-75.17742 39.95050, -75.17733 39.950...33242101000801421010008018.01Census Tract 8.01G5020S9995812755+39.9497374-075.18040541034316.129951False
313POLYGON ((-75.16477 39.94699, -75.16485 39.947...333421010011014210100110111.01Census Tract 11.01G5020S1740140+39.9449918-075.162524010350-5.094420False
314POLYGON ((-75.12403 40.03405, -75.12395 40.034...3344210102740242101027402274.02Census Tract 274.02G5020S5113600+40.0390702-075.125135210587-11.328730True
315POLYGON ((-75.21217 39.95288, -75.21216 39.952...335421010086014210100860186.01Census Tract 86.01G5020S2524820+39.9537341-075.2165930104190.460044True
316POLYGON ((-74.99420 40.13152, -74.99745 40.128...3364210103650242101036502365.02Census Tract 365.02G5020S17331890+40.1235705-074.9993521106861.540707False
317POLYGON ((-75.14161 39.95550, -75.14160 39.955...3374210103670042101036700367Census Tract 367G5020S8019690+39.9607248-075.143988510688-2.061605False
318POLYGON ((-75.15215 39.96246, -75.15276 39.962...3384210103760042101037600376Census Tract 376G5020S7173040+39.9599009-075.1551651106933.667594True
319POLYGON ((-75.21539 40.07327, -75.21575 40.072...3394210103860042101038600386Census Tract 386G5020S330439832066+40.0582762-075.211091310703-5.132660False
320POLYGON ((-75.20733 40.07657, -75.20744 40.076...3404210103850042101038500385Census Tract 385G5020S13389412576+40.0757528-075.214623410702-9.549025False
321POLYGON ((-75.22797 40.08435, -75.22790 40.084...3414210103870042101038700387Census Tract 387G5020S205321222241+40.0833122-075.213077010704-9.656751False
322POLYGON ((-75.19289 40.06267, -75.19412 40.064...3424210103880042101038800388Census Tract 388G5020S13835304751+40.0571595-075.1982438107054.231893False
323POLYGON ((-75.17520 40.05678, -75.17526 40.056...3434210103890042101038900389Census Tract 389G5020S12805510+40.0543431-075.168276410706-42.548462True
324POLYGON ((-75.20724 40.01102, -75.20732 40.010...34442101980000421019800009800Census Tract 9800G5020S89224781508835+39.9880961-075.196777310708-26.286655False
325POLYGON ((-75.13409 40.06035, -75.13439 40.060...3454210102690042101026900269Census Tract 269G5020S6146860+40.0556007-075.13240481058161.723327False
326POLYGON ((-75.13294 40.04607, -75.13212 40.046...3464210102700042101027000270Census Tract 270G5020S6422160+40.0493231-075.1331512105829.268959False
327POLYGON ((-75.12334 40.04657, -75.12326 40.046...3474210102710042101027100271Census Tract 271G5020S37227839344+40.0484793-075.126361110583-12.841739True
328POLYGON ((-75.11315 40.04364, -75.11210 40.043...3484210102720042101027200272Census Tract 272G5020S679046794+40.0472339-075.1180889105840.496802False
329POLYGON ((-75.11223 40.04332, -75.11219 40.043...3494210102730042101027300273Census Tract 273G5020S93801114079+40.0377547-075.118943210585-9.849822False
330POLYGON ((-75.13477 40.04171, -75.13478 40.041...3504210102750042101027500275Census Tract 275G5020S6068250+40.0400497-075.1322707105888.457729True
331POLYGON ((-75.14311 40.04648, -75.14327 40.045...3514210102760042101027600276Census Tract 276G5020S6637450+40.0429404-075.13927711058998.687145True
332POLYGON ((-75.14384 40.05078, -75.14464 40.050...3524210102770042101027700277Census Tract 277G5020S5424040+40.0505444-075.151226710590-5.491935True
333POLYGON ((-75.14290 40.04750, -75.14345 40.047...3534210102780042101027800278Census Tract 278G5020S7247250+40.0425278-075.147162610591-15.646240True
334POLYGON ((-75.15385 40.02217, -75.15336 40.022...3544210102800042101028000280Census Tract 280G5020S7183460+40.0261190-075.1546481105948.714111True
335POLYGON ((-75.14658 40.03065, -75.14652 40.030...3554210102810042101028100281Census Tract 281G5020S5035410+40.0304473-075.149129910595-3.726519True
336POLYGON ((-75.13507 40.03129, -75.13497 40.032...3564210102820042101028200282Census Tract 282G5020S8558120+40.0348704-075.140332710596-7.546880True
337POLYGON ((-75.07123 40.03458, -75.07110 40.034...3574210103180042101031800318Census Tract 318G5020S4642900+40.0311021-075.076989210632-6.572989True
338POLYGON ((-75.06716 40.01983, -75.06701 40.019...3584210103190042101031900319Census Tract 319G5020S7732850+40.0230600-075.064898810633-1.346061True
339POLYGON ((-75.05406 40.03119, -75.05480 40.030...3594210103200042101032000320Census Tract 320G5020S6815490+40.0271751-075.054867410634-9.581504False
340POLYGON ((-75.05275 40.01616, -75.05341 40.016...3604210103210042101032100321Census Tract 321G5020S5529280+40.0170175-075.058975210635-4.715954True
341POLYGON ((-75.04538 40.01988, -75.04574 40.020...3614210103230042101032300323Census Tract 323G5020S6000430+40.0210898-075.051527010636-6.253405False
342POLYGON ((-75.03863 40.02425, -75.03933 40.025...3624210103250042101032500325Census Tract 325G5020S8393190+40.0263918-075.045256110637-5.070001True
343POLYGON ((-75.03311 40.02751, -75.03353 40.028...3634210103260042101032600326Census Tract 326G5020S8098980+40.0302773-075.039626310638-4.554428False
344POLYGON ((-75.02050 40.04355, -75.02063 40.043...3654210103290042101032900329Census Tract 329G5020S92292221617+40.0379010-075.024971310639-0.331663True
345POLYGON ((-75.02854 40.02968, -75.02971 40.030...3664210103300042101033000330Census Tract 330G5020S7328600+40.0335974-075.033849210640-8.281727True
346POLYGON ((-75.05406 40.04433, -75.05312 40.043...3674210103320042101033200332Census Tract 332G5020S8284200+40.0439411-075.044828110643-1.060282False
347POLYGON ((-75.02703 40.09835, -75.03073 40.095...3694210103550042101035500355Census Tract 355G5020S22900531067+40.0911285-075.029324410669-4.848891False
348POLYGON ((-75.03363 40.12314, -75.03756 40.120...3704210103580042101035800358Census Tract 358G5020S17577562013+40.1213169-075.025789810674-1.296471False
349POLYGON ((-75.01235 40.10951, -75.01027 40.111...3714210103590042101035900359Census Tract 359G5020S22447172511+40.1103418-075.015164510675-8.117079False
350POLYGON ((-75.01235 40.10951, -75.01403 40.108...3724210103600042101036000360Census Tract 360G5020S2043084638+40.1042670-075.010818710676-0.534129False
351POLYGON ((-74.99233 40.10409, -74.99444 40.105...3734210103610042101036100361Census Tract 361G5020S12304327138+40.0987766-074.990748110677-3.173120False
352POLYGON ((-74.96488 40.07728, -74.96490 40.077...3744210103620342101036203362.03Census Tract 362.03G5020S147549668020+40.0760921-074.9742967106800.968381False
353POLYGON ((-74.98757 40.07583, -74.98827 40.076...3754210103530242101035302353.02Census Tract 353.02G5020S149864117292+40.0730774-074.996871310668-5.032760False
354POLYGON ((-74.98499 40.07453, -74.98490 40.074...3764210103620142101036201362.01Census Tract 362.01G5020S103192915195+40.0820300-074.9868079106782.891372False
355POLYGON ((-74.97990 40.09382, -74.97869 40.092...3774210103630242101036302363.02Census Tract 363.02G5020S5026960+40.0973153-074.980515110682-0.963015False
356POLYGON ((-75.17001 39.91004, -75.16973 39.911...3794210103730042101037300373Census Tract 373G5020S2573046162376+39.9024981-075.187936110691-4.818656False
357POLYGON ((-75.17135 39.91678, -75.17143 39.916...3804210103720042101037200372Census Tract 372G5020S10289840+39.9129487-075.159937910690-10.145897False
358POLYGON ((-75.11627 40.01743, -75.11660 40.017...3814210103830042101038300383Census Tract 383G5020S30644960+40.0108630-075.12489841070016.200720True
359POLYGON ((-75.08824 40.04034, -75.08820 40.040...3824210103900042101039000390Census Tract 390G5020S20326890+40.0357300-075.093884010707-5.298220True
360POLYGON ((-75.11051 39.96952, -75.10676 39.970...3834210103780042101037800378Census Tract 378G5020S37600841936838+39.9805802-075.0956845106953.036208False
361POLYGON ((-75.15170 39.98571, -75.15249 39.985...3844210103770042101037700377Census Tract 377G5020S7368940+39.9824381-075.150693210694-8.186953True
\n", "
" ], "text/plain": [ " geometry OBJECTID STATEFP10 \\\n", "0 POLYGON ((-75.22927 39.96054, -75.22865 39.960... 1 42 \n", "1 POLYGON ((-75.23536 39.96852, -75.23545 39.969... 2 42 \n", "2 POLYGON ((-75.24343 39.96230, -75.24339 39.962... 3 42 \n", "3 POLYGON ((-75.17341 39.97779, -75.17386 39.977... 4 42 \n", "4 POLYGON ((-75.17313 39.97776, -75.17321 39.977... 5 42 \n", "5 POLYGON ((-75.16141 39.97044, -75.16056 39.970... 6 42 \n", "6 POLYGON ((-75.15719 39.96959, -75.15609 39.969... 7 42 \n", "7 POLYGON ((-75.13330 39.96102, -75.13084 39.959... 8 42 \n", "8 POLYGON ((-75.12110 39.96858, -75.12225 39.970... 9 42 \n", "9 POLYGON ((-75.13574 39.96880, -75.13536 39.968... 10 42 \n", "10 POLYGON ((-75.14936 39.97327, -75.14887 39.973... 11 42 \n", "11 POLYGON ((-75.15224 39.97954, -75.15381 39.979... 12 42 \n", "12 POLYGON ((-75.16018 39.97608, -75.15947 39.975... 13 42 \n", "13 POLYGON ((-75.18786 39.98112, -75.18701 39.981... 15 42 \n", "14 POLYGON ((-75.17226 39.98999, -75.17236 39.990... 16 42 \n", "15 POLYGON ((-75.16362 39.98725, -75.16419 39.987... 17 42 \n", "16 POLYGON ((-75.13941 39.97634, -75.13911 39.977... 18 42 \n", "17 POLYGON ((-75.09490 40.01049, -75.09489 40.010... 19 42 \n", "18 POLYGON ((-75.10715 40.01674, -75.10724 40.016... 20 42 \n", "19 POLYGON ((-75.10760 39.99967, -75.10645 40.000... 21 42 \n", "20 POLYGON ((-75.13586 40.01199, -75.13554 40.013... 22 42 \n", "21 POLYGON ((-75.13672 40.00803, -75.13661 40.008... 23 42 \n", "22 POLYGON ((-75.13886 40.00322, -75.13821 40.003... 24 42 \n", "23 POLYGON ((-75.16429 40.00308, -75.16385 40.003... 26 42 \n", "24 POLYGON ((-75.14955 40.01788, -75.15031 40.017... 27 42 \n", "25 POLYGON ((-75.14955 40.01788, -75.14935 40.017... 28 42 \n", "26 POLYGON ((-75.17404 40.01697, -75.17486 40.016... 29 42 \n", "27 POLYGON ((-75.18196 40.02554, -75.18251 40.025... 30 42 \n", "28 POLYGON ((-75.18953 39.94521, -75.18959 39.945... 31 42 \n", "29 POLYGON ((-75.16582 39.94254, -75.16578 39.942... 32 42 \n", "30 POLYGON ((-75.16549 39.94366, -75.16558 39.943... 33 42 \n", "31 POLYGON ((-75.15119 39.94189, -75.15156 39.941... 34 42 \n", "32 POLYGON ((-75.14347 39.93873, -75.14388 39.938... 35 42 \n", "33 POLYGON ((-75.16591 39.94182, -75.16599 39.941... 36 42 \n", "34 POLYGON ((-75.16636 39.94004, -75.16628 39.940... 37 42 \n", "35 POLYGON ((-75.18855 39.93846, -75.18859 39.938... 38 42 \n", "36 POLYGON ((-75.17370 39.93624, -75.17369 39.936... 39 42 \n", "37 POLYGON ((-75.17370 39.93624, -75.17378 39.935... 40 42 \n", "38 POLYGON ((-75.16702 39.93675, -75.16709 39.936... 41 42 \n", "39 POLYGON ((-75.16629 39.94004, -75.16636 39.940... 42 42 \n", "40 POLYGON ((-75.14526 39.93557, -75.14574 39.935... 43 42 \n", "41 POLYGON ((-75.16758 39.93415, -75.16764 39.934... 44 42 \n", "42 POLYGON ((-75.17520 39.92930, -75.17512 39.929... 45 42 \n", "43 POLYGON ((-75.24623 39.88951, -75.24585 39.889... 47 42 \n", "44 POLYGON ((-75.25129 39.90441, -75.25179 39.903... 48 42 \n", "45 POLYGON ((-75.24184 39.90384, -75.24196 39.903... 49 42 \n", "46 POLYGON ((-75.23342 39.91385, -75.23369 39.914... 50 42 \n", "47 POLYGON ((-75.22664 39.91909, -75.22684 39.919... 51 42 \n", "48 POLYGON ((-75.23679 39.92091, -75.23722 39.920... 52 42 \n", "49 POLYGON ((-75.23650 39.92112, -75.23570 39.921... 53 42 \n", "50 POLYGON ((-75.24701 39.96668, -75.24685 39.967... 54 42 \n", "51 POLYGON ((-75.23914 39.96990, -75.23905 39.969... 55 42 \n", "52 POLYGON ((-75.23536 39.96852, -75.23535 39.968... 56 42 \n", "53 POLYGON ((-75.22245 39.96654, -75.22262 39.967... 57 42 \n", "54 POLYGON ((-75.22262 39.96735, -75.22245 39.966... 58 42 \n", "55 POLYGON ((-75.21619 39.96249, -75.21700 39.959... 59 42 \n", "56 POLYGON ((-75.20622 39.96255, -75.20558 39.962... 60 42 \n", "57 POLYGON ((-75.20233 39.96321, -75.20231 39.963... 61 42 \n", "58 POLYGON ((-75.19851 39.96945, -75.20372 39.970... 62 42 \n", "59 POLYGON ((-75.18803 39.96330, -75.18742 39.963... 63 42 \n", "60 POLYGON ((-75.19881 39.97473, -75.19900 39.974... 64 42 \n", "61 POLYGON ((-75.21331 39.97723, -75.21347 39.977... 65 42 \n", "62 POLYGON ((-75.23799 39.97297, -75.23774 39.971... 66 42 \n", "63 POLYGON ((-75.23769 39.97621, -75.23681 39.976... 67 42 \n", "64 POLYGON ((-75.23869 39.97674, -75.23879 39.977... 68 42 \n", "65 POLYGON ((-75.13507 39.97432, -75.13463 39.974... 69 42 \n", "66 POLYGON ((-75.12275 39.97373, -75.12260 39.973... 70 42 \n", "67 POLYGON ((-75.11997 39.97592, -75.11977 39.976... 71 42 \n", "68 POLYGON ((-75.12242 39.98701, -75.12292 39.987... 72 42 \n", "69 POLYGON ((-75.14284 39.98620, -75.14350 39.986... 73 42 \n", "70 POLYGON ((-75.13952 39.98652, -75.13957 39.986... 74 42 \n", "71 POLYGON ((-75.13952 39.98652, -75.13935 39.987... 75 42 \n", "72 POLYGON ((-75.15274 39.99204, -75.15283 39.991... 76 42 \n", "73 POLYGON ((-75.15092 39.98561, -75.15020 39.985... 77 42 \n", "74 POLYGON ((-75.17226 39.98999, -75.17214 39.989... 78 42 \n", "75 POLYGON ((-75.17708 39.92022, -75.17637 39.920... 79 42 \n", "76 POLYGON ((-75.18600 39.99013, -75.18590 39.990... 80 42 \n", "77 POLYGON ((-75.17117 39.99417, -75.17112 39.994... 81 42 \n", "78 POLYGON ((-75.19134 40.00791, -75.19052 40.008... 82 42 \n", "79 POLYGON ((-75.18251 40.02533, -75.18196 40.025... 83 42 \n", "80 POLYGON ((-75.21465 40.01787, -75.21431 40.017... 84 42 \n", "81 POLYGON ((-75.21951 40.02186, -75.21940 40.021... 85 42 \n", "82 POLYGON ((-75.20876 40.03111, -75.20880 40.031... 86 42 \n", "83 POLYGON ((-75.20876 40.03111, -75.20872 40.031... 87 42 \n", "84 POLYGON ((-75.22585 40.03352, -75.22537 40.032... 88 42 \n", "85 POLYGON ((-75.22671 40.02536, -75.22614 40.025... 89 42 \n", "86 POLYGON ((-75.22746 40.03047, -75.22679 40.030... 90 42 \n", "87 POLYGON ((-75.24481 40.04580, -75.24487 40.045... 91 42 \n", "88 POLYGON ((-75.17771 40.03655, -75.17876 40.035... 92 42 \n", "89 POLYGON ((-75.16456 40.02845, -75.16436 40.028... 93 42 \n", "90 POLYGON ((-75.16448 40.02131, -75.16459 40.021... 94 42 \n", "91 POLYGON ((-75.16058 40.02673, -75.16098 40.027... 95 42 \n", "92 POLYGON ((-75.16166 40.02793, -75.16143 40.027... 96 42 \n", "93 POLYGON ((-75.17638 40.03774, -75.17615 40.037... 97 42 \n", "94 POLYGON ((-75.16208 40.03817, -75.16127 40.038... 98 42 \n", "95 POLYGON ((-75.16885 40.04796, -75.16927 40.048... 99 42 \n", "96 POLYGON ((-75.15807 40.04747, -75.15806 40.047... 100 42 \n", "97 POLYGON ((-75.17573 40.04134, -75.17336 40.043... 101 42 \n", "98 POLYGON ((-75.18392 40.04922, -75.18376 40.048... 102 42 \n", "99 POLYGON ((-75.17515 40.05685, -75.17476 40.057... 103 42 \n", "100 POLYGON ((-75.17916 40.06333, -75.17842 40.064... 104 42 \n", "101 POLYGON ((-75.19188 40.06127, -75.19129 40.060... 105 42 \n", "102 POLYGON ((-75.14169 40.02076, -75.14159 40.020... 106 42 \n", "103 POLYGON ((-75.13571 40.02392, -75.13555 40.026... 107 42 \n", "104 POLYGON ((-75.13527 40.02919, -75.13541 40.027... 108 42 \n", "105 POLYGON ((-75.12197 40.03373, -75.12223 40.033... 109 42 \n", "106 POLYGON ((-75.12882 40.02450, -75.13037 40.024... 110 42 \n", "107 POLYGON ((-75.12549 40.02504, -75.12587 40.024... 111 42 \n", "108 POLYGON ((-75.11321 40.03645, -75.11403 40.035... 112 42 \n", "109 POLYGON ((-75.10460 40.02979, -75.10437 40.029... 113 42 \n", "110 POLYGON ((-75.10613 40.02930, -75.10643 40.029... 114 42 \n", "111 POLYGON ((-75.09500 40.00999, -75.09487 40.009... 115 42 \n", "112 POLYGON ((-75.09007 40.00429, -75.09005 40.004... 116 42 \n", "113 POLYGON ((-75.06741 40.02012, -75.06752 40.020... 117 42 \n", "114 POLYGON ((-75.04135 40.06474, -75.04142 40.064... 118 42 \n", "115 POLYGON ((-75.04483 40.05900, -75.04482 40.059... 119 42 \n", "116 POLYGON ((-75.05947 40.05226, -75.05887 40.052... 120 42 \n", "117 POLYGON ((-75.05594 40.05600, -75.05535 40.056... 121 42 \n", "118 POLYGON ((-75.06580 40.06781, -75.06736 40.068... 122 42 \n", "119 POLYGON ((-75.09495 40.06796, -75.09322 40.066... 123 42 \n", "120 POLYGON ((-75.06756 40.07514, -75.06756 40.075... 124 42 \n", "121 POLYGON ((-75.07626 40.08061, -75.07712 40.081... 125 42 \n", "122 POLYGON ((-75.06698 40.07628, -75.06618 40.077... 126 42 \n", "123 POLYGON ((-75.04609 40.08385, -75.04149 40.087... 128 42 \n", "124 POLYGON ((-75.01953 40.06559, -75.01947 40.065... 129 42 \n", "125 POLYGON ((-75.24749 39.91925, -75.24746 39.919... 130 42 \n", "126 POLYGON ((-75.23666 39.93355, -75.23672 39.933... 131 42 \n", "127 POLYGON ((-75.22415 39.92980, -75.22278 39.930... 132 42 \n", "128 POLYGON ((-74.96172 40.09772, -74.96179 40.097... 133 42 \n", "129 POLYGON ((-74.97780 40.10710, -74.97381 40.110... 134 42 \n", "130 POLYGON ((-75.14147 39.95171, -75.14150 39.951... 135 42 \n", "131 POLYGON ((-75.00888 40.05866, -75.00880 40.058... 136 42 \n", "132 POLYGON ((-75.02543 40.06566, -75.02587 40.065... 137 42 \n", "133 POLYGON ((-74.97517 40.08998, -74.97607 40.090... 138 42 \n", "134 POLYGON ((-75.17772 39.91765, -75.17771 39.917... 139 42 \n", "135 POLYGON ((-75.24001 39.95588, -75.23991 39.956... 140 42 \n", "136 POLYGON ((-75.13012 39.99458, -75.12872 39.993... 141 42 \n", "137 POLYGON ((-75.15034 39.94374, -75.15043 39.943... 142 42 \n", "138 POLYGON ((-75.15313 39.94579, -75.15318 39.945... 143 42 \n", "139 POLYGON ((-75.16333 39.95334, -75.16319 39.953... 144 42 \n", "140 POLYGON ((-75.17299 39.95464, -75.17295 39.954... 145 42 \n", "141 POLYGON ((-75.21048 40.00225, -75.21114 40.002... 146 42 \n", "142 POLYGON ((-75.17464 39.97083, -75.17453 39.971... 148 42 \n", "143 POLYGON ((-75.03666 40.07860, -75.03676 40.079... 149 42 \n", "144 POLYGON ((-75.04652 40.08352, -75.04751 40.082... 150 42 \n", "145 POLYGON ((-75.15383 39.94261, -75.15377 39.942... 151 42 \n", "146 POLYGON ((-75.15309 39.94600, -75.15303 39.946... 152 42 \n", "147 POLYGON ((-75.16427 39.94935, -75.16434 39.949... 153 42 \n", "148 POLYGON ((-75.16690 39.99870, -75.16657 40.000... 154 42 \n", "149 POLYGON ((-75.17077 40.00076, -75.17135 40.000... 155 42 \n", "150 POLYGON ((-75.12698 40.03916, -75.12681 40.039... 156 42 \n", "151 POLYGON ((-75.15548 39.99877, -75.15523 39.998... 157 42 \n", "152 POLYGON ((-75.15243 40.01322, -75.15307 40.014... 158 42 \n", "153 POLYGON ((-75.07783 40.03901, -75.07740 40.039... 159 42 \n", "154 POLYGON ((-75.07900 40.03781, -75.07862 40.038... 160 42 \n", "155 POLYGON ((-75.12755 40.00505, -75.12787 40.005... 161 42 \n", "156 POLYGON ((-75.13441 39.99922, -75.13383 39.999... 162 42 \n", "157 POLYGON ((-75.11663 40.01697, -75.11748 40.015... 163 42 \n", "158 POLYGON ((-75.11285 40.02703, -75.11324 40.026... 164 42 \n", "159 POLYGON ((-75.03799 40.03781, -75.03739 40.038... 165 42 \n", "160 POLYGON ((-75.02185 40.04369, -75.02175 40.043... 166 42 \n", "161 POLYGON ((-75.04254 40.03773, -75.04420 40.038... 167 42 \n", "162 POLYGON ((-75.10396 40.04083, -75.10463 40.040... 168 42 \n", "163 POLYGON ((-75.10457 40.05057, -75.10465 40.050... 169 42 \n", "164 POLYGON ((-75.25980 39.97482, -75.25981 39.974... 170 42 \n", "165 POLYGON ((-75.11344 39.97706, -75.11333 39.976... 171 42 \n", "166 POLYGON ((-75.12692 39.99184, -75.12711 39.991... 172 42 \n", "167 POLYGON ((-75.11099 39.99781, -75.11153 39.997... 173 42 \n", "168 POLYGON ((-75.04930 40.11221, -75.04939 40.112... 174 42 \n", "169 POLYGON ((-75.02889 40.10255, -75.02840 40.103... 175 42 \n", "170 POLYGON ((-75.04386 40.11601, -75.04422 40.115... 176 42 \n", "171 POLYGON ((-75.03024 40.10340, -75.03300 40.105... 177 42 \n", "172 POLYGON ((-75.18672 39.99022, -75.18706 39.988... 178 42 \n", "173 POLYGON ((-75.17425 39.98757, -75.17403 39.988... 179 42 \n", "174 POLYGON ((-75.02010 40.12637, -75.01780 40.125... 180 42 \n", "175 POLYGON ((-75.17248 39.96564, -75.17256 39.965... 182 42 \n", "176 POLYGON ((-75.17240 39.96597, -75.17227 39.966... 183 42 \n", "177 POLYGON ((-75.18160 39.96919, -75.18153 39.969... 184 42 \n", "178 POLYGON ((-75.08141 39.99327, -75.08093 39.993... 185 42 \n", "179 POLYGON ((-75.09266 40.00790, -75.09360 40.007... 186 42 \n", "180 POLYGON ((-75.07369 40.00712, -75.07340 40.007... 187 42 \n", "181 POLYGON ((-75.02130 40.03380, -75.02141 40.033... 188 42 \n", "182 POLYGON ((-75.22845 40.06255, -75.22689 40.061... 189 42 \n", "183 POLYGON ((-75.14147 39.95171, -75.14146 39.952... 190 42 \n", "184 POLYGON ((-75.16238 39.95765, -75.16269 39.956... 191 42 \n", "185 POLYGON ((-75.17820 39.95981, -75.17908 39.959... 192 42 \n", "186 POLYGON ((-75.17349 39.95206, -75.17417 39.952... 195 42 \n", "187 POLYGON ((-75.18703 39.93039, -75.18627 39.930... 196 42 \n", "188 POLYGON ((-75.20522 39.93833, -75.20330 39.937... 197 42 \n", "189 POLYGON ((-75.19032 39.92169, -75.19016 39.921... 198 42 \n", "190 POLYGON ((-75.17584 39.92643, -75.17574 39.926... 199 42 \n", "191 POLYGON ((-75.18170 39.92330, -75.18135 39.923... 200 42 \n", "192 POLYGON ((-75.15560 39.92002, -75.15550 39.920... 201 42 \n", "193 POLYGON ((-75.17025 39.92189, -75.17031 39.921... 202 42 \n", "194 POLYGON ((-75.17774 39.91758, -75.17801 39.916... 203 42 \n", "195 POLYGON ((-75.16943 39.92560, -75.16950 39.925... 204 42 \n", "196 POLYGON ((-75.15775 39.91501, -75.15749 39.914... 205 42 \n", "197 POLYGON ((-75.15656 39.91558, -75.15664 39.915... 206 42 \n", "198 POLYGON ((-75.14782 39.91901, -75.14788 39.919... 207 42 \n", "199 POLYGON ((-75.21445 39.94893, -75.21399 39.948... 208 42 \n", "200 POLYGON ((-75.22524 39.94776, -75.22495 39.947... 209 42 \n", "201 POLYGON ((-75.24005 39.94593, -75.23996 39.946... 210 42 \n", "202 MULTIPOLYGON (((-75.12709 39.99200, -75.12842 ... 211 42 \n", "203 POLYGON ((-75.24403 39.96237, -75.24471 39.962... 212 42 \n", "204 POLYGON ((-75.24014 39.95526, -75.23817 39.955... 213 42 \n", "205 POLYGON ((-75.22979 39.96061, -75.23025 39.960... 214 42 \n", "206 POLYGON ((-75.19358 39.95870, -75.19364 39.958... 215 42 \n", "207 POLYGON ((-75.19358 39.95870, -75.19360 39.958... 216 42 \n", "208 POLYGON ((-75.20236 39.96287, -75.20398 39.962... 217 42 \n", "209 POLYGON ((-75.22005 39.96383, -75.22098 39.964... 218 42 \n", "210 POLYGON ((-75.22059 39.92906, -75.22111 39.929... 219 42 \n", "211 POLYGON ((-75.21931 39.92802, -75.21768 39.927... 220 42 \n", "212 POLYGON ((-75.21706 39.93474, -75.21652 39.935... 221 42 \n", "213 POLYGON ((-75.22890 39.94686, -75.22960 39.947... 222 42 \n", "214 POLYGON ((-75.21882 39.94412, -75.21914 39.944... 223 42 \n", "215 POLYGON ((-75.21315 39.93746, -75.21297 39.937... 224 42 \n", "216 POLYGON ((-75.20714 39.94979, -75.20805 39.949... 225 42 \n", "217 POLYGON ((-75.21714 39.94375, -75.21562 39.943... 226 42 \n", "218 POLYGON ((-75.24834 39.97503, -75.24823 39.975... 227 42 \n", "219 POLYGON ((-75.23403 39.99475, -75.23413 39.995... 228 42 \n", "220 POLYGON ((-75.22890 39.98045, -75.22879 39.980... 229 42 \n", "221 POLYGON ((-75.22567 39.99148, -75.22657 39.991... 230 42 \n", "222 POLYGON ((-75.22568 39.99326, -75.22568 39.994... 231 42 \n", "223 POLYGON ((-75.22568 39.99326, -75.22568 39.993... 232 42 \n", "224 POLYGON ((-75.18081 39.96136, -75.18060 39.961... 233 42 \n", "225 POLYGON ((-75.15302 39.96856, -75.15455 39.968... 235 42 \n", "226 POLYGON ((-75.16131 39.96290, -75.16126 39.963... 236 42 \n", "227 POLYGON ((-75.17211 39.96729, -75.17135 39.967... 237 42 \n", "228 POLYGON ((-75.18898 39.97982, -75.18906 39.979... 238 42 \n", "229 POLYGON ((-75.17662 40.00610, -75.17543 40.006... 239 42 \n", "230 POLYGON ((-75.17689 40.00595, -75.17864 40.005... 240 42 \n", "231 POLYGON ((-75.15602 39.99884, -75.15680 39.998... 241 42 \n", "232 POLYGON ((-75.14746 39.99467, -75.14708 39.996... 242 42 \n", "233 POLYGON ((-75.13930 40.00306, -75.13988 40.002... 243 42 \n", "234 POLYGON ((-75.11077 39.99153, -75.11023 39.991... 244 42 \n", "235 POLYGON ((-75.11561 39.98356, -75.11525 39.983... 245 42 \n", "236 POLYGON ((-75.06802 39.98314, -75.06588 39.984... 246 42 \n", "237 POLYGON ((-75.06835 40.00693, -75.06851 40.007... 247 42 \n", "238 POLYGON ((-75.09843 39.99908, -75.09898 39.999... 248 42 \n", "239 POLYGON ((-75.22430 40.05119, -75.22716 40.052... 249 42 \n", "240 POLYGON ((-75.22790 40.06346, -75.22791 40.063... 250 42 \n", "241 POLYGON ((-75.25415 40.04723, -75.25384 40.046... 251 42 \n", "242 POLYGON ((-75.25501 40.06271, -75.25669 40.061... 252 42 \n", "243 POLYGON ((-75.20951 40.06645, -75.20675 40.064... 254 42 \n", "244 POLYGON ((-75.20275 40.04351, -75.20298 40.043... 255 42 \n", "245 POLYGON ((-75.19800 40.03948, -75.19613 40.037... 256 42 \n", "246 POLYGON ((-75.18392 40.04922, -75.18397 40.049... 257 42 \n", "247 POLYGON ((-75.17863 40.04046, -75.17871 40.040... 258 42 \n", "248 POLYGON ((-75.18823 40.03119, -75.18821 40.031... 259 42 \n", "249 POLYGON ((-75.17473 40.02763, -75.17463 40.027... 260 42 \n", "250 POLYGON ((-75.19879 40.06868, -75.19868 40.068... 261 42 \n", "251 POLYGON ((-75.18265 40.06942, -75.18252 40.069... 262 42 \n", "252 POLYGON ((-75.17191 40.08200, -75.17294 40.082... 263 42 \n", "253 POLYGON ((-75.17394 40.07432, -75.17355 40.074... 264 42 \n", "254 POLYGON ((-75.16899 40.07148, -75.16935 40.071... 265 42 \n", "255 POLYGON ((-75.17145 40.06300, -75.17118 40.062... 266 42 \n", "256 POLYGON ((-75.02119 40.06170, -75.02131 40.061... 267 42 \n", "257 POLYGON ((-75.15411 40.06366, -75.15359 40.064... 268 42 \n", "258 POLYGON ((-75.16596 40.05983, -75.16577 40.059... 269 42 \n", "259 POLYGON ((-75.15649 40.05453, -75.15556 40.054... 270 42 \n", "260 POLYGON ((-75.15233 40.06891, -75.15260 40.067... 271 42 \n", "261 POLYGON ((-75.14858 40.05139, -75.14701 40.051... 272 42 \n", "262 POLYGON ((-75.13655 40.06180, -75.13684 40.061... 273 42 \n", "263 POLYGON ((-75.07441 40.00959, -75.07237 40.010... 274 42 \n", "264 POLYGON ((-75.07726 40.01498, -75.07668 40.015... 275 42 \n", "265 POLYGON ((-75.09061 40.02576, -75.09113 40.025... 276 42 \n", "266 POLYGON ((-75.08536 40.03110, -75.08575 40.030... 277 42 \n", "267 POLYGON ((-75.09772 40.05454, -75.09781 40.054... 278 42 \n", "268 POLYGON ((-75.08747 40.06359, -75.09130 40.059... 279 42 \n", "269 POLYGON ((-75.08231 40.04884, -75.08210 40.049... 280 42 \n", "270 POLYGON ((-75.08838 40.03987, -75.08857 40.039... 281 42 \n", "271 POLYGON ((-75.06669 40.05055, -75.06605 40.051... 282 42 \n", "272 POLYGON ((-75.07053 40.03563, -75.07090 40.035... 283 42 \n", "273 POLYGON ((-75.06138 40.03816, -75.06155 40.038... 284 42 \n", "274 POLYGON ((-75.06433 40.03619, -75.06425 40.035... 285 42 \n", "275 POLYGON ((-75.06437 40.03632, -75.06445 40.036... 286 42 \n", "276 POLYGON ((-74.96443 40.11728, -74.96461 40.117... 287 42 \n", "277 POLYGON ((-75.02961 40.06813, -75.02966 40.068... 288 42 \n", "278 POLYGON ((-75.02119 40.06170, -75.02105 40.061... 289 42 \n", "279 POLYGON ((-75.00616 40.05372, -75.00789 40.052... 290 42 \n", "280 POLYGON ((-74.97479 40.04932, -74.97500 40.049... 291 42 \n", "281 POLYGON ((-74.98437 40.05779, -74.98429 40.057... 292 42 \n", "282 POLYGON ((-74.98242 40.06552, -74.98242 40.065... 293 42 \n", "283 POLYGON ((-75.15907 40.07353, -75.15876 40.073... 294 42 \n", "284 POLYGON ((-75.16485 39.94701, -75.16475 39.947... 295 42 \n", "285 POLYGON ((-75.16534 39.94467, -75.16531 39.944... 296 42 \n", "286 POLYGON ((-75.18639 39.94658, -75.18617 39.946... 297 42 \n", "287 POLYGON ((-75.17742 39.95050, -75.17747 39.950... 298 42 \n", "288 POLYGON ((-75.14758 39.92521, -75.14749 39.925... 300 42 \n", "289 POLYGON ((-75.16842 39.93047, -75.16815 39.931... 301 42 \n", "290 POLYGON ((-75.16896 39.92804, -75.16882 39.928... 302 42 \n", "291 POLYGON ((-75.16394 39.92947, -75.16472 39.928... 303 42 \n", "292 POLYGON ((-75.15168 39.93038, -75.15160 39.930... 305 42 \n", "293 POLYGON ((-75.04496 40.06511, -75.04616 40.065... 307 42 \n", "294 POLYGON ((-75.06923 40.07151, -75.06981 40.070... 308 42 \n", "295 POLYGON ((-75.05429 40.04446, -75.05493 40.043... 309 42 \n", "296 POLYGON ((-75.06496 40.04107, -75.06492 40.041... 310 42 \n", "297 POLYGON ((-75.06138 40.03816, -75.06104 40.037... 311 42 \n", "298 POLYGON ((-75.16340 39.98722, -75.16318 39.987... 312 42 \n", "299 POLYGON ((-75.15718 39.98642, -75.15711 39.986... 313 42 \n", "300 POLYGON ((-75.15810 40.04712, -75.15813 40.046... 314 42 \n", "301 POLYGON ((-75.15967 40.03508, -75.15782 40.033... 315 42 \n", "302 POLYGON ((-75.23110 39.94876, -75.23107 39.948... 316 42 \n", "303 POLYGON ((-75.22343 39.94118, -75.22324 39.941... 317 42 \n", "304 POLYGON ((-75.20942 39.95808, -75.20959 39.958... 320 42 \n", "305 POLYGON ((-75.23080 39.95018, -75.23064 39.950... 321 42 \n", "306 POLYGON ((-75.21896 39.95927, -75.21918 39.959... 322 42 \n", "307 POLYGON ((-75.26120 39.97830, -75.26092 39.978... 323 42 \n", "308 POLYGON ((-75.10832 39.97939, -75.10820 39.979... 325 42 \n", "309 POLYGON ((-75.26927 39.98018, -75.27134 39.979... 328 42 \n", "310 POLYGON ((-75.22028 39.93958, -75.22155 39.940... 329 42 \n", "311 POLYGON ((-75.15446 39.93243, -75.15496 39.932... 330 42 \n", "312 POLYGON ((-75.17742 39.95050, -75.17733 39.950... 332 42 \n", "313 POLYGON ((-75.16477 39.94699, -75.16485 39.947... 333 42 \n", "314 POLYGON ((-75.12403 40.03405, -75.12395 40.034... 334 42 \n", "315 POLYGON ((-75.21217 39.95288, -75.21216 39.952... 335 42 \n", "316 POLYGON ((-74.99420 40.13152, -74.99745 40.128... 336 42 \n", "317 POLYGON ((-75.14161 39.95550, -75.14160 39.955... 337 42 \n", "318 POLYGON ((-75.15215 39.96246, -75.15276 39.962... 338 42 \n", "319 POLYGON ((-75.21539 40.07327, -75.21575 40.072... 339 42 \n", "320 POLYGON ((-75.20733 40.07657, -75.20744 40.076... 340 42 \n", "321 POLYGON ((-75.22797 40.08435, -75.22790 40.084... 341 42 \n", "322 POLYGON ((-75.19289 40.06267, -75.19412 40.064... 342 42 \n", "323 POLYGON ((-75.17520 40.05678, -75.17526 40.056... 343 42 \n", "324 POLYGON ((-75.20724 40.01102, -75.20732 40.010... 344 42 \n", "325 POLYGON ((-75.13409 40.06035, -75.13439 40.060... 345 42 \n", "326 POLYGON ((-75.13294 40.04607, -75.13212 40.046... 346 42 \n", "327 POLYGON ((-75.12334 40.04657, -75.12326 40.046... 347 42 \n", "328 POLYGON ((-75.11315 40.04364, -75.11210 40.043... 348 42 \n", "329 POLYGON ((-75.11223 40.04332, -75.11219 40.043... 349 42 \n", "330 POLYGON ((-75.13477 40.04171, -75.13478 40.041... 350 42 \n", "331 POLYGON ((-75.14311 40.04648, -75.14327 40.045... 351 42 \n", "332 POLYGON ((-75.14384 40.05078, -75.14464 40.050... 352 42 \n", "333 POLYGON ((-75.14290 40.04750, -75.14345 40.047... 353 42 \n", "334 POLYGON ((-75.15385 40.02217, -75.15336 40.022... 354 42 \n", "335 POLYGON ((-75.14658 40.03065, -75.14652 40.030... 355 42 \n", "336 POLYGON ((-75.13507 40.03129, -75.13497 40.032... 356 42 \n", "337 POLYGON ((-75.07123 40.03458, -75.07110 40.034... 357 42 \n", "338 POLYGON ((-75.06716 40.01983, -75.06701 40.019... 358 42 \n", "339 POLYGON ((-75.05406 40.03119, -75.05480 40.030... 359 42 \n", "340 POLYGON ((-75.05275 40.01616, -75.05341 40.016... 360 42 \n", "341 POLYGON ((-75.04538 40.01988, -75.04574 40.020... 361 42 \n", "342 POLYGON ((-75.03863 40.02425, -75.03933 40.025... 362 42 \n", "343 POLYGON ((-75.03311 40.02751, -75.03353 40.028... 363 42 \n", "344 POLYGON ((-75.02050 40.04355, -75.02063 40.043... 365 42 \n", "345 POLYGON ((-75.02854 40.02968, -75.02971 40.030... 366 42 \n", "346 POLYGON ((-75.05406 40.04433, -75.05312 40.043... 367 42 \n", "347 POLYGON ((-75.02703 40.09835, -75.03073 40.095... 369 42 \n", "348 POLYGON ((-75.03363 40.12314, -75.03756 40.120... 370 42 \n", "349 POLYGON ((-75.01235 40.10951, -75.01027 40.111... 371 42 \n", "350 POLYGON ((-75.01235 40.10951, -75.01403 40.108... 372 42 \n", "351 POLYGON ((-74.99233 40.10409, -74.99444 40.105... 373 42 \n", "352 POLYGON ((-74.96488 40.07728, -74.96490 40.077... 374 42 \n", "353 POLYGON ((-74.98757 40.07583, -74.98827 40.076... 375 42 \n", "354 POLYGON ((-74.98499 40.07453, -74.98490 40.074... 376 42 \n", "355 POLYGON ((-74.97990 40.09382, -74.97869 40.092... 377 42 \n", "356 POLYGON ((-75.17001 39.91004, -75.16973 39.911... 379 42 \n", "357 POLYGON ((-75.17135 39.91678, -75.17143 39.916... 380 42 \n", "358 POLYGON ((-75.11627 40.01743, -75.11660 40.017... 381 42 \n", "359 POLYGON ((-75.08824 40.04034, -75.08820 40.040... 382 42 \n", "360 POLYGON ((-75.11051 39.96952, -75.10676 39.970... 383 42 \n", "361 POLYGON ((-75.15170 39.98571, -75.15249 39.985... 384 42 \n", "\n", " COUNTYFP10 TRACTCE10 GEOID10 NAME10 NAMELSAD10 MTFCC10 \\\n", "0 101 009400 42101009400 94 Census Tract 94 G5020 \n", "1 101 009500 42101009500 95 Census Tract 95 G5020 \n", "2 101 009600 42101009600 96 Census Tract 96 G5020 \n", "3 101 013800 42101013800 138 Census Tract 138 G5020 \n", "4 101 013900 42101013900 139 Census Tract 139 G5020 \n", "5 101 014000 42101014000 140 Census Tract 140 G5020 \n", "6 101 014100 42101014100 141 Census Tract 141 G5020 \n", "7 101 014200 42101014200 142 Census Tract 142 G5020 \n", "8 101 014300 42101014300 143 Census Tract 143 G5020 \n", "9 101 014400 42101014400 144 Census Tract 144 G5020 \n", "10 101 014500 42101014500 145 Census Tract 145 G5020 \n", "11 101 014600 42101014600 146 Census Tract 146 G5020 \n", "12 101 014700 42101014700 147 Census Tract 147 G5020 \n", "13 101 014900 42101014900 149 Census Tract 149 G5020 \n", "14 101 015200 42101015200 152 Census Tract 152 G5020 \n", "15 101 015300 42101015300 153 Census Tract 153 G5020 \n", "16 101 015600 42101015600 156 Census Tract 156 G5020 \n", "17 101 019000 42101019000 190 Census Tract 190 G5020 \n", "18 101 019100 42101019100 191 Census Tract 191 G5020 \n", "19 101 019200 42101019200 192 Census Tract 192 G5020 \n", "20 101 019700 42101019700 197 Census Tract 197 G5020 \n", "21 101 019800 42101019800 198 Census Tract 198 G5020 \n", "22 101 019900 42101019900 199 Census Tract 199 G5020 \n", "23 101 020200 42101020200 202 Census Tract 202 G5020 \n", "24 101 020300 42101020300 203 Census Tract 203 G5020 \n", "25 101 020400 42101020400 204 Census Tract 204 G5020 \n", "26 101 020500 42101020500 205 Census Tract 205 G5020 \n", "27 101 020600 42101020600 206 Census Tract 206 G5020 \n", "28 101 001300 42101001300 13 Census Tract 13 G5020 \n", "29 101 001400 42101001400 14 Census Tract 14 G5020 \n", "30 101 001500 42101001500 15 Census Tract 15 G5020 \n", "31 101 001600 42101001600 16 Census Tract 16 G5020 \n", "32 101 001700 42101001700 17 Census Tract 17 G5020 \n", "33 101 001800 42101001800 18 Census Tract 18 G5020 \n", "34 101 001900 42101001900 19 Census Tract 19 G5020 \n", "35 101 002000 42101002000 20 Census Tract 20 G5020 \n", "36 101 002100 42101002100 21 Census Tract 21 G5020 \n", "37 101 002200 42101002200 22 Census Tract 22 G5020 \n", "38 101 002300 42101002300 23 Census Tract 23 G5020 \n", "39 101 002400 42101002400 24 Census Tract 24 G5020 \n", "40 101 002500 42101002500 25 Census Tract 25 G5020 \n", "41 101 002900 42101002900 29 Census Tract 29 G5020 \n", "42 101 003100 42101003100 31 Census Tract 31 G5020 \n", "43 101 005400 42101005400 54 Census Tract 54 G5020 \n", "44 101 005500 42101005500 55 Census Tract 55 G5020 \n", "45 101 005600 42101005600 56 Census Tract 56 G5020 \n", "46 101 006000 42101006000 60 Census Tract 60 G5020 \n", "47 101 006100 42101006100 61 Census Tract 61 G5020 \n", "48 101 006200 42101006200 62 Census Tract 62 G5020 \n", "49 101 006300 42101006300 63 Census Tract 63 G5020 \n", "50 101 010000 42101010000 100 Census Tract 100 G5020 \n", "51 101 010100 42101010100 101 Census Tract 101 G5020 \n", "52 101 010200 42101010200 102 Census Tract 102 G5020 \n", "53 101 010300 42101010300 103 Census Tract 103 G5020 \n", "54 101 010400 42101010400 104 Census Tract 104 G5020 \n", "55 101 010500 42101010500 105 Census Tract 105 G5020 \n", "56 101 010600 42101010600 106 Census Tract 106 G5020 \n", "57 101 010700 42101010700 107 Census Tract 107 G5020 \n", "58 101 010800 42101010800 108 Census Tract 108 G5020 \n", "59 101 010900 42101010900 109 Census Tract 109 G5020 \n", "60 101 011000 42101011000 110 Census Tract 110 G5020 \n", "61 101 011100 42101011100 111 Census Tract 111 G5020 \n", "62 101 011200 42101011200 112 Census Tract 112 G5020 \n", "63 101 011300 42101011300 113 Census Tract 113 G5020 \n", "64 101 011400 42101011400 114 Census Tract 114 G5020 \n", "65 101 015700 42101015700 157 Census Tract 157 G5020 \n", "66 101 015800 42101015800 158 Census Tract 158 G5020 \n", "67 101 016000 42101016000 160 Census Tract 160 G5020 \n", "68 101 016100 42101016100 161 Census Tract 161 G5020 \n", "69 101 016200 42101016200 162 Census Tract 162 G5020 \n", "70 101 016300 42101016300 163 Census Tract 163 G5020 \n", "71 101 016400 42101016400 164 Census Tract 164 G5020 \n", "72 101 016500 42101016500 165 Census Tract 165 G5020 \n", "73 101 016600 42101016600 166 Census Tract 166 G5020 \n", "74 101 016800 42101016800 168 Census Tract 168 G5020 \n", "75 101 003901 42101003901 39.01 Census Tract 39.01 G5020 \n", "76 101 016902 42101016902 169.02 Census Tract 169.02 G5020 \n", "77 101 016901 42101016901 169.01 Census Tract 169.01 G5020 \n", "78 101 020700 42101020700 207 Census Tract 207 G5020 \n", "79 101 020800 42101020800 208 Census Tract 208 G5020 \n", "80 101 020900 42101020900 209 Census Tract 209 G5020 \n", "81 101 021000 42101021000 210 Census Tract 210 G5020 \n", "82 101 021100 42101021100 211 Census Tract 211 G5020 \n", "83 101 021200 42101021200 212 Census Tract 212 G5020 \n", "84 101 021300 42101021300 213 Census Tract 213 G5020 \n", "85 101 021400 42101021400 214 Census Tract 214 G5020 \n", "86 101 021500 42101021500 215 Census Tract 215 G5020 \n", "87 101 021600 42101021600 216 Census Tract 216 G5020 \n", "88 101 024100 42101024100 241 Census Tract 241 G5020 \n", "89 101 024200 42101024200 242 Census Tract 242 G5020 \n", "90 101 024300 42101024300 243 Census Tract 243 G5020 \n", "91 101 024400 42101024400 244 Census Tract 244 G5020 \n", "92 101 024500 42101024500 245 Census Tract 245 G5020 \n", "93 101 024600 42101024600 246 Census Tract 246 G5020 \n", "94 101 024700 42101024700 247 Census Tract 247 G5020 \n", "95 101 024800 42101024800 248 Census Tract 248 G5020 \n", "96 101 024900 42101024900 249 Census Tract 249 G5020 \n", "97 101 025200 42101025200 252 Census Tract 252 G5020 \n", "98 101 025300 42101025300 253 Census Tract 253 G5020 \n", "99 101 025400 42101025400 254 Census Tract 254 G5020 \n", "100 101 025500 42101025500 255 Census Tract 255 G5020 \n", "101 101 025600 42101025600 256 Census Tract 256 G5020 \n", "102 101 028300 42101028300 283 Census Tract 283 G5020 \n", "103 101 028400 42101028400 284 Census Tract 284 G5020 \n", "104 101 028500 42101028500 285 Census Tract 285 G5020 \n", "105 101 028600 42101028600 286 Census Tract 286 G5020 \n", "106 101 028700 42101028700 287 Census Tract 287 G5020 \n", "107 101 028800 42101028800 288 Census Tract 288 G5020 \n", "108 101 029000 42101029000 290 Census Tract 290 G5020 \n", "109 101 029100 42101029100 291 Census Tract 291 G5020 \n", "110 101 029200 42101029200 292 Census Tract 292 G5020 \n", "111 101 029300 42101029300 293 Census Tract 293 G5020 \n", "112 101 029400 42101029400 294 Census Tract 294 G5020 \n", "113 101 029800 42101029800 298 Census Tract 298 G5020 \n", "114 101 033300 42101033300 333 Census Tract 333 G5020 \n", "115 101 033400 42101033400 334 Census Tract 334 G5020 \n", "116 101 033500 42101033500 335 Census Tract 335 G5020 \n", "117 101 033600 42101033600 336 Census Tract 336 G5020 \n", "118 101 033800 42101033800 338 Census Tract 338 G5020 \n", "119 101 033900 42101033900 339 Census Tract 339 G5020 \n", "120 101 034000 42101034000 340 Census Tract 340 G5020 \n", "121 101 034100 42101034100 341 Census Tract 341 G5020 \n", "122 101 034200 42101034200 342 Census Tract 342 G5020 \n", "123 101 034400 42101034400 344 Census Tract 344 G5020 \n", "124 101 034600 42101034600 346 Census Tract 346 G5020 \n", "125 101 006400 42101006400 64 Census Tract 64 G5020 \n", "126 101 006500 42101006500 65 Census Tract 65 G5020 \n", "127 101 006600 42101006600 66 Census Tract 66 G5020 \n", "128 101 036301 42101036301 363.01 Census Tract 363.01 G5020 \n", "129 101 036400 42101036400 364 Census Tract 364 G5020 \n", "130 101 036600 42101036600 366 Census Tract 366 G5020 \n", "131 101 034803 42101034803 348.03 Census Tract 348.03 G5020 \n", "132 101 034702 42101034702 347.02 Census Tract 347.02 G5020 \n", "133 101 036202 42101036202 362.02 Census Tract 362.02 G5020 \n", "134 101 003800 42101003800 38 Census Tract 38 G5020 \n", "135 101 008302 42101008302 83.02 Census Tract 83.02 G5020 \n", "136 101 017602 42101017602 176.02 Census Tract 176.02 G5020 \n", "137 101 001002 42101001002 10.02 Census Tract 10.02 G5020 \n", "138 101 001001 42101001001 10.01 Census Tract 10.01 G5020 \n", "139 101 000402 42101000402 4.02 Census Tract 4.02 G5020 \n", "140 101 000401 42101000401 4.01 Census Tract 4.01 G5020 \n", "141 101 012204 42101012204 122.04 Census Tract 122.04 G5020 \n", "142 101 013602 42101013602 136.02 Census Tract 136.02 G5020 \n", "143 101 034501 42101034501 345.01 Census Tract 345.01 G5020 \n", "144 101 034502 42101034502 345.02 Census Tract 345.02 G5020 \n", "145 101 001102 42101001102 11.02 Census Tract 11.02 G5020 \n", "146 101 000902 42101000902 9.02 Census Tract 9.02 G5020 \n", "147 101 000901 42101000901 9.01 Census Tract 9.01 G5020 \n", "148 101 017201 42101017201 172.01 Census Tract 172.01 G5020 \n", "149 101 017202 42101017202 172.02 Census Tract 172.02 G5020 \n", "150 101 027401 42101027401 274.01 Census Tract 274.01 G5020 \n", "151 101 020101 42101020101 201.01 Census Tract 201.01 G5020 \n", "152 101 020102 42101020102 201.02 Census Tract 201.02 G5020 \n", "153 101 031101 42101031101 311.01 Census Tract 311.01 G5020 \n", "154 101 031102 42101031102 311.02 Census Tract 311.02 G5020 \n", "155 101 019502 42101019502 195.02 Census Tract 195.02 G5020 \n", "156 101 019501 42101019501 195.01 Census Tract 195.01 G5020 \n", "157 101 028901 42101028901 289.01 Census Tract 289.01 G5020 \n", "158 101 028902 42101028902 289.02 Census Tract 289.02 G5020 \n", "159 101 033101 42101033101 331.01 Census Tract 331.01 G5020 \n", "160 101 033102 42101033102 331.02 Census Tract 331.02 G5020 \n", "161 101 031501 42101031501 315.01 Census Tract 315.01 G5020 \n", "162 101 030501 42101030501 305.01 Census Tract 305.01 G5020 \n", "163 101 030502 42101030502 305.02 Census Tract 305.02 G5020 \n", "164 101 009802 42101009802 98.02 Census Tract 98.02 G5020 \n", "165 101 018001 42101018001 180.01 Census Tract 180.01 G5020 \n", "166 101 017702 42101017702 177.02 Census Tract 177.02 G5020 \n", "167 101 017701 42101017701 177.01 Census Tract 177.01 G5020 \n", "168 101 035602 42101035602 356.02 Census Tract 356.02 G5020 \n", "169 101 035701 42101035701 357.01 Census Tract 357.01 G5020 \n", "170 101 035702 42101035702 357.02 Census Tract 357.02 G5020 \n", "171 101 035601 42101035601 356.01 Census Tract 356.01 G5020 \n", "172 101 015101 42101015101 151.01 Census Tract 151.01 G5020 \n", "173 101 015102 42101015102 151.02 Census Tract 151.02 G5020 \n", "174 101 036501 42101036501 365.01 Census Tract 365.01 G5020 \n", "175 101 013402 42101013402 134.02 Census Tract 134.02 G5020 \n", "176 101 013401 42101013401 134.01 Census Tract 134.01 G5020 \n", "177 101 013601 42101013601 136.01 Census Tract 136.01 G5020 \n", "178 101 037900 42101037900 379 Census Tract 379 G5020 \n", "179 101 038200 42101038200 382 Census Tract 382 G5020 \n", "180 101 038000 42101038000 380 Census Tract 380 G5020 \n", "181 101 038100 42101038100 381 Census Tract 381 G5020 \n", "182 101 038400 42101038400 384 Census Tract 384 G5020 \n", "183 101 000100 42101000100 1 Census Tract 1 G5020 \n", "184 101 000200 42101000200 2 Census Tract 2 G5020 \n", "185 101 000300 42101000300 3 Census Tract 3 G5020 \n", "186 101 000700 42101000700 7 Census Tract 7 G5020 \n", "187 101 003200 42101003200 32 Census Tract 32 G5020 \n", "188 101 003300 42101003300 33 Census Tract 33 G5020 \n", "189 101 003600 42101003600 36 Census Tract 36 G5020 \n", "190 101 003701 42101003701 37.01 Census Tract 37.01 G5020 \n", "191 101 003702 42101003702 37.02 Census Tract 37.02 G5020 \n", "192 101 004101 42101004101 41.01 Census Tract 41.01 G5020 \n", "193 101 004002 42101004002 40.02 Census Tract 40.02 G5020 \n", "194 101 003902 42101003902 39.02 Census Tract 39.02 G5020 \n", "195 101 004001 42101004001 40.01 Census Tract 40.01 G5020 \n", "196 101 004102 42101004102 41.02 Census Tract 41.02 G5020 \n", "197 101 004202 42101004202 42.02 Census Tract 42.02 G5020 \n", "198 101 004201 42101004201 42.01 Census Tract 42.01 G5020 \n", "199 101 007900 42101007900 79 Census Tract 79 G5020 \n", "200 101 008000 42101008000 80 Census Tract 80 G5020 \n", "201 101 008200 42101008200 82 Census Tract 82 G5020 \n", "202 101 017601 42101017601 176.01 Census Tract 176.01 G5020 \n", "203 101 008301 42101008301 83.01 Census Tract 83.01 G5020 \n", "204 101 008400 42101008400 84 Census Tract 84 G5020 \n", "205 101 008500 42101008500 85 Census Tract 85 G5020 \n", "206 101 009000 42101009000 90 Census Tract 90 G5020 \n", "207 101 009100 42101009100 91 Census Tract 91 G5020 \n", "208 101 009200 42101009200 92 Census Tract 92 G5020 \n", "209 101 009300 42101009300 93 Census Tract 93 G5020 \n", "210 101 006700 42101006700 67 Census Tract 67 G5020 \n", "211 101 006900 42101006900 69 Census Tract 69 G5020 \n", "212 101 007000 42101007000 70 Census Tract 70 G5020 \n", "213 101 007200 42101007200 72 Census Tract 72 G5020 \n", "214 101 007300 42101007300 73 Census Tract 73 G5020 \n", "215 101 007400 42101007400 74 Census Tract 74 G5020 \n", "216 101 007700 42101007700 77 Census Tract 77 G5020 \n", "217 101 007800 42101007800 78 Census Tract 78 G5020 \n", "218 101 011500 42101011500 115 Census Tract 115 G5020 \n", "219 101 011700 42101011700 117 Census Tract 117 G5020 \n", "220 101 011800 42101011800 118 Census Tract 118 G5020 \n", "221 101 011900 42101011900 119 Census Tract 119 G5020 \n", "222 101 012000 42101012000 120 Census Tract 120 G5020 \n", "223 101 012100 42101012100 121 Census Tract 121 G5020 \n", "224 101 012500 42101012500 125 Census Tract 125 G5020 \n", "225 101 013200 42101013200 132 Census Tract 132 G5020 \n", "226 101 013300 42101013300 133 Census Tract 133 G5020 \n", "227 101 013500 42101013500 135 Census Tract 135 G5020 \n", "228 101 013700 42101013700 137 Census Tract 137 G5020 \n", "229 101 017000 42101017000 170 Census Tract 170 G5020 \n", "230 101 017100 42101017100 171 Census Tract 171 G5020 \n", "231 101 017300 42101017300 173 Census Tract 173 G5020 \n", "232 101 017400 42101017400 174 Census Tract 174 G5020 \n", "233 101 017500 42101017500 175 Census Tract 175 G5020 \n", "234 101 017800 42101017800 178 Census Tract 178 G5020 \n", "235 101 017900 42101017900 179 Census Tract 179 G5020 \n", "236 101 018300 42101018300 183 Census Tract 183 G5020 \n", "237 101 018400 42101018400 184 Census Tract 184 G5020 \n", "238 101 018800 42101018800 188 Census Tract 188 G5020 \n", "239 101 021700 42101021700 217 Census Tract 217 G5020 \n", "240 101 021800 42101021800 218 Census Tract 218 G5020 \n", "241 101 021900 42101021900 219 Census Tract 219 G5020 \n", "242 101 022000 42101022000 220 Census Tract 220 G5020 \n", "243 101 023100 42101023100 231 Census Tract 231 G5020 \n", "244 101 023500 42101023500 235 Census Tract 235 G5020 \n", "245 101 023600 42101023600 236 Census Tract 236 G5020 \n", "246 101 023700 42101023700 237 Census Tract 237 G5020 \n", "247 101 023800 42101023800 238 Census Tract 238 G5020 \n", "248 101 023900 42101023900 239 Census Tract 239 G5020 \n", "249 101 024000 42101024000 240 Census Tract 240 G5020 \n", "250 101 025700 42101025700 257 Census Tract 257 G5020 \n", "251 101 025800 42101025800 258 Census Tract 258 G5020 \n", "252 101 025900 42101025900 259 Census Tract 259 G5020 \n", "253 101 026000 42101026000 260 Census Tract 260 G5020 \n", "254 101 026100 42101026100 261 Census Tract 261 G5020 \n", "255 101 026200 42101026200 262 Census Tract 262 G5020 \n", "256 101 034801 42101034801 348.01 Census Tract 348.01 G5020 \n", "257 101 026302 42101026302 263.02 Census Tract 263.02 G5020 \n", "258 101 026400 42101026400 264 Census Tract 264 G5020 \n", "259 101 026500 42101026500 265 Census Tract 265 G5020 \n", "260 101 026600 42101026600 266 Census Tract 266 G5020 \n", "261 101 026700 42101026700 267 Census Tract 267 G5020 \n", "262 101 026800 42101026800 268 Census Tract 268 G5020 \n", "263 101 029900 42101029900 299 Census Tract 299 G5020 \n", "264 101 030000 42101030000 300 Census Tract 300 G5020 \n", "265 101 030100 42101030100 301 Census Tract 301 G5020 \n", "266 101 030200 42101030200 302 Census Tract 302 G5020 \n", "267 101 030600 42101030600 306 Census Tract 306 G5020 \n", "268 101 030700 42101030700 307 Census Tract 307 G5020 \n", "269 101 030800 42101030800 308 Census Tract 308 G5020 \n", "270 101 030900 42101030900 309 Census Tract 309 G5020 \n", "271 101 031000 42101031000 310 Census Tract 310 G5020 \n", "272 101 031200 42101031200 312 Census Tract 312 G5020 \n", "273 101 031300 42101031300 313 Census Tract 313 G5020 \n", "274 101 031600 42101031600 316 Census Tract 316 G5020 \n", "275 101 031700 42101031700 317 Census Tract 317 G5020 \n", "276 101 036303 42101036303 363.03 Census Tract 363.03 G5020 \n", "277 101 034701 42101034701 347.01 Census Tract 347.01 G5020 \n", "278 101 034802 42101034802 348.02 Census Tract 348.02 G5020 \n", "279 101 034900 42101034900 349 Census Tract 349 G5020 \n", "280 101 035100 42101035100 351 Census Tract 351 G5020 \n", "281 101 035200 42101035200 352 Census Tract 352 G5020 \n", "282 101 035301 42101035301 353.01 Census Tract 353.01 G5020 \n", "283 101 026301 42101026301 263.01 Census Tract 263.01 G5020 \n", "284 101 000804 42101000804 8.04 Census Tract 8.04 G5020 \n", "285 101 001202 42101001202 12.02 Census Tract 12.02 G5020 \n", "286 101 001201 42101001201 12.01 Census Tract 12.01 G5020 \n", "287 101 000803 42101000803 8.03 Census Tract 8.03 G5020 \n", "288 101 002702 42101002702 27.02 Census Tract 27.02 G5020 \n", "289 101 003002 42101003002 30.02 Census Tract 30.02 G5020 \n", "290 101 003001 42101003001 30.01 Census Tract 30.01 G5020 \n", "291 101 002802 42101002802 28.02 Census Tract 28.02 G5020 \n", "292 101 002701 42101002701 27.01 Census Tract 27.01 G5020 \n", "293 101 033701 42101033701 337.01 Census Tract 337.01 G5020 \n", "294 101 033702 42101033702 337.02 Census Tract 337.02 G5020 \n", "295 101 031502 42101031502 315.02 Census Tract 315.02 G5020 \n", "296 101 031401 42101031401 314.01 Census Tract 314.01 G5020 \n", "297 101 031402 42101031402 314.02 Census Tract 314.02 G5020 \n", "298 101 016701 42101016701 167.01 Census Tract 167.01 G5020 \n", "299 101 016702 42101016702 167.02 Census Tract 167.02 G5020 \n", "300 101 027901 42101027901 279.01 Census Tract 279.01 G5020 \n", "301 101 027902 42101027902 279.02 Census Tract 279.02 G5020 \n", "302 101 008101 42101008101 81.01 Census Tract 81.01 G5020 \n", "303 101 007102 42101007102 71.02 Census Tract 71.02 G5020 \n", "304 101 008701 42101008701 87.01 Census Tract 87.01 G5020 \n", "305 101 008102 42101008102 81.02 Census Tract 81.02 G5020 \n", "306 101 008602 42101008602 86.02 Census Tract 86.02 G5020 \n", "307 101 037500 42101037500 375 Census Tract 375 G5020 \n", "308 101 018002 42101018002 180.02 Census Tract 180.02 G5020 \n", "309 101 009801 42101009801 98.01 Census Tract 98.01 G5020 \n", "310 101 007101 42101007101 71.01 Census Tract 71.01 G5020 \n", "311 101 002801 42101002801 28.01 Census Tract 28.01 G5020 \n", "312 101 000801 42101000801 8.01 Census Tract 8.01 G5020 \n", "313 101 001101 42101001101 11.01 Census Tract 11.01 G5020 \n", "314 101 027402 42101027402 274.02 Census Tract 274.02 G5020 \n", "315 101 008601 42101008601 86.01 Census Tract 86.01 G5020 \n", "316 101 036502 42101036502 365.02 Census Tract 365.02 G5020 \n", "317 101 036700 42101036700 367 Census Tract 367 G5020 \n", "318 101 037600 42101037600 376 Census Tract 376 G5020 \n", "319 101 038600 42101038600 386 Census Tract 386 G5020 \n", "320 101 038500 42101038500 385 Census Tract 385 G5020 \n", "321 101 038700 42101038700 387 Census Tract 387 G5020 \n", "322 101 038800 42101038800 388 Census Tract 388 G5020 \n", "323 101 038900 42101038900 389 Census Tract 389 G5020 \n", "324 101 980000 42101980000 9800 Census Tract 9800 G5020 \n", "325 101 026900 42101026900 269 Census Tract 269 G5020 \n", "326 101 027000 42101027000 270 Census Tract 270 G5020 \n", "327 101 027100 42101027100 271 Census Tract 271 G5020 \n", "328 101 027200 42101027200 272 Census Tract 272 G5020 \n", "329 101 027300 42101027300 273 Census Tract 273 G5020 \n", "330 101 027500 42101027500 275 Census Tract 275 G5020 \n", "331 101 027600 42101027600 276 Census Tract 276 G5020 \n", "332 101 027700 42101027700 277 Census Tract 277 G5020 \n", "333 101 027800 42101027800 278 Census Tract 278 G5020 \n", "334 101 028000 42101028000 280 Census Tract 280 G5020 \n", "335 101 028100 42101028100 281 Census Tract 281 G5020 \n", "336 101 028200 42101028200 282 Census Tract 282 G5020 \n", "337 101 031800 42101031800 318 Census Tract 318 G5020 \n", "338 101 031900 42101031900 319 Census Tract 319 G5020 \n", "339 101 032000 42101032000 320 Census Tract 320 G5020 \n", "340 101 032100 42101032100 321 Census Tract 321 G5020 \n", "341 101 032300 42101032300 323 Census Tract 323 G5020 \n", "342 101 032500 42101032500 325 Census Tract 325 G5020 \n", "343 101 032600 42101032600 326 Census Tract 326 G5020 \n", "344 101 032900 42101032900 329 Census Tract 329 G5020 \n", "345 101 033000 42101033000 330 Census Tract 330 G5020 \n", "346 101 033200 42101033200 332 Census Tract 332 G5020 \n", "347 101 035500 42101035500 355 Census Tract 355 G5020 \n", "348 101 035800 42101035800 358 Census Tract 358 G5020 \n", "349 101 035900 42101035900 359 Census Tract 359 G5020 \n", "350 101 036000 42101036000 360 Census Tract 360 G5020 \n", "351 101 036100 42101036100 361 Census Tract 361 G5020 \n", "352 101 036203 42101036203 362.03 Census Tract 362.03 G5020 \n", "353 101 035302 42101035302 353.02 Census Tract 353.02 G5020 \n", "354 101 036201 42101036201 362.01 Census Tract 362.01 G5020 \n", "355 101 036302 42101036302 363.02 Census Tract 363.02 G5020 \n", "356 101 037300 42101037300 373 Census Tract 373 G5020 \n", "357 101 037200 42101037200 372 Census Tract 372 G5020 \n", "358 101 038300 42101038300 383 Census Tract 383 G5020 \n", "359 101 039000 42101039000 390 Census Tract 390 G5020 \n", "360 101 037800 42101037800 378 Census Tract 378 G5020 \n", "361 101 037700 42101037700 377 Census Tract 377 G5020 \n", "\n", " FUNCSTAT10 ALAND10 AWATER10 INTPTLAT10 INTPTLON10 LOGRECNO \\\n", "0 S 366717 0 +39.9632709 -075.2322437 10429 \n", "1 S 319070 0 +39.9658709 -075.2379140 10430 \n", "2 S 405273 0 +39.9655396 -075.2435075 10431 \n", "3 S 341256 0 +39.9764504 -075.1771771 10468 \n", "4 S 562934 0 +39.9750563 -075.1711846 10469 \n", "5 S 439802 0 +39.9735358 -075.1630966 10470 \n", "6 S 562132 0 +39.9708771 -075.1524555 10471 \n", "7 S 789935 277434 +39.9652375 -075.1359612 10472 \n", "8 S 570015 282808 +39.9671225 -075.1265617 10473 \n", "9 S 609439 0 +39.9722286 -075.1400952 10474 \n", "10 S 321464 0 +39.9760715 -075.1484189 10475 \n", "11 S 445048 0 +39.9764305 -075.1546990 10476 \n", "12 S 337677 0 +39.9785489 -075.1620244 10477 \n", "13 S 453221 0 +39.9816503 -075.1804029 10479 \n", "14 S 669101 0 +39.9854546 -075.1700491 10482 \n", "15 S 469136 0 +39.9837644 -075.1608849 10483 \n", "16 S 429567 0 +39.9790066 -075.1418910 10484 \n", "17 S 778606 12639 +40.0095015 -075.0986136 10517 \n", "18 S 1439101 20770 +40.0095510 -075.1071820 10518 \n", "19 S 656913 0 +40.0006393 -075.1150648 10519 \n", "20 S 450587 0 +40.0162799 -075.1379372 10522 \n", "21 S 541006 0 +40.0107245 -075.1421472 10523 \n", "22 S 661884 0 +40.0048515 -075.1435463 10524 \n", "23 S 756814 0 +40.0081282 -075.1621609 10528 \n", "24 S 508176 0 +40.0125820 -075.1495922 10529 \n", "25 S 407372 0 +40.0198216 -075.1525117 10530 \n", "26 S 1429510 0 +40.0158738 -075.1643607 10531 \n", "27 S 1295848 56842 +40.0198000 -075.1827740 10532 \n", "28 S 727889 60713 +39.9445258 -075.1862050 10354 \n", "29 S 315832 0 +39.9429436 -075.1715930 10355 \n", "30 S 239383 0 +39.9419037 -075.1591158 10356 \n", "31 S 196392 0 +39.9402546 -075.1483127 10357 \n", "32 S 221530 0 +39.9377593 -075.1483114 10358 \n", "33 S 242483 0 +39.9399998 -075.1593091 10359 \n", "34 S 328327 0 +39.9400454 -075.1722270 10360 \n", "35 S 289368 0 +39.9381416 -075.1843145 10361 \n", "36 S 237519 0 +39.9372214 -075.1768955 10362 \n", "37 S 228696 0 +39.9364111 -075.1703923 10363 \n", "38 S 212379 0 +39.9348217 -075.1629799 10364 \n", "39 S 535421 0 +39.9367634 -075.1595100 10365 \n", "40 S 398697 0 +39.9342960 -075.1498023 10366 \n", "41 S 370217 0 +39.9306984 -075.1655729 10371 \n", "42 S 395908 0 +39.9323428 -075.1779572 10374 \n", "43 S 1846253 530013 +39.8904539 -075.2513923 10390 \n", "44 S 1168442 12010 +39.9074191 -075.2489174 10391 \n", "45 S 840411 0 +39.8988328 -075.2447347 10392 \n", "46 S 1089657 0 +39.9115196 -075.2381570 10393 \n", "47 S 534201 0 +39.9150013 -075.2288094 10394 \n", "48 S 509636 0 +39.9194134 -075.2335257 10395 \n", "49 S 555602 0 +39.9210843 -075.2399762 10396 \n", "50 S 497695 0 +39.9710834 -075.2503759 10434 \n", "51 S 601437 0 +39.9721396 -075.2425290 10435 \n", "52 S 360618 0 +39.9680830 -075.2316701 10436 \n", "53 S 281357 0 +39.9678322 -075.2254383 10437 \n", "54 S 472051 0 +39.9654995 -075.2191193 10438 \n", "55 S 657766 0 +39.9665652 -075.2142018 10439 \n", "56 S 265466 0 +39.9646327 -075.2079213 10440 \n", "57 S 460475 0 +39.9687475 -075.2069442 10441 \n", "58 S 585732 0 +39.9660217 -075.1989890 10442 \n", "59 S 248168 0 +39.9649286 -075.1917650 10443 \n", "60 S 472868 0 +39.9737291 -075.2062951 10444 \n", "61 S 1301411 0 +39.9752003 -075.2215745 10445 \n", "62 S 503162 0 +39.9736041 -075.2336533 10446 \n", "63 S 334899 0 +39.9786554 -075.2353346 10447 \n", "64 S 972947 0 +39.9807388 -075.2440178 10448 \n", "65 S 485211 0 +39.9780463 -075.1355242 10485 \n", "66 S 580218 0 +39.9735773 -075.1294327 10486 \n", "67 S 720839 0 +39.9793809 -075.1231903 10487 \n", "68 S 707586 0 +39.9844571 -075.1275250 10488 \n", "69 S 364983 0 +39.9840197 -075.1384217 10489 \n", "70 S 572226 0 +39.9885061 -075.1339156 10490 \n", "71 S 485026 0 +39.9896437 -075.1431665 10491 \n", "72 S 394713 0 +39.9890550 -075.1491723 10492 \n", "73 S 261133 0 +39.9890491 -075.1536062 10493 \n", "74 S 581301 0 +39.9917820 -075.1676540 10496 \n", "75 S 420397 0 +39.9238262 -075.1732854 10381 \n", "76 S 563700 0 +39.9939857 -075.1831934 10498 \n", "77 S 512907 0 +39.9930523 -075.1758394 10497 \n", "78 S 1428274 99543 +40.0126929 -075.1944867 10533 \n", "79 S 880647 0 +40.0213151 -075.1936140 10534 \n", "80 S 509953 35428 +40.0186576 -075.2089795 10535 \n", "81 S 858223 55719 +40.0244730 -075.2151045 10536 \n", "82 S 540313 0 +40.0264564 -075.2065293 10537 \n", "83 S 515705 0 +40.0348390 -075.2125337 10538 \n", "84 S 538876 0 +40.0322339 -075.2181175 10539 \n", "85 S 607138 56535 +40.0279290 -075.2240827 10540 \n", "86 S 1003279 40236 +40.0350417 -075.2288249 10541 \n", "87 S 1991850 111706 +40.0436758 -075.2403985 10542 \n", "88 S 407855 0 +40.0332734 -075.1759175 10554 \n", "89 S 532060 0 +40.0285110 -075.1697086 10555 \n", "90 S 679035 0 +40.0215855 -075.1710376 10556 \n", "91 S 421189 0 +40.0248284 -075.1638925 10557 \n", "92 S 801001 0 +40.0333286 -075.1620463 10558 \n", "93 S 621264 0 +40.0409623 -075.1729016 10559 \n", "94 S 941266 0 +40.0417034 -075.1645311 10560 \n", "95 S 319263 0 +40.0468442 -075.1668818 10561 \n", "96 S 325198 0 +40.0511009 -075.1601167 10562 \n", "97 S 952423 0 +40.0468352 -075.1771588 10563 \n", "98 S 581298 0 +40.0542198 -075.1822200 10564 \n", "99 S 769760 0 +40.0604202 -075.1760718 10565 \n", "100 S 766603 0 +40.0625796 -075.1840640 10566 \n", "101 S 863997 1979 +40.0683411 -075.1883025 10567 \n", "102 S 673067 0 +40.0260505 -075.1438525 10597 \n", "103 S 492451 0 +40.0251577 -075.1381287 10598 \n", "104 S 267006 0 +40.0287154 -075.1337359 10599 \n", "105 S 717845 0 +40.0285757 -075.1276448 10600 \n", "106 S 340972 0 +40.0218194 -075.1314402 10601 \n", "107 S 442001 0 +40.0222841 -075.1240562 10602 \n", "108 S 818133 20001 +40.0296096 -075.1166058 10605 \n", "109 S 1327550 0 +40.0361323 -075.1074594 10606 \n", "110 S 1732847 28953 +40.0249561 -075.1021580 10607 \n", "111 S 685641 0 +40.0137540 -075.0917655 10608 \n", "112 S 647647 0 +40.0094789 -075.0854721 10609 \n", "113 S 649155 0 +40.0159529 -075.0678013 10610 \n", "114 S 1011566 0 +40.0550147 -075.0440558 10644 \n", "115 S 1218434 0 +40.0535052 -075.0529610 10645 \n", "116 S 942793 0 +40.0546014 -075.0648677 10646 \n", "117 S 1153639 0 +40.0614785 -075.0592350 10647 \n", "118 S 1400220 0 +40.0626481 -075.0736440 10650 \n", "119 S 1141156 0 +40.0685560 -075.0873418 10651 \n", "120 S 763893 729 +40.0711759 -075.0735007 10652 \n", "121 S 1333267 0 +40.0763415 -075.0806938 10653 \n", "122 S 1000768 0 +40.0825947 -075.0721585 10654 \n", "123 S 3399171 13905 +40.0943325 -075.0564419 10655 \n", "124 S 1853669 5746 +40.0708314 -075.0207264 10658 \n", "125 S 645368 16097 +39.9251805 -075.2428396 10397 \n", "126 S 1111283 29425 +39.9330955 -075.2318406 10398 \n", "127 S 651244 0 +39.9293155 -075.2298425 10399 \n", "128 S 2322732 66075 +40.0895349 -074.9667387 10681 \n", "129 S 4501110 8014 +40.1127747 -074.9789137 10684 \n", "130 S 1004313 1426278 +39.9470272 -075.1404472 10687 \n", "131 S 1271533 8021 +40.0619427 -075.0023705 10663 \n", "132 S 1016206 0 +40.0570427 -075.0283288 10660 \n", "133 S 1116115 2329 +40.0838623 -074.9781805 10679 \n", "134 S 1089154 0 +39.9184658 -075.1831323 10380 \n", "135 S 425234 0 +39.9566981 -075.2414378 10416 \n", "136 S 400458 0 +39.9967182 -075.1305528 10507 \n", "137 S 471662 0 +39.9450045 -075.1466193 10349 \n", "138 S 229399 0 +39.9456722 -075.1516020 10348 \n", "139 S 303680 0 +39.9532973 -075.1686952 10339 \n", "140 S 214766 14981 +39.9541871 -075.1758082 10338 \n", "141 S 849290 56473 +40.0009407 -075.2120769 10457 \n", "142 S 234732 0 +39.9715714 -075.1798097 10466 \n", "143 S 447469 0 +40.0749091 -075.0392089 10656 \n", "144 S 1009269 0 +40.0814446 -075.0383811 10657 \n", "145 S 204062 0 +39.9442654 -075.1566960 10351 \n", "146 S 155164 0 +39.9471596 -075.1566389 10347 \n", "147 S 105510 0 +39.9478866 -075.1623004 10346 \n", "148 S 262958 0 +39.9993972 -075.1686145 10501 \n", "149 S 290610 0 +39.9986670 -075.1742061 10502 \n", "150 S 326659 0 +40.0386049 -075.1286496 10586 \n", "151 S 483577 0 +40.0036824 -075.1553072 10526 \n", "152 S 373125 0 +40.0111415 -075.1545676 10527 \n", "153 S 349649 0 +40.0422496 -075.0785449 10622 \n", "154 S 397973 0 +40.0370850 -075.0833729 10623 \n", "155 S 370302 0 +40.0034030 -075.1300445 10521 \n", "156 S 393883 0 +40.0004303 -075.1316227 10520 \n", "157 S 598655 0 +40.0171008 -075.1151820 10603 \n", "158 S 772294 6267 +40.0216105 -075.1116877 10604 \n", "159 S 486954 0 +40.0403093 -075.0379505 10641 \n", "160 S 718272 0 +40.0451050 -075.0272869 10642 \n", "161 S 587242 0 +40.0365919 -075.0481642 10628 \n", "162 S 377375 0 +40.0428163 -075.0994351 10615 \n", "163 S 699246 0 +40.0457206 -075.1046619 10616 \n", "164 S 611026 0 +39.9745879 -075.2679037 10433 \n", "165 S 387383 0 +39.9810569 -075.1128000 10512 \n", "166 S 489258 0 +39.9950621 -075.1231399 10509 \n", "167 S 241053 0 +39.9964470 -075.1167526 10508 \n", "168 S 1394868 1863 +40.1079419 -075.0480601 10671 \n", "169 S 598625 718 +40.1095846 -075.0286811 10672 \n", "170 S 1559149 0 +40.1130914 -075.0374316 10673 \n", "171 S 2029707 12498 +40.0973908 -075.0388184 10670 \n", "172 S 193072 0 +39.9869632 -075.1857502 10480 \n", "173 S 556570 0 +39.9861430 -075.1794280 10481 \n", "174 S 1816093 7168 +40.1290877 -075.0120077 10685 \n", "175 S 238612 0 +39.9653623 -075.1690326 10463 \n", "176 S 164058 0 +39.9659574 -075.1752507 10462 \n", "177 S 167625 0 +39.9689697 -075.1785774 10465 \n", "178 S 1374524 0 +39.9910899 -075.0927158 10696 \n", "179 S 1828671 25840 +39.9963741 -075.0973643 10699 \n", "180 S 874602 0 +40.0052279 -075.0807845 10697 \n", "181 S 3335029 1629584 +40.0189334 -075.0399564 10698 \n", "182 S 2546785 0 +40.0714163 -075.2332568 10701 \n", "183 S 704909 0 +39.9523827 -075.1466628 10335 \n", "184 S 382478 0 +39.9553999 -075.1569775 10336 \n", "185 S 548342 356 +39.9568780 -075.1716655 10337 \n", "186 S 246682 7087 +39.9510463 -075.1729143 10342 \n", "187 S 491790 0 +39.9333011 -075.1854187 10375 \n", "188 S 1062354 72863 +39.9384405 -075.1958253 10376 \n", "189 S 964539 0 +39.9279255 -075.1920206 10377 \n", "190 S 355619 0 +39.9276728 -075.1806654 10378 \n", "191 S 247413 0 +39.9245283 -075.1824354 10379 \n", "192 S 374000 0 +39.9229611 -075.1589741 10385 \n", "193 S 344837 0 +39.9188943 -075.1674160 10384 \n", "194 S 452596 0 +39.9167178 -075.1744119 10382 \n", "195 S 314952 0 +39.9238035 -075.1662102 10383 \n", "196 S 391854 0 +39.9179425 -075.1600629 10386 \n", "197 S 453343 0 +39.9168570 -075.1516284 10388 \n", "198 S 361679 0 +39.9219554 -075.1512640 10387 \n", "199 S 377950 0 +39.9504630 -075.2182570 10410 \n", "200 S 430471 0 +39.9506613 -075.2268423 10411 \n", "201 S 832334 11136 +39.9491574 -075.2444494 10414 \n", "202 S 579127 0 +39.9939260 -075.1343448 10506 \n", "203 S 510557 6713 +39.9577810 -075.2467384 10415 \n", "204 S 501765 0 +39.9579899 -075.2354681 10417 \n", "205 S 621445 0 +39.9568821 -075.2265389 10418 \n", "206 S 436319 0 +39.9595116 -075.1906245 10425 \n", "207 S 425573 0 +39.9594179 -075.1977245 10426 \n", "208 S 512009 0 +39.9601608 -075.2074723 10427 \n", "209 S 402475 0 +39.9622914 -075.2240225 10428 \n", "210 S 1001467 0 +39.9242475 -075.2242816 10400 \n", "211 S 704352 102803 +39.9306204 -075.2146526 10401 \n", "212 S 469047 0 +39.9351850 -075.2214770 10402 \n", "213 S 502614 0 +39.9446370 -075.2332168 10405 \n", "214 S 387201 0 +39.9448185 -075.2232916 10406 \n", "215 S 675930 0 +39.9408575 -075.2143067 10407 \n", "216 S 322260 0 +39.9463523 -075.2082584 10408 \n", "217 S 427404 0 +39.9464580 -075.2162637 10409 \n", "218 S 370456 0 +39.9773687 -075.2518303 10449 \n", "219 S 654019 0 +39.9919070 -075.2404371 10450 \n", "220 S 915129 0 +39.9852889 -075.2357395 10451 \n", "221 S 691111 0 +39.9861142 -075.2288429 10452 \n", "222 S 600681 0 +39.9955323 -075.2297466 10453 \n", "223 S 876796 5378 +39.9964998 -075.2223795 10454 \n", "224 S 864810 49075 +39.9613701 -075.1720837 10458 \n", "225 S 426671 0 +39.9662042 -075.1571335 10460 \n", "226 S 357932 0 +39.9666126 -075.1629455 10461 \n", "227 S 404891 0 +39.9693564 -075.1700367 10464 \n", "228 S 589738 0 +39.9772752 -075.1842323 10467 \n", "229 S 1570376 50400 +40.0078614 -075.1834204 10499 \n", "230 S 1140882 0 +40.0027449 -075.1763248 10500 \n", "231 S 874586 0 +39.9985707 -075.1609337 10503 \n", "232 S 353985 0 +39.9962138 -075.1503586 10504 \n", "233 S 719915 6252 +39.9979150 -075.1429842 10505 \n", "234 S 662905 0 +39.9913734 -075.1173063 10510 \n", "235 S 714008 0 +39.9870535 -075.1139340 10511 \n", "236 S 1834680 185387 +39.9956035 -075.0746225 10514 \n", "237 S 1285745 949471 +39.9996644 -075.0637363 10515 \n", "238 S 663288 0 +39.9973659 -075.1058296 10516 \n", "239 S 1559576 0 +40.0450277 -075.2239451 10543 \n", "240 S 996088 0 +40.0574759 -075.2324353 10544 \n", "241 S 1410069 51091 +40.0505829 -075.2470033 10545 \n", "242 S 2944018 99558 +40.0562177 -075.2520092 10546 \n", "243 S 732803 1270 +40.0666637 -075.2038514 10547 \n", "244 S 775430 0 +40.0394435 -075.2007925 10548 \n", "245 S 978096 0 +40.0427145 -075.1946940 10549 \n", "246 S 1072973 0 +40.0487394 -075.1886069 10550 \n", "247 S 781630 0 +40.0389370 -075.1827038 10551 \n", "248 S 486037 2704 +40.0339713 -075.1875115 10552 \n", "249 S 617080 0 +40.0280807 -075.1794623 10553 \n", "250 S 748205 0 +40.0724586 -075.1962708 10568 \n", "251 S 586719 0 +40.0739801 -075.1823113 10569 \n", "252 S 549415 0 +40.0799255 -075.1759762 10570 \n", "253 S 543433 0 +40.0761235 -075.1694560 10571 \n", "254 S 649364 0 +40.0704645 -075.1755189 10572 \n", "255 S 555958 0 +40.0664940 -075.1692176 10573 \n", "256 S 1385963 5188 +40.0545325 -075.0163104 10661 \n", "257 S 704112 0 +40.0687425 -075.1571945 10575 \n", "258 S 796819 0 +40.0625462 -075.1620066 10576 \n", "259 S 545961 0 +40.0587255 -075.1546921 10577 \n", "260 S 913982 0 +40.0634828 -075.1473266 10578 \n", "261 S 643873 0 +40.0547569 -075.1479247 10579 \n", "262 S 774174 0 +40.0555270 -075.1399312 10580 \n", "263 S 591451 0 +40.0131465 -075.0747146 10611 \n", "264 S 910854 0 +40.0186719 -075.0780880 10612 \n", "265 S 725113 0 +40.0204947 -075.0885046 10613 \n", "266 S 901710 0 +40.0259863 -075.0823128 10614 \n", "267 S 1007799 0 +40.0504922 -075.0943787 10617 \n", "268 S 653309 0 +40.0573133 -075.0885390 10618 \n", "269 S 795704 0 +40.0547831 -075.0819056 10619 \n", "270 S 645014 0 +40.0437632 -075.0851914 10620 \n", "271 S 1063411 0 +40.0497292 -075.0744541 10621 \n", "272 S 429736 0 +40.0354204 -075.0774550 10624 \n", "273 S 711141 0 +40.0393190 -075.0698140 10625 \n", "274 S 713953 0 +40.0326126 -075.0590717 10630 \n", "275 S 881689 0 +40.0306050 -075.0683989 10631 \n", "276 S 2555861 0 +40.1051833 -074.9702250 10683 \n", "277 S 1148190 57 +40.0645576 -075.0329783 10659 \n", "278 S 1232182 8014 +40.0687035 -075.0097300 10662 \n", "279 S 1944040 0 +40.0453848 -075.0090768 10664 \n", "280 S 997442 666018 +40.0488411 -074.9859716 10665 \n", "281 S 1838264 27863 +40.0559122 -074.9907443 10666 \n", "282 S 1375222 36973 +40.0659313 -074.9934646 10667 \n", "283 S 406340 0 +40.0728148 -075.1637161 10574 \n", "284 S 145453 0 +39.9485646 -075.1677563 10345 \n", "285 S 308560 0 +39.9459117 -075.1699475 10353 \n", "286 S 327555 30728 +39.9471666 -075.1798721 10352 \n", "287 S 152820 0 +39.9493748 -075.1742489 10344 \n", "288 S 367673 0 +39.9280114 -075.1495606 10368 \n", "289 S 226951 0 +39.9327263 -075.1711915 10373 \n", "290 S 226547 0 +39.9290640 -075.1719912 10372 \n", "291 S 362690 0 +39.9288001 -075.1614073 10370 \n", "292 S 224840 0 +39.9285526 -075.1537033 10367 \n", "293 S 973653 0 +40.0672105 -075.0482983 10648 \n", "294 S 1057798 0 +40.0707532 -075.0578212 10649 \n", "295 S 578101 0 +40.0392658 -075.0548693 10629 \n", "296 S 594849 0 +40.0457134 -075.0665728 10626 \n", "297 S 564136 0 +40.0432797 -075.0602860 10627 \n", "298 S 254046 0 +39.9911965 -075.1619017 10494 \n", "299 S 355103 0 +39.9904175 -075.1578177 10495 \n", "300 S 415780 0 +40.0458879 -075.1544482 10592 \n", "301 S 889784 0 +40.0374381 -075.1543087 10593 \n", "302 S 243700 0 +39.9483649 -075.2360506 10412 \n", "303 S 415761 0 +39.9409204 -075.2282511 10404 \n", "304 S 259523 0 +39.9535656 -075.2104988 10421 \n", "305 S 362526 0 +39.9522216 -075.2345584 10413 \n", "306 S 369142 0 +39.9569725 -075.2167030 10420 \n", "307 S 1032702 1496 +39.9840699 -075.2551922 10692 \n", "308 S 439791 0 +39.9836344 -075.1067096 10513 \n", "309 S 297977 0 +39.9775172 -075.2665972 10432 \n", "310 S 253256 0 +39.9381580 -075.2249984 10403 \n", "311 S 222950 0 +39.9289729 -075.1568319 10369 \n", "312 S 99958 12755 +39.9497374 -075.1804054 10343 \n", "313 S 174014 0 +39.9449918 -075.1625240 10350 \n", "314 S 511360 0 +40.0390702 -075.1251352 10587 \n", "315 S 252482 0 +39.9537341 -075.2165930 10419 \n", "316 S 1733189 0 +40.1235705 -074.9993521 10686 \n", "317 S 801969 0 +39.9607248 -075.1439885 10688 \n", "318 S 717304 0 +39.9599009 -075.1551651 10693 \n", "319 S 3304398 32066 +40.0582762 -075.2110913 10703 \n", "320 S 1338941 2576 +40.0757528 -075.2146234 10702 \n", "321 S 2053212 22241 +40.0833122 -075.2130770 10704 \n", "322 S 1383530 4751 +40.0571595 -075.1982438 10705 \n", "323 S 1280551 0 +40.0543431 -075.1682764 10706 \n", "324 S 8922478 1508835 +39.9880961 -075.1967773 10708 \n", "325 S 614686 0 +40.0556007 -075.1324048 10581 \n", "326 S 642216 0 +40.0493231 -075.1331512 10582 \n", "327 S 372278 39344 +40.0484793 -075.1263611 10583 \n", "328 S 679046 794 +40.0472339 -075.1180889 10584 \n", "329 S 938011 14079 +40.0377547 -075.1189432 10585 \n", "330 S 606825 0 +40.0400497 -075.1322707 10588 \n", "331 S 663745 0 +40.0429404 -075.1392771 10589 \n", "332 S 542404 0 +40.0505444 -075.1512267 10590 \n", "333 S 724725 0 +40.0425278 -075.1471626 10591 \n", "334 S 718346 0 +40.0261190 -075.1546481 10594 \n", "335 S 503541 0 +40.0304473 -075.1491299 10595 \n", "336 S 855812 0 +40.0348704 -075.1403327 10596 \n", "337 S 464290 0 +40.0311021 -075.0769892 10632 \n", "338 S 773285 0 +40.0230600 -075.0648988 10633 \n", "339 S 681549 0 +40.0271751 -075.0548674 10634 \n", "340 S 552928 0 +40.0170175 -075.0589752 10635 \n", "341 S 600043 0 +40.0210898 -075.0515270 10636 \n", "342 S 839319 0 +40.0263918 -075.0452561 10637 \n", "343 S 809898 0 +40.0302773 -075.0396263 10638 \n", "344 S 922922 21617 +40.0379010 -075.0249713 10639 \n", "345 S 732860 0 +40.0335974 -075.0338492 10640 \n", "346 S 828420 0 +40.0439411 -075.0448281 10643 \n", "347 S 2290053 1067 +40.0911285 -075.0293244 10669 \n", "348 S 1757756 2013 +40.1213169 -075.0257898 10674 \n", "349 S 2244717 2511 +40.1103418 -075.0151645 10675 \n", "350 S 2043084 638 +40.1042670 -075.0108187 10676 \n", "351 S 1230432 7138 +40.0987766 -074.9907481 10677 \n", "352 S 1475496 68020 +40.0760921 -074.9742967 10680 \n", "353 S 1498641 17292 +40.0730774 -074.9968713 10668 \n", "354 S 1031929 15195 +40.0820300 -074.9868079 10678 \n", "355 S 502696 0 +40.0973153 -074.9805151 10682 \n", "356 S 2573046 162376 +39.9024981 -075.1879361 10691 \n", "357 S 1028984 0 +39.9129487 -075.1599379 10690 \n", "358 S 3064496 0 +40.0108630 -075.1248984 10700 \n", "359 S 2032689 0 +40.0357300 -075.0938840 10707 \n", "360 S 3760084 1936838 +39.9805802 -075.0956845 10695 \n", "361 S 736894 0 +39.9824381 -075.1506932 10694 \n", "\n", " percent_error qct \n", "0 -28.483425 True \n", "1 -4.364571 True \n", "2 1.496405 True \n", "3 -0.496751 True \n", "4 5.325533 True \n", "5 -5.708610 True \n", "6 0.795801 True \n", "7 -2.017550 False \n", "8 0.547336 False \n", "9 -6.826711 True \n", "10 -25.153196 True \n", "11 0.189507 True \n", "12 29.350075 True \n", "13 -16.192611 True \n", "14 13.214748 True \n", "15 3.407297 True \n", "16 0.716415 True \n", "17 -12.446702 True \n", "18 -11.764962 True \n", "19 -7.094655 True \n", "20 0.781220 True \n", "21 -17.533019 True \n", "22 4.032752 True \n", "23 -14.570002 True \n", "24 -20.682314 True \n", "25 2.897500 True \n", "26 -6.760222 True \n", "27 7.447321 True \n", "28 -4.895036 False \n", "29 -1.435920 False \n", "30 6.472638 False \n", "31 -1.873941 False \n", "32 -9.286836 False \n", "33 7.344322 False \n", "34 0.397539 False \n", "35 0.457820 True \n", "36 9.588574 False \n", "37 0.336966 True \n", "38 -5.145292 False \n", "39 -2.593394 False \n", "40 0.196975 False \n", "41 -0.395551 False \n", "42 10.274746 True \n", "43 -2.210262 False \n", "44 -5.311483 False \n", "45 -30.677980 True \n", "46 -18.971237 True \n", "47 -19.117393 True \n", "48 -12.073787 True \n", "49 -14.907015 True \n", "50 -5.723260 True \n", "51 -14.034667 True \n", "52 -33.474588 True \n", "53 -12.701675 True \n", "54 32.211146 True \n", "55 -17.271596 True \n", "56 33.617311 True \n", "57 -19.514391 True \n", "58 -7.282077 True \n", "59 -0.381349 True \n", "60 -41.775108 True \n", "61 -6.039793 True \n", "62 -5.931811 True \n", "63 -26.679157 True \n", "64 -9.134455 False \n", "65 -0.844052 True \n", "66 -1.826133 False \n", "67 -0.568044 False \n", "68 -0.903024 True \n", "69 18.247338 True \n", "70 36.390551 True \n", "71 -29.717494 True \n", "72 -4.442377 True \n", "73 97.745219 False \n", "74 0.874835 True \n", "75 -10.967569 True \n", "76 -22.371243 True \n", "77 -7.814054 True \n", "78 -0.588830 False \n", "79 -13.650912 True \n", "80 -5.828652 False \n", "81 -2.580233 False \n", "82 -9.755634 False \n", "83 -3.100734 False \n", "84 -1.381236 False \n", "85 -3.818832 False \n", "86 -1.113070 False \n", "87 3.528908 False \n", "88 28.297371 True \n", "89 17.469982 True \n", "90 10.539242 True \n", "91 -1.015023 True \n", "92 -2.899402 True \n", "93 114.323202 True \n", "94 -29.379893 True \n", "95 -2.803607 False \n", "96 -11.981156 True \n", "97 1.875159 True \n", "98 5.655480 True \n", "99 -8.012850 False \n", "100 -2.798363 False \n", "101 3.395974 False \n", "102 27.932818 True \n", "103 -16.882161 True \n", "104 -13.709877 True \n", "105 -22.694345 True \n", "106 -5.545978 True \n", "107 -1.733512 True \n", "108 -14.893101 True \n", "109 3.324310 True \n", "110 3.562461 False \n", "111 -1.940667 True \n", "112 0.702318 True \n", "113 -12.114099 True \n", "114 4.914154 False \n", "115 1.760306 False \n", "116 -1.208627 False \n", "117 -2.485250 False \n", "118 -2.056393 False \n", "119 -5.321420 False \n", "120 -0.966848 False \n", "121 -1.982391 False \n", "122 0.684413 False \n", "123 -2.981204 False \n", "124 -3.818366 False \n", "125 -20.376464 True \n", "126 -10.172312 True \n", "127 -35.668947 True \n", "128 -2.438852 False \n", "129 14.808986 False \n", "130 -1.544221 False \n", "131 0.121130 False \n", "132 -0.357857 False \n", "133 2.538063 False \n", "134 -6.701772 False \n", "135 1.125435 True \n", "136 15.249996 True \n", "137 4.141022 False \n", "138 13.199580 False \n", "139 6.703593 False \n", "140 -0.132608 False \n", "141 -58.939033 False \n", "142 -3.723740 False \n", "143 -1.062127 True \n", "144 -9.017654 False \n", "145 4.520879 False \n", "146 -16.330279 False \n", "147 2.410632 False \n", "148 4.350992 True \n", "149 2.329863 True \n", "150 -7.633243 True \n", "151 -14.998775 True \n", "152 -19.278670 True \n", "153 -3.852695 True \n", "154 0.696432 False \n", "155 -25.618501 True \n", "156 5.256058 True \n", "157 -21.357157 True \n", "158 -8.722088 True \n", "159 -5.061989 False \n", "160 -6.179777 False \n", "161 -1.098926 False \n", "162 -1.256703 True \n", "163 -1.625548 True \n", "164 -7.843760 False \n", "165 1.931959 False \n", "166 -26.741756 True \n", "167 -20.029203 True \n", "168 2.739271 False \n", "169 -5.741369 True \n", "170 3.012652 False \n", "171 4.171760 False \n", "172 -15.860193 True \n", "173 50.281056 True \n", "174 7.327739 False \n", "175 -8.526030 False \n", "176 -2.533512 False \n", "177 -1.900403 False \n", "178 -6.208838 False \n", "179 -8.740525 True \n", "180 -14.778370 True \n", "181 -24.459256 True \n", "182 -0.766874 False \n", "183 6.049941 False \n", "184 -17.430503 False \n", "185 2.067224 False \n", "186 -1.380494 False \n", "187 15.867917 True \n", "188 -0.894727 True \n", "189 2.967617 True \n", "190 0.240931 True \n", "191 -16.682348 True \n", "192 1.279948 True \n", "193 -1.027703 False \n", "194 -7.075766 False \n", "195 -8.464785 False \n", "196 -16.545385 True \n", "197 -6.906539 False \n", "198 -7.391153 False \n", "199 -15.014932 False \n", "200 4.095772 True \n", "201 -0.829833 True \n", "202 -23.695819 True \n", "203 -9.149356 True \n", "204 -0.551571 True \n", "205 0.791753 True \n", "206 10.551589 True \n", "207 -12.963769 True \n", "208 43.725932 True \n", "209 -5.698546 True \n", "210 -5.094152 True \n", "211 -21.848776 True \n", "212 -2.133156 True \n", "213 -5.871223 True \n", "214 -16.865024 True \n", "215 -22.897060 True \n", "216 -26.667897 True \n", "217 -7.774731 True \n", "218 -7.722469 False \n", "219 29.102039 False \n", "220 -7.417587 False \n", "221 -11.154815 True \n", "222 0.414495 False \n", "223 -5.489692 True \n", "224 8.981041 False \n", "225 6.489882 True \n", "226 -7.132618 False \n", "227 -3.031774 False \n", "228 -2.484967 True \n", "229 12.294454 True \n", "230 -6.414933 True \n", "231 1.563287 True \n", "232 -23.672193 True \n", "233 -11.175458 True \n", "234 16.273563 True \n", "235 1.269837 True \n", "236 -0.453995 False \n", "237 -1.902125 False \n", "238 -4.681943 True \n", "239 -0.786649 False \n", "240 17.822672 False \n", "241 3.848418 False \n", "242 -7.762015 False \n", "243 -2.895957 False \n", "244 -11.775076 False \n", "245 -2.656722 False \n", "246 -3.023876 False \n", "247 -12.734679 False \n", "248 16.872134 True \n", "249 17.537848 True \n", "250 -8.111865 False \n", "251 2.752852 False \n", "252 -0.911860 False \n", "253 -4.048673 False \n", "254 2.035811 False \n", "255 -4.637986 False \n", "256 -2.327555 False \n", "257 -7.495340 False \n", "258 5.583378 False \n", "259 -11.851466 True \n", "260 -11.197781 False \n", "261 -0.056351 True \n", "262 -9.568275 True \n", "263 1.003766 True \n", "264 -4.032769 True \n", "265 -13.335852 True \n", "266 -14.667796 True \n", "267 -2.362736 False \n", "268 -5.020771 False \n", "269 -4.694828 False \n", "270 -10.264600 True \n", "271 -2.397965 False \n", "272 5.609273 True \n", "273 -5.179628 True \n", "274 2.221142 True \n", "275 -6.196284 False \n", "276 0.628662 False \n", "277 -5.667120 False \n", "278 2.677935 False \n", "279 -6.229353 False \n", "280 -11.757813 False \n", "281 1.132265 False \n", "282 -5.105023 False \n", "283 0.690688 False \n", "284 -3.278851 False \n", "285 -3.615042 False \n", "286 -8.685243 False \n", "287 -18.112550 False \n", "288 -4.322307 False \n", "289 14.008897 True \n", "290 -16.096610 True \n", "291 -6.882610 False \n", "292 -4.297669 False \n", "293 -5.027022 True \n", "294 -0.990185 False \n", "295 1.227284 False \n", "296 -3.860546 True \n", "297 -4.306613 True \n", "298 -20.854896 True \n", "299 9.204303 True \n", "300 -10.879808 True \n", "301 -11.712087 True \n", "302 -6.157932 True \n", "303 -28.313818 True \n", "304 -4.326004 True \n", "305 -9.753120 True \n", "306 22.676747 True \n", "307 2.659440 False \n", "308 -7.776399 True \n", "309 -12.779018 True \n", "310 9.402844 True \n", "311 1.714970 True \n", "312 16.129951 False \n", "313 -5.094420 False \n", "314 -11.328730 True \n", "315 0.460044 True \n", "316 1.540707 False \n", "317 -2.061605 False \n", "318 3.667594 True \n", "319 -5.132660 False \n", "320 -9.549025 False \n", "321 -9.656751 False \n", "322 4.231893 False \n", "323 -42.548462 True \n", "324 -26.286655 False \n", "325 61.723327 False \n", "326 9.268959 False \n", "327 -12.841739 True \n", "328 0.496802 False \n", "329 -9.849822 False \n", "330 8.457729 True \n", "331 98.687145 True \n", "332 -5.491935 True \n", "333 -15.646240 True \n", "334 8.714111 True \n", "335 -3.726519 True \n", "336 -7.546880 True \n", "337 -6.572989 True \n", "338 -1.346061 True \n", "339 -9.581504 False \n", "340 -4.715954 True \n", "341 -6.253405 False \n", "342 -5.070001 True \n", "343 -4.554428 False \n", "344 -0.331663 True \n", "345 -8.281727 True \n", "346 -1.060282 False \n", "347 -4.848891 False \n", "348 -1.296471 False \n", "349 -8.117079 False \n", "350 -0.534129 False \n", "351 -3.173120 False \n", "352 0.968381 False \n", "353 -5.032760 False \n", "354 2.891372 False \n", "355 -0.963015 False \n", "356 -4.818656 False \n", "357 -10.145897 False \n", "358 16.200720 True \n", "359 -5.298220 True \n", "360 3.036208 False \n", "361 -8.186953 True " ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "median_errors['qct'] = False\n", "median_errors.loc[median_errors['NAME10'].isin(qct), 'qct'] = True\n", "median_errors" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "qct\n", "False -2.210262\n", "True -5.298220\n", "Name: percent_error, dtype: float64" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "median_errors.groupby(\"qct\")['percent_error'].median()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.0" }, "vscode": { "interpreter": { "hash": "c261aea317cc0286b3b3261fbba9abdec21eaa57589985bb7a274bf54d6cc0a7" } } }, "nbformat": 4, "nbformat_minor": 4 }