Thun/docs/html/notebooks/Trees.html

18710 lines
722 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Trees</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<style type="text/css">
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: var(--jp-cell-editor-active-background) }
.highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }
.highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */
.highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */
.highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
.highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */
.highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */
.highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */
.highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */
.highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */
.highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */
.highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */
.highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */
.highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */
.highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
.highlight .pm { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation.Marker */
.highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */
.highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */
.highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */
.highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */
.highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
.highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */
.highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */
.highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */
.highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */
.highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */
.highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */
.highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
.highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */
.highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */
.highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */
.highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */
.highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */
.highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */
.highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */
.highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*
* Mozilla scrollbar styling
*/
/* use standard opaque scrollbars for most nodes */
[data-jp-theme-scrollbars='true'] {
scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))
var(--jp-scrollbar-background-color);
}
/* for code nodes, use a transparent style of scrollbar. These selectors
* will match lower in the tree, and so will override the above */
[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,
[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
}
/* tiny scrollbar */
.jp-scrollbar-tiny {
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
scrollbar-width: thin;
}
/*
* Webkit scrollbar styling
*/
/* use standard opaque scrollbars for most nodes */
[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar,
[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-corner {
background: var(--jp-scrollbar-background-color);
}
[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-thumb {
background: rgb(var(--jp-scrollbar-thumb-color));
border: var(--jp-scrollbar-thumb-margin) solid transparent;
background-clip: content-box;
border-radius: var(--jp-scrollbar-thumb-radius);
}
[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-track:horizontal {
border-left: var(--jp-scrollbar-endpad) solid
var(--jp-scrollbar-background-color);
border-right: var(--jp-scrollbar-endpad) solid
var(--jp-scrollbar-background-color);
}
[data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-track:vertical {
border-top: var(--jp-scrollbar-endpad) solid
var(--jp-scrollbar-background-color);
border-bottom: var(--jp-scrollbar-endpad) solid
var(--jp-scrollbar-background-color);
}
/* for code nodes, use a transparent style of scrollbar */
[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar::-webkit-scrollbar,
[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar::-webkit-scrollbar,
[data-jp-theme-scrollbars='true']
.CodeMirror-hscrollbar::-webkit-scrollbar-corner,
[data-jp-theme-scrollbars='true']
.CodeMirror-vscrollbar::-webkit-scrollbar-corner {
background-color: transparent;
}
[data-jp-theme-scrollbars='true']
.CodeMirror-hscrollbar::-webkit-scrollbar-thumb,
[data-jp-theme-scrollbars='true']
.CodeMirror-vscrollbar::-webkit-scrollbar-thumb {
background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
border: var(--jp-scrollbar-thumb-margin) solid transparent;
background-clip: content-box;
border-radius: var(--jp-scrollbar-thumb-radius);
}
[data-jp-theme-scrollbars='true']
.CodeMirror-hscrollbar::-webkit-scrollbar-track:horizontal {
border-left: var(--jp-scrollbar-endpad) solid transparent;
border-right: var(--jp-scrollbar-endpad) solid transparent;
}
[data-jp-theme-scrollbars='true']
.CodeMirror-vscrollbar::-webkit-scrollbar-track:vertical {
border-top: var(--jp-scrollbar-endpad) solid transparent;
border-bottom: var(--jp-scrollbar-endpad) solid transparent;
}
/* tiny scrollbar */
.jp-scrollbar-tiny::-webkit-scrollbar,
.jp-scrollbar-tiny::-webkit-scrollbar-corner {
background-color: transparent;
height: 4px;
width: 4px;
}
.jp-scrollbar-tiny::-webkit-scrollbar-thumb {
background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
}
.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {
border-left: 0px solid transparent;
border-right: 0px solid transparent;
}
.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {
border-top: 0px solid transparent;
border-bottom: 0px solid transparent;
}
/*
* Phosphor
*/
.lm-ScrollBar[data-orientation='horizontal'] {
min-height: 16px;
max-height: 16px;
min-width: 45px;
border-top: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='vertical'] {
min-width: 16px;
max-width: 16px;
min-height: 45px;
border-left: 1px solid #a0a0a0;
}
.lm-ScrollBar-button {
background-color: #f0f0f0;
background-position: center center;
min-height: 15px;
max-height: 15px;
min-width: 15px;
max-width: 15px;
}
.lm-ScrollBar-button:hover {
background-color: #dadada;
}
.lm-ScrollBar-button.lm-mod-active {
background-color: #cdcdcd;
}
.lm-ScrollBar-track {
background: #f0f0f0;
}
.lm-ScrollBar-thumb {
background: #cdcdcd;
}
.lm-ScrollBar-thumb:hover {
background: #bababa;
}
.lm-ScrollBar-thumb.lm-mod-active {
background: #a0a0a0;
}
.lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {
height: 100%;
min-width: 15px;
border-left: 1px solid #a0a0a0;
border-right: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {
width: 100%;
min-height: 15px;
border-top: 1px solid #a0a0a0;
border-bottom: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='horizontal']
.lm-ScrollBar-button[data-action='decrement'] {
background-image: var(--jp-icon-caret-left);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='horizontal']
.lm-ScrollBar-button[data-action='increment'] {
background-image: var(--jp-icon-caret-right);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='vertical']
.lm-ScrollBar-button[data-action='decrement'] {
background-image: var(--jp-icon-caret-up);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='vertical']
.lm-ScrollBar-button[data-action='increment'] {
background-image: var(--jp-icon-caret-down);
background-size: 17px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-Widget, /* </DEPRECATED> */
.lm-Widget {
box-sizing: border-box;
position: relative;
overflow: hidden;
cursor: default;
}
/* <DEPRECATED> */ .p-Widget.p-mod-hidden, /* </DEPRECATED> */
.lm-Widget.lm-mod-hidden {
display: none !important;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-CommandPalette, /* </DEPRECATED> */
.lm-CommandPalette {
display: flex;
flex-direction: column;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* <DEPRECATED> */ .p-CommandPalette-search, /* </DEPRECATED> */
.lm-CommandPalette-search {
flex: 0 0 auto;
}
/* <DEPRECATED> */ .p-CommandPalette-content, /* </DEPRECATED> */
.lm-CommandPalette-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
min-height: 0;
overflow: auto;
list-style-type: none;
}
/* <DEPRECATED> */ .p-CommandPalette-header, /* </DEPRECATED> */
.lm-CommandPalette-header {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
/* <DEPRECATED> */ .p-CommandPalette-item, /* </DEPRECATED> */
.lm-CommandPalette-item {
display: flex;
flex-direction: row;
}
/* <DEPRECATED> */ .p-CommandPalette-itemIcon, /* </DEPRECATED> */
.lm-CommandPalette-itemIcon {
flex: 0 0 auto;
}
/* <DEPRECATED> */ .p-CommandPalette-itemContent, /* </DEPRECATED> */
.lm-CommandPalette-itemContent {
flex: 1 1 auto;
overflow: hidden;
}
/* <DEPRECATED> */ .p-CommandPalette-itemShortcut, /* </DEPRECATED> */
.lm-CommandPalette-itemShortcut {
flex: 0 0 auto;
}
/* <DEPRECATED> */ .p-CommandPalette-itemLabel, /* </DEPRECATED> */
.lm-CommandPalette-itemLabel {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.lm-close-icon {
border:1px solid transparent;
background-color: transparent;
position: absolute;
z-index:1;
right:3%;
top: 0;
bottom: 0;
margin: auto;
padding: 7px 0;
display: none;
vertical-align: middle;
outline: 0;
cursor: pointer;
}
.lm-close-icon:after {
content: "X";
display: block;
width: 15px;
height: 15px;
text-align: center;
color:#000;
font-weight: normal;
font-size: 12px;
cursor: pointer;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-DockPanel, /* </DEPRECATED> */
.lm-DockPanel {
z-index: 0;
}
/* <DEPRECATED> */ .p-DockPanel-widget, /* </DEPRECATED> */
.lm-DockPanel-widget {
z-index: 0;
}
/* <DEPRECATED> */ .p-DockPanel-tabBar, /* </DEPRECATED> */
.lm-DockPanel-tabBar {
z-index: 1;
}
/* <DEPRECATED> */ .p-DockPanel-handle, /* </DEPRECATED> */
.lm-DockPanel-handle {
z-index: 2;
}
/* <DEPRECATED> */ .p-DockPanel-handle.p-mod-hidden, /* </DEPRECATED> */
.lm-DockPanel-handle.lm-mod-hidden {
display: none !important;
}
/* <DEPRECATED> */ .p-DockPanel-handle:after, /* </DEPRECATED> */
.lm-DockPanel-handle:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
/* <DEPRECATED> */
.p-DockPanel-handle[data-orientation='horizontal'],
/* </DEPRECATED> */
.lm-DockPanel-handle[data-orientation='horizontal'] {
cursor: ew-resize;
}
/* <DEPRECATED> */
.p-DockPanel-handle[data-orientation='vertical'],
/* </DEPRECATED> */
.lm-DockPanel-handle[data-orientation='vertical'] {
cursor: ns-resize;
}
/* <DEPRECATED> */
.p-DockPanel-handle[data-orientation='horizontal']:after,
/* </DEPRECATED> */
.lm-DockPanel-handle[data-orientation='horizontal']:after {
left: 50%;
min-width: 8px;
transform: translateX(-50%);
}
/* <DEPRECATED> */
.p-DockPanel-handle[data-orientation='vertical']:after,
/* </DEPRECATED> */
.lm-DockPanel-handle[data-orientation='vertical']:after {
top: 50%;
min-height: 8px;
transform: translateY(-50%);
}
/* <DEPRECATED> */ .p-DockPanel-overlay, /* </DEPRECATED> */
.lm-DockPanel-overlay {
z-index: 3;
box-sizing: border-box;
pointer-events: none;
}
/* <DEPRECATED> */ .p-DockPanel-overlay.p-mod-hidden, /* </DEPRECATED> */
.lm-DockPanel-overlay.lm-mod-hidden {
display: none !important;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-Menu, /* </DEPRECATED> */
.lm-Menu {
z-index: 10000;
position: absolute;
white-space: nowrap;
overflow-x: hidden;
overflow-y: auto;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* <DEPRECATED> */ .p-Menu-content, /* </DEPRECATED> */
.lm-Menu-content {
margin: 0;
padding: 0;
display: table;
list-style-type: none;
}
/* <DEPRECATED> */ .p-Menu-item, /* </DEPRECATED> */
.lm-Menu-item {
display: table-row;
}
/* <DEPRECATED> */
.p-Menu-item.p-mod-hidden,
.p-Menu-item.p-mod-collapsed,
/* </DEPRECATED> */
.lm-Menu-item.lm-mod-hidden,
.lm-Menu-item.lm-mod-collapsed {
display: none !important;
}
/* <DEPRECATED> */
.p-Menu-itemIcon,
.p-Menu-itemSubmenuIcon,
/* </DEPRECATED> */
.lm-Menu-itemIcon,
.lm-Menu-itemSubmenuIcon {
display: table-cell;
text-align: center;
}
/* <DEPRECATED> */ .p-Menu-itemLabel, /* </DEPRECATED> */
.lm-Menu-itemLabel {
display: table-cell;
text-align: left;
}
/* <DEPRECATED> */ .p-Menu-itemShortcut, /* </DEPRECATED> */
.lm-Menu-itemShortcut {
display: table-cell;
text-align: right;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-MenuBar, /* </DEPRECATED> */
.lm-MenuBar {
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* <DEPRECATED> */ .p-MenuBar-content, /* </DEPRECATED> */
.lm-MenuBar-content {
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
list-style-type: none;
}
/* <DEPRECATED> */ .p--MenuBar-item, /* </DEPRECATED> */
.lm-MenuBar-item {
box-sizing: border-box;
}
/* <DEPRECATED> */
.p-MenuBar-itemIcon,
.p-MenuBar-itemLabel,
/* </DEPRECATED> */
.lm-MenuBar-itemIcon,
.lm-MenuBar-itemLabel {
display: inline-block;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-ScrollBar, /* </DEPRECATED> */
.lm-ScrollBar {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* <DEPRECATED> */
.p-ScrollBar[data-orientation='horizontal'],
/* </DEPRECATED> */
.lm-ScrollBar[data-orientation='horizontal'] {
flex-direction: row;
}
/* <DEPRECATED> */
.p-ScrollBar[data-orientation='vertical'],
/* </DEPRECATED> */
.lm-ScrollBar[data-orientation='vertical'] {
flex-direction: column;
}
/* <DEPRECATED> */ .p-ScrollBar-button, /* </DEPRECATED> */
.lm-ScrollBar-button {
box-sizing: border-box;
flex: 0 0 auto;
}
/* <DEPRECATED> */ .p-ScrollBar-track, /* </DEPRECATED> */
.lm-ScrollBar-track {
box-sizing: border-box;
position: relative;
overflow: hidden;
flex: 1 1 auto;
}
/* <DEPRECATED> */ .p-ScrollBar-thumb, /* </DEPRECATED> */
.lm-ScrollBar-thumb {
box-sizing: border-box;
position: absolute;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-SplitPanel-child, /* </DEPRECATED> */
.lm-SplitPanel-child {
z-index: 0;
}
/* <DEPRECATED> */ .p-SplitPanel-handle, /* </DEPRECATED> */
.lm-SplitPanel-handle {
z-index: 1;
}
/* <DEPRECATED> */ .p-SplitPanel-handle.p-mod-hidden, /* </DEPRECATED> */
.lm-SplitPanel-handle.lm-mod-hidden {
display: none !important;
}
/* <DEPRECATED> */ .p-SplitPanel-handle:after, /* </DEPRECATED> */
.lm-SplitPanel-handle:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
/* <DEPRECATED> */
.p-SplitPanel[data-orientation='horizontal'] > .p-SplitPanel-handle,
/* </DEPRECATED> */
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle {
cursor: ew-resize;
}
/* <DEPRECATED> */
.p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle,
/* </DEPRECATED> */
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle {
cursor: ns-resize;
}
/* <DEPRECATED> */
.p-SplitPanel[data-orientation='horizontal'] > .p-SplitPanel-handle:after,
/* </DEPRECATED> */
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle:after {
left: 50%;
min-width: 8px;
transform: translateX(-50%);
}
/* <DEPRECATED> */
.p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle:after,
/* </DEPRECATED> */
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle:after {
top: 50%;
min-height: 8px;
transform: translateY(-50%);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-TabBar, /* </DEPRECATED> */
.lm-TabBar {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* <DEPRECATED> */ .p-TabBar[data-orientation='horizontal'], /* </DEPRECATED> */
.lm-TabBar[data-orientation='horizontal'] {
flex-direction: row;
align-items: flex-end;
}
/* <DEPRECATED> */ .p-TabBar[data-orientation='vertical'], /* </DEPRECATED> */
.lm-TabBar[data-orientation='vertical'] {
flex-direction: column;
align-items: flex-end;
}
/* <DEPRECATED> */ .p-TabBar-content, /* </DEPRECATED> */
.lm-TabBar-content {
margin: 0;
padding: 0;
display: flex;
flex: 1 1 auto;
list-style-type: none;
}
/* <DEPRECATED> */
.p-TabBar[data-orientation='horizontal'] > .p-TabBar-content,
/* </DEPRECATED> */
.lm-TabBar[data-orientation='horizontal'] > .lm-TabBar-content {
flex-direction: row;
}
/* <DEPRECATED> */
.p-TabBar[data-orientation='vertical'] > .p-TabBar-content,
/* </DEPRECATED> */
.lm-TabBar[data-orientation='vertical'] > .lm-TabBar-content {
flex-direction: column;
}
/* <DEPRECATED> */ .p-TabBar-tab, /* </DEPRECATED> */
.lm-TabBar-tab {
display: flex;
flex-direction: row;
box-sizing: border-box;
overflow: hidden;
}
/* <DEPRECATED> */
.p-TabBar-tabIcon,
.p-TabBar-tabCloseIcon,
/* </DEPRECATED> */
.lm-TabBar-tabIcon,
.lm-TabBar-tabCloseIcon {
flex: 0 0 auto;
}
/* <DEPRECATED> */ .p-TabBar-tabLabel, /* </DEPRECATED> */
.lm-TabBar-tabLabel {
flex: 1 1 auto;
overflow: hidden;
white-space: nowrap;
}
.lm-TabBar-tabInput {
user-select: all;
width: 100%;
box-sizing : border-box;
}
/* <DEPRECATED> */ .p-TabBar-tab.p-mod-hidden, /* </DEPRECATED> */
.lm-TabBar-tab.lm-mod-hidden {
display: none !important;
}
.lm-TabBar-addButton.lm-mod-hidden {
display: none !important;
}
/* <DEPRECATED> */ .p-TabBar.p-mod-dragging .p-TabBar-tab, /* </DEPRECATED> */
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
position: relative;
}
/* <DEPRECATED> */
.p-TabBar.p-mod-dragging[data-orientation='horizontal'] .p-TabBar-tab,
/* </DEPRECATED> */
.lm-TabBar.lm-mod-dragging[data-orientation='horizontal'] .lm-TabBar-tab {
left: 0;
transition: left 150ms ease;
}
/* <DEPRECATED> */
.p-TabBar.p-mod-dragging[data-orientation='vertical'] .p-TabBar-tab,
/* </DEPRECATED> */
.lm-TabBar.lm-mod-dragging[data-orientation='vertical'] .lm-TabBar-tab {
top: 0;
transition: top 150ms ease;
}
/* <DEPRECATED> */
.p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging,
/* </DEPRECATED> */
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging {
transition: none;
}
.lm-TabBar-tabLabel .lm-TabBar-tabInput {
user-select: all;
width: 100%;
box-sizing : border-box;
background: inherit;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ .p-TabPanel-tabBar, /* </DEPRECATED> */
.lm-TabPanel-tabBar {
z-index: 1;
}
/* <DEPRECATED> */ .p-TabPanel-stackedPanel, /* </DEPRECATED> */
.lm-TabPanel-stackedPanel {
z-index: 0;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
@charset "UTF-8";
html{
-webkit-box-sizing:border-box;
box-sizing:border-box; }
*,
*::before,
*::after{
-webkit-box-sizing:inherit;
box-sizing:inherit; }
body{
font-size:14px;
font-weight:400;
letter-spacing:0;
line-height:1.28581;
text-transform:none;
color:#182026;
font-family:-apple-system, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Open Sans", "Helvetica Neue", "Icons16", sans-serif; }
p{
margin-bottom:10px;
margin-top:0; }
small{
font-size:12px; }
strong{
font-weight:600; }
::-moz-selection{
background:rgba(125, 188, 255, 0.6); }
::selection{
background:rgba(125, 188, 255, 0.6); }
.bp3-heading{
color:#182026;
font-weight:600;
margin:0 0 10px;
padding:0; }
.bp3-dark .bp3-heading{
color:#f5f8fa; }
h1.bp3-heading, .bp3-running-text h1{
font-size:36px;
line-height:40px; }
h2.bp3-heading, .bp3-running-text h2{
font-size:28px;
line-height:32px; }
h3.bp3-heading, .bp3-running-text h3{
font-size:22px;
line-height:25px; }
h4.bp3-heading, .bp3-running-text h4{
font-size:18px;
line-height:21px; }
h5.bp3-heading, .bp3-running-text h5{
font-size:16px;
line-height:19px; }
h6.bp3-heading, .bp3-running-text h6{
font-size:14px;
line-height:16px; }
.bp3-ui-text{
font-size:14px;
font-weight:400;
letter-spacing:0;
line-height:1.28581;
text-transform:none; }
.bp3-monospace-text{
font-family:monospace;
text-transform:none; }
.bp3-text-muted{
color:#5c7080; }
.bp3-dark .bp3-text-muted{
color:#a7b6c2; }
.bp3-text-disabled{
color:rgba(92, 112, 128, 0.6); }
.bp3-dark .bp3-text-disabled{
color:rgba(167, 182, 194, 0.6); }
.bp3-text-overflow-ellipsis{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal; }
.bp3-running-text{
font-size:14px;
line-height:1.5; }
.bp3-running-text h1{
color:#182026;
font-weight:600;
margin-bottom:20px;
margin-top:40px; }
.bp3-dark .bp3-running-text h1{
color:#f5f8fa; }
.bp3-running-text h2{
color:#182026;
font-weight:600;
margin-bottom:20px;
margin-top:40px; }
.bp3-dark .bp3-running-text h2{
color:#f5f8fa; }
.bp3-running-text h3{
color:#182026;
font-weight:600;
margin-bottom:20px;
margin-top:40px; }
.bp3-dark .bp3-running-text h3{
color:#f5f8fa; }
.bp3-running-text h4{
color:#182026;
font-weight:600;
margin-bottom:20px;
margin-top:40px; }
.bp3-dark .bp3-running-text h4{
color:#f5f8fa; }
.bp3-running-text h5{
color:#182026;
font-weight:600;
margin-bottom:20px;
margin-top:40px; }
.bp3-dark .bp3-running-text h5{
color:#f5f8fa; }
.bp3-running-text h6{
color:#182026;
font-weight:600;
margin-bottom:20px;
margin-top:40px; }
.bp3-dark .bp3-running-text h6{
color:#f5f8fa; }
.bp3-running-text hr{
border:none;
border-bottom:1px solid rgba(16, 22, 26, 0.15);
margin:20px 0; }
.bp3-dark .bp3-running-text hr{
border-color:rgba(255, 255, 255, 0.15); }
.bp3-running-text p{
margin:0 0 10px;
padding:0; }
.bp3-text-large{
font-size:16px; }
.bp3-text-small{
font-size:12px; }
a{
color:#106ba3;
text-decoration:none; }
a:hover{
color:#106ba3;
cursor:pointer;
text-decoration:underline; }
a .bp3-icon, a .bp3-icon-standard, a .bp3-icon-large{
color:inherit; }
a code,
.bp3-dark a code{
color:inherit; }
.bp3-dark a,
.bp3-dark a:hover{
color:#48aff0; }
.bp3-dark a .bp3-icon, .bp3-dark a .bp3-icon-standard, .bp3-dark a .bp3-icon-large,
.bp3-dark a:hover .bp3-icon,
.bp3-dark a:hover .bp3-icon-standard,
.bp3-dark a:hover .bp3-icon-large{
color:inherit; }
.bp3-running-text code, .bp3-code{
font-family:monospace;
text-transform:none;
background:rgba(255, 255, 255, 0.7);
border-radius:3px;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2);
color:#5c7080;
font-size:smaller;
padding:2px 5px; }
.bp3-dark .bp3-running-text code, .bp3-running-text .bp3-dark code, .bp3-dark .bp3-code{
background:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
color:#a7b6c2; }
.bp3-running-text a > code, a > .bp3-code{
color:#137cbd; }
.bp3-dark .bp3-running-text a > code, .bp3-running-text .bp3-dark a > code, .bp3-dark a > .bp3-code{
color:inherit; }
.bp3-running-text pre, .bp3-code-block{
font-family:monospace;
text-transform:none;
background:rgba(255, 255, 255, 0.7);
border-radius:3px;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
color:#182026;
display:block;
font-size:13px;
line-height:1.4;
margin:10px 0;
padding:13px 15px 12px;
word-break:break-all;
word-wrap:break-word; }
.bp3-dark .bp3-running-text pre, .bp3-running-text .bp3-dark pre, .bp3-dark .bp3-code-block{
background:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-running-text pre > code, .bp3-code-block > code{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:inherit;
font-size:inherit;
padding:0; }
.bp3-running-text kbd, .bp3-key{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
background:#ffffff;
border-radius:3px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
color:#5c7080;
display:-webkit-inline-box;
display:-ms-inline-flexbox;
display:inline-flex;
font-family:inherit;
font-size:12px;
height:24px;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
line-height:24px;
min-width:24px;
padding:3px 6px;
vertical-align:middle; }
.bp3-running-text kbd .bp3-icon, .bp3-key .bp3-icon, .bp3-running-text kbd .bp3-icon-standard, .bp3-key .bp3-icon-standard, .bp3-running-text kbd .bp3-icon-large, .bp3-key .bp3-icon-large{
margin-right:5px; }
.bp3-dark .bp3-running-text kbd, .bp3-running-text .bp3-dark kbd, .bp3-dark .bp3-key{
background:#394b59;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
color:#a7b6c2; }
.bp3-running-text blockquote, .bp3-blockquote{
border-left:solid 4px rgba(167, 182, 194, 0.5);
margin:0 0 10px;
padding:0 20px; }
.bp3-dark .bp3-running-text blockquote, .bp3-running-text .bp3-dark blockquote, .bp3-dark .bp3-blockquote{
border-color:rgba(115, 134, 148, 0.5); }
.bp3-running-text ul,
.bp3-running-text ol, .bp3-list{
margin:10px 0;
padding-left:30px; }
.bp3-running-text ul li:not(:last-child), .bp3-running-text ol li:not(:last-child), .bp3-list li:not(:last-child){
margin-bottom:5px; }
.bp3-running-text ul ol, .bp3-running-text ol ol, .bp3-list ol,
.bp3-running-text ul ul,
.bp3-running-text ol ul,
.bp3-list ul{
margin-top:5px; }
.bp3-list-unstyled{
list-style:none;
margin:0;
padding:0; }
.bp3-list-unstyled li{
padding:0; }
.bp3-rtl{
text-align:right; }
.bp3-dark{
color:#f5f8fa; }
:focus{
outline:rgba(19, 124, 189, 0.6) auto 2px;
outline-offset:2px;
-moz-outline-radius:6px; }
.bp3-focus-disabled :focus{
outline:none !important; }
.bp3-focus-disabled :focus ~ .bp3-control-indicator{
outline:none !important; }
.bp3-alert{
max-width:400px;
padding:20px; }
.bp3-alert-body{
display:-webkit-box;
display:-ms-flexbox;
display:flex; }
.bp3-alert-body .bp3-icon{
font-size:40px;
margin-right:20px;
margin-top:0; }
.bp3-alert-contents{
word-break:break-word; }
.bp3-alert-footer{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:reverse;
-ms-flex-direction:row-reverse;
flex-direction:row-reverse;
margin-top:10px; }
.bp3-alert-footer .bp3-button{
margin-left:10px; }
.bp3-breadcrumbs{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
cursor:default;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
height:30px;
list-style:none;
margin:0;
padding:0; }
.bp3-breadcrumbs > li{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex; }
.bp3-breadcrumbs > li::after{
background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z' fill='%235C7080'/%3e%3c/svg%3e");
content:"";
display:block;
height:16px;
margin:0 5px;
width:16px; }
.bp3-breadcrumbs > li:last-of-type::after{
display:none; }
.bp3-breadcrumb,
.bp3-breadcrumb-current,
.bp3-breadcrumbs-collapsed{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-inline-box;
display:-ms-inline-flexbox;
display:inline-flex;
font-size:16px; }
.bp3-breadcrumb,
.bp3-breadcrumbs-collapsed{
color:#5c7080; }
.bp3-breadcrumb:hover{
text-decoration:none; }
.bp3-breadcrumb.bp3-disabled{
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-breadcrumb .bp3-icon{
margin-right:5px; }
.bp3-breadcrumb-current{
color:inherit;
font-weight:600; }
.bp3-breadcrumb-current .bp3-input{
font-size:inherit;
font-weight:inherit;
vertical-align:baseline; }
.bp3-breadcrumbs-collapsed{
background:#ced9e0;
border:none;
border-radius:3px;
cursor:pointer;
margin-right:2px;
padding:1px 5px;
vertical-align:text-bottom; }
.bp3-breadcrumbs-collapsed::before{
background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg fill='%235C7080'%3e%3ccircle cx='2' cy='8.03' r='2'/%3e%3ccircle cx='14' cy='8.03' r='2'/%3e%3ccircle cx='8' cy='8.03' r='2'/%3e%3c/g%3e%3c/svg%3e") center no-repeat;
content:"";
display:block;
height:16px;
width:16px; }
.bp3-breadcrumbs-collapsed:hover{
background:#bfccd6;
color:#182026;
text-decoration:none; }
.bp3-dark .bp3-breadcrumb,
.bp3-dark .bp3-breadcrumbs-collapsed{
color:#a7b6c2; }
.bp3-dark .bp3-breadcrumbs > li::after{
color:#a7b6c2; }
.bp3-dark .bp3-breadcrumb.bp3-disabled{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-breadcrumb-current{
color:#f5f8fa; }
.bp3-dark .bp3-breadcrumbs-collapsed{
background:rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-breadcrumbs-collapsed:hover{
background:rgba(16, 22, 26, 0.6);
color:#f5f8fa; }
.bp3-button{
display:-webkit-inline-box;
display:-ms-inline-flexbox;
display:inline-flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
border:none;
border-radius:3px;
cursor:pointer;
font-size:14px;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
padding:5px 10px;
text-align:left;
vertical-align:middle;
min-height:30px;
min-width:30px; }
.bp3-button > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-button > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-button::before,
.bp3-button > *{
margin-right:7px; }
.bp3-button:empty::before,
.bp3-button > :last-child{
margin-right:0; }
.bp3-button:empty{
padding:0 !important; }
.bp3-button:disabled, .bp3-button.bp3-disabled{
cursor:not-allowed; }
.bp3-button.bp3-fill{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
width:100%; }
.bp3-button.bp3-align-right,
.bp3-align-right .bp3-button{
text-align:right; }
.bp3-button.bp3-align-left,
.bp3-align-left .bp3-button{
text-align:left; }
.bp3-button:not([class*="bp3-intent-"]){
background-color:#f5f8fa;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
color:#182026; }
.bp3-button:not([class*="bp3-intent-"]):hover{
background-clip:padding-box;
background-color:#ebf1f5;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
.bp3-button:not([class*="bp3-intent-"]):active, .bp3-button:not([class*="bp3-intent-"]).bp3-active{
background-color:#d8e1e8;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-button:not([class*="bp3-intent-"]):disabled, .bp3-button:not([class*="bp3-intent-"]).bp3-disabled{
background-color:rgba(206, 217, 224, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
outline:none; }
.bp3-button:not([class*="bp3-intent-"]):disabled.bp3-active, .bp3-button:not([class*="bp3-intent-"]):disabled.bp3-active:hover, .bp3-button:not([class*="bp3-intent-"]).bp3-disabled.bp3-active, .bp3-button:not([class*="bp3-intent-"]).bp3-disabled.bp3-active:hover{
background:rgba(206, 217, 224, 0.7); }
.bp3-button.bp3-intent-primary{
background-color:#137cbd;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
color:#ffffff; }
.bp3-button.bp3-intent-primary:hover, .bp3-button.bp3-intent-primary:active, .bp3-button.bp3-intent-primary.bp3-active{
color:#ffffff; }
.bp3-button.bp3-intent-primary:hover{
background-color:#106ba3;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-primary:active, .bp3-button.bp3-intent-primary.bp3-active{
background-color:#0e5a8a;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-primary:disabled, .bp3-button.bp3-intent-primary.bp3-disabled{
background-color:rgba(19, 124, 189, 0.5);
background-image:none;
border-color:transparent;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(255, 255, 255, 0.6); }
.bp3-button.bp3-intent-success{
background-color:#0f9960;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
color:#ffffff; }
.bp3-button.bp3-intent-success:hover, .bp3-button.bp3-intent-success:active, .bp3-button.bp3-intent-success.bp3-active{
color:#ffffff; }
.bp3-button.bp3-intent-success:hover{
background-color:#0d8050;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-success:active, .bp3-button.bp3-intent-success.bp3-active{
background-color:#0a6640;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-success:disabled, .bp3-button.bp3-intent-success.bp3-disabled{
background-color:rgba(15, 153, 96, 0.5);
background-image:none;
border-color:transparent;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(255, 255, 255, 0.6); }
.bp3-button.bp3-intent-warning{
background-color:#d9822b;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
color:#ffffff; }
.bp3-button.bp3-intent-warning:hover, .bp3-button.bp3-intent-warning:active, .bp3-button.bp3-intent-warning.bp3-active{
color:#ffffff; }
.bp3-button.bp3-intent-warning:hover{
background-color:#bf7326;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-warning:active, .bp3-button.bp3-intent-warning.bp3-active{
background-color:#a66321;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-warning:disabled, .bp3-button.bp3-intent-warning.bp3-disabled{
background-color:rgba(217, 130, 43, 0.5);
background-image:none;
border-color:transparent;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(255, 255, 255, 0.6); }
.bp3-button.bp3-intent-danger{
background-color:#db3737;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
color:#ffffff; }
.bp3-button.bp3-intent-danger:hover, .bp3-button.bp3-intent-danger:active, .bp3-button.bp3-intent-danger.bp3-active{
color:#ffffff; }
.bp3-button.bp3-intent-danger:hover{
background-color:#c23030;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-danger:active, .bp3-button.bp3-intent-danger.bp3-active{
background-color:#a82a2a;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-button.bp3-intent-danger:disabled, .bp3-button.bp3-intent-danger.bp3-disabled{
background-color:rgba(219, 55, 55, 0.5);
background-image:none;
border-color:transparent;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(255, 255, 255, 0.6); }
.bp3-button[class*="bp3-intent-"] .bp3-button-spinner .bp3-spinner-head{
stroke:#ffffff; }
.bp3-button.bp3-large,
.bp3-large .bp3-button{
min-height:40px;
min-width:40px;
font-size:16px;
padding:5px 15px; }
.bp3-button.bp3-large::before,
.bp3-button.bp3-large > *,
.bp3-large .bp3-button::before,
.bp3-large .bp3-button > *{
margin-right:10px; }
.bp3-button.bp3-large:empty::before,
.bp3-button.bp3-large > :last-child,
.bp3-large .bp3-button:empty::before,
.bp3-large .bp3-button > :last-child{
margin-right:0; }
.bp3-button.bp3-small,
.bp3-small .bp3-button{
min-height:24px;
min-width:24px;
padding:0 7px; }
.bp3-button.bp3-loading{
position:relative; }
.bp3-button.bp3-loading[class*="bp3-icon-"]::before{
visibility:hidden; }
.bp3-button.bp3-loading .bp3-button-spinner{
margin:0;
position:absolute; }
.bp3-button.bp3-loading > :not(.bp3-button-spinner){
visibility:hidden; }
.bp3-button[class*="bp3-icon-"]::before{
font-family:"Icons16", sans-serif;
font-size:16px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
color:#5c7080; }
.bp3-button .bp3-icon, .bp3-button .bp3-icon-standard, .bp3-button .bp3-icon-large{
color:#5c7080; }
.bp3-button .bp3-icon.bp3-align-right, .bp3-button .bp3-icon-standard.bp3-align-right, .bp3-button .bp3-icon-large.bp3-align-right{
margin-left:7px; }
.bp3-button .bp3-icon:first-child:last-child,
.bp3-button .bp3-spinner + .bp3-icon:last-child{
margin:0 -7px; }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]){
background-color:#394b59;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]):hover, .bp3-dark .bp3-button:not([class*="bp3-intent-"]):active, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-active{
color:#f5f8fa; }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]):hover{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]):active, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-active{
background-color:#202b33;
background-image:none;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]):disabled, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-disabled{
background-color:rgba(57, 75, 89, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]):disabled.bp3-active, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-disabled.bp3-active{
background:rgba(57, 75, 89, 0.7); }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-button-spinner .bp3-spinner-head{
background:rgba(16, 22, 26, 0.5);
stroke:#8a9ba8; }
.bp3-dark .bp3-button:not([class*="bp3-intent-"])[class*="bp3-icon-"]::before{
color:#a7b6c2; }
.bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-icon, .bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-icon-standard, .bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-icon-large{
color:#a7b6c2; }
.bp3-dark .bp3-button[class*="bp3-intent-"]{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-button[class*="bp3-intent-"]:hover{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-button[class*="bp3-intent-"]:active, .bp3-dark .bp3-button[class*="bp3-intent-"].bp3-active{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-button[class*="bp3-intent-"]:disabled, .bp3-dark .bp3-button[class*="bp3-intent-"].bp3-disabled{
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(255, 255, 255, 0.3); }
.bp3-dark .bp3-button[class*="bp3-intent-"] .bp3-button-spinner .bp3-spinner-head{
stroke:#8a9ba8; }
.bp3-button:disabled::before,
.bp3-button:disabled .bp3-icon, .bp3-button:disabled .bp3-icon-standard, .bp3-button:disabled .bp3-icon-large, .bp3-button.bp3-disabled::before,
.bp3-button.bp3-disabled .bp3-icon, .bp3-button.bp3-disabled .bp3-icon-standard, .bp3-button.bp3-disabled .bp3-icon-large, .bp3-button[class*="bp3-intent-"]::before,
.bp3-button[class*="bp3-intent-"] .bp3-icon, .bp3-button[class*="bp3-intent-"] .bp3-icon-standard, .bp3-button[class*="bp3-intent-"] .bp3-icon-large{
color:inherit !important; }
.bp3-button.bp3-minimal{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-button.bp3-minimal:hover{
background:rgba(167, 182, 194, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026;
text-decoration:none; }
.bp3-button.bp3-minimal:active, .bp3-button.bp3-minimal.bp3-active{
background:rgba(115, 134, 148, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026; }
.bp3-button.bp3-minimal:disabled, .bp3-button.bp3-minimal:disabled:hover, .bp3-button.bp3-minimal.bp3-disabled, .bp3-button.bp3-minimal.bp3-disabled:hover{
background:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-button.bp3-minimal:disabled.bp3-active, .bp3-button.bp3-minimal:disabled:hover.bp3-active, .bp3-button.bp3-minimal.bp3-disabled.bp3-active, .bp3-button.bp3-minimal.bp3-disabled:hover.bp3-active{
background:rgba(115, 134, 148, 0.3); }
.bp3-dark .bp3-button.bp3-minimal{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:inherit; }
.bp3-dark .bp3-button.bp3-minimal:hover, .bp3-dark .bp3-button.bp3-minimal:active, .bp3-dark .bp3-button.bp3-minimal.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-button.bp3-minimal:hover{
background:rgba(138, 155, 168, 0.15); }
.bp3-dark .bp3-button.bp3-minimal:active, .bp3-dark .bp3-button.bp3-minimal.bp3-active{
background:rgba(138, 155, 168, 0.3);
color:#f5f8fa; }
.bp3-dark .bp3-button.bp3-minimal:disabled, .bp3-dark .bp3-button.bp3-minimal:disabled:hover, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled:hover{
background:none;
color:rgba(167, 182, 194, 0.6);
cursor:not-allowed; }
.bp3-dark .bp3-button.bp3-minimal:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal:disabled:hover.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled:hover.bp3-active{
background:rgba(138, 155, 168, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-primary{
color:#106ba3; }
.bp3-button.bp3-minimal.bp3-intent-primary:hover, .bp3-button.bp3-minimal.bp3-intent-primary:active, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#106ba3; }
.bp3-button.bp3-minimal.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.15);
color:#106ba3; }
.bp3-button.bp3-minimal.bp3-intent-primary:active, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#106ba3; }
.bp3-button.bp3-minimal.bp3-intent-primary:disabled, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(16, 107, 163, 0.5); }
.bp3-button.bp3-minimal.bp3-intent-primary:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
stroke:#106ba3; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary{
color:#48aff0; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.2);
color:#48aff0; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#48aff0; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(72, 175, 240, 0.5); }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-success{
color:#0d8050; }
.bp3-button.bp3-minimal.bp3-intent-success:hover, .bp3-button.bp3-minimal.bp3-intent-success:active, .bp3-button.bp3-minimal.bp3-intent-success.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#0d8050; }
.bp3-button.bp3-minimal.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.15);
color:#0d8050; }
.bp3-button.bp3-minimal.bp3-intent-success:active, .bp3-button.bp3-minimal.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#0d8050; }
.bp3-button.bp3-minimal.bp3-intent-success:disabled, .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(13, 128, 80, 0.5); }
.bp3-button.bp3-minimal.bp3-intent-success:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
stroke:#0d8050; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-success{
color:#3dcc91; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.2);
color:#3dcc91; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#3dcc91; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(61, 204, 145, 0.5); }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-warning{
color:#bf7326; }
.bp3-button.bp3-minimal.bp3-intent-warning:hover, .bp3-button.bp3-minimal.bp3-intent-warning:active, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#bf7326; }
.bp3-button.bp3-minimal.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.15);
color:#bf7326; }
.bp3-button.bp3-minimal.bp3-intent-warning:active, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#bf7326; }
.bp3-button.bp3-minimal.bp3-intent-warning:disabled, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(191, 115, 38, 0.5); }
.bp3-button.bp3-minimal.bp3-intent-warning:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
stroke:#bf7326; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning{
color:#ffb366; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.2);
color:#ffb366; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#ffb366; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(255, 179, 102, 0.5); }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-danger{
color:#c23030; }
.bp3-button.bp3-minimal.bp3-intent-danger:hover, .bp3-button.bp3-minimal.bp3-intent-danger:active, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#c23030; }
.bp3-button.bp3-minimal.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.15);
color:#c23030; }
.bp3-button.bp3-minimal.bp3-intent-danger:active, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#c23030; }
.bp3-button.bp3-minimal.bp3-intent-danger:disabled, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(194, 48, 48, 0.5); }
.bp3-button.bp3-minimal.bp3-intent-danger:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-button.bp3-minimal.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
stroke:#c23030; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger{
color:#ff7373; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.2);
color:#ff7373; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#ff7373; }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(255, 115, 115, 0.5); }
.bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-button.bp3-outlined{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
border:1px solid rgba(24, 32, 38, 0.2);
-webkit-box-sizing:border-box;
box-sizing:border-box; }
.bp3-button.bp3-outlined:hover{
background:rgba(167, 182, 194, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026;
text-decoration:none; }
.bp3-button.bp3-outlined:active, .bp3-button.bp3-outlined.bp3-active{
background:rgba(115, 134, 148, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026; }
.bp3-button.bp3-outlined:disabled, .bp3-button.bp3-outlined:disabled:hover, .bp3-button.bp3-outlined.bp3-disabled, .bp3-button.bp3-outlined.bp3-disabled:hover{
background:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-button.bp3-outlined:disabled.bp3-active, .bp3-button.bp3-outlined:disabled:hover.bp3-active, .bp3-button.bp3-outlined.bp3-disabled.bp3-active, .bp3-button.bp3-outlined.bp3-disabled:hover.bp3-active{
background:rgba(115, 134, 148, 0.3); }
.bp3-dark .bp3-button.bp3-outlined{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:inherit; }
.bp3-dark .bp3-button.bp3-outlined:hover, .bp3-dark .bp3-button.bp3-outlined:active, .bp3-dark .bp3-button.bp3-outlined.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-button.bp3-outlined:hover{
background:rgba(138, 155, 168, 0.15); }
.bp3-dark .bp3-button.bp3-outlined:active, .bp3-dark .bp3-button.bp3-outlined.bp3-active{
background:rgba(138, 155, 168, 0.3);
color:#f5f8fa; }
.bp3-dark .bp3-button.bp3-outlined:disabled, .bp3-dark .bp3-button.bp3-outlined:disabled:hover, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled:hover{
background:none;
color:rgba(167, 182, 194, 0.6);
cursor:not-allowed; }
.bp3-dark .bp3-button.bp3-outlined:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined:disabled:hover.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled:hover.bp3-active{
background:rgba(138, 155, 168, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-primary{
color:#106ba3; }
.bp3-button.bp3-outlined.bp3-intent-primary:hover, .bp3-button.bp3-outlined.bp3-intent-primary:active, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#106ba3; }
.bp3-button.bp3-outlined.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.15);
color:#106ba3; }
.bp3-button.bp3-outlined.bp3-intent-primary:active, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#106ba3; }
.bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(16, 107, 163, 0.5); }
.bp3-button.bp3-outlined.bp3-intent-primary:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
stroke:#106ba3; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary{
color:#48aff0; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.2);
color:#48aff0; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#48aff0; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(72, 175, 240, 0.5); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-success{
color:#0d8050; }
.bp3-button.bp3-outlined.bp3-intent-success:hover, .bp3-button.bp3-outlined.bp3-intent-success:active, .bp3-button.bp3-outlined.bp3-intent-success.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#0d8050; }
.bp3-button.bp3-outlined.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.15);
color:#0d8050; }
.bp3-button.bp3-outlined.bp3-intent-success:active, .bp3-button.bp3-outlined.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#0d8050; }
.bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(13, 128, 80, 0.5); }
.bp3-button.bp3-outlined.bp3-intent-success:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
stroke:#0d8050; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success{
color:#3dcc91; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.2);
color:#3dcc91; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#3dcc91; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(61, 204, 145, 0.5); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-warning{
color:#bf7326; }
.bp3-button.bp3-outlined.bp3-intent-warning:hover, .bp3-button.bp3-outlined.bp3-intent-warning:active, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#bf7326; }
.bp3-button.bp3-outlined.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.15);
color:#bf7326; }
.bp3-button.bp3-outlined.bp3-intent-warning:active, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#bf7326; }
.bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(191, 115, 38, 0.5); }
.bp3-button.bp3-outlined.bp3-intent-warning:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
stroke:#bf7326; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning{
color:#ffb366; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.2);
color:#ffb366; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#ffb366; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(255, 179, 102, 0.5); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-danger{
color:#c23030; }
.bp3-button.bp3-outlined.bp3-intent-danger:hover, .bp3-button.bp3-outlined.bp3-intent-danger:active, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#c23030; }
.bp3-button.bp3-outlined.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.15);
color:#c23030; }
.bp3-button.bp3-outlined.bp3-intent-danger:active, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#c23030; }
.bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(194, 48, 48, 0.5); }
.bp3-button.bp3-outlined.bp3-intent-danger:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-button.bp3-outlined.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
stroke:#c23030; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger{
color:#ff7373; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.2);
color:#ff7373; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#ff7373; }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(255, 115, 115, 0.5); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-button.bp3-outlined:disabled, .bp3-button.bp3-outlined.bp3-disabled, .bp3-button.bp3-outlined:disabled:hover, .bp3-button.bp3-outlined.bp3-disabled:hover{
border-color:rgba(92, 112, 128, 0.1); }
.bp3-dark .bp3-button.bp3-outlined{
border-color:rgba(255, 255, 255, 0.4); }
.bp3-dark .bp3-button.bp3-outlined:disabled, .bp3-dark .bp3-button.bp3-outlined:disabled:hover, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled:hover{
border-color:rgba(255, 255, 255, 0.2); }
.bp3-button.bp3-outlined.bp3-intent-primary{
border-color:rgba(16, 107, 163, 0.6); }
.bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
border-color:rgba(16, 107, 163, 0.2); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary{
border-color:rgba(72, 175, 240, 0.6); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
border-color:rgba(72, 175, 240, 0.2); }
.bp3-button.bp3-outlined.bp3-intent-success{
border-color:rgba(13, 128, 80, 0.6); }
.bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
border-color:rgba(13, 128, 80, 0.2); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success{
border-color:rgba(61, 204, 145, 0.6); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
border-color:rgba(61, 204, 145, 0.2); }
.bp3-button.bp3-outlined.bp3-intent-warning{
border-color:rgba(191, 115, 38, 0.6); }
.bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
border-color:rgba(191, 115, 38, 0.2); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning{
border-color:rgba(255, 179, 102, 0.6); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
border-color:rgba(255, 179, 102, 0.2); }
.bp3-button.bp3-outlined.bp3-intent-danger{
border-color:rgba(194, 48, 48, 0.6); }
.bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
border-color:rgba(194, 48, 48, 0.2); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger{
border-color:rgba(255, 115, 115, 0.6); }
.bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
border-color:rgba(255, 115, 115, 0.2); }
a.bp3-button{
text-align:center;
text-decoration:none;
-webkit-transition:none;
transition:none; }
a.bp3-button, a.bp3-button:hover, a.bp3-button:active{
color:#182026; }
a.bp3-button.bp3-disabled{
color:rgba(92, 112, 128, 0.6); }
.bp3-button-text{
-webkit-box-flex:0;
-ms-flex:0 1 auto;
flex:0 1 auto; }
.bp3-button.bp3-align-left .bp3-button-text, .bp3-button.bp3-align-right .bp3-button-text,
.bp3-button-group.bp3-align-left .bp3-button-text,
.bp3-button-group.bp3-align-right .bp3-button-text{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto; }
.bp3-button-group{
display:-webkit-inline-box;
display:-ms-inline-flexbox;
display:inline-flex; }
.bp3-button-group .bp3-button{
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
position:relative;
z-index:4; }
.bp3-button-group .bp3-button:focus{
z-index:5; }
.bp3-button-group .bp3-button:hover{
z-index:6; }
.bp3-button-group .bp3-button:active, .bp3-button-group .bp3-button.bp3-active{
z-index:7; }
.bp3-button-group .bp3-button:disabled, .bp3-button-group .bp3-button.bp3-disabled{
z-index:3; }
.bp3-button-group .bp3-button[class*="bp3-intent-"]{
z-index:9; }
.bp3-button-group .bp3-button[class*="bp3-intent-"]:focus{
z-index:10; }
.bp3-button-group .bp3-button[class*="bp3-intent-"]:hover{
z-index:11; }
.bp3-button-group .bp3-button[class*="bp3-intent-"]:active, .bp3-button-group .bp3-button[class*="bp3-intent-"].bp3-active{
z-index:12; }
.bp3-button-group .bp3-button[class*="bp3-intent-"]:disabled, .bp3-button-group .bp3-button[class*="bp3-intent-"].bp3-disabled{
z-index:8; }
.bp3-button-group:not(.bp3-minimal) > .bp3-popover-wrapper:not(:first-child) .bp3-button,
.bp3-button-group:not(.bp3-minimal) > .bp3-button:not(:first-child){
border-bottom-left-radius:0;
border-top-left-radius:0; }
.bp3-button-group:not(.bp3-minimal) > .bp3-popover-wrapper:not(:last-child) .bp3-button,
.bp3-button-group:not(.bp3-minimal) > .bp3-button:not(:last-child){
border-bottom-right-radius:0;
border-top-right-radius:0;
margin-right:-1px; }
.bp3-button-group.bp3-minimal .bp3-button{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-button-group.bp3-minimal .bp3-button:hover{
background:rgba(167, 182, 194, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026;
text-decoration:none; }
.bp3-button-group.bp3-minimal .bp3-button:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-active{
background:rgba(115, 134, 148, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026; }
.bp3-button-group.bp3-minimal .bp3-button:disabled, .bp3-button-group.bp3-minimal .bp3-button:disabled:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover{
background:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-button-group.bp3-minimal .bp3-button:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button:disabled:hover.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover.bp3-active{
background:rgba(115, 134, 148, 0.3); }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:inherit; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button:hover, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button:hover{
background:rgba(138, 155, 168, 0.15); }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-active{
background:rgba(138, 155, 168, 0.3);
color:#f5f8fa; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled:hover, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover{
background:none;
color:rgba(167, 182, 194, 0.6);
cursor:not-allowed; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled:hover.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover.bp3-active{
background:rgba(138, 155, 168, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary{
color:#106ba3; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#106ba3; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.15);
color:#106ba3; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#106ba3; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(16, 107, 163, 0.5); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
stroke:#106ba3; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary{
color:#48aff0; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.2);
color:#48aff0; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#48aff0; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(72, 175, 240, 0.5); }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success{
color:#0d8050; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#0d8050; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.15);
color:#0d8050; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#0d8050; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(13, 128, 80, 0.5); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
stroke:#0d8050; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success{
color:#3dcc91; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.2);
color:#3dcc91; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#3dcc91; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(61, 204, 145, 0.5); }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning{
color:#bf7326; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#bf7326; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.15);
color:#bf7326; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#bf7326; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(191, 115, 38, 0.5); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
stroke:#bf7326; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning{
color:#ffb366; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.2);
color:#ffb366; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#ffb366; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(255, 179, 102, 0.5); }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger{
color:#c23030; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#c23030; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.15);
color:#c23030; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#c23030; }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(194, 48, 48, 0.5); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
stroke:#c23030; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger{
color:#ff7373; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.2);
color:#ff7373; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#ff7373; }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(255, 115, 115, 0.5); }
.bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-button-group .bp3-popover-wrapper,
.bp3-button-group .bp3-popover-target{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto; }
.bp3-button-group.bp3-fill{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
width:100%; }
.bp3-button-group .bp3-button.bp3-fill,
.bp3-button-group.bp3-fill .bp3-button:not(.bp3-fixed){
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto; }
.bp3-button-group.bp3-vertical{
-webkit-box-align:stretch;
-ms-flex-align:stretch;
align-items:stretch;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
vertical-align:top; }
.bp3-button-group.bp3-vertical.bp3-fill{
height:100%;
width:unset; }
.bp3-button-group.bp3-vertical .bp3-button{
margin-right:0 !important;
width:100%; }
.bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-popover-wrapper:first-child .bp3-button,
.bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-button:first-child{
border-radius:3px 3px 0 0; }
.bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-popover-wrapper:last-child .bp3-button,
.bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-button:last-child{
border-radius:0 0 3px 3px; }
.bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-popover-wrapper:not(:last-child) .bp3-button,
.bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-button:not(:last-child){
margin-bottom:-1px; }
.bp3-button-group.bp3-align-left .bp3-button{
text-align:left; }
.bp3-dark .bp3-button-group:not(.bp3-minimal) > .bp3-popover-wrapper:not(:last-child) .bp3-button,
.bp3-dark .bp3-button-group:not(.bp3-minimal) > .bp3-button:not(:last-child){
margin-right:1px; }
.bp3-dark .bp3-button-group.bp3-vertical > .bp3-popover-wrapper:not(:last-child) .bp3-button,
.bp3-dark .bp3-button-group.bp3-vertical > .bp3-button:not(:last-child){
margin-bottom:1px; }
.bp3-callout{
font-size:14px;
line-height:1.5;
background-color:rgba(138, 155, 168, 0.15);
border-radius:3px;
padding:10px 12px 9px;
position:relative;
width:100%; }
.bp3-callout[class*="bp3-icon-"]{
padding-left:40px; }
.bp3-callout[class*="bp3-icon-"]::before{
font-family:"Icons20", sans-serif;
font-size:20px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
color:#5c7080;
left:10px;
position:absolute;
top:10px; }
.bp3-callout.bp3-callout-icon{
padding-left:40px; }
.bp3-callout.bp3-callout-icon > .bp3-icon:first-child{
color:#5c7080;
left:10px;
position:absolute;
top:10px; }
.bp3-callout .bp3-heading{
line-height:20px;
margin-bottom:5px;
margin-top:0; }
.bp3-callout .bp3-heading:last-child{
margin-bottom:0; }
.bp3-dark .bp3-callout{
background-color:rgba(138, 155, 168, 0.2); }
.bp3-dark .bp3-callout[class*="bp3-icon-"]::before{
color:#a7b6c2; }
.bp3-callout.bp3-intent-primary{
background-color:rgba(19, 124, 189, 0.15); }
.bp3-callout.bp3-intent-primary[class*="bp3-icon-"]::before,
.bp3-callout.bp3-intent-primary > .bp3-icon:first-child,
.bp3-callout.bp3-intent-primary .bp3-heading{
color:#106ba3; }
.bp3-dark .bp3-callout.bp3-intent-primary{
background-color:rgba(19, 124, 189, 0.25); }
.bp3-dark .bp3-callout.bp3-intent-primary[class*="bp3-icon-"]::before,
.bp3-dark .bp3-callout.bp3-intent-primary > .bp3-icon:first-child,
.bp3-dark .bp3-callout.bp3-intent-primary .bp3-heading{
color:#48aff0; }
.bp3-callout.bp3-intent-success{
background-color:rgba(15, 153, 96, 0.15); }
.bp3-callout.bp3-intent-success[class*="bp3-icon-"]::before,
.bp3-callout.bp3-intent-success > .bp3-icon:first-child,
.bp3-callout.bp3-intent-success .bp3-heading{
color:#0d8050; }
.bp3-dark .bp3-callout.bp3-intent-success{
background-color:rgba(15, 153, 96, 0.25); }
.bp3-dark .bp3-callout.bp3-intent-success[class*="bp3-icon-"]::before,
.bp3-dark .bp3-callout.bp3-intent-success > .bp3-icon:first-child,
.bp3-dark .bp3-callout.bp3-intent-success .bp3-heading{
color:#3dcc91; }
.bp3-callout.bp3-intent-warning{
background-color:rgba(217, 130, 43, 0.15); }
.bp3-callout.bp3-intent-warning[class*="bp3-icon-"]::before,
.bp3-callout.bp3-intent-warning > .bp3-icon:first-child,
.bp3-callout.bp3-intent-warning .bp3-heading{
color:#bf7326; }
.bp3-dark .bp3-callout.bp3-intent-warning{
background-color:rgba(217, 130, 43, 0.25); }
.bp3-dark .bp3-callout.bp3-intent-warning[class*="bp3-icon-"]::before,
.bp3-dark .bp3-callout.bp3-intent-warning > .bp3-icon:first-child,
.bp3-dark .bp3-callout.bp3-intent-warning .bp3-heading{
color:#ffb366; }
.bp3-callout.bp3-intent-danger{
background-color:rgba(219, 55, 55, 0.15); }
.bp3-callout.bp3-intent-danger[class*="bp3-icon-"]::before,
.bp3-callout.bp3-intent-danger > .bp3-icon:first-child,
.bp3-callout.bp3-intent-danger .bp3-heading{
color:#c23030; }
.bp3-dark .bp3-callout.bp3-intent-danger{
background-color:rgba(219, 55, 55, 0.25); }
.bp3-dark .bp3-callout.bp3-intent-danger[class*="bp3-icon-"]::before,
.bp3-dark .bp3-callout.bp3-intent-danger > .bp3-icon:first-child,
.bp3-dark .bp3-callout.bp3-intent-danger .bp3-heading{
color:#ff7373; }
.bp3-running-text .bp3-callout{
margin:20px 0; }
.bp3-card{
background-color:#ffffff;
border-radius:3px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
padding:20px;
-webkit-transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-card.bp3-dark,
.bp3-dark .bp3-card{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0); }
.bp3-elevation-0{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0); }
.bp3-elevation-0.bp3-dark,
.bp3-dark .bp3-elevation-0{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0); }
.bp3-elevation-1{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-elevation-1.bp3-dark,
.bp3-dark .bp3-elevation-1{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-elevation-2{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 1px 1px rgba(16, 22, 26, 0.2), 0 2px 6px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 1px 1px rgba(16, 22, 26, 0.2), 0 2px 6px rgba(16, 22, 26, 0.2); }
.bp3-elevation-2.bp3-dark,
.bp3-dark .bp3-elevation-2{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.4), 0 2px 6px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.4), 0 2px 6px rgba(16, 22, 26, 0.4); }
.bp3-elevation-3{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2); }
.bp3-elevation-3.bp3-dark,
.bp3-dark .bp3-elevation-3{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
.bp3-elevation-4{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2); }
.bp3-elevation-4.bp3-dark,
.bp3-dark .bp3-elevation-4{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4); }
.bp3-card.bp3-interactive:hover{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
cursor:pointer; }
.bp3-card.bp3-interactive:hover.bp3-dark,
.bp3-dark .bp3-card.bp3-interactive:hover{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
.bp3-card.bp3-interactive:active{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
opacity:0.9;
-webkit-transition-duration:0;
transition-duration:0; }
.bp3-card.bp3-interactive:active.bp3-dark,
.bp3-dark .bp3-card.bp3-interactive:active{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-collapse{
height:0;
overflow-y:hidden;
-webkit-transition:height 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:height 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-collapse .bp3-collapse-body{
-webkit-transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-collapse .bp3-collapse-body[aria-hidden="true"]{
display:none; }
.bp3-context-menu .bp3-popover-target{
display:block; }
.bp3-context-menu-popover-target{
position:fixed; }
.bp3-divider{
border-bottom:1px solid rgba(16, 22, 26, 0.15);
border-right:1px solid rgba(16, 22, 26, 0.15);
margin:5px; }
.bp3-dark .bp3-divider{
border-color:rgba(16, 22, 26, 0.4); }
.bp3-dialog-container{
opacity:1;
-webkit-transform:scale(1);
transform:scale(1);
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
min-height:100%;
pointer-events:none;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
width:100%; }
.bp3-dialog-container.bp3-overlay-enter > .bp3-dialog, .bp3-dialog-container.bp3-overlay-appear > .bp3-dialog{
opacity:0;
-webkit-transform:scale(0.5);
transform:scale(0.5); }
.bp3-dialog-container.bp3-overlay-enter-active > .bp3-dialog, .bp3-dialog-container.bp3-overlay-appear-active > .bp3-dialog{
opacity:1;
-webkit-transform:scale(1);
transform:scale(1);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:opacity, transform;
transition-property:opacity, transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
.bp3-dialog-container.bp3-overlay-exit > .bp3-dialog{
opacity:1;
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-dialog-container.bp3-overlay-exit-active > .bp3-dialog{
opacity:0;
-webkit-transform:scale(0.5);
transform:scale(0.5);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:opacity, transform;
transition-property:opacity, transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
.bp3-dialog{
background:#ebf1f5;
border-radius:6px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
margin:30px 0;
padding-bottom:20px;
pointer-events:all;
-webkit-user-select:text;
-moz-user-select:text;
-ms-user-select:text;
user-select:text;
width:500px; }
.bp3-dialog:focus{
outline:0; }
.bp3-dialog.bp3-dark,
.bp3-dark .bp3-dialog{
background:#293742;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dialog-header{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
background:#ffffff;
border-radius:6px 6px 0 0;
-webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
min-height:40px;
padding-left:20px;
padding-right:5px;
z-index:30; }
.bp3-dialog-header .bp3-icon-large,
.bp3-dialog-header .bp3-icon{
color:#5c7080;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
margin-right:10px; }
.bp3-dialog-header .bp3-heading{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
line-height:inherit;
margin:0; }
.bp3-dialog-header .bp3-heading:last-child{
margin-right:20px; }
.bp3-dark .bp3-dialog-header{
background:#30404d;
-webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.4);
box-shadow:0 1px 0 rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-dialog-header .bp3-icon-large,
.bp3-dark .bp3-dialog-header .bp3-icon{
color:#a7b6c2; }
.bp3-dialog-body{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
line-height:18px;
margin:20px; }
.bp3-dialog-footer{
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
margin:0 20px; }
.bp3-dialog-footer-actions{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-pack:end;
-ms-flex-pack:end;
justify-content:flex-end; }
.bp3-dialog-footer-actions .bp3-button{
margin-left:10px; }
.bp3-multistep-dialog-panels{
display:-webkit-box;
display:-ms-flexbox;
display:flex; }
.bp3-multistep-dialog-left-panel{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:1;
-ms-flex:1;
flex:1;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column; }
.bp3-dark .bp3-multistep-dialog-left-panel{
background:#202b33; }
.bp3-multistep-dialog-right-panel{
background-color:#f5f8fa;
border-left:1px solid rgba(16, 22, 26, 0.15);
border-radius:0 0 6px 0;
-webkit-box-flex:3;
-ms-flex:3;
flex:3;
min-width:0; }
.bp3-dark .bp3-multistep-dialog-right-panel{
background-color:#293742;
border-left:1px solid rgba(16, 22, 26, 0.4); }
.bp3-multistep-dialog-footer{
background-color:#ffffff;
border-radius:0 0 6px 0;
border-top:1px solid rgba(16, 22, 26, 0.15);
padding:10px; }
.bp3-dark .bp3-multistep-dialog-footer{
background:#30404d;
border-top:1px solid rgba(16, 22, 26, 0.4); }
.bp3-dialog-step-container{
background-color:#f5f8fa;
border-bottom:1px solid rgba(16, 22, 26, 0.15); }
.bp3-dark .bp3-dialog-step-container{
background:#293742;
border-bottom:1px solid rgba(16, 22, 26, 0.4); }
.bp3-dialog-step-container.bp3-dialog-step-viewed{
background-color:#ffffff; }
.bp3-dark .bp3-dialog-step-container.bp3-dialog-step-viewed{
background:#30404d; }
.bp3-dialog-step{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
background-color:#f5f8fa;
border-radius:6px;
cursor:not-allowed;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
margin:4px;
padding:6px 14px; }
.bp3-dark .bp3-dialog-step{
background:#293742; }
.bp3-dialog-step-viewed .bp3-dialog-step{
background-color:#ffffff;
cursor:pointer; }
.bp3-dark .bp3-dialog-step-viewed .bp3-dialog-step{
background:#30404d; }
.bp3-dialog-step:hover{
background-color:#f5f8fa; }
.bp3-dark .bp3-dialog-step:hover{
background:#293742; }
.bp3-dialog-step-icon{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
background-color:rgba(92, 112, 128, 0.6);
border-radius:50%;
color:#ffffff;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
height:25px;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
width:25px; }
.bp3-dark .bp3-dialog-step-icon{
background-color:rgba(167, 182, 194, 0.6); }
.bp3-active.bp3-dialog-step-viewed .bp3-dialog-step-icon{
background-color:#2b95d6; }
.bp3-dialog-step-viewed .bp3-dialog-step-icon{
background-color:#8a9ba8; }
.bp3-dialog-step-title{
color:rgba(92, 112, 128, 0.6);
-webkit-box-flex:1;
-ms-flex:1;
flex:1;
padding-left:10px; }
.bp3-dark .bp3-dialog-step-title{
color:rgba(167, 182, 194, 0.6); }
.bp3-active.bp3-dialog-step-viewed .bp3-dialog-step-title{
color:#2b95d6; }
.bp3-dialog-step-viewed:not(.bp3-active) .bp3-dialog-step-title{
color:#182026; }
.bp3-dark .bp3-dialog-step-viewed:not(.bp3-active) .bp3-dialog-step-title{
color:#f5f8fa; }
.bp3-drawer{
background:#ffffff;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
margin:0;
padding:0; }
.bp3-drawer:focus{
outline:0; }
.bp3-drawer.bp3-position-top{
height:50%;
left:0;
right:0;
top:0; }
.bp3-drawer.bp3-position-top.bp3-overlay-enter, .bp3-drawer.bp3-position-top.bp3-overlay-appear{
-webkit-transform:translateY(-100%);
transform:translateY(-100%); }
.bp3-drawer.bp3-position-top.bp3-overlay-enter-active, .bp3-drawer.bp3-position-top.bp3-overlay-appear-active{
-webkit-transform:translateY(0);
transform:translateY(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-top.bp3-overlay-exit{
-webkit-transform:translateY(0);
transform:translateY(0); }
.bp3-drawer.bp3-position-top.bp3-overlay-exit-active{
-webkit-transform:translateY(-100%);
transform:translateY(-100%);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-bottom{
bottom:0;
height:50%;
left:0;
right:0; }
.bp3-drawer.bp3-position-bottom.bp3-overlay-enter, .bp3-drawer.bp3-position-bottom.bp3-overlay-appear{
-webkit-transform:translateY(100%);
transform:translateY(100%); }
.bp3-drawer.bp3-position-bottom.bp3-overlay-enter-active, .bp3-drawer.bp3-position-bottom.bp3-overlay-appear-active{
-webkit-transform:translateY(0);
transform:translateY(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-bottom.bp3-overlay-exit{
-webkit-transform:translateY(0);
transform:translateY(0); }
.bp3-drawer.bp3-position-bottom.bp3-overlay-exit-active{
-webkit-transform:translateY(100%);
transform:translateY(100%);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-left{
bottom:0;
left:0;
top:0;
width:50%; }
.bp3-drawer.bp3-position-left.bp3-overlay-enter, .bp3-drawer.bp3-position-left.bp3-overlay-appear{
-webkit-transform:translateX(-100%);
transform:translateX(-100%); }
.bp3-drawer.bp3-position-left.bp3-overlay-enter-active, .bp3-drawer.bp3-position-left.bp3-overlay-appear-active{
-webkit-transform:translateX(0);
transform:translateX(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-left.bp3-overlay-exit{
-webkit-transform:translateX(0);
transform:translateX(0); }
.bp3-drawer.bp3-position-left.bp3-overlay-exit-active{
-webkit-transform:translateX(-100%);
transform:translateX(-100%);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-right{
bottom:0;
right:0;
top:0;
width:50%; }
.bp3-drawer.bp3-position-right.bp3-overlay-enter, .bp3-drawer.bp3-position-right.bp3-overlay-appear{
-webkit-transform:translateX(100%);
transform:translateX(100%); }
.bp3-drawer.bp3-position-right.bp3-overlay-enter-active, .bp3-drawer.bp3-position-right.bp3-overlay-appear-active{
-webkit-transform:translateX(0);
transform:translateX(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-position-right.bp3-overlay-exit{
-webkit-transform:translateX(0);
transform:translateX(0); }
.bp3-drawer.bp3-position-right.bp3-overlay-exit-active{
-webkit-transform:translateX(100%);
transform:translateX(100%);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical){
bottom:0;
right:0;
top:0;
width:50%; }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical).bp3-overlay-enter, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical).bp3-overlay-appear{
-webkit-transform:translateX(100%);
transform:translateX(100%); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical).bp3-overlay-enter-active, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical).bp3-overlay-appear-active{
-webkit-transform:translateX(0);
transform:translateX(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical).bp3-overlay-exit{
-webkit-transform:translateX(0);
transform:translateX(0); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right):not(.bp3-vertical).bp3-overlay-exit-active{
-webkit-transform:translateX(100%);
transform:translateX(100%);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical{
bottom:0;
height:50%;
left:0;
right:0; }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical.bp3-overlay-enter, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical.bp3-overlay-appear{
-webkit-transform:translateY(100%);
transform:translateY(100%); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical.bp3-overlay-enter-active, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical.bp3-overlay-appear-active{
-webkit-transform:translateY(0);
transform:translateY(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical.bp3-overlay-exit{
-webkit-transform:translateY(0);
transform:translateY(0); }
.bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
.bp3-position-right).bp3-vertical.bp3-overlay-exit-active{
-webkit-transform:translateY(100%);
transform:translateY(100%);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-drawer.bp3-dark,
.bp3-dark .bp3-drawer{
background:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-drawer-header{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
border-radius:0;
-webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
min-height:40px;
padding:5px;
padding-left:20px;
position:relative; }
.bp3-drawer-header .bp3-icon-large,
.bp3-drawer-header .bp3-icon{
color:#5c7080;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
margin-right:10px; }
.bp3-drawer-header .bp3-heading{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
line-height:inherit;
margin:0; }
.bp3-drawer-header .bp3-heading:last-child{
margin-right:20px; }
.bp3-dark .bp3-drawer-header{
-webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.4);
box-shadow:0 1px 0 rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-drawer-header .bp3-icon-large,
.bp3-dark .bp3-drawer-header .bp3-icon{
color:#a7b6c2; }
.bp3-drawer-body{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
line-height:18px;
overflow:auto; }
.bp3-drawer-footer{
-webkit-box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
padding:10px 20px;
position:relative; }
.bp3-dark .bp3-drawer-footer{
-webkit-box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.4);
box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.4); }
.bp3-editable-text{
cursor:text;
display:inline-block;
max-width:100%;
position:relative;
vertical-align:top;
white-space:nowrap; }
.bp3-editable-text::before{
bottom:-3px;
left:-3px;
position:absolute;
right:-3px;
top:-3px;
border-radius:3px;
content:"";
-webkit-transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-editable-text:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15); }
.bp3-editable-text.bp3-editable-text-editing::before{
background-color:#ffffff;
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-editable-text.bp3-disabled::before{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-editable-text.bp3-intent-primary .bp3-editable-text-input,
.bp3-editable-text.bp3-intent-primary .bp3-editable-text-content{
color:#137cbd; }
.bp3-editable-text.bp3-intent-primary:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(19, 124, 189, 0.4);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(19, 124, 189, 0.4); }
.bp3-editable-text.bp3-intent-primary.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-editable-text.bp3-intent-success .bp3-editable-text-input,
.bp3-editable-text.bp3-intent-success .bp3-editable-text-content{
color:#0f9960; }
.bp3-editable-text.bp3-intent-success:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px rgba(15, 153, 96, 0.4);
box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px rgba(15, 153, 96, 0.4); }
.bp3-editable-text.bp3-intent-success.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-editable-text.bp3-intent-warning .bp3-editable-text-input,
.bp3-editable-text.bp3-intent-warning .bp3-editable-text-content{
color:#d9822b; }
.bp3-editable-text.bp3-intent-warning:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px rgba(217, 130, 43, 0.4);
box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px rgba(217, 130, 43, 0.4); }
.bp3-editable-text.bp3-intent-warning.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-editable-text.bp3-intent-danger .bp3-editable-text-input,
.bp3-editable-text.bp3-intent-danger .bp3-editable-text-content{
color:#db3737; }
.bp3-editable-text.bp3-intent-danger:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px rgba(219, 55, 55, 0.4);
box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px rgba(219, 55, 55, 0.4); }
.bp3-editable-text.bp3-intent-danger.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-editable-text:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(255, 255, 255, 0.15);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(255, 255, 255, 0.15); }
.bp3-dark .bp3-editable-text.bp3-editable-text-editing::before{
background-color:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-editable-text.bp3-disabled::before{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-editable-text.bp3-intent-primary .bp3-editable-text-content{
color:#48aff0; }
.bp3-dark .bp3-editable-text.bp3-intent-primary:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(72, 175, 240, 0), 0 0 0 0 rgba(72, 175, 240, 0), inset 0 0 0 1px rgba(72, 175, 240, 0.4);
box-shadow:0 0 0 0 rgba(72, 175, 240, 0), 0 0 0 0 rgba(72, 175, 240, 0), inset 0 0 0 1px rgba(72, 175, 240, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-primary.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #48aff0, 0 0 0 3px rgba(72, 175, 240, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #48aff0, 0 0 0 3px rgba(72, 175, 240, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-success .bp3-editable-text-content{
color:#3dcc91; }
.bp3-dark .bp3-editable-text.bp3-intent-success:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(61, 204, 145, 0), 0 0 0 0 rgba(61, 204, 145, 0), inset 0 0 0 1px rgba(61, 204, 145, 0.4);
box-shadow:0 0 0 0 rgba(61, 204, 145, 0), 0 0 0 0 rgba(61, 204, 145, 0), inset 0 0 0 1px rgba(61, 204, 145, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-success.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #3dcc91, 0 0 0 3px rgba(61, 204, 145, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #3dcc91, 0 0 0 3px rgba(61, 204, 145, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-warning .bp3-editable-text-content{
color:#ffb366; }
.bp3-dark .bp3-editable-text.bp3-intent-warning:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(255, 179, 102, 0), 0 0 0 0 rgba(255, 179, 102, 0), inset 0 0 0 1px rgba(255, 179, 102, 0.4);
box-shadow:0 0 0 0 rgba(255, 179, 102, 0), 0 0 0 0 rgba(255, 179, 102, 0), inset 0 0 0 1px rgba(255, 179, 102, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-warning.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #ffb366, 0 0 0 3px rgba(255, 179, 102, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #ffb366, 0 0 0 3px rgba(255, 179, 102, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-danger .bp3-editable-text-content{
color:#ff7373; }
.bp3-dark .bp3-editable-text.bp3-intent-danger:hover::before{
-webkit-box-shadow:0 0 0 0 rgba(255, 115, 115, 0), 0 0 0 0 rgba(255, 115, 115, 0), inset 0 0 0 1px rgba(255, 115, 115, 0.4);
box-shadow:0 0 0 0 rgba(255, 115, 115, 0), 0 0 0 0 rgba(255, 115, 115, 0), inset 0 0 0 1px rgba(255, 115, 115, 0.4); }
.bp3-dark .bp3-editable-text.bp3-intent-danger.bp3-editable-text-editing::before{
-webkit-box-shadow:0 0 0 1px #ff7373, 0 0 0 3px rgba(255, 115, 115, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #ff7373, 0 0 0 3px rgba(255, 115, 115, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-editable-text-input,
.bp3-editable-text-content{
color:inherit;
display:inherit;
font:inherit;
letter-spacing:inherit;
max-width:inherit;
min-width:inherit;
position:relative;
resize:none;
text-transform:inherit;
vertical-align:top; }
.bp3-editable-text-input{
background:none;
border:none;
-webkit-box-shadow:none;
box-shadow:none;
padding:0;
white-space:pre-wrap;
width:100%; }
.bp3-editable-text-input::-webkit-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-editable-text-input::-moz-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-editable-text-input:-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-editable-text-input::-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-editable-text-input::placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-editable-text-input:focus{
outline:none; }
.bp3-editable-text-input::-ms-clear{
display:none; }
.bp3-editable-text-content{
overflow:hidden;
padding-right:2px;
text-overflow:ellipsis;
white-space:pre; }
.bp3-editable-text-editing > .bp3-editable-text-content{
left:0;
position:absolute;
visibility:hidden; }
.bp3-editable-text-placeholder > .bp3-editable-text-content{
color:rgba(92, 112, 128, 0.6); }
.bp3-dark .bp3-editable-text-placeholder > .bp3-editable-text-content{
color:rgba(167, 182, 194, 0.6); }
.bp3-editable-text.bp3-multiline{
display:block; }
.bp3-editable-text.bp3-multiline .bp3-editable-text-content{
overflow:auto;
white-space:pre-wrap;
word-wrap:break-word; }
.bp3-divider{
border-bottom:1px solid rgba(16, 22, 26, 0.15);
border-right:1px solid rgba(16, 22, 26, 0.15);
margin:5px; }
.bp3-dark .bp3-divider{
border-color:rgba(16, 22, 26, 0.4); }
.bp3-control-group{
-webkit-transform:translateZ(0);
transform:translateZ(0);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:stretch;
-ms-flex-align:stretch;
align-items:stretch; }
.bp3-control-group > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-control-group > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-control-group .bp3-button,
.bp3-control-group .bp3-html-select,
.bp3-control-group .bp3-input,
.bp3-control-group .bp3-select{
position:relative; }
.bp3-control-group .bp3-input{
border-radius:inherit;
z-index:2; }
.bp3-control-group .bp3-input:focus{
border-radius:3px;
z-index:14; }
.bp3-control-group .bp3-input[class*="bp3-intent"]{
z-index:13; }
.bp3-control-group .bp3-input[class*="bp3-intent"]:focus{
z-index:15; }
.bp3-control-group .bp3-input[readonly], .bp3-control-group .bp3-input:disabled, .bp3-control-group .bp3-input.bp3-disabled{
z-index:1; }
.bp3-control-group .bp3-input-group[class*="bp3-intent"] .bp3-input{
z-index:13; }
.bp3-control-group .bp3-input-group[class*="bp3-intent"] .bp3-input:focus{
z-index:15; }
.bp3-control-group .bp3-button,
.bp3-control-group .bp3-html-select select,
.bp3-control-group .bp3-select select{
-webkit-transform:translateZ(0);
transform:translateZ(0);
border-radius:inherit;
z-index:4; }
.bp3-control-group .bp3-button:focus,
.bp3-control-group .bp3-html-select select:focus,
.bp3-control-group .bp3-select select:focus{
z-index:5; }
.bp3-control-group .bp3-button:hover,
.bp3-control-group .bp3-html-select select:hover,
.bp3-control-group .bp3-select select:hover{
z-index:6; }
.bp3-control-group .bp3-button:active,
.bp3-control-group .bp3-html-select select:active,
.bp3-control-group .bp3-select select:active{
z-index:7; }
.bp3-control-group .bp3-button[readonly], .bp3-control-group .bp3-button:disabled, .bp3-control-group .bp3-button.bp3-disabled,
.bp3-control-group .bp3-html-select select[readonly],
.bp3-control-group .bp3-html-select select:disabled,
.bp3-control-group .bp3-html-select select.bp3-disabled,
.bp3-control-group .bp3-select select[readonly],
.bp3-control-group .bp3-select select:disabled,
.bp3-control-group .bp3-select select.bp3-disabled{
z-index:3; }
.bp3-control-group .bp3-button[class*="bp3-intent"],
.bp3-control-group .bp3-html-select select[class*="bp3-intent"],
.bp3-control-group .bp3-select select[class*="bp3-intent"]{
z-index:9; }
.bp3-control-group .bp3-button[class*="bp3-intent"]:focus,
.bp3-control-group .bp3-html-select select[class*="bp3-intent"]:focus,
.bp3-control-group .bp3-select select[class*="bp3-intent"]:focus{
z-index:10; }
.bp3-control-group .bp3-button[class*="bp3-intent"]:hover,
.bp3-control-group .bp3-html-select select[class*="bp3-intent"]:hover,
.bp3-control-group .bp3-select select[class*="bp3-intent"]:hover{
z-index:11; }
.bp3-control-group .bp3-button[class*="bp3-intent"]:active,
.bp3-control-group .bp3-html-select select[class*="bp3-intent"]:active,
.bp3-control-group .bp3-select select[class*="bp3-intent"]:active{
z-index:12; }
.bp3-control-group .bp3-button[class*="bp3-intent"][readonly], .bp3-control-group .bp3-button[class*="bp3-intent"]:disabled, .bp3-control-group .bp3-button[class*="bp3-intent"].bp3-disabled,
.bp3-control-group .bp3-html-select select[class*="bp3-intent"][readonly],
.bp3-control-group .bp3-html-select select[class*="bp3-intent"]:disabled,
.bp3-control-group .bp3-html-select select[class*="bp3-intent"].bp3-disabled,
.bp3-control-group .bp3-select select[class*="bp3-intent"][readonly],
.bp3-control-group .bp3-select select[class*="bp3-intent"]:disabled,
.bp3-control-group .bp3-select select[class*="bp3-intent"].bp3-disabled{
z-index:8; }
.bp3-control-group .bp3-input-group > .bp3-icon,
.bp3-control-group .bp3-input-group > .bp3-button,
.bp3-control-group .bp3-input-group > .bp3-input-left-container,
.bp3-control-group .bp3-input-group > .bp3-input-action{
z-index:16; }
.bp3-control-group .bp3-select::after,
.bp3-control-group .bp3-html-select::after,
.bp3-control-group .bp3-select > .bp3-icon,
.bp3-control-group .bp3-html-select > .bp3-icon{
z-index:17; }
.bp3-control-group .bp3-select:focus-within{
z-index:5; }
.bp3-control-group:not(.bp3-vertical) > *:not(.bp3-divider){
margin-right:-1px; }
.bp3-control-group:not(.bp3-vertical) > .bp3-divider:not(:first-child){
margin-left:6px; }
.bp3-dark .bp3-control-group:not(.bp3-vertical) > *:not(.bp3-divider){
margin-right:0; }
.bp3-dark .bp3-control-group:not(.bp3-vertical) > .bp3-button + .bp3-button{
margin-left:1px; }
.bp3-control-group .bp3-popover-wrapper,
.bp3-control-group .bp3-popover-target{
border-radius:inherit; }
.bp3-control-group > :first-child{
border-radius:3px 0 0 3px; }
.bp3-control-group > :last-child{
border-radius:0 3px 3px 0;
margin-right:0; }
.bp3-control-group > :only-child{
border-radius:3px;
margin-right:0; }
.bp3-control-group .bp3-input-group .bp3-button{
border-radius:3px; }
.bp3-control-group .bp3-numeric-input:not(:first-child) .bp3-input-group{
border-bottom-left-radius:0;
border-top-left-radius:0; }
.bp3-control-group.bp3-fill{
width:100%; }
.bp3-control-group > .bp3-fill{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto; }
.bp3-control-group.bp3-fill > *:not(.bp3-fixed){
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto; }
.bp3-control-group.bp3-vertical{
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column; }
.bp3-control-group.bp3-vertical > *{
margin-top:-1px; }
.bp3-control-group.bp3-vertical > :first-child{
border-radius:3px 3px 0 0;
margin-top:0; }
.bp3-control-group.bp3-vertical > :last-child{
border-radius:0 0 3px 3px; }
.bp3-control{
cursor:pointer;
display:block;
margin-bottom:10px;
position:relative;
text-transform:none; }
.bp3-control input:checked ~ .bp3-control-indicator{
background-color:#137cbd;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
color:#ffffff; }
.bp3-control:hover input:checked ~ .bp3-control-indicator{
background-color:#106ba3;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
.bp3-control input:not(:disabled):active:checked ~ .bp3-control-indicator{
background:#0e5a8a;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-control input:disabled:checked ~ .bp3-control-indicator{
background:rgba(19, 124, 189, 0.5);
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-control input:checked ~ .bp3-control-indicator{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control:hover input:checked ~ .bp3-control-indicator{
background-color:#106ba3;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control input:not(:disabled):active:checked ~ .bp3-control-indicator{
background-color:#0e5a8a;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-control input:disabled:checked ~ .bp3-control-indicator{
background:rgba(14, 90, 138, 0.5);
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-control:not(.bp3-align-right){
padding-left:26px; }
.bp3-control:not(.bp3-align-right) .bp3-control-indicator{
margin-left:-26px; }
.bp3-control.bp3-align-right{
padding-right:26px; }
.bp3-control.bp3-align-right .bp3-control-indicator{
margin-right:-26px; }
.bp3-control.bp3-disabled{
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-control.bp3-inline{
display:inline-block;
margin-right:20px; }
.bp3-control input{
left:0;
opacity:0;
position:absolute;
top:0;
z-index:-1; }
.bp3-control .bp3-control-indicator{
background-clip:padding-box;
background-color:#f5f8fa;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
border:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
cursor:pointer;
display:inline-block;
font-size:16px;
height:1em;
margin-right:10px;
margin-top:-3px;
position:relative;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
vertical-align:middle;
width:1em; }
.bp3-control .bp3-control-indicator::before{
content:"";
display:block;
height:1em;
width:1em; }
.bp3-control:hover .bp3-control-indicator{
background-color:#ebf1f5; }
.bp3-control input:not(:disabled):active ~ .bp3-control-indicator{
background:#d8e1e8;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-control input:disabled ~ .bp3-control-indicator{
background:rgba(206, 217, 224, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
cursor:not-allowed; }
.bp3-control input:focus ~ .bp3-control-indicator{
outline:rgba(19, 124, 189, 0.6) auto 2px;
outline-offset:2px;
-moz-outline-radius:6px; }
.bp3-control.bp3-align-right .bp3-control-indicator{
float:right;
margin-left:10px;
margin-top:1px; }
.bp3-control.bp3-large{
font-size:16px; }
.bp3-control.bp3-large:not(.bp3-align-right){
padding-left:30px; }
.bp3-control.bp3-large:not(.bp3-align-right) .bp3-control-indicator{
margin-left:-30px; }
.bp3-control.bp3-large.bp3-align-right{
padding-right:30px; }
.bp3-control.bp3-large.bp3-align-right .bp3-control-indicator{
margin-right:-30px; }
.bp3-control.bp3-large .bp3-control-indicator{
font-size:20px; }
.bp3-control.bp3-large.bp3-align-right .bp3-control-indicator{
margin-top:0; }
.bp3-control.bp3-checkbox input:indeterminate ~ .bp3-control-indicator{
background-color:#137cbd;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
color:#ffffff; }
.bp3-control.bp3-checkbox:hover input:indeterminate ~ .bp3-control-indicator{
background-color:#106ba3;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
.bp3-control.bp3-checkbox input:not(:disabled):active:indeterminate ~ .bp3-control-indicator{
background:#0e5a8a;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-control.bp3-checkbox input:disabled:indeterminate ~ .bp3-control-indicator{
background:rgba(19, 124, 189, 0.5);
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-control.bp3-checkbox input:indeterminate ~ .bp3-control-indicator{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control.bp3-checkbox:hover input:indeterminate ~ .bp3-control-indicator{
background-color:#106ba3;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control.bp3-checkbox input:not(:disabled):active:indeterminate ~ .bp3-control-indicator{
background-color:#0e5a8a;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-control.bp3-checkbox input:disabled:indeterminate ~ .bp3-control-indicator{
background:rgba(14, 90, 138, 0.5);
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-control.bp3-checkbox .bp3-control-indicator{
border-radius:3px; }
.bp3-control.bp3-checkbox input:checked ~ .bp3-control-indicator::before{
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='white'/%3e%3c/svg%3e"); }
.bp3-control.bp3-checkbox input:indeterminate ~ .bp3-control-indicator::before{
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z' fill='white'/%3e%3c/svg%3e"); }
.bp3-control.bp3-radio .bp3-control-indicator{
border-radius:50%; }
.bp3-control.bp3-radio input:checked ~ .bp3-control-indicator::before{
background-image:radial-gradient(#ffffff, #ffffff 28%, transparent 32%); }
.bp3-control.bp3-radio input:checked:disabled ~ .bp3-control-indicator::before{
opacity:0.5; }
.bp3-control.bp3-radio input:focus ~ .bp3-control-indicator{
-moz-outline-radius:16px; }
.bp3-control.bp3-switch input ~ .bp3-control-indicator{
background:rgba(167, 182, 194, 0.5); }
.bp3-control.bp3-switch:hover input ~ .bp3-control-indicator{
background:rgba(115, 134, 148, 0.5); }
.bp3-control.bp3-switch input:not(:disabled):active ~ .bp3-control-indicator{
background:rgba(92, 112, 128, 0.5); }
.bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator{
background:rgba(206, 217, 224, 0.5); }
.bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator::before{
background:rgba(255, 255, 255, 0.8); }
.bp3-control.bp3-switch input:checked ~ .bp3-control-indicator{
background:#137cbd; }
.bp3-control.bp3-switch:hover input:checked ~ .bp3-control-indicator{
background:#106ba3; }
.bp3-control.bp3-switch input:checked:not(:disabled):active ~ .bp3-control-indicator{
background:#0e5a8a; }
.bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator{
background:rgba(19, 124, 189, 0.5); }
.bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator::before{
background:rgba(255, 255, 255, 0.8); }
.bp3-control.bp3-switch:not(.bp3-align-right){
padding-left:38px; }
.bp3-control.bp3-switch:not(.bp3-align-right) .bp3-control-indicator{
margin-left:-38px; }
.bp3-control.bp3-switch.bp3-align-right{
padding-right:38px; }
.bp3-control.bp3-switch.bp3-align-right .bp3-control-indicator{
margin-right:-38px; }
.bp3-control.bp3-switch .bp3-control-indicator{
border:none;
border-radius:1.75em;
-webkit-box-shadow:none !important;
box-shadow:none !important;
min-width:1.75em;
-webkit-transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
width:auto; }
.bp3-control.bp3-switch .bp3-control-indicator::before{
background:#ffffff;
border-radius:50%;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
height:calc(1em - 4px);
left:0;
margin:2px;
position:absolute;
-webkit-transition:left 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:left 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
width:calc(1em - 4px); }
.bp3-control.bp3-switch input:checked ~ .bp3-control-indicator::before{
left:calc(100% - 1em); }
.bp3-control.bp3-switch.bp3-large:not(.bp3-align-right){
padding-left:45px; }
.bp3-control.bp3-switch.bp3-large:not(.bp3-align-right) .bp3-control-indicator{
margin-left:-45px; }
.bp3-control.bp3-switch.bp3-large.bp3-align-right{
padding-right:45px; }
.bp3-control.bp3-switch.bp3-large.bp3-align-right .bp3-control-indicator{
margin-right:-45px; }
.bp3-dark .bp3-control.bp3-switch input ~ .bp3-control-indicator{
background:rgba(16, 22, 26, 0.5); }
.bp3-dark .bp3-control.bp3-switch:hover input ~ .bp3-control-indicator{
background:rgba(16, 22, 26, 0.7); }
.bp3-dark .bp3-control.bp3-switch input:not(:disabled):active ~ .bp3-control-indicator{
background:rgba(16, 22, 26, 0.9); }
.bp3-dark .bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator{
background:rgba(57, 75, 89, 0.5); }
.bp3-dark .bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator::before{
background:rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator{
background:#137cbd; }
.bp3-dark .bp3-control.bp3-switch:hover input:checked ~ .bp3-control-indicator{
background:#106ba3; }
.bp3-dark .bp3-control.bp3-switch input:checked:not(:disabled):active ~ .bp3-control-indicator{
background:#0e5a8a; }
.bp3-dark .bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator{
background:rgba(14, 90, 138, 0.5); }
.bp3-dark .bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator::before{
background:rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control.bp3-switch .bp3-control-indicator::before{
background:#394b59;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator::before{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-control.bp3-switch .bp3-switch-inner-text{
font-size:0.7em;
text-align:center; }
.bp3-control.bp3-switch .bp3-control-indicator-child:first-child{
line-height:0;
margin-left:0.5em;
margin-right:1.2em;
visibility:hidden; }
.bp3-control.bp3-switch .bp3-control-indicator-child:last-child{
line-height:1em;
margin-left:1.2em;
margin-right:0.5em;
visibility:visible; }
.bp3-control.bp3-switch input:checked ~ .bp3-control-indicator .bp3-control-indicator-child:first-child{
line-height:1em;
visibility:visible; }
.bp3-control.bp3-switch input:checked ~ .bp3-control-indicator .bp3-control-indicator-child:last-child{
line-height:0;
visibility:hidden; }
.bp3-dark .bp3-control{
color:#f5f8fa; }
.bp3-dark .bp3-control.bp3-disabled{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-control .bp3-control-indicator{
background-color:#394b59;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-control:hover .bp3-control-indicator{
background-color:#30404d; }
.bp3-dark .bp3-control input:not(:disabled):active ~ .bp3-control-indicator{
background:#202b33;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-control input:disabled ~ .bp3-control-indicator{
background:rgba(57, 75, 89, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
cursor:not-allowed; }
.bp3-dark .bp3-control.bp3-checkbox input:disabled:checked ~ .bp3-control-indicator, .bp3-dark .bp3-control.bp3-checkbox input:disabled:indeterminate ~ .bp3-control-indicator{
color:rgba(167, 182, 194, 0.6); }
.bp3-file-input{
cursor:pointer;
display:inline-block;
height:30px;
position:relative; }
.bp3-file-input input{
margin:0;
min-width:200px;
opacity:0; }
.bp3-file-input input:disabled + .bp3-file-upload-input,
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input{
background:rgba(206, 217, 224, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
resize:none; }
.bp3-file-input input:disabled + .bp3-file-upload-input::after,
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after{
background-color:rgba(206, 217, 224, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
outline:none; }
.bp3-file-input input:disabled + .bp3-file-upload-input::after.bp3-active, .bp3-file-input input:disabled + .bp3-file-upload-input::after.bp3-active:hover,
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after.bp3-active,
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after.bp3-active:hover{
background:rgba(206, 217, 224, 0.7); }
.bp3-dark .bp3-file-input input:disabled + .bp3-file-upload-input, .bp3-dark
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input{
background:rgba(57, 75, 89, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-input input:disabled + .bp3-file-upload-input::after, .bp3-dark
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after{
background-color:rgba(57, 75, 89, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-input input:disabled + .bp3-file-upload-input::after.bp3-active, .bp3-dark
.bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after.bp3-active{
background:rgba(57, 75, 89, 0.7); }
.bp3-file-input.bp3-file-input-has-selection .bp3-file-upload-input{
color:#182026; }
.bp3-dark .bp3-file-input.bp3-file-input-has-selection .bp3-file-upload-input{
color:#f5f8fa; }
.bp3-file-input.bp3-fill{
width:100%; }
.bp3-file-input.bp3-large,
.bp3-large .bp3-file-input{
height:40px; }
.bp3-file-input .bp3-file-upload-input-custom-text::after{
content:attr(bp3-button-text); }
.bp3-file-upload-input{
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
background:#ffffff;
border:none;
border-radius:3px;
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
color:#182026;
font-size:14px;
font-weight:400;
height:30px;
line-height:30px;
outline:none;
padding:0 10px;
-webkit-transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
vertical-align:middle;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
color:rgba(92, 112, 128, 0.6);
left:0;
padding-right:80px;
position:absolute;
right:0;
top:0;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none; }
.bp3-file-upload-input::-webkit-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-file-upload-input::-moz-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-file-upload-input:-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-file-upload-input::-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-file-upload-input::placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-file-upload-input:focus, .bp3-file-upload-input.bp3-active{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-file-upload-input[type="search"], .bp3-file-upload-input.bp3-round{
border-radius:30px;
-webkit-box-sizing:border-box;
box-sizing:border-box;
padding-left:10px; }
.bp3-file-upload-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15); }
.bp3-file-upload-input:disabled, .bp3-file-upload-input.bp3-disabled{
background:rgba(206, 217, 224, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
resize:none; }
.bp3-file-upload-input::after{
background-color:#f5f8fa;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
color:#182026;
min-height:24px;
min-width:24px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
border-radius:3px;
content:"Browse";
line-height:24px;
margin:3px;
position:absolute;
right:0;
text-align:center;
top:0;
width:70px; }
.bp3-file-upload-input::after:hover{
background-clip:padding-box;
background-color:#ebf1f5;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
.bp3-file-upload-input::after:active, .bp3-file-upload-input::after.bp3-active{
background-color:#d8e1e8;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-file-upload-input::after:disabled, .bp3-file-upload-input::after.bp3-disabled{
background-color:rgba(206, 217, 224, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
outline:none; }
.bp3-file-upload-input::after:disabled.bp3-active, .bp3-file-upload-input::after:disabled.bp3-active:hover, .bp3-file-upload-input::after.bp3-disabled.bp3-active, .bp3-file-upload-input::after.bp3-disabled.bp3-active:hover{
background:rgba(206, 217, 224, 0.7); }
.bp3-file-upload-input:hover::after{
background-clip:padding-box;
background-color:#ebf1f5;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
.bp3-file-upload-input:active::after{
background-color:#d8e1e8;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-large .bp3-file-upload-input{
font-size:16px;
height:40px;
line-height:40px;
padding-right:95px; }
.bp3-large .bp3-file-upload-input[type="search"], .bp3-large .bp3-file-upload-input.bp3-round{
padding:0 15px; }
.bp3-large .bp3-file-upload-input::after{
min-height:30px;
min-width:30px;
line-height:30px;
margin:5px;
width:85px; }
.bp3-dark .bp3-file-upload-input{
background:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input::-webkit-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input::-moz-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input:-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input::-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input::placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input:focus{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-file-upload-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-file-upload-input:disabled, .bp3-dark .bp3-file-upload-input.bp3-disabled{
background:rgba(57, 75, 89, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input::after{
background-color:#394b59;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dark .bp3-file-upload-input::after:hover, .bp3-dark .bp3-file-upload-input::after:active, .bp3-dark .bp3-file-upload-input::after.bp3-active{
color:#f5f8fa; }
.bp3-dark .bp3-file-upload-input::after:hover{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-file-upload-input::after:active, .bp3-dark .bp3-file-upload-input::after.bp3-active{
background-color:#202b33;
background-image:none;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-file-upload-input::after:disabled, .bp3-dark .bp3-file-upload-input::after.bp3-disabled{
background-color:rgba(57, 75, 89, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-file-upload-input::after:disabled.bp3-active, .bp3-dark .bp3-file-upload-input::after.bp3-disabled.bp3-active{
background:rgba(57, 75, 89, 0.7); }
.bp3-dark .bp3-file-upload-input::after .bp3-button-spinner .bp3-spinner-head{
background:rgba(16, 22, 26, 0.5);
stroke:#8a9ba8; }
.bp3-dark .bp3-file-upload-input:hover::after{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-file-upload-input:active::after{
background-color:#202b33;
background-image:none;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-file-upload-input::after{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
.bp3-form-group{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
margin:0 0 15px; }
.bp3-form-group label.bp3-label{
margin-bottom:5px; }
.bp3-form-group .bp3-control{
margin-top:7px; }
.bp3-form-group .bp3-form-helper-text{
color:#5c7080;
font-size:12px;
margin-top:5px; }
.bp3-form-group.bp3-intent-primary .bp3-form-helper-text{
color:#106ba3; }
.bp3-form-group.bp3-intent-success .bp3-form-helper-text{
color:#0d8050; }
.bp3-form-group.bp3-intent-warning .bp3-form-helper-text{
color:#bf7326; }
.bp3-form-group.bp3-intent-danger .bp3-form-helper-text{
color:#c23030; }
.bp3-form-group.bp3-inline{
-webkit-box-align:start;
-ms-flex-align:start;
align-items:flex-start;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row; }
.bp3-form-group.bp3-inline.bp3-large label.bp3-label{
line-height:40px;
margin:0 10px 0 0; }
.bp3-form-group.bp3-inline label.bp3-label{
line-height:30px;
margin:0 10px 0 0; }
.bp3-form-group.bp3-disabled .bp3-label,
.bp3-form-group.bp3-disabled .bp3-text-muted,
.bp3-form-group.bp3-disabled .bp3-form-helper-text{
color:rgba(92, 112, 128, 0.6) !important; }
.bp3-dark .bp3-form-group.bp3-intent-primary .bp3-form-helper-text{
color:#48aff0; }
.bp3-dark .bp3-form-group.bp3-intent-success .bp3-form-helper-text{
color:#3dcc91; }
.bp3-dark .bp3-form-group.bp3-intent-warning .bp3-form-helper-text{
color:#ffb366; }
.bp3-dark .bp3-form-group.bp3-intent-danger .bp3-form-helper-text{
color:#ff7373; }
.bp3-dark .bp3-form-group .bp3-form-helper-text{
color:#a7b6c2; }
.bp3-dark .bp3-form-group.bp3-disabled .bp3-label,
.bp3-dark .bp3-form-group.bp3-disabled .bp3-text-muted,
.bp3-dark .bp3-form-group.bp3-disabled .bp3-form-helper-text{
color:rgba(167, 182, 194, 0.6) !important; }
.bp3-input-group{
display:block;
position:relative; }
.bp3-input-group .bp3-input{
position:relative;
width:100%; }
.bp3-input-group .bp3-input:not(:first-child){
padding-left:30px; }
.bp3-input-group .bp3-input:not(:last-child){
padding-right:30px; }
.bp3-input-group .bp3-input-action,
.bp3-input-group > .bp3-input-left-container,
.bp3-input-group > .bp3-button,
.bp3-input-group > .bp3-icon{
position:absolute;
top:0; }
.bp3-input-group .bp3-input-action:first-child,
.bp3-input-group > .bp3-input-left-container:first-child,
.bp3-input-group > .bp3-button:first-child,
.bp3-input-group > .bp3-icon:first-child{
left:0; }
.bp3-input-group .bp3-input-action:last-child,
.bp3-input-group > .bp3-input-left-container:last-child,
.bp3-input-group > .bp3-button:last-child,
.bp3-input-group > .bp3-icon:last-child{
right:0; }
.bp3-input-group .bp3-button{
min-height:24px;
min-width:24px;
margin:3px;
padding:0 7px; }
.bp3-input-group .bp3-button:empty{
padding:0; }
.bp3-input-group > .bp3-input-left-container,
.bp3-input-group > .bp3-icon{
z-index:1; }
.bp3-input-group > .bp3-input-left-container > .bp3-icon,
.bp3-input-group > .bp3-icon{
color:#5c7080; }
.bp3-input-group > .bp3-input-left-container > .bp3-icon:empty,
.bp3-input-group > .bp3-icon:empty{
font-family:"Icons16", sans-serif;
font-size:16px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased; }
.bp3-input-group > .bp3-input-left-container > .bp3-icon,
.bp3-input-group > .bp3-icon,
.bp3-input-group .bp3-input-action > .bp3-spinner{
margin:7px; }
.bp3-input-group .bp3-tag{
margin:5px; }
.bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus),
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus){
color:#5c7080; }
.bp3-dark .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus), .bp3-dark
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus){
color:#a7b6c2; }
.bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-standard, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-large,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-standard,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-large{
color:#5c7080; }
.bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled{
color:rgba(92, 112, 128, 0.6) !important; }
.bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled .bp3-icon, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled .bp3-icon-standard, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled .bp3-icon-large,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled .bp3-icon,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled .bp3-icon-standard,
.bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled .bp3-icon-large{
color:rgba(92, 112, 128, 0.6) !important; }
.bp3-input-group.bp3-disabled{
cursor:not-allowed; }
.bp3-input-group.bp3-disabled .bp3-icon{
color:rgba(92, 112, 128, 0.6); }
.bp3-input-group.bp3-large .bp3-button{
min-height:30px;
min-width:30px;
margin:5px; }
.bp3-input-group.bp3-large > .bp3-input-left-container > .bp3-icon,
.bp3-input-group.bp3-large > .bp3-icon,
.bp3-input-group.bp3-large .bp3-input-action > .bp3-spinner{
margin:12px; }
.bp3-input-group.bp3-large .bp3-input{
font-size:16px;
height:40px;
line-height:40px; }
.bp3-input-group.bp3-large .bp3-input[type="search"], .bp3-input-group.bp3-large .bp3-input.bp3-round{
padding:0 15px; }
.bp3-input-group.bp3-large .bp3-input:not(:first-child){
padding-left:40px; }
.bp3-input-group.bp3-large .bp3-input:not(:last-child){
padding-right:40px; }
.bp3-input-group.bp3-small .bp3-button{
min-height:20px;
min-width:20px;
margin:2px; }
.bp3-input-group.bp3-small .bp3-tag{
min-height:20px;
min-width:20px;
margin:2px; }
.bp3-input-group.bp3-small > .bp3-input-left-container > .bp3-icon,
.bp3-input-group.bp3-small > .bp3-icon,
.bp3-input-group.bp3-small .bp3-input-action > .bp3-spinner{
margin:4px; }
.bp3-input-group.bp3-small .bp3-input{
font-size:12px;
height:24px;
line-height:24px;
padding-left:8px;
padding-right:8px; }
.bp3-input-group.bp3-small .bp3-input[type="search"], .bp3-input-group.bp3-small .bp3-input.bp3-round{
padding:0 12px; }
.bp3-input-group.bp3-small .bp3-input:not(:first-child){
padding-left:24px; }
.bp3-input-group.bp3-small .bp3-input:not(:last-child){
padding-right:24px; }
.bp3-input-group.bp3-fill{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
width:100%; }
.bp3-input-group.bp3-round .bp3-button,
.bp3-input-group.bp3-round .bp3-input,
.bp3-input-group.bp3-round .bp3-tag{
border-radius:30px; }
.bp3-dark .bp3-input-group .bp3-icon{
color:#a7b6c2; }
.bp3-dark .bp3-input-group.bp3-disabled .bp3-icon{
color:rgba(167, 182, 194, 0.6); }
.bp3-input-group.bp3-intent-primary .bp3-input{
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-primary .bp3-input:focus{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-primary .bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #137cbd;
box-shadow:inset 0 0 0 1px #137cbd; }
.bp3-input-group.bp3-intent-primary .bp3-input:disabled, .bp3-input-group.bp3-intent-primary .bp3-input.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input-group.bp3-intent-primary > .bp3-icon{
color:#106ba3; }
.bp3-dark .bp3-input-group.bp3-intent-primary > .bp3-icon{
color:#48aff0; }
.bp3-input-group.bp3-intent-success .bp3-input{
-webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-success .bp3-input:focus{
-webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-success .bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #0f9960;
box-shadow:inset 0 0 0 1px #0f9960; }
.bp3-input-group.bp3-intent-success .bp3-input:disabled, .bp3-input-group.bp3-intent-success .bp3-input.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input-group.bp3-intent-success > .bp3-icon{
color:#0d8050; }
.bp3-dark .bp3-input-group.bp3-intent-success > .bp3-icon{
color:#3dcc91; }
.bp3-input-group.bp3-intent-warning .bp3-input{
-webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-warning .bp3-input:focus{
-webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-warning .bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #d9822b;
box-shadow:inset 0 0 0 1px #d9822b; }
.bp3-input-group.bp3-intent-warning .bp3-input:disabled, .bp3-input-group.bp3-intent-warning .bp3-input.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input-group.bp3-intent-warning > .bp3-icon{
color:#bf7326; }
.bp3-dark .bp3-input-group.bp3-intent-warning > .bp3-icon{
color:#ffb366; }
.bp3-input-group.bp3-intent-danger .bp3-input{
-webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-danger .bp3-input:focus{
-webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input-group.bp3-intent-danger .bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #db3737;
box-shadow:inset 0 0 0 1px #db3737; }
.bp3-input-group.bp3-intent-danger .bp3-input:disabled, .bp3-input-group.bp3-intent-danger .bp3-input.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input-group.bp3-intent-danger > .bp3-icon{
color:#c23030; }
.bp3-dark .bp3-input-group.bp3-intent-danger > .bp3-icon{
color:#ff7373; }
.bp3-input{
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
background:#ffffff;
border:none;
border-radius:3px;
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
color:#182026;
font-size:14px;
font-weight:400;
height:30px;
line-height:30px;
outline:none;
padding:0 10px;
-webkit-transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
vertical-align:middle; }
.bp3-input::-webkit-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input::-moz-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input:-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input::-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input::placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input:focus, .bp3-input.bp3-active{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input[type="search"], .bp3-input.bp3-round{
border-radius:30px;
-webkit-box-sizing:border-box;
box-sizing:border-box;
padding-left:10px; }
.bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15); }
.bp3-input:disabled, .bp3-input.bp3-disabled{
background:rgba(206, 217, 224, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
resize:none; }
.bp3-input.bp3-large{
font-size:16px;
height:40px;
line-height:40px; }
.bp3-input.bp3-large[type="search"], .bp3-input.bp3-large.bp3-round{
padding:0 15px; }
.bp3-input.bp3-small{
font-size:12px;
height:24px;
line-height:24px;
padding-left:8px;
padding-right:8px; }
.bp3-input.bp3-small[type="search"], .bp3-input.bp3-small.bp3-round{
padding:0 12px; }
.bp3-input.bp3-fill{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
width:100%; }
.bp3-dark .bp3-input{
background:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dark .bp3-input::-webkit-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-input::-moz-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-input:-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-input::-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-input::placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-input:focus{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input:disabled, .bp3-dark .bp3-input.bp3-disabled{
background:rgba(57, 75, 89, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-input.bp3-intent-primary{
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-primary:focus{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-primary[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #137cbd;
box-shadow:inset 0 0 0 1px #137cbd; }
.bp3-input.bp3-intent-primary:disabled, .bp3-input.bp3-intent-primary.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-input.bp3-intent-primary{
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-primary:focus{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-primary[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #137cbd;
box-shadow:inset 0 0 0 1px #137cbd; }
.bp3-dark .bp3-input.bp3-intent-primary:disabled, .bp3-dark .bp3-input.bp3-intent-primary.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input.bp3-intent-success{
-webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-success:focus{
-webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-success[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #0f9960;
box-shadow:inset 0 0 0 1px #0f9960; }
.bp3-input.bp3-intent-success:disabled, .bp3-input.bp3-intent-success.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-input.bp3-intent-success{
-webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-success:focus{
-webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #0f9960, 0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-success[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #0f9960;
box-shadow:inset 0 0 0 1px #0f9960; }
.bp3-dark .bp3-input.bp3-intent-success:disabled, .bp3-dark .bp3-input.bp3-intent-success.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input.bp3-intent-warning{
-webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-warning:focus{
-webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-warning[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #d9822b;
box-shadow:inset 0 0 0 1px #d9822b; }
.bp3-input.bp3-intent-warning:disabled, .bp3-input.bp3-intent-warning.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-input.bp3-intent-warning{
-webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-warning:focus{
-webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #d9822b, 0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-warning[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #d9822b;
box-shadow:inset 0 0 0 1px #d9822b; }
.bp3-dark .bp3-input.bp3-intent-warning:disabled, .bp3-dark .bp3-input.bp3-intent-warning.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input.bp3-intent-danger{
-webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-danger:focus{
-webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-input.bp3-intent-danger[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #db3737;
box-shadow:inset 0 0 0 1px #db3737; }
.bp3-input.bp3-intent-danger:disabled, .bp3-input.bp3-intent-danger.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-input.bp3-intent-danger{
-webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-danger:focus{
-webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #db3737, 0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-input.bp3-intent-danger[readonly]{
-webkit-box-shadow:inset 0 0 0 1px #db3737;
box-shadow:inset 0 0 0 1px #db3737; }
.bp3-dark .bp3-input.bp3-intent-danger:disabled, .bp3-dark .bp3-input.bp3-intent-danger.bp3-disabled{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-input::-ms-clear{
display:none; }
textarea.bp3-input{
max-width:100%;
padding:10px; }
textarea.bp3-input, textarea.bp3-input.bp3-large, textarea.bp3-input.bp3-small{
height:auto;
line-height:inherit; }
textarea.bp3-input.bp3-small{
padding:8px; }
.bp3-dark textarea.bp3-input{
background:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dark textarea.bp3-input::-webkit-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark textarea.bp3-input::-moz-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark textarea.bp3-input:-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark textarea.bp3-input::-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark textarea.bp3-input::placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark textarea.bp3-input:focus{
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark textarea.bp3-input[readonly]{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark textarea.bp3-input:disabled, .bp3-dark textarea.bp3-input.bp3-disabled{
background:rgba(57, 75, 89, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
label.bp3-label{
display:block;
margin-bottom:15px;
margin-top:0; }
label.bp3-label .bp3-html-select,
label.bp3-label .bp3-input,
label.bp3-label .bp3-select,
label.bp3-label .bp3-slider,
label.bp3-label .bp3-popover-wrapper{
display:block;
margin-top:5px;
text-transform:none; }
label.bp3-label .bp3-button-group{
margin-top:5px; }
label.bp3-label .bp3-select select,
label.bp3-label .bp3-html-select select{
font-weight:400;
vertical-align:top;
width:100%; }
label.bp3-label.bp3-disabled,
label.bp3-label.bp3-disabled .bp3-text-muted{
color:rgba(92, 112, 128, 0.6); }
label.bp3-label.bp3-inline{
line-height:30px; }
label.bp3-label.bp3-inline .bp3-html-select,
label.bp3-label.bp3-inline .bp3-input,
label.bp3-label.bp3-inline .bp3-input-group,
label.bp3-label.bp3-inline .bp3-select,
label.bp3-label.bp3-inline .bp3-popover-wrapper{
display:inline-block;
margin:0 0 0 5px;
vertical-align:top; }
label.bp3-label.bp3-inline .bp3-button-group{
margin:0 0 0 5px; }
label.bp3-label.bp3-inline .bp3-input-group .bp3-input{
margin-left:0; }
label.bp3-label.bp3-inline.bp3-large{
line-height:40px; }
label.bp3-label:not(.bp3-inline) .bp3-popover-target{
display:block; }
.bp3-dark label.bp3-label{
color:#f5f8fa; }
.bp3-dark label.bp3-label.bp3-disabled,
.bp3-dark label.bp3-label.bp3-disabled .bp3-text-muted{
color:rgba(167, 182, 194, 0.6); }
.bp3-numeric-input .bp3-button-group.bp3-vertical > .bp3-button{
-webkit-box-flex:1;
-ms-flex:1 1 14px;
flex:1 1 14px;
min-height:0;
padding:0;
width:30px; }
.bp3-numeric-input .bp3-button-group.bp3-vertical > .bp3-button:first-child{
border-radius:0 3px 0 0; }
.bp3-numeric-input .bp3-button-group.bp3-vertical > .bp3-button:last-child{
border-radius:0 0 3px 0; }
.bp3-numeric-input .bp3-button-group.bp3-vertical:first-child > .bp3-button:first-child{
border-radius:3px 0 0 0; }
.bp3-numeric-input .bp3-button-group.bp3-vertical:first-child > .bp3-button:last-child{
border-radius:0 0 0 3px; }
.bp3-numeric-input.bp3-large .bp3-button-group.bp3-vertical > .bp3-button{
width:40px; }
form{
display:block; }
.bp3-html-select select,
.bp3-select select{
display:-webkit-inline-box;
display:-ms-inline-flexbox;
display:inline-flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
border:none;
border-radius:3px;
cursor:pointer;
font-size:14px;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
padding:5px 10px;
text-align:left;
vertical-align:middle;
background-color:#f5f8fa;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
color:#182026;
-moz-appearance:none;
-webkit-appearance:none;
border-radius:3px;
height:30px;
padding:0 25px 0 10px;
width:100%; }
.bp3-html-select select > *, .bp3-select select > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-html-select select > .bp3-fill, .bp3-select select > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-html-select select::before,
.bp3-select select::before, .bp3-html-select select > *, .bp3-select select > *{
margin-right:7px; }
.bp3-html-select select:empty::before,
.bp3-select select:empty::before,
.bp3-html-select select > :last-child,
.bp3-select select > :last-child{
margin-right:0; }
.bp3-html-select select:hover,
.bp3-select select:hover{
background-clip:padding-box;
background-color:#ebf1f5;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
.bp3-html-select select:active,
.bp3-select select:active, .bp3-html-select select.bp3-active,
.bp3-select select.bp3-active{
background-color:#d8e1e8;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-html-select select:disabled,
.bp3-select select:disabled, .bp3-html-select select.bp3-disabled,
.bp3-select select.bp3-disabled{
background-color:rgba(206, 217, 224, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
outline:none; }
.bp3-html-select select:disabled.bp3-active,
.bp3-select select:disabled.bp3-active, .bp3-html-select select:disabled.bp3-active:hover,
.bp3-select select:disabled.bp3-active:hover, .bp3-html-select select.bp3-disabled.bp3-active,
.bp3-select select.bp3-disabled.bp3-active, .bp3-html-select select.bp3-disabled.bp3-active:hover,
.bp3-select select.bp3-disabled.bp3-active:hover{
background:rgba(206, 217, 224, 0.7); }
.bp3-html-select.bp3-minimal select,
.bp3-select.bp3-minimal select{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-html-select.bp3-minimal select:hover,
.bp3-select.bp3-minimal select:hover{
background:rgba(167, 182, 194, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026;
text-decoration:none; }
.bp3-html-select.bp3-minimal select:active,
.bp3-select.bp3-minimal select:active, .bp3-html-select.bp3-minimal select.bp3-active,
.bp3-select.bp3-minimal select.bp3-active{
background:rgba(115, 134, 148, 0.3);
-webkit-box-shadow:none;
box-shadow:none;
color:#182026; }
.bp3-html-select.bp3-minimal select:disabled,
.bp3-select.bp3-minimal select:disabled, .bp3-html-select.bp3-minimal select:disabled:hover,
.bp3-select.bp3-minimal select:disabled:hover, .bp3-html-select.bp3-minimal select.bp3-disabled,
.bp3-select.bp3-minimal select.bp3-disabled, .bp3-html-select.bp3-minimal select.bp3-disabled:hover,
.bp3-select.bp3-minimal select.bp3-disabled:hover{
background:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-html-select.bp3-minimal select:disabled.bp3-active,
.bp3-select.bp3-minimal select:disabled.bp3-active, .bp3-html-select.bp3-minimal select:disabled:hover.bp3-active,
.bp3-select.bp3-minimal select:disabled:hover.bp3-active, .bp3-html-select.bp3-minimal select.bp3-disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-disabled:hover.bp3-active,
.bp3-select.bp3-minimal select.bp3-disabled:hover.bp3-active{
background:rgba(115, 134, 148, 0.3); }
.bp3-dark .bp3-html-select.bp3-minimal select, .bp3-html-select.bp3-minimal .bp3-dark select,
.bp3-dark .bp3-select.bp3-minimal select, .bp3-select.bp3-minimal .bp3-dark select{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:inherit; }
.bp3-dark .bp3-html-select.bp3-minimal select:hover, .bp3-html-select.bp3-minimal .bp3-dark select:hover,
.bp3-dark .bp3-select.bp3-minimal select:hover, .bp3-select.bp3-minimal .bp3-dark select:hover, .bp3-dark .bp3-html-select.bp3-minimal select:active, .bp3-html-select.bp3-minimal .bp3-dark select:active,
.bp3-dark .bp3-select.bp3-minimal select:active, .bp3-select.bp3-minimal .bp3-dark select:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-html-select.bp3-minimal select:hover, .bp3-html-select.bp3-minimal .bp3-dark select:hover,
.bp3-dark .bp3-select.bp3-minimal select:hover, .bp3-select.bp3-minimal .bp3-dark select:hover{
background:rgba(138, 155, 168, 0.15); }
.bp3-dark .bp3-html-select.bp3-minimal select:active, .bp3-html-select.bp3-minimal .bp3-dark select:active,
.bp3-dark .bp3-select.bp3-minimal select:active, .bp3-select.bp3-minimal .bp3-dark select:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-active{
background:rgba(138, 155, 168, 0.3);
color:#f5f8fa; }
.bp3-dark .bp3-html-select.bp3-minimal select:disabled, .bp3-html-select.bp3-minimal .bp3-dark select:disabled,
.bp3-dark .bp3-select.bp3-minimal select:disabled, .bp3-select.bp3-minimal .bp3-dark select:disabled, .bp3-dark .bp3-html-select.bp3-minimal select:disabled:hover, .bp3-html-select.bp3-minimal .bp3-dark select:disabled:hover,
.bp3-dark .bp3-select.bp3-minimal select:disabled:hover, .bp3-select.bp3-minimal .bp3-dark select:disabled:hover, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled:hover,
.bp3-dark .bp3-select.bp3-minimal select.bp3-disabled:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled:hover{
background:none;
color:rgba(167, 182, 194, 0.6);
cursor:not-allowed; }
.bp3-dark .bp3-html-select.bp3-minimal select:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select:disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select:disabled:hover.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select:disabled:hover.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select:disabled:hover.bp3-active, .bp3-select.bp3-minimal .bp3-dark select:disabled:hover.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled:hover.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled:hover.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-disabled:hover.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled:hover.bp3-active{
background:rgba(138, 155, 168, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-primary,
.bp3-select.bp3-minimal select.bp3-intent-primary{
color:#106ba3; }
.bp3-html-select.bp3-minimal select.bp3-intent-primary:hover,
.bp3-select.bp3-minimal select.bp3-intent-primary:hover, .bp3-html-select.bp3-minimal select.bp3-intent-primary:active,
.bp3-select.bp3-minimal select.bp3-intent-primary:active, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-primary.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#106ba3; }
.bp3-html-select.bp3-minimal select.bp3-intent-primary:hover,
.bp3-select.bp3-minimal select.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.15);
color:#106ba3; }
.bp3-html-select.bp3-minimal select.bp3-intent-primary:active,
.bp3-select.bp3-minimal select.bp3-intent-primary:active, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#106ba3; }
.bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled,
.bp3-select.bp3-minimal select.bp3-intent-primary:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled,
.bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(16, 107, 163, 0.5); }
.bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
stroke:#106ba3; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary{
color:#48aff0; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:hover,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:hover{
background:rgba(19, 124, 189, 0.2);
color:#48aff0; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-active{
background:rgba(19, 124, 189, 0.3);
color:#48aff0; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled{
background:none;
color:rgba(72, 175, 240, 0.5); }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled.bp3-active{
background:rgba(19, 124, 189, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-success,
.bp3-select.bp3-minimal select.bp3-intent-success{
color:#0d8050; }
.bp3-html-select.bp3-minimal select.bp3-intent-success:hover,
.bp3-select.bp3-minimal select.bp3-intent-success:hover, .bp3-html-select.bp3-minimal select.bp3-intent-success:active,
.bp3-select.bp3-minimal select.bp3-intent-success:active, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-success.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#0d8050; }
.bp3-html-select.bp3-minimal select.bp3-intent-success:hover,
.bp3-select.bp3-minimal select.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.15);
color:#0d8050; }
.bp3-html-select.bp3-minimal select.bp3-intent-success:active,
.bp3-select.bp3-minimal select.bp3-intent-success:active, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#0d8050; }
.bp3-html-select.bp3-minimal select.bp3-intent-success:disabled,
.bp3-select.bp3-minimal select.bp3-intent-success:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled,
.bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(13, 128, 80, 0.5); }
.bp3-html-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-success .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
stroke:#0d8050; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success{
color:#3dcc91; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:hover,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:hover{
background:rgba(15, 153, 96, 0.2);
color:#3dcc91; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-active{
background:rgba(15, 153, 96, 0.3);
color:#3dcc91; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled{
background:none;
color:rgba(61, 204, 145, 0.5); }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled.bp3-active{
background:rgba(15, 153, 96, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-warning,
.bp3-select.bp3-minimal select.bp3-intent-warning{
color:#bf7326; }
.bp3-html-select.bp3-minimal select.bp3-intent-warning:hover,
.bp3-select.bp3-minimal select.bp3-intent-warning:hover, .bp3-html-select.bp3-minimal select.bp3-intent-warning:active,
.bp3-select.bp3-minimal select.bp3-intent-warning:active, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-warning.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#bf7326; }
.bp3-html-select.bp3-minimal select.bp3-intent-warning:hover,
.bp3-select.bp3-minimal select.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.15);
color:#bf7326; }
.bp3-html-select.bp3-minimal select.bp3-intent-warning:active,
.bp3-select.bp3-minimal select.bp3-intent-warning:active, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#bf7326; }
.bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled,
.bp3-select.bp3-minimal select.bp3-intent-warning:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled,
.bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(191, 115, 38, 0.5); }
.bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
stroke:#bf7326; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning{
color:#ffb366; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:hover,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:hover{
background:rgba(217, 130, 43, 0.2);
color:#ffb366; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-active{
background:rgba(217, 130, 43, 0.3);
color:#ffb366; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled{
background:none;
color:rgba(255, 179, 102, 0.5); }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled.bp3-active{
background:rgba(217, 130, 43, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-danger,
.bp3-select.bp3-minimal select.bp3-intent-danger{
color:#c23030; }
.bp3-html-select.bp3-minimal select.bp3-intent-danger:hover,
.bp3-select.bp3-minimal select.bp3-intent-danger:hover, .bp3-html-select.bp3-minimal select.bp3-intent-danger:active,
.bp3-select.bp3-minimal select.bp3-intent-danger:active, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-danger.bp3-active{
background:none;
-webkit-box-shadow:none;
box-shadow:none;
color:#c23030; }
.bp3-html-select.bp3-minimal select.bp3-intent-danger:hover,
.bp3-select.bp3-minimal select.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.15);
color:#c23030; }
.bp3-html-select.bp3-minimal select.bp3-intent-danger:active,
.bp3-select.bp3-minimal select.bp3-intent-danger:active, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#c23030; }
.bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled,
.bp3-select.bp3-minimal select.bp3-intent-danger:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled,
.bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(194, 48, 48, 0.5); }
.bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active,
.bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-html-select.bp3-minimal select.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
stroke:#c23030; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger{
color:#ff7373; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:hover,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:hover{
background:rgba(219, 55, 55, 0.2);
color:#ff7373; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-active{
background:rgba(219, 55, 55, 0.3);
color:#ff7373; }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled{
background:none;
color:rgba(255, 115, 115, 0.5); }
.bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled.bp3-active,
.bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled.bp3-active{
background:rgba(219, 55, 55, 0.3); }
.bp3-html-select.bp3-large select,
.bp3-select.bp3-large select{
font-size:16px;
height:40px;
padding-right:35px; }
.bp3-dark .bp3-html-select select, .bp3-dark .bp3-select select{
background-color:#394b59;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dark .bp3-html-select select:hover, .bp3-dark .bp3-select select:hover, .bp3-dark .bp3-html-select select:active, .bp3-dark .bp3-select select:active, .bp3-dark .bp3-html-select select.bp3-active, .bp3-dark .bp3-select select.bp3-active{
color:#f5f8fa; }
.bp3-dark .bp3-html-select select:hover, .bp3-dark .bp3-select select:hover{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-html-select select:active, .bp3-dark .bp3-select select:active, .bp3-dark .bp3-html-select select.bp3-active, .bp3-dark .bp3-select select.bp3-active{
background-color:#202b33;
background-image:none;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-html-select select:disabled, .bp3-dark .bp3-select select:disabled, .bp3-dark .bp3-html-select select.bp3-disabled, .bp3-dark .bp3-select select.bp3-disabled{
background-color:rgba(57, 75, 89, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-html-select select:disabled.bp3-active, .bp3-dark .bp3-select select:disabled.bp3-active, .bp3-dark .bp3-html-select select.bp3-disabled.bp3-active, .bp3-dark .bp3-select select.bp3-disabled.bp3-active{
background:rgba(57, 75, 89, 0.7); }
.bp3-dark .bp3-html-select select .bp3-button-spinner .bp3-spinner-head, .bp3-dark .bp3-select select .bp3-button-spinner .bp3-spinner-head{
background:rgba(16, 22, 26, 0.5);
stroke:#8a9ba8; }
.bp3-html-select select:disabled,
.bp3-select select:disabled{
background-color:rgba(206, 217, 224, 0.5);
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-html-select .bp3-icon,
.bp3-select .bp3-icon, .bp3-select::after{
color:#5c7080;
pointer-events:none;
position:absolute;
right:7px;
top:7px; }
.bp3-html-select .bp3-disabled.bp3-icon,
.bp3-select .bp3-disabled.bp3-icon, .bp3-disabled.bp3-select::after{
color:rgba(92, 112, 128, 0.6); }
.bp3-html-select,
.bp3-select{
display:inline-block;
letter-spacing:normal;
position:relative;
vertical-align:middle; }
.bp3-html-select select::-ms-expand,
.bp3-select select::-ms-expand{
display:none; }
.bp3-html-select .bp3-icon,
.bp3-select .bp3-icon{
color:#5c7080; }
.bp3-html-select .bp3-icon:hover,
.bp3-select .bp3-icon:hover{
color:#182026; }
.bp3-dark .bp3-html-select .bp3-icon, .bp3-dark
.bp3-select .bp3-icon{
color:#a7b6c2; }
.bp3-dark .bp3-html-select .bp3-icon:hover, .bp3-dark
.bp3-select .bp3-icon:hover{
color:#f5f8fa; }
.bp3-html-select.bp3-large::after,
.bp3-html-select.bp3-large .bp3-icon,
.bp3-select.bp3-large::after,
.bp3-select.bp3-large .bp3-icon{
right:12px;
top:12px; }
.bp3-html-select.bp3-fill,
.bp3-html-select.bp3-fill select,
.bp3-select.bp3-fill,
.bp3-select.bp3-fill select{
width:100%; }
.bp3-dark .bp3-html-select option, .bp3-dark
.bp3-select option{
background-color:#30404d;
color:#f5f8fa; }
.bp3-dark .bp3-html-select option:disabled, .bp3-dark
.bp3-select option:disabled{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-html-select::after, .bp3-dark
.bp3-select::after{
color:#a7b6c2; }
.bp3-select::after{
font-family:"Icons16", sans-serif;
font-size:16px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
content:""; }
.bp3-running-text table, table.bp3-html-table{
border-spacing:0;
font-size:14px; }
.bp3-running-text table th, table.bp3-html-table th,
.bp3-running-text table td,
table.bp3-html-table td{
padding:11px;
text-align:left;
vertical-align:top; }
.bp3-running-text table th, table.bp3-html-table th{
color:#182026;
font-weight:600; }
.bp3-running-text table td,
table.bp3-html-table td{
color:#182026; }
.bp3-running-text table tbody tr:first-child th, table.bp3-html-table tbody tr:first-child th,
.bp3-running-text table tbody tr:first-child td,
table.bp3-html-table tbody tr:first-child td,
.bp3-running-text table tfoot tr:first-child th,
table.bp3-html-table tfoot tr:first-child th,
.bp3-running-text table tfoot tr:first-child td,
table.bp3-html-table tfoot tr:first-child td{
-webkit-box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15); }
.bp3-dark .bp3-running-text table th, .bp3-running-text .bp3-dark table th, .bp3-dark table.bp3-html-table th{
color:#f5f8fa; }
.bp3-dark .bp3-running-text table td, .bp3-running-text .bp3-dark table td, .bp3-dark table.bp3-html-table td{
color:#f5f8fa; }
.bp3-dark .bp3-running-text table tbody tr:first-child th, .bp3-running-text .bp3-dark table tbody tr:first-child th, .bp3-dark table.bp3-html-table tbody tr:first-child th,
.bp3-dark .bp3-running-text table tbody tr:first-child td,
.bp3-running-text .bp3-dark table tbody tr:first-child td,
.bp3-dark table.bp3-html-table tbody tr:first-child td,
.bp3-dark .bp3-running-text table tfoot tr:first-child th,
.bp3-running-text .bp3-dark table tfoot tr:first-child th,
.bp3-dark table.bp3-html-table tfoot tr:first-child th,
.bp3-dark .bp3-running-text table tfoot tr:first-child td,
.bp3-running-text .bp3-dark table tfoot tr:first-child td,
.bp3-dark table.bp3-html-table tfoot tr:first-child td{
-webkit-box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15);
box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15); }
table.bp3-html-table.bp3-html-table-condensed th,
table.bp3-html-table.bp3-html-table-condensed td, table.bp3-html-table.bp3-small th,
table.bp3-html-table.bp3-small td{
padding-bottom:6px;
padding-top:6px; }
table.bp3-html-table.bp3-html-table-striped tbody tr:nth-child(odd) td{
background:rgba(191, 204, 214, 0.15); }
table.bp3-html-table.bp3-html-table-bordered th:not(:first-child){
-webkit-box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15); }
table.bp3-html-table.bp3-html-table-bordered tbody tr td,
table.bp3-html-table.bp3-html-table-bordered tfoot tr td{
-webkit-box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15); }
table.bp3-html-table.bp3-html-table-bordered tbody tr td:not(:first-child),
table.bp3-html-table.bp3-html-table-bordered tfoot tr td:not(:first-child){
-webkit-box-shadow:inset 1px 1px 0 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 1px 1px 0 0 rgba(16, 22, 26, 0.15); }
table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td{
-webkit-box-shadow:none;
box-shadow:none; }
table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td:not(:first-child){
-webkit-box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15); }
table.bp3-html-table.bp3-interactive tbody tr:hover td{
background-color:rgba(191, 204, 214, 0.3);
cursor:pointer; }
table.bp3-html-table.bp3-interactive tbody tr:active td{
background-color:rgba(191, 204, 214, 0.4); }
.bp3-dark table.bp3-html-table{ }
.bp3-dark table.bp3-html-table.bp3-html-table-striped tbody tr:nth-child(odd) td{
background:rgba(92, 112, 128, 0.15); }
.bp3-dark table.bp3-html-table.bp3-html-table-bordered th:not(:first-child){
-webkit-box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15);
box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15); }
.bp3-dark table.bp3-html-table.bp3-html-table-bordered tbody tr td,
.bp3-dark table.bp3-html-table.bp3-html-table-bordered tfoot tr td{
-webkit-box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15);
box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15); }
.bp3-dark table.bp3-html-table.bp3-html-table-bordered tbody tr td:not(:first-child),
.bp3-dark table.bp3-html-table.bp3-html-table-bordered tfoot tr td:not(:first-child){
-webkit-box-shadow:inset 1px 1px 0 0 rgba(255, 255, 255, 0.15);
box-shadow:inset 1px 1px 0 0 rgba(255, 255, 255, 0.15); }
.bp3-dark table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td{
-webkit-box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15);
box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15); }
.bp3-dark table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td:first-child{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark table.bp3-html-table.bp3-interactive tbody tr:hover td{
background-color:rgba(92, 112, 128, 0.3);
cursor:pointer; }
.bp3-dark table.bp3-html-table.bp3-interactive tbody tr:active td{
background-color:rgba(92, 112, 128, 0.4); }
.bp3-key-combo{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center; }
.bp3-key-combo > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-key-combo > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-key-combo::before,
.bp3-key-combo > *{
margin-right:5px; }
.bp3-key-combo:empty::before,
.bp3-key-combo > :last-child{
margin-right:0; }
.bp3-hotkey-dialog{
padding-bottom:0;
top:40px; }
.bp3-hotkey-dialog .bp3-dialog-body{
margin:0;
padding:0; }
.bp3-hotkey-dialog .bp3-hotkey-label{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1; }
.bp3-hotkey-column{
margin:auto;
max-height:80vh;
overflow-y:auto;
padding:30px; }
.bp3-hotkey-column .bp3-heading{
margin-bottom:20px; }
.bp3-hotkey-column .bp3-heading:not(:first-child){
margin-top:40px; }
.bp3-hotkey{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-pack:justify;
-ms-flex-pack:justify;
justify-content:space-between;
margin-left:0;
margin-right:0; }
.bp3-hotkey:not(:last-child){
margin-bottom:10px; }
.bp3-icon{
display:inline-block;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
vertical-align:text-bottom; }
.bp3-icon:not(:empty)::before{
content:"" !important;
content:unset !important; }
.bp3-icon > svg{
display:block; }
.bp3-icon > svg:not([fill]){
fill:currentColor; }
.bp3-icon.bp3-intent-primary, .bp3-icon-standard.bp3-intent-primary, .bp3-icon-large.bp3-intent-primary{
color:#106ba3; }
.bp3-dark .bp3-icon.bp3-intent-primary, .bp3-dark .bp3-icon-standard.bp3-intent-primary, .bp3-dark .bp3-icon-large.bp3-intent-primary{
color:#48aff0; }
.bp3-icon.bp3-intent-success, .bp3-icon-standard.bp3-intent-success, .bp3-icon-large.bp3-intent-success{
color:#0d8050; }
.bp3-dark .bp3-icon.bp3-intent-success, .bp3-dark .bp3-icon-standard.bp3-intent-success, .bp3-dark .bp3-icon-large.bp3-intent-success{
color:#3dcc91; }
.bp3-icon.bp3-intent-warning, .bp3-icon-standard.bp3-intent-warning, .bp3-icon-large.bp3-intent-warning{
color:#bf7326; }
.bp3-dark .bp3-icon.bp3-intent-warning, .bp3-dark .bp3-icon-standard.bp3-intent-warning, .bp3-dark .bp3-icon-large.bp3-intent-warning{
color:#ffb366; }
.bp3-icon.bp3-intent-danger, .bp3-icon-standard.bp3-intent-danger, .bp3-icon-large.bp3-intent-danger{
color:#c23030; }
.bp3-dark .bp3-icon.bp3-intent-danger, .bp3-dark .bp3-icon-standard.bp3-intent-danger, .bp3-dark .bp3-icon-large.bp3-intent-danger{
color:#ff7373; }
span.bp3-icon-standard{
font-family:"Icons16", sans-serif;
font-size:16px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
display:inline-block; }
span.bp3-icon-large{
font-family:"Icons20", sans-serif;
font-size:20px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
display:inline-block; }
span.bp3-icon:empty{
font-family:"Icons20";
font-size:inherit;
font-style:normal;
font-weight:400;
line-height:1; }
span.bp3-icon:empty::before{
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased; }
.bp3-icon-add::before{
content:""; }
.bp3-icon-add-column-left::before{
content:""; }
.bp3-icon-add-column-right::before{
content:""; }
.bp3-icon-add-row-bottom::before{
content:""; }
.bp3-icon-add-row-top::before{
content:""; }
.bp3-icon-add-to-artifact::before{
content:""; }
.bp3-icon-add-to-folder::before{
content:""; }
.bp3-icon-airplane::before{
content:""; }
.bp3-icon-align-center::before{
content:""; }
.bp3-icon-align-justify::before{
content:""; }
.bp3-icon-align-left::before{
content:""; }
.bp3-icon-align-right::before{
content:""; }
.bp3-icon-alignment-bottom::before{
content:""; }
.bp3-icon-alignment-horizontal-center::before{
content:""; }
.bp3-icon-alignment-left::before{
content:""; }
.bp3-icon-alignment-right::before{
content:""; }
.bp3-icon-alignment-top::before{
content:""; }
.bp3-icon-alignment-vertical-center::before{
content:""; }
.bp3-icon-annotation::before{
content:""; }
.bp3-icon-application::before{
content:""; }
.bp3-icon-applications::before{
content:""; }
.bp3-icon-archive::before{
content:""; }
.bp3-icon-arrow-bottom-left::before{
content:"↙"; }
.bp3-icon-arrow-bottom-right::before{
content:"↘"; }
.bp3-icon-arrow-down::before{
content:"↓"; }
.bp3-icon-arrow-left::before{
content:"←"; }
.bp3-icon-arrow-right::before{
content:"→"; }
.bp3-icon-arrow-top-left::before{
content:"↖"; }
.bp3-icon-arrow-top-right::before{
content:"↗"; }
.bp3-icon-arrow-up::before{
content:"↑"; }
.bp3-icon-arrows-horizontal::before{
content:"↔"; }
.bp3-icon-arrows-vertical::before{
content:"↕"; }
.bp3-icon-asterisk::before{
content:"*"; }
.bp3-icon-automatic-updates::before{
content:""; }
.bp3-icon-badge::before{
content:""; }
.bp3-icon-ban-circle::before{
content:""; }
.bp3-icon-bank-account::before{
content:""; }
.bp3-icon-barcode::before{
content:""; }
.bp3-icon-blank::before{
content:""; }
.bp3-icon-blocked-person::before{
content:""; }
.bp3-icon-bold::before{
content:""; }
.bp3-icon-book::before{
content:""; }
.bp3-icon-bookmark::before{
content:""; }
.bp3-icon-box::before{
content:""; }
.bp3-icon-briefcase::before{
content:""; }
.bp3-icon-bring-data::before{
content:""; }
.bp3-icon-build::before{
content:""; }
.bp3-icon-calculator::before{
content:""; }
.bp3-icon-calendar::before{
content:""; }
.bp3-icon-camera::before{
content:""; }
.bp3-icon-caret-down::before{
content:"⌄"; }
.bp3-icon-caret-left::before{
content:"〈"; }
.bp3-icon-caret-right::before{
content:"〉"; }
.bp3-icon-caret-up::before{
content:"⌃"; }
.bp3-icon-cell-tower::before{
content:""; }
.bp3-icon-changes::before{
content:""; }
.bp3-icon-chart::before{
content:""; }
.bp3-icon-chat::before{
content:""; }
.bp3-icon-chevron-backward::before{
content:""; }
.bp3-icon-chevron-down::before{
content:""; }
.bp3-icon-chevron-forward::before{
content:""; }
.bp3-icon-chevron-left::before{
content:""; }
.bp3-icon-chevron-right::before{
content:""; }
.bp3-icon-chevron-up::before{
content:""; }
.bp3-icon-circle::before{
content:""; }
.bp3-icon-circle-arrow-down::before{
content:""; }
.bp3-icon-circle-arrow-left::before{
content:""; }
.bp3-icon-circle-arrow-right::before{
content:""; }
.bp3-icon-circle-arrow-up::before{
content:""; }
.bp3-icon-citation::before{
content:""; }
.bp3-icon-clean::before{
content:""; }
.bp3-icon-clipboard::before{
content:""; }
.bp3-icon-cloud::before{
content:"☁"; }
.bp3-icon-cloud-download::before{
content:""; }
.bp3-icon-cloud-upload::before{
content:""; }
.bp3-icon-code::before{
content:""; }
.bp3-icon-code-block::before{
content:""; }
.bp3-icon-cog::before{
content:""; }
.bp3-icon-collapse-all::before{
content:""; }
.bp3-icon-column-layout::before{
content:""; }
.bp3-icon-comment::before{
content:""; }
.bp3-icon-comparison::before{
content:""; }
.bp3-icon-compass::before{
content:""; }
.bp3-icon-compressed::before{
content:""; }
.bp3-icon-confirm::before{
content:""; }
.bp3-icon-console::before{
content:""; }
.bp3-icon-contrast::before{
content:""; }
.bp3-icon-control::before{
content:""; }
.bp3-icon-credit-card::before{
content:""; }
.bp3-icon-cross::before{
content:"✗"; }
.bp3-icon-crown::before{
content:""; }
.bp3-icon-cube::before{
content:""; }
.bp3-icon-cube-add::before{
content:""; }
.bp3-icon-cube-remove::before{
content:""; }
.bp3-icon-curved-range-chart::before{
content:""; }
.bp3-icon-cut::before{
content:""; }
.bp3-icon-dashboard::before{
content:""; }
.bp3-icon-data-lineage::before{
content:""; }
.bp3-icon-database::before{
content:""; }
.bp3-icon-delete::before{
content:""; }
.bp3-icon-delta::before{
content:"Δ"; }
.bp3-icon-derive-column::before{
content:""; }
.bp3-icon-desktop::before{
content:""; }
.bp3-icon-diagnosis::before{
content:""; }
.bp3-icon-diagram-tree::before{
content:""; }
.bp3-icon-direction-left::before{
content:""; }
.bp3-icon-direction-right::before{
content:""; }
.bp3-icon-disable::before{
content:""; }
.bp3-icon-document::before{
content:""; }
.bp3-icon-document-open::before{
content:""; }
.bp3-icon-document-share::before{
content:""; }
.bp3-icon-dollar::before{
content:"$"; }
.bp3-icon-dot::before{
content:"•"; }
.bp3-icon-double-caret-horizontal::before{
content:""; }
.bp3-icon-double-caret-vertical::before{
content:""; }
.bp3-icon-double-chevron-down::before{
content:""; }
.bp3-icon-double-chevron-left::before{
content:""; }
.bp3-icon-double-chevron-right::before{
content:""; }
.bp3-icon-double-chevron-up::before{
content:""; }
.bp3-icon-doughnut-chart::before{
content:""; }
.bp3-icon-download::before{
content:""; }
.bp3-icon-drag-handle-horizontal::before{
content:""; }
.bp3-icon-drag-handle-vertical::before{
content:""; }
.bp3-icon-draw::before{
content:""; }
.bp3-icon-drive-time::before{
content:""; }
.bp3-icon-duplicate::before{
content:""; }
.bp3-icon-edit::before{
content:"✎"; }
.bp3-icon-eject::before{
content:"⏏"; }
.bp3-icon-endorsed::before{
content:""; }
.bp3-icon-envelope::before{
content:"✉"; }
.bp3-icon-equals::before{
content:""; }
.bp3-icon-eraser::before{
content:""; }
.bp3-icon-error::before{
content:""; }
.bp3-icon-euro::before{
content:"€"; }
.bp3-icon-exchange::before{
content:""; }
.bp3-icon-exclude-row::before{
content:""; }
.bp3-icon-expand-all::before{
content:""; }
.bp3-icon-export::before{
content:""; }
.bp3-icon-eye-off::before{
content:""; }
.bp3-icon-eye-on::before{
content:""; }
.bp3-icon-eye-open::before{
content:""; }
.bp3-icon-fast-backward::before{
content:""; }
.bp3-icon-fast-forward::before{
content:""; }
.bp3-icon-feed::before{
content:""; }
.bp3-icon-feed-subscribed::before{
content:""; }
.bp3-icon-film::before{
content:""; }
.bp3-icon-filter::before{
content:""; }
.bp3-icon-filter-keep::before{
content:""; }
.bp3-icon-filter-list::before{
content:""; }
.bp3-icon-filter-open::before{
content:""; }
.bp3-icon-filter-remove::before{
content:""; }
.bp3-icon-flag::before{
content:"⚑"; }
.bp3-icon-flame::before{
content:""; }
.bp3-icon-flash::before{
content:""; }
.bp3-icon-floppy-disk::before{
content:""; }
.bp3-icon-flow-branch::before{
content:""; }
.bp3-icon-flow-end::before{
content:""; }
.bp3-icon-flow-linear::before{
content:""; }
.bp3-icon-flow-review::before{
content:""; }
.bp3-icon-flow-review-branch::before{
content:""; }
.bp3-icon-flows::before{
content:""; }
.bp3-icon-folder-close::before{
content:""; }
.bp3-icon-folder-new::before{
content:""; }
.bp3-icon-folder-open::before{
content:""; }
.bp3-icon-folder-shared::before{
content:""; }
.bp3-icon-folder-shared-open::before{
content:""; }
.bp3-icon-follower::before{
content:""; }
.bp3-icon-following::before{
content:""; }
.bp3-icon-font::before{
content:""; }
.bp3-icon-fork::before{
content:""; }
.bp3-icon-form::before{
content:""; }
.bp3-icon-full-circle::before{
content:""; }
.bp3-icon-full-stacked-chart::before{
content:""; }
.bp3-icon-fullscreen::before{
content:""; }
.bp3-icon-function::before{
content:""; }
.bp3-icon-gantt-chart::before{
content:""; }
.bp3-icon-geolocation::before{
content:""; }
.bp3-icon-geosearch::before{
content:""; }
.bp3-icon-git-branch::before{
content:""; }
.bp3-icon-git-commit::before{
content:""; }
.bp3-icon-git-merge::before{
content:""; }
.bp3-icon-git-new-branch::before{
content:""; }
.bp3-icon-git-pull::before{
content:""; }
.bp3-icon-git-push::before{
content:""; }
.bp3-icon-git-repo::before{
content:""; }
.bp3-icon-glass::before{
content:""; }
.bp3-icon-globe::before{
content:""; }
.bp3-icon-globe-network::before{
content:""; }
.bp3-icon-graph::before{
content:""; }
.bp3-icon-graph-remove::before{
content:""; }
.bp3-icon-greater-than::before{
content:""; }
.bp3-icon-greater-than-or-equal-to::before{
content:""; }
.bp3-icon-grid::before{
content:""; }
.bp3-icon-grid-view::before{
content:""; }
.bp3-icon-group-objects::before{
content:""; }
.bp3-icon-grouped-bar-chart::before{
content:""; }
.bp3-icon-hand::before{
content:""; }
.bp3-icon-hand-down::before{
content:""; }
.bp3-icon-hand-left::before{
content:""; }
.bp3-icon-hand-right::before{
content:""; }
.bp3-icon-hand-up::before{
content:""; }
.bp3-icon-header::before{
content:""; }
.bp3-icon-header-one::before{
content:""; }
.bp3-icon-header-two::before{
content:""; }
.bp3-icon-headset::before{
content:""; }
.bp3-icon-heart::before{
content:"♥"; }
.bp3-icon-heart-broken::before{
content:""; }
.bp3-icon-heat-grid::before{
content:""; }
.bp3-icon-heatmap::before{
content:""; }
.bp3-icon-help::before{
content:"?"; }
.bp3-icon-helper-management::before{
content:""; }
.bp3-icon-highlight::before{
content:""; }
.bp3-icon-history::before{
content:""; }
.bp3-icon-home::before{
content:"⌂"; }
.bp3-icon-horizontal-bar-chart::before{
content:""; }
.bp3-icon-horizontal-bar-chart-asc::before{
content:""; }
.bp3-icon-horizontal-bar-chart-desc::before{
content:""; }
.bp3-icon-horizontal-distribution::before{
content:""; }
.bp3-icon-id-number::before{
content:""; }
.bp3-icon-image-rotate-left::before{
content:""; }
.bp3-icon-image-rotate-right::before{
content:""; }
.bp3-icon-import::before{
content:""; }
.bp3-icon-inbox::before{
content:""; }
.bp3-icon-inbox-filtered::before{
content:""; }
.bp3-icon-inbox-geo::before{
content:""; }
.bp3-icon-inbox-search::before{
content:""; }
.bp3-icon-inbox-update::before{
content:""; }
.bp3-icon-info-sign::before{
content:""; }
.bp3-icon-inheritance::before{
content:""; }
.bp3-icon-inner-join::before{
content:""; }
.bp3-icon-insert::before{
content:""; }
.bp3-icon-intersection::before{
content:""; }
.bp3-icon-ip-address::before{
content:""; }
.bp3-icon-issue::before{
content:""; }
.bp3-icon-issue-closed::before{
content:""; }
.bp3-icon-issue-new::before{
content:""; }
.bp3-icon-italic::before{
content:""; }
.bp3-icon-join-table::before{
content:""; }
.bp3-icon-key::before{
content:""; }
.bp3-icon-key-backspace::before{
content:""; }
.bp3-icon-key-command::before{
content:""; }
.bp3-icon-key-control::before{
content:""; }
.bp3-icon-key-delete::before{
content:""; }
.bp3-icon-key-enter::before{
content:""; }
.bp3-icon-key-escape::before{
content:""; }
.bp3-icon-key-option::before{
content:""; }
.bp3-icon-key-shift::before{
content:""; }
.bp3-icon-key-tab::before{
content:""; }
.bp3-icon-known-vehicle::before{
content:""; }
.bp3-icon-lab-test::before{
content:""; }
.bp3-icon-label::before{
content:""; }
.bp3-icon-layer::before{
content:""; }
.bp3-icon-layers::before{
content:""; }
.bp3-icon-layout::before{
content:""; }
.bp3-icon-layout-auto::before{
content:""; }
.bp3-icon-layout-balloon::before{
content:""; }
.bp3-icon-layout-circle::before{
content:""; }
.bp3-icon-layout-grid::before{
content:""; }
.bp3-icon-layout-group-by::before{
content:""; }
.bp3-icon-layout-hierarchy::before{
content:""; }
.bp3-icon-layout-linear::before{
content:""; }
.bp3-icon-layout-skew-grid::before{
content:""; }
.bp3-icon-layout-sorted-clusters::before{
content:""; }
.bp3-icon-learning::before{
content:""; }
.bp3-icon-left-join::before{
content:""; }
.bp3-icon-less-than::before{
content:""; }
.bp3-icon-less-than-or-equal-to::before{
content:""; }
.bp3-icon-lifesaver::before{
content:""; }
.bp3-icon-lightbulb::before{
content:""; }
.bp3-icon-link::before{
content:""; }
.bp3-icon-list::before{
content:"☰"; }
.bp3-icon-list-columns::before{
content:""; }
.bp3-icon-list-detail-view::before{
content:""; }
.bp3-icon-locate::before{
content:""; }
.bp3-icon-lock::before{
content:""; }
.bp3-icon-log-in::before{
content:""; }
.bp3-icon-log-out::before{
content:""; }
.bp3-icon-manual::before{
content:""; }
.bp3-icon-manually-entered-data::before{
content:""; }
.bp3-icon-map::before{
content:""; }
.bp3-icon-map-create::before{
content:""; }
.bp3-icon-map-marker::before{
content:""; }
.bp3-icon-maximize::before{
content:""; }
.bp3-icon-media::before{
content:""; }
.bp3-icon-menu::before{
content:""; }
.bp3-icon-menu-closed::before{
content:""; }
.bp3-icon-menu-open::before{
content:""; }
.bp3-icon-merge-columns::before{
content:""; }
.bp3-icon-merge-links::before{
content:""; }
.bp3-icon-minimize::before{
content:""; }
.bp3-icon-minus::before{
content:""; }
.bp3-icon-mobile-phone::before{
content:""; }
.bp3-icon-mobile-video::before{
content:""; }
.bp3-icon-moon::before{
content:""; }
.bp3-icon-more::before{
content:""; }
.bp3-icon-mountain::before{
content:""; }
.bp3-icon-move::before{
content:""; }
.bp3-icon-mugshot::before{
content:""; }
.bp3-icon-multi-select::before{
content:""; }
.bp3-icon-music::before{
content:""; }
.bp3-icon-new-drawing::before{
content:""; }
.bp3-icon-new-grid-item::before{
content:""; }
.bp3-icon-new-layer::before{
content:""; }
.bp3-icon-new-layers::before{
content:""; }
.bp3-icon-new-link::before{
content:""; }
.bp3-icon-new-object::before{
content:""; }
.bp3-icon-new-person::before{
content:""; }
.bp3-icon-new-prescription::before{
content:""; }
.bp3-icon-new-text-box::before{
content:""; }
.bp3-icon-ninja::before{
content:""; }
.bp3-icon-not-equal-to::before{
content:""; }
.bp3-icon-notifications::before{
content:""; }
.bp3-icon-notifications-updated::before{
content:""; }
.bp3-icon-numbered-list::before{
content:""; }
.bp3-icon-numerical::before{
content:""; }
.bp3-icon-office::before{
content:""; }
.bp3-icon-offline::before{
content:""; }
.bp3-icon-oil-field::before{
content:""; }
.bp3-icon-one-column::before{
content:""; }
.bp3-icon-outdated::before{
content:""; }
.bp3-icon-page-layout::before{
content:""; }
.bp3-icon-panel-stats::before{
content:""; }
.bp3-icon-panel-table::before{
content:""; }
.bp3-icon-paperclip::before{
content:""; }
.bp3-icon-paragraph::before{
content:""; }
.bp3-icon-path::before{
content:""; }
.bp3-icon-path-search::before{
content:""; }
.bp3-icon-pause::before{
content:""; }
.bp3-icon-people::before{
content:""; }
.bp3-icon-percentage::before{
content:""; }
.bp3-icon-person::before{
content:""; }
.bp3-icon-phone::before{
content:"☎"; }
.bp3-icon-pie-chart::before{
content:""; }
.bp3-icon-pin::before{
content:""; }
.bp3-icon-pivot::before{
content:""; }
.bp3-icon-pivot-table::before{
content:""; }
.bp3-icon-play::before{
content:""; }
.bp3-icon-plus::before{
content:"+"; }
.bp3-icon-polygon-filter::before{
content:""; }
.bp3-icon-power::before{
content:""; }
.bp3-icon-predictive-analysis::before{
content:""; }
.bp3-icon-prescription::before{
content:""; }
.bp3-icon-presentation::before{
content:""; }
.bp3-icon-print::before{
content:"⎙"; }
.bp3-icon-projects::before{
content:""; }
.bp3-icon-properties::before{
content:""; }
.bp3-icon-property::before{
content:""; }
.bp3-icon-publish-function::before{
content:""; }
.bp3-icon-pulse::before{
content:""; }
.bp3-icon-random::before{
content:""; }
.bp3-icon-record::before{
content:""; }
.bp3-icon-redo::before{
content:""; }
.bp3-icon-refresh::before{
content:""; }
.bp3-icon-regression-chart::before{
content:""; }
.bp3-icon-remove::before{
content:""; }
.bp3-icon-remove-column::before{
content:""; }
.bp3-icon-remove-column-left::before{
content:""; }
.bp3-icon-remove-column-right::before{
content:""; }
.bp3-icon-remove-row-bottom::before{
content:""; }
.bp3-icon-remove-row-top::before{
content:""; }
.bp3-icon-repeat::before{
content:""; }
.bp3-icon-reset::before{
content:""; }
.bp3-icon-resolve::before{
content:""; }
.bp3-icon-rig::before{
content:""; }
.bp3-icon-right-join::before{
content:""; }
.bp3-icon-ring::before{
content:""; }
.bp3-icon-rotate-document::before{
content:""; }
.bp3-icon-rotate-page::before{
content:""; }
.bp3-icon-satellite::before{
content:""; }
.bp3-icon-saved::before{
content:""; }
.bp3-icon-scatter-plot::before{
content:""; }
.bp3-icon-search::before{
content:""; }
.bp3-icon-search-around::before{
content:""; }
.bp3-icon-search-template::before{
content:""; }
.bp3-icon-search-text::before{
content:""; }
.bp3-icon-segmented-control::before{
content:""; }
.bp3-icon-select::before{
content:""; }
.bp3-icon-selection::before{
content:"⦿"; }
.bp3-icon-send-to::before{
content:""; }
.bp3-icon-send-to-graph::before{
content:""; }
.bp3-icon-send-to-map::before{
content:""; }
.bp3-icon-series-add::before{
content:""; }
.bp3-icon-series-configuration::before{
content:""; }
.bp3-icon-series-derived::before{
content:""; }
.bp3-icon-series-filtered::before{
content:""; }
.bp3-icon-series-search::before{
content:""; }
.bp3-icon-settings::before{
content:""; }
.bp3-icon-share::before{
content:""; }
.bp3-icon-shield::before{
content:""; }
.bp3-icon-shop::before{
content:""; }
.bp3-icon-shopping-cart::before{
content:""; }
.bp3-icon-signal-search::before{
content:""; }
.bp3-icon-sim-card::before{
content:""; }
.bp3-icon-slash::before{
content:""; }
.bp3-icon-small-cross::before{
content:""; }
.bp3-icon-small-minus::before{
content:""; }
.bp3-icon-small-plus::before{
content:""; }
.bp3-icon-small-tick::before{
content:""; }
.bp3-icon-snowflake::before{
content:""; }
.bp3-icon-social-media::before{
content:""; }
.bp3-icon-sort::before{
content:""; }
.bp3-icon-sort-alphabetical::before{
content:""; }
.bp3-icon-sort-alphabetical-desc::before{
content:""; }
.bp3-icon-sort-asc::before{
content:""; }
.bp3-icon-sort-desc::before{
content:""; }
.bp3-icon-sort-numerical::before{
content:""; }
.bp3-icon-sort-numerical-desc::before{
content:""; }
.bp3-icon-split-columns::before{
content:""; }
.bp3-icon-square::before{
content:""; }
.bp3-icon-stacked-chart::before{
content:""; }
.bp3-icon-star::before{
content:"★"; }
.bp3-icon-star-empty::before{
content:"☆"; }
.bp3-icon-step-backward::before{
content:""; }
.bp3-icon-step-chart::before{
content:""; }
.bp3-icon-step-forward::before{
content:""; }
.bp3-icon-stop::before{
content:""; }
.bp3-icon-stopwatch::before{
content:""; }
.bp3-icon-strikethrough::before{
content:""; }
.bp3-icon-style::before{
content:""; }
.bp3-icon-swap-horizontal::before{
content:""; }
.bp3-icon-swap-vertical::before{
content:""; }
.bp3-icon-symbol-circle::before{
content:""; }
.bp3-icon-symbol-cross::before{
content:""; }
.bp3-icon-symbol-diamond::before{
content:""; }
.bp3-icon-symbol-square::before{
content:""; }
.bp3-icon-symbol-triangle-down::before{
content:""; }
.bp3-icon-symbol-triangle-up::before{
content:""; }
.bp3-icon-tag::before{
content:""; }
.bp3-icon-take-action::before{
content:""; }
.bp3-icon-taxi::before{
content:""; }
.bp3-icon-text-highlight::before{
content:""; }
.bp3-icon-th::before{
content:""; }
.bp3-icon-th-derived::before{
content:""; }
.bp3-icon-th-disconnect::before{
content:""; }
.bp3-icon-th-filtered::before{
content:""; }
.bp3-icon-th-list::before{
content:""; }
.bp3-icon-thumbs-down::before{
content:""; }
.bp3-icon-thumbs-up::before{
content:""; }
.bp3-icon-tick::before{
content:"✓"; }
.bp3-icon-tick-circle::before{
content:""; }
.bp3-icon-time::before{
content:"⏲"; }
.bp3-icon-timeline-area-chart::before{
content:""; }
.bp3-icon-timeline-bar-chart::before{
content:""; }
.bp3-icon-timeline-events::before{
content:""; }
.bp3-icon-timeline-line-chart::before{
content:""; }
.bp3-icon-tint::before{
content:""; }
.bp3-icon-torch::before{
content:""; }
.bp3-icon-tractor::before{
content:""; }
.bp3-icon-train::before{
content:""; }
.bp3-icon-translate::before{
content:""; }
.bp3-icon-trash::before{
content:""; }
.bp3-icon-tree::before{
content:""; }
.bp3-icon-trending-down::before{
content:""; }
.bp3-icon-trending-up::before{
content:""; }
.bp3-icon-truck::before{
content:""; }
.bp3-icon-two-columns::before{
content:""; }
.bp3-icon-unarchive::before{
content:""; }
.bp3-icon-underline::before{
content:"⎁"; }
.bp3-icon-undo::before{
content:"⎌"; }
.bp3-icon-ungroup-objects::before{
content:""; }
.bp3-icon-unknown-vehicle::before{
content:""; }
.bp3-icon-unlock::before{
content:""; }
.bp3-icon-unpin::before{
content:""; }
.bp3-icon-unresolve::before{
content:""; }
.bp3-icon-updated::before{
content:""; }
.bp3-icon-upload::before{
content:""; }
.bp3-icon-user::before{
content:""; }
.bp3-icon-variable::before{
content:""; }
.bp3-icon-vertical-bar-chart-asc::before{
content:""; }
.bp3-icon-vertical-bar-chart-desc::before{
content:""; }
.bp3-icon-vertical-distribution::before{
content:""; }
.bp3-icon-video::before{
content:""; }
.bp3-icon-volume-down::before{
content:""; }
.bp3-icon-volume-off::before{
content:""; }
.bp3-icon-volume-up::before{
content:""; }
.bp3-icon-walk::before{
content:""; }
.bp3-icon-warning-sign::before{
content:""; }
.bp3-icon-waterfall-chart::before{
content:""; }
.bp3-icon-widget::before{
content:""; }
.bp3-icon-widget-button::before{
content:""; }
.bp3-icon-widget-footer::before{
content:""; }
.bp3-icon-widget-header::before{
content:""; }
.bp3-icon-wrench::before{
content:""; }
.bp3-icon-zoom-in::before{
content:""; }
.bp3-icon-zoom-out::before{
content:""; }
.bp3-icon-zoom-to-fit::before{
content:""; }
.bp3-submenu > .bp3-popover-wrapper{
display:block; }
.bp3-submenu .bp3-popover-target{
display:block; }
.bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item{ }
.bp3-submenu.bp3-popover{
-webkit-box-shadow:none;
box-shadow:none;
padding:0 5px; }
.bp3-submenu.bp3-popover > .bp3-popover-content{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-submenu.bp3-popover, .bp3-submenu.bp3-popover.bp3-dark{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-dark .bp3-submenu.bp3-popover > .bp3-popover-content, .bp3-submenu.bp3-popover.bp3-dark > .bp3-popover-content{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
.bp3-menu{
background:#ffffff;
border-radius:3px;
color:#182026;
list-style:none;
margin:0;
min-width:180px;
padding:5px;
text-align:left; }
.bp3-menu-divider{
border-top:1px solid rgba(16, 22, 26, 0.15);
display:block;
margin:5px; }
.bp3-dark .bp3-menu-divider{
border-top-color:rgba(255, 255, 255, 0.15); }
.bp3-menu-item{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:start;
-ms-flex-align:start;
align-items:flex-start;
border-radius:2px;
color:inherit;
line-height:20px;
padding:5px 7px;
text-decoration:none;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none; }
.bp3-menu-item > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-menu-item > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-menu-item::before,
.bp3-menu-item > *{
margin-right:7px; }
.bp3-menu-item:empty::before,
.bp3-menu-item > :last-child{
margin-right:0; }
.bp3-menu-item > .bp3-fill{
word-break:break-word; }
.bp3-menu-item:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item{
background-color:rgba(167, 182, 194, 0.3);
cursor:pointer;
text-decoration:none; }
.bp3-menu-item.bp3-disabled{
background-color:inherit;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-dark .bp3-menu-item{
color:inherit; }
.bp3-dark .bp3-menu-item:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-menu-item{
background-color:rgba(138, 155, 168, 0.15);
color:inherit; }
.bp3-dark .bp3-menu-item.bp3-disabled{
background-color:inherit;
color:rgba(167, 182, 194, 0.6); }
.bp3-menu-item.bp3-intent-primary{
color:#106ba3; }
.bp3-menu-item.bp3-intent-primary .bp3-icon{
color:inherit; }
.bp3-menu-item.bp3-intent-primary::before, .bp3-menu-item.bp3-intent-primary::after,
.bp3-menu-item.bp3-intent-primary .bp3-menu-item-label{
color:#106ba3; }
.bp3-menu-item.bp3-intent-primary:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-menu-item.bp3-intent-primary.bp3-active{
background-color:#137cbd; }
.bp3-menu-item.bp3-intent-primary:active{
background-color:#106ba3; }
.bp3-menu-item.bp3-intent-primary:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-menu-item.bp3-intent-primary:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::before, .bp3-menu-item.bp3-intent-primary:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::after,
.bp3-menu-item.bp3-intent-primary:hover .bp3-menu-item-label,
.bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-primary:active, .bp3-menu-item.bp3-intent-primary:active::before, .bp3-menu-item.bp3-intent-primary:active::after,
.bp3-menu-item.bp3-intent-primary:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-primary.bp3-active, .bp3-menu-item.bp3-intent-primary.bp3-active::before, .bp3-menu-item.bp3-intent-primary.bp3-active::after,
.bp3-menu-item.bp3-intent-primary.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-menu-item.bp3-intent-success{
color:#0d8050; }
.bp3-menu-item.bp3-intent-success .bp3-icon{
color:inherit; }
.bp3-menu-item.bp3-intent-success::before, .bp3-menu-item.bp3-intent-success::after,
.bp3-menu-item.bp3-intent-success .bp3-menu-item-label{
color:#0d8050; }
.bp3-menu-item.bp3-intent-success:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-menu-item.bp3-intent-success.bp3-active{
background-color:#0f9960; }
.bp3-menu-item.bp3-intent-success:active{
background-color:#0d8050; }
.bp3-menu-item.bp3-intent-success:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-menu-item.bp3-intent-success:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::before, .bp3-menu-item.bp3-intent-success:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::after,
.bp3-menu-item.bp3-intent-success:hover .bp3-menu-item-label,
.bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-success:active, .bp3-menu-item.bp3-intent-success:active::before, .bp3-menu-item.bp3-intent-success:active::after,
.bp3-menu-item.bp3-intent-success:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-success.bp3-active, .bp3-menu-item.bp3-intent-success.bp3-active::before, .bp3-menu-item.bp3-intent-success.bp3-active::after,
.bp3-menu-item.bp3-intent-success.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-menu-item.bp3-intent-warning{
color:#bf7326; }
.bp3-menu-item.bp3-intent-warning .bp3-icon{
color:inherit; }
.bp3-menu-item.bp3-intent-warning::before, .bp3-menu-item.bp3-intent-warning::after,
.bp3-menu-item.bp3-intent-warning .bp3-menu-item-label{
color:#bf7326; }
.bp3-menu-item.bp3-intent-warning:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-menu-item.bp3-intent-warning.bp3-active{
background-color:#d9822b; }
.bp3-menu-item.bp3-intent-warning:active{
background-color:#bf7326; }
.bp3-menu-item.bp3-intent-warning:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-menu-item.bp3-intent-warning:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::before, .bp3-menu-item.bp3-intent-warning:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::after,
.bp3-menu-item.bp3-intent-warning:hover .bp3-menu-item-label,
.bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-warning:active, .bp3-menu-item.bp3-intent-warning:active::before, .bp3-menu-item.bp3-intent-warning:active::after,
.bp3-menu-item.bp3-intent-warning:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-warning.bp3-active, .bp3-menu-item.bp3-intent-warning.bp3-active::before, .bp3-menu-item.bp3-intent-warning.bp3-active::after,
.bp3-menu-item.bp3-intent-warning.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-menu-item.bp3-intent-danger{
color:#c23030; }
.bp3-menu-item.bp3-intent-danger .bp3-icon{
color:inherit; }
.bp3-menu-item.bp3-intent-danger::before, .bp3-menu-item.bp3-intent-danger::after,
.bp3-menu-item.bp3-intent-danger .bp3-menu-item-label{
color:#c23030; }
.bp3-menu-item.bp3-intent-danger:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-menu-item.bp3-intent-danger.bp3-active{
background-color:#db3737; }
.bp3-menu-item.bp3-intent-danger:active{
background-color:#c23030; }
.bp3-menu-item.bp3-intent-danger:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-menu-item.bp3-intent-danger:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::before, .bp3-menu-item.bp3-intent-danger:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::after,
.bp3-menu-item.bp3-intent-danger:hover .bp3-menu-item-label,
.bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-danger:active, .bp3-menu-item.bp3-intent-danger:active::before, .bp3-menu-item.bp3-intent-danger:active::after,
.bp3-menu-item.bp3-intent-danger:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-danger.bp3-active, .bp3-menu-item.bp3-intent-danger.bp3-active::before, .bp3-menu-item.bp3-intent-danger.bp3-active::after,
.bp3-menu-item.bp3-intent-danger.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-menu-item::before{
font-family:"Icons16", sans-serif;
font-size:16px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
margin-right:7px; }
.bp3-menu-item::before,
.bp3-menu-item > .bp3-icon{
color:#5c7080;
margin-top:2px; }
.bp3-menu-item .bp3-menu-item-label{
color:#5c7080; }
.bp3-menu-item:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item{
color:inherit; }
.bp3-menu-item.bp3-active, .bp3-menu-item:active{
background-color:rgba(115, 134, 148, 0.3); }
.bp3-menu-item.bp3-disabled{
background-color:inherit !important;
color:rgba(92, 112, 128, 0.6) !important;
cursor:not-allowed !important;
outline:none !important; }
.bp3-menu-item.bp3-disabled::before,
.bp3-menu-item.bp3-disabled > .bp3-icon,
.bp3-menu-item.bp3-disabled .bp3-menu-item-label{
color:rgba(92, 112, 128, 0.6) !important; }
.bp3-large .bp3-menu-item{
font-size:16px;
line-height:22px;
padding:9px 7px; }
.bp3-large .bp3-menu-item .bp3-icon{
margin-top:3px; }
.bp3-large .bp3-menu-item::before{
font-family:"Icons20", sans-serif;
font-size:20px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
margin-right:10px;
margin-top:1px; }
button.bp3-menu-item{
background:none;
border:none;
text-align:left;
width:100%; }
.bp3-menu-header{
border-top:1px solid rgba(16, 22, 26, 0.15);
display:block;
margin:5px;
cursor:default;
padding-left:2px; }
.bp3-dark .bp3-menu-header{
border-top-color:rgba(255, 255, 255, 0.15); }
.bp3-menu-header:first-of-type{
border-top:none; }
.bp3-menu-header > h6{
color:#182026;
font-weight:600;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
line-height:17px;
margin:0;
padding:10px 7px 0 1px; }
.bp3-dark .bp3-menu-header > h6{
color:#f5f8fa; }
.bp3-menu-header:first-of-type > h6{
padding-top:0; }
.bp3-large .bp3-menu-header > h6{
font-size:18px;
padding-bottom:5px;
padding-top:15px; }
.bp3-large .bp3-menu-header:first-of-type > h6{
padding-top:0; }
.bp3-dark .bp3-menu{
background:#30404d;
color:#f5f8fa; }
.bp3-dark .bp3-menu-item{ }
.bp3-dark .bp3-menu-item.bp3-intent-primary{
color:#48aff0; }
.bp3-dark .bp3-menu-item.bp3-intent-primary .bp3-icon{
color:inherit; }
.bp3-dark .bp3-menu-item.bp3-intent-primary::before, .bp3-dark .bp3-menu-item.bp3-intent-primary::after,
.bp3-dark .bp3-menu-item.bp3-intent-primary .bp3-menu-item-label{
color:#48aff0; }
.bp3-dark .bp3-menu-item.bp3-intent-primary:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active{
background-color:#137cbd; }
.bp3-dark .bp3-menu-item.bp3-intent-primary:active{
background-color:#106ba3; }
.bp3-dark .bp3-menu-item.bp3-intent-primary:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-primary:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-primary:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::after,
.bp3-dark .bp3-menu-item.bp3-intent-primary:hover .bp3-menu-item-label,
.bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item .bp3-menu-item-label,
.bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-primary:active, .bp3-dark .bp3-menu-item.bp3-intent-primary:active::before, .bp3-dark .bp3-menu-item.bp3-intent-primary:active::after,
.bp3-dark .bp3-menu-item.bp3-intent-primary:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active::after,
.bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-dark .bp3-menu-item.bp3-intent-success{
color:#3dcc91; }
.bp3-dark .bp3-menu-item.bp3-intent-success .bp3-icon{
color:inherit; }
.bp3-dark .bp3-menu-item.bp3-intent-success::before, .bp3-dark .bp3-menu-item.bp3-intent-success::after,
.bp3-dark .bp3-menu-item.bp3-intent-success .bp3-menu-item-label{
color:#3dcc91; }
.bp3-dark .bp3-menu-item.bp3-intent-success:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active{
background-color:#0f9960; }
.bp3-dark .bp3-menu-item.bp3-intent-success:active{
background-color:#0d8050; }
.bp3-dark .bp3-menu-item.bp3-intent-success:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-success:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-success:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::after,
.bp3-dark .bp3-menu-item.bp3-intent-success:hover .bp3-menu-item-label,
.bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item .bp3-menu-item-label,
.bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-success:active, .bp3-dark .bp3-menu-item.bp3-intent-success:active::before, .bp3-dark .bp3-menu-item.bp3-intent-success:active::after,
.bp3-dark .bp3-menu-item.bp3-intent-success:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active::after,
.bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-dark .bp3-menu-item.bp3-intent-warning{
color:#ffb366; }
.bp3-dark .bp3-menu-item.bp3-intent-warning .bp3-icon{
color:inherit; }
.bp3-dark .bp3-menu-item.bp3-intent-warning::before, .bp3-dark .bp3-menu-item.bp3-intent-warning::after,
.bp3-dark .bp3-menu-item.bp3-intent-warning .bp3-menu-item-label{
color:#ffb366; }
.bp3-dark .bp3-menu-item.bp3-intent-warning:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active{
background-color:#d9822b; }
.bp3-dark .bp3-menu-item.bp3-intent-warning:active{
background-color:#bf7326; }
.bp3-dark .bp3-menu-item.bp3-intent-warning:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-warning:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-warning:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::after,
.bp3-dark .bp3-menu-item.bp3-intent-warning:hover .bp3-menu-item-label,
.bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item .bp3-menu-item-label,
.bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-warning:active, .bp3-dark .bp3-menu-item.bp3-intent-warning:active::before, .bp3-dark .bp3-menu-item.bp3-intent-warning:active::after,
.bp3-dark .bp3-menu-item.bp3-intent-warning:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active::after,
.bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-dark .bp3-menu-item.bp3-intent-danger{
color:#ff7373; }
.bp3-dark .bp3-menu-item.bp3-intent-danger .bp3-icon{
color:inherit; }
.bp3-dark .bp3-menu-item.bp3-intent-danger::before, .bp3-dark .bp3-menu-item.bp3-intent-danger::after,
.bp3-dark .bp3-menu-item.bp3-intent-danger .bp3-menu-item-label{
color:#ff7373; }
.bp3-dark .bp3-menu-item.bp3-intent-danger:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active{
background-color:#db3737; }
.bp3-dark .bp3-menu-item.bp3-intent-danger:active{
background-color:#c23030; }
.bp3-dark .bp3-menu-item.bp3-intent-danger:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-danger:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-danger:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::after,
.bp3-dark .bp3-menu-item.bp3-intent-danger:hover .bp3-menu-item-label,
.bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item .bp3-menu-item-label,
.bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-danger:active, .bp3-dark .bp3-menu-item.bp3-intent-danger:active::before, .bp3-dark .bp3-menu-item.bp3-intent-danger:active::after,
.bp3-dark .bp3-menu-item.bp3-intent-danger:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active::after,
.bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active .bp3-menu-item-label{
color:#ffffff; }
.bp3-dark .bp3-menu-item::before,
.bp3-dark .bp3-menu-item > .bp3-icon{
color:#a7b6c2; }
.bp3-dark .bp3-menu-item .bp3-menu-item-label{
color:#a7b6c2; }
.bp3-dark .bp3-menu-item.bp3-active, .bp3-dark .bp3-menu-item:active{
background-color:rgba(138, 155, 168, 0.3); }
.bp3-dark .bp3-menu-item.bp3-disabled{
color:rgba(167, 182, 194, 0.6) !important; }
.bp3-dark .bp3-menu-item.bp3-disabled::before,
.bp3-dark .bp3-menu-item.bp3-disabled > .bp3-icon,
.bp3-dark .bp3-menu-item.bp3-disabled .bp3-menu-item-label{
color:rgba(167, 182, 194, 0.6) !important; }
.bp3-dark .bp3-menu-divider,
.bp3-dark .bp3-menu-header{
border-color:rgba(255, 255, 255, 0.15); }
.bp3-dark .bp3-menu-header > h6{
color:#f5f8fa; }
.bp3-label .bp3-menu{
margin-top:5px; }
.bp3-navbar{
background-color:#ffffff;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
height:50px;
padding:0 15px;
position:relative;
width:100%;
z-index:10; }
.bp3-navbar.bp3-dark,
.bp3-dark .bp3-navbar{
background-color:#394b59; }
.bp3-navbar.bp3-dark{
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-navbar{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-navbar.bp3-fixed-top{
left:0;
position:fixed;
right:0;
top:0; }
.bp3-navbar-heading{
font-size:16px;
margin-right:15px; }
.bp3-navbar-group{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
height:50px; }
.bp3-navbar-group.bp3-align-left{
float:left; }
.bp3-navbar-group.bp3-align-right{
float:right; }
.bp3-navbar-divider{
border-left:1px solid rgba(16, 22, 26, 0.15);
height:20px;
margin:0 10px; }
.bp3-dark .bp3-navbar-divider{
border-left-color:rgba(255, 255, 255, 0.15); }
.bp3-non-ideal-state{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
height:100%;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
text-align:center;
width:100%; }
.bp3-non-ideal-state > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-non-ideal-state > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-non-ideal-state::before,
.bp3-non-ideal-state > *{
margin-bottom:20px; }
.bp3-non-ideal-state:empty::before,
.bp3-non-ideal-state > :last-child{
margin-bottom:0; }
.bp3-non-ideal-state > *{
max-width:400px; }
.bp3-non-ideal-state-visual{
color:rgba(92, 112, 128, 0.6);
font-size:60px; }
.bp3-dark .bp3-non-ideal-state-visual{
color:rgba(167, 182, 194, 0.6); }
.bp3-overflow-list{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-ms-flex-wrap:nowrap;
flex-wrap:nowrap;
min-width:0; }
.bp3-overflow-list-spacer{
-ms-flex-negative:1;
flex-shrink:1;
width:1px; }
body.bp3-overlay-open{
overflow:hidden; }
.bp3-overlay{
bottom:0;
left:0;
position:static;
right:0;
top:0;
z-index:20; }
.bp3-overlay:not(.bp3-overlay-open){
pointer-events:none; }
.bp3-overlay.bp3-overlay-container{
overflow:hidden;
position:fixed; }
.bp3-overlay.bp3-overlay-container.bp3-overlay-inline{
position:absolute; }
.bp3-overlay.bp3-overlay-scroll-container{
overflow:auto;
position:fixed; }
.bp3-overlay.bp3-overlay-scroll-container.bp3-overlay-inline{
position:absolute; }
.bp3-overlay.bp3-overlay-inline{
display:inline;
overflow:visible; }
.bp3-overlay-content{
position:fixed;
z-index:20; }
.bp3-overlay-inline .bp3-overlay-content,
.bp3-overlay-scroll-container .bp3-overlay-content{
position:absolute; }
.bp3-overlay-backdrop{
bottom:0;
left:0;
position:fixed;
right:0;
top:0;
opacity:1;
background-color:rgba(16, 22, 26, 0.7);
overflow:auto;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
z-index:20; }
.bp3-overlay-backdrop.bp3-overlay-enter, .bp3-overlay-backdrop.bp3-overlay-appear{
opacity:0; }
.bp3-overlay-backdrop.bp3-overlay-enter-active, .bp3-overlay-backdrop.bp3-overlay-appear-active{
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:opacity;
transition-property:opacity;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-overlay-backdrop.bp3-overlay-exit{
opacity:1; }
.bp3-overlay-backdrop.bp3-overlay-exit-active{
opacity:0;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:opacity;
transition-property:opacity;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-overlay-backdrop:focus{
outline:none; }
.bp3-overlay-inline .bp3-overlay-backdrop{
position:absolute; }
.bp3-panel-stack{
overflow:hidden;
position:relative; }
.bp3-panel-stack-header{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
-webkit-box-shadow:0 1px rgba(16, 22, 26, 0.15);
box-shadow:0 1px rgba(16, 22, 26, 0.15);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-ms-flex-negative:0;
flex-shrink:0;
height:30px;
z-index:1; }
.bp3-dark .bp3-panel-stack-header{
-webkit-box-shadow:0 1px rgba(255, 255, 255, 0.15);
box-shadow:0 1px rgba(255, 255, 255, 0.15); }
.bp3-panel-stack-header > span{
-webkit-box-align:stretch;
-ms-flex-align:stretch;
align-items:stretch;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:1;
-ms-flex:1;
flex:1; }
.bp3-panel-stack-header .bp3-heading{
margin:0 5px; }
.bp3-button.bp3-panel-stack-header-back{
margin-left:5px;
padding-left:0;
white-space:nowrap; }
.bp3-button.bp3-panel-stack-header-back .bp3-icon{
margin:0 2px; }
.bp3-panel-stack-view{
bottom:0;
left:0;
position:absolute;
right:0;
top:0;
background-color:#ffffff;
border-right:1px solid rgba(16, 22, 26, 0.15);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
margin-right:-1px;
overflow-y:auto;
z-index:1; }
.bp3-dark .bp3-panel-stack-view{
background-color:#30404d; }
.bp3-panel-stack-view:nth-last-child(n + 4){
display:none; }
.bp3-panel-stack-push .bp3-panel-stack-enter, .bp3-panel-stack-push .bp3-panel-stack-appear{
-webkit-transform:translateX(100%);
transform:translateX(100%);
opacity:0; }
.bp3-panel-stack-push .bp3-panel-stack-enter-active, .bp3-panel-stack-push .bp3-panel-stack-appear-active{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack-push .bp3-panel-stack-exit{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1; }
.bp3-panel-stack-push .bp3-panel-stack-exit-active{
-webkit-transform:translateX(-50%);
transform:translateX(-50%);
opacity:0;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack-pop .bp3-panel-stack-enter, .bp3-panel-stack-pop .bp3-panel-stack-appear{
-webkit-transform:translateX(-50%);
transform:translateX(-50%);
opacity:0; }
.bp3-panel-stack-pop .bp3-panel-stack-enter-active, .bp3-panel-stack-pop .bp3-panel-stack-appear-active{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack-pop .bp3-panel-stack-exit{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1; }
.bp3-panel-stack-pop .bp3-panel-stack-exit-active{
-webkit-transform:translateX(100%);
transform:translateX(100%);
opacity:0;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack2{
overflow:hidden;
position:relative; }
.bp3-panel-stack2-header{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
-webkit-box-shadow:0 1px rgba(16, 22, 26, 0.15);
box-shadow:0 1px rgba(16, 22, 26, 0.15);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-ms-flex-negative:0;
flex-shrink:0;
height:30px;
z-index:1; }
.bp3-dark .bp3-panel-stack2-header{
-webkit-box-shadow:0 1px rgba(255, 255, 255, 0.15);
box-shadow:0 1px rgba(255, 255, 255, 0.15); }
.bp3-panel-stack2-header > span{
-webkit-box-align:stretch;
-ms-flex-align:stretch;
align-items:stretch;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:1;
-ms-flex:1;
flex:1; }
.bp3-panel-stack2-header .bp3-heading{
margin:0 5px; }
.bp3-button.bp3-panel-stack2-header-back{
margin-left:5px;
padding-left:0;
white-space:nowrap; }
.bp3-button.bp3-panel-stack2-header-back .bp3-icon{
margin:0 2px; }
.bp3-panel-stack2-view{
bottom:0;
left:0;
position:absolute;
right:0;
top:0;
background-color:#ffffff;
border-right:1px solid rgba(16, 22, 26, 0.15);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
margin-right:-1px;
overflow-y:auto;
z-index:1; }
.bp3-dark .bp3-panel-stack2-view{
background-color:#30404d; }
.bp3-panel-stack2-view:nth-last-child(n + 4){
display:none; }
.bp3-panel-stack2-push .bp3-panel-stack2-enter, .bp3-panel-stack2-push .bp3-panel-stack2-appear{
-webkit-transform:translateX(100%);
transform:translateX(100%);
opacity:0; }
.bp3-panel-stack2-push .bp3-panel-stack2-enter-active, .bp3-panel-stack2-push .bp3-panel-stack2-appear-active{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack2-push .bp3-panel-stack2-exit{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1; }
.bp3-panel-stack2-push .bp3-panel-stack2-exit-active{
-webkit-transform:translateX(-50%);
transform:translateX(-50%);
opacity:0;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack2-pop .bp3-panel-stack2-enter, .bp3-panel-stack2-pop .bp3-panel-stack2-appear{
-webkit-transform:translateX(-50%);
transform:translateX(-50%);
opacity:0; }
.bp3-panel-stack2-pop .bp3-panel-stack2-enter-active, .bp3-panel-stack2-pop .bp3-panel-stack2-appear-active{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-panel-stack2-pop .bp3-panel-stack2-exit{
-webkit-transform:translate(0%);
transform:translate(0%);
opacity:1; }
.bp3-panel-stack2-pop .bp3-panel-stack2-exit-active{
-webkit-transform:translateX(100%);
transform:translateX(100%);
opacity:0;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:400ms;
transition-duration:400ms;
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, -webkit-transform;
transition-property:transform, opacity;
transition-property:transform, opacity, -webkit-transform;
-webkit-transition-timing-function:ease;
transition-timing-function:ease; }
.bp3-popover{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
-webkit-transform:scale(1);
transform:scale(1);
border-radius:3px;
display:inline-block;
z-index:20; }
.bp3-popover .bp3-popover-arrow{
height:30px;
position:absolute;
width:30px; }
.bp3-popover .bp3-popover-arrow::before{
height:20px;
margin:5px;
width:20px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-popover{
margin-bottom:17px;
margin-top:-17px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-popover > .bp3-popover-arrow{
bottom:-11px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-popover > .bp3-popover-arrow svg{
-webkit-transform:rotate(-90deg);
transform:rotate(-90deg); }
.bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-popover{
margin-left:17px; }
.bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-popover > .bp3-popover-arrow{
left:-11px; }
.bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-popover > .bp3-popover-arrow svg{
-webkit-transform:rotate(0);
transform:rotate(0); }
.bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-popover{
margin-top:17px; }
.bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-popover > .bp3-popover-arrow{
top:-11px; }
.bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-popover > .bp3-popover-arrow svg{
-webkit-transform:rotate(90deg);
transform:rotate(90deg); }
.bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-popover{
margin-left:-17px;
margin-right:17px; }
.bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-popover > .bp3-popover-arrow{
right:-11px; }
.bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-popover > .bp3-popover-arrow svg{
-webkit-transform:rotate(180deg);
transform:rotate(180deg); }
.bp3-tether-element-attached-middle > .bp3-popover > .bp3-popover-arrow{
top:50%;
-webkit-transform:translateY(-50%);
transform:translateY(-50%); }
.bp3-tether-element-attached-center > .bp3-popover > .bp3-popover-arrow{
right:50%;
-webkit-transform:translateX(50%);
transform:translateX(50%); }
.bp3-tether-element-attached-top.bp3-tether-target-attached-top > .bp3-popover > .bp3-popover-arrow{
top:-0.3934px; }
.bp3-tether-element-attached-right.bp3-tether-target-attached-right > .bp3-popover > .bp3-popover-arrow{
right:-0.3934px; }
.bp3-tether-element-attached-left.bp3-tether-target-attached-left > .bp3-popover > .bp3-popover-arrow{
left:-0.3934px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-bottom > .bp3-popover > .bp3-popover-arrow{
bottom:-0.3934px; }
.bp3-tether-element-attached-top.bp3-tether-element-attached-left > .bp3-popover{
-webkit-transform-origin:top left;
transform-origin:top left; }
.bp3-tether-element-attached-top.bp3-tether-element-attached-center > .bp3-popover{
-webkit-transform-origin:top center;
transform-origin:top center; }
.bp3-tether-element-attached-top.bp3-tether-element-attached-right > .bp3-popover{
-webkit-transform-origin:top right;
transform-origin:top right; }
.bp3-tether-element-attached-middle.bp3-tether-element-attached-left > .bp3-popover{
-webkit-transform-origin:center left;
transform-origin:center left; }
.bp3-tether-element-attached-middle.bp3-tether-element-attached-center > .bp3-popover{
-webkit-transform-origin:center center;
transform-origin:center center; }
.bp3-tether-element-attached-middle.bp3-tether-element-attached-right > .bp3-popover{
-webkit-transform-origin:center right;
transform-origin:center right; }
.bp3-tether-element-attached-bottom.bp3-tether-element-attached-left > .bp3-popover{
-webkit-transform-origin:bottom left;
transform-origin:bottom left; }
.bp3-tether-element-attached-bottom.bp3-tether-element-attached-center > .bp3-popover{
-webkit-transform-origin:bottom center;
transform-origin:bottom center; }
.bp3-tether-element-attached-bottom.bp3-tether-element-attached-right > .bp3-popover{
-webkit-transform-origin:bottom right;
transform-origin:bottom right; }
.bp3-popover .bp3-popover-content{
background:#ffffff;
color:inherit; }
.bp3-popover .bp3-popover-arrow::before{
-webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2);
box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2); }
.bp3-popover .bp3-popover-arrow-border{
fill:#10161a;
fill-opacity:0.1; }
.bp3-popover .bp3-popover-arrow-fill{
fill:#ffffff; }
.bp3-popover-enter > .bp3-popover, .bp3-popover-appear > .bp3-popover{
-webkit-transform:scale(0.3);
transform:scale(0.3); }
.bp3-popover-enter-active > .bp3-popover, .bp3-popover-appear-active > .bp3-popover{
-webkit-transform:scale(1);
transform:scale(1);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
.bp3-popover-exit > .bp3-popover{
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-popover-exit-active > .bp3-popover{
-webkit-transform:scale(0.3);
transform:scale(0.3);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
.bp3-popover .bp3-popover-content{
border-radius:3px;
position:relative; }
.bp3-popover.bp3-popover-content-sizing .bp3-popover-content{
max-width:350px;
padding:20px; }
.bp3-popover-target + .bp3-overlay .bp3-popover.bp3-popover-content-sizing{
width:350px; }
.bp3-popover.bp3-minimal{
margin:0 !important; }
.bp3-popover.bp3-minimal .bp3-popover-arrow{
display:none; }
.bp3-popover.bp3-minimal.bp3-popover{
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-popover-enter > .bp3-popover.bp3-minimal.bp3-popover, .bp3-popover-appear > .bp3-popover.bp3-minimal.bp3-popover{
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-popover-enter-active > .bp3-popover.bp3-minimal.bp3-popover, .bp3-popover-appear-active > .bp3-popover.bp3-minimal.bp3-popover{
-webkit-transform:scale(1);
transform:scale(1);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-popover-exit > .bp3-popover.bp3-minimal.bp3-popover{
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-popover-exit-active > .bp3-popover.bp3-minimal.bp3-popover{
-webkit-transform:scale(1);
transform:scale(1);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-popover.bp3-dark,
.bp3-dark .bp3-popover{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
.bp3-popover.bp3-dark .bp3-popover-content,
.bp3-dark .bp3-popover .bp3-popover-content{
background:#30404d;
color:inherit; }
.bp3-popover.bp3-dark .bp3-popover-arrow::before,
.bp3-dark .bp3-popover .bp3-popover-arrow::before{
-webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4);
box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4); }
.bp3-popover.bp3-dark .bp3-popover-arrow-border,
.bp3-dark .bp3-popover .bp3-popover-arrow-border{
fill:#10161a;
fill-opacity:0.2; }
.bp3-popover.bp3-dark .bp3-popover-arrow-fill,
.bp3-dark .bp3-popover .bp3-popover-arrow-fill{
fill:#30404d; }
.bp3-popover-arrow::before{
border-radius:2px;
content:"";
display:block;
position:absolute;
-webkit-transform:rotate(45deg);
transform:rotate(45deg); }
.bp3-tether-pinned .bp3-popover-arrow{
display:none; }
.bp3-popover-backdrop{
background:rgba(255, 255, 255, 0); }
.bp3-transition-container{
opacity:1;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
z-index:20; }
.bp3-transition-container.bp3-popover-enter, .bp3-transition-container.bp3-popover-appear{
opacity:0; }
.bp3-transition-container.bp3-popover-enter-active, .bp3-transition-container.bp3-popover-appear-active{
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:opacity;
transition-property:opacity;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-transition-container.bp3-popover-exit{
opacity:1; }
.bp3-transition-container.bp3-popover-exit-active{
opacity:0;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:opacity;
transition-property:opacity;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-transition-container:focus{
outline:none; }
.bp3-transition-container.bp3-popover-leave .bp3-popover-content{
pointer-events:none; }
.bp3-transition-container[data-x-out-of-boundaries]{
display:none; }
span.bp3-popover-target{
display:inline-block; }
.bp3-popover-wrapper.bp3-fill{
width:100%; }
.bp3-portal{
left:0;
position:absolute;
right:0;
top:0; }
@-webkit-keyframes linear-progress-bar-stripes{
from{
background-position:0 0; }
to{
background-position:30px 0; } }
@keyframes linear-progress-bar-stripes{
from{
background-position:0 0; }
to{
background-position:30px 0; } }
.bp3-progress-bar{
background:rgba(92, 112, 128, 0.2);
border-radius:40px;
display:block;
height:8px;
overflow:hidden;
position:relative;
width:100%; }
.bp3-progress-bar .bp3-progress-meter{
background:linear-gradient(-45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%);
background-color:rgba(92, 112, 128, 0.8);
background-size:30px 30px;
border-radius:40px;
height:100%;
position:absolute;
-webkit-transition:width 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:width 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
width:100%; }
.bp3-progress-bar:not(.bp3-no-animation):not(.bp3-no-stripes) .bp3-progress-meter{
animation:linear-progress-bar-stripes 300ms linear infinite reverse; }
.bp3-progress-bar.bp3-no-stripes .bp3-progress-meter{
background-image:none; }
.bp3-dark .bp3-progress-bar{
background:rgba(16, 22, 26, 0.5); }
.bp3-dark .bp3-progress-bar .bp3-progress-meter{
background-color:#8a9ba8; }
.bp3-progress-bar.bp3-intent-primary .bp3-progress-meter{
background-color:#137cbd; }
.bp3-progress-bar.bp3-intent-success .bp3-progress-meter{
background-color:#0f9960; }
.bp3-progress-bar.bp3-intent-warning .bp3-progress-meter{
background-color:#d9822b; }
.bp3-progress-bar.bp3-intent-danger .bp3-progress-meter{
background-color:#db3737; }
@-webkit-keyframes skeleton-glow{
from{
background:rgba(206, 217, 224, 0.2);
border-color:rgba(206, 217, 224, 0.2); }
to{
background:rgba(92, 112, 128, 0.2);
border-color:rgba(92, 112, 128, 0.2); } }
@keyframes skeleton-glow{
from{
background:rgba(206, 217, 224, 0.2);
border-color:rgba(206, 217, 224, 0.2); }
to{
background:rgba(92, 112, 128, 0.2);
border-color:rgba(92, 112, 128, 0.2); } }
.bp3-skeleton{
-webkit-animation:1000ms linear infinite alternate skeleton-glow;
animation:1000ms linear infinite alternate skeleton-glow;
background:rgba(206, 217, 224, 0.2);
background-clip:padding-box !important;
border-color:rgba(206, 217, 224, 0.2) !important;
border-radius:2px;
-webkit-box-shadow:none !important;
box-shadow:none !important;
color:transparent !important;
cursor:default;
pointer-events:none;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none; }
.bp3-skeleton::before, .bp3-skeleton::after,
.bp3-skeleton *{
visibility:hidden !important; }
.bp3-slider{
height:40px;
min-width:150px;
width:100%;
cursor:default;
outline:none;
position:relative;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none; }
.bp3-slider:hover{
cursor:pointer; }
.bp3-slider:active{
cursor:-webkit-grabbing;
cursor:grabbing; }
.bp3-slider.bp3-disabled{
cursor:not-allowed;
opacity:0.5; }
.bp3-slider.bp3-slider-unlabeled{
height:16px; }
.bp3-slider-track,
.bp3-slider-progress{
height:6px;
left:0;
right:0;
top:5px;
position:absolute; }
.bp3-slider-track{
border-radius:3px;
overflow:hidden; }
.bp3-slider-progress{
background:rgba(92, 112, 128, 0.2); }
.bp3-dark .bp3-slider-progress{
background:rgba(16, 22, 26, 0.5); }
.bp3-slider-progress.bp3-intent-primary{
background-color:#137cbd; }
.bp3-slider-progress.bp3-intent-success{
background-color:#0f9960; }
.bp3-slider-progress.bp3-intent-warning{
background-color:#d9822b; }
.bp3-slider-progress.bp3-intent-danger{
background-color:#db3737; }
.bp3-slider-handle{
background-color:#f5f8fa;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
color:#182026;
border-radius:3px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
cursor:pointer;
height:16px;
left:0;
position:absolute;
top:0;
width:16px; }
.bp3-slider-handle:hover{
background-clip:padding-box;
background-color:#ebf1f5;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
.bp3-slider-handle:active, .bp3-slider-handle.bp3-active{
background-color:#d8e1e8;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-slider-handle:disabled, .bp3-slider-handle.bp3-disabled{
background-color:rgba(206, 217, 224, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed;
outline:none; }
.bp3-slider-handle:disabled.bp3-active, .bp3-slider-handle:disabled.bp3-active:hover, .bp3-slider-handle.bp3-disabled.bp3-active, .bp3-slider-handle.bp3-disabled.bp3-active:hover{
background:rgba(206, 217, 224, 0.7); }
.bp3-slider-handle:focus{
z-index:1; }
.bp3-slider-handle:hover{
background-clip:padding-box;
background-color:#ebf1f5;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
cursor:-webkit-grab;
cursor:grab;
z-index:2; }
.bp3-slider-handle.bp3-active{
background-color:#d8e1e8;
background-image:none;
-webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 1px rgba(16, 22, 26, 0.1);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 1px rgba(16, 22, 26, 0.1);
cursor:-webkit-grabbing;
cursor:grabbing; }
.bp3-disabled .bp3-slider-handle{
background:#bfccd6;
-webkit-box-shadow:none;
box-shadow:none;
pointer-events:none; }
.bp3-dark .bp3-slider-handle{
background-color:#394b59;
background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
color:#f5f8fa; }
.bp3-dark .bp3-slider-handle:hover, .bp3-dark .bp3-slider-handle:active, .bp3-dark .bp3-slider-handle.bp3-active{
color:#f5f8fa; }
.bp3-dark .bp3-slider-handle:hover{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-slider-handle:active, .bp3-dark .bp3-slider-handle.bp3-active{
background-color:#202b33;
background-image:none;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-slider-handle:disabled, .bp3-dark .bp3-slider-handle.bp3-disabled{
background-color:rgba(57, 75, 89, 0.5);
background-image:none;
-webkit-box-shadow:none;
box-shadow:none;
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-slider-handle:disabled.bp3-active, .bp3-dark .bp3-slider-handle.bp3-disabled.bp3-active{
background:rgba(57, 75, 89, 0.7); }
.bp3-dark .bp3-slider-handle .bp3-button-spinner .bp3-spinner-head{
background:rgba(16, 22, 26, 0.5);
stroke:#8a9ba8; }
.bp3-dark .bp3-slider-handle, .bp3-dark .bp3-slider-handle:hover{
background-color:#394b59; }
.bp3-dark .bp3-slider-handle.bp3-active{
background-color:#293742; }
.bp3-dark .bp3-disabled .bp3-slider-handle{
background:#5c7080;
border-color:#5c7080;
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-slider-handle .bp3-slider-label{
background:#394b59;
border-radius:3px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
color:#f5f8fa;
margin-left:8px; }
.bp3-dark .bp3-slider-handle .bp3-slider-label{
background:#e1e8ed;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
color:#394b59; }
.bp3-disabled .bp3-slider-handle .bp3-slider-label{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-slider-handle.bp3-start, .bp3-slider-handle.bp3-end{
width:8px; }
.bp3-slider-handle.bp3-start{
border-bottom-right-radius:0;
border-top-right-radius:0; }
.bp3-slider-handle.bp3-end{
border-bottom-left-radius:0;
border-top-left-radius:0;
margin-left:8px; }
.bp3-slider-handle.bp3-end .bp3-slider-label{
margin-left:0; }
.bp3-slider-label{
-webkit-transform:translate(-50%, 20px);
transform:translate(-50%, 20px);
display:inline-block;
font-size:12px;
line-height:1;
padding:2px 5px;
position:absolute;
vertical-align:top; }
.bp3-slider.bp3-vertical{
height:150px;
min-width:40px;
width:40px; }
.bp3-slider.bp3-vertical .bp3-slider-track,
.bp3-slider.bp3-vertical .bp3-slider-progress{
bottom:0;
height:auto;
left:5px;
top:0;
width:6px; }
.bp3-slider.bp3-vertical .bp3-slider-progress{
top:auto; }
.bp3-slider.bp3-vertical .bp3-slider-label{
-webkit-transform:translate(20px, 50%);
transform:translate(20px, 50%); }
.bp3-slider.bp3-vertical .bp3-slider-handle{
top:auto; }
.bp3-slider.bp3-vertical .bp3-slider-handle .bp3-slider-label{
margin-left:0;
margin-top:-8px; }
.bp3-slider.bp3-vertical .bp3-slider-handle.bp3-end, .bp3-slider.bp3-vertical .bp3-slider-handle.bp3-start{
height:8px;
margin-left:0;
width:16px; }
.bp3-slider.bp3-vertical .bp3-slider-handle.bp3-start{
border-bottom-right-radius:3px;
border-top-left-radius:0; }
.bp3-slider.bp3-vertical .bp3-slider-handle.bp3-start .bp3-slider-label{
-webkit-transform:translate(20px);
transform:translate(20px); }
.bp3-slider.bp3-vertical .bp3-slider-handle.bp3-end{
border-bottom-left-radius:0;
border-bottom-right-radius:0;
border-top-left-radius:3px;
margin-bottom:8px; }
@-webkit-keyframes pt-spinner-animation{
from{
-webkit-transform:rotate(0deg);
transform:rotate(0deg); }
to{
-webkit-transform:rotate(360deg);
transform:rotate(360deg); } }
@keyframes pt-spinner-animation{
from{
-webkit-transform:rotate(0deg);
transform:rotate(0deg); }
to{
-webkit-transform:rotate(360deg);
transform:rotate(360deg); } }
.bp3-spinner{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-pack:center;
-ms-flex-pack:center;
justify-content:center;
overflow:visible;
vertical-align:middle; }
.bp3-spinner svg{
display:block; }
.bp3-spinner path{
fill-opacity:0; }
.bp3-spinner .bp3-spinner-head{
stroke:rgba(92, 112, 128, 0.8);
stroke-linecap:round;
-webkit-transform-origin:center;
transform-origin:center;
-webkit-transition:stroke-dashoffset 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:stroke-dashoffset 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-spinner .bp3-spinner-track{
stroke:rgba(92, 112, 128, 0.2); }
.bp3-spinner-animation{
-webkit-animation:pt-spinner-animation 500ms linear infinite;
animation:pt-spinner-animation 500ms linear infinite; }
.bp3-no-spin > .bp3-spinner-animation{
-webkit-animation:none;
animation:none; }
.bp3-dark .bp3-spinner .bp3-spinner-head{
stroke:#8a9ba8; }
.bp3-dark .bp3-spinner .bp3-spinner-track{
stroke:rgba(16, 22, 26, 0.5); }
.bp3-spinner.bp3-intent-primary .bp3-spinner-head{
stroke:#137cbd; }
.bp3-spinner.bp3-intent-success .bp3-spinner-head{
stroke:#0f9960; }
.bp3-spinner.bp3-intent-warning .bp3-spinner-head{
stroke:#d9822b; }
.bp3-spinner.bp3-intent-danger .bp3-spinner-head{
stroke:#db3737; }
.bp3-tabs.bp3-vertical{
display:-webkit-box;
display:-ms-flexbox;
display:flex; }
.bp3-tabs.bp3-vertical > .bp3-tab-list{
-webkit-box-align:start;
-ms-flex-align:start;
align-items:flex-start;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column; }
.bp3-tabs.bp3-vertical > .bp3-tab-list .bp3-tab{
border-radius:3px;
padding:0 10px;
width:100%; }
.bp3-tabs.bp3-vertical > .bp3-tab-list .bp3-tab[aria-selected="true"]{
background-color:rgba(19, 124, 189, 0.2);
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-tabs.bp3-vertical > .bp3-tab-list .bp3-tab-indicator-wrapper .bp3-tab-indicator{
background-color:rgba(19, 124, 189, 0.2);
border-radius:3px;
bottom:0;
height:auto;
left:0;
right:0;
top:0; }
.bp3-tabs.bp3-vertical > .bp3-tab-panel{
margin-top:0;
padding-left:20px; }
.bp3-tab-list{
-webkit-box-align:end;
-ms-flex-align:end;
align-items:flex-end;
border:none;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
list-style:none;
margin:0;
padding:0;
position:relative; }
.bp3-tab-list > *:not(:last-child){
margin-right:20px; }
.bp3-tab{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
color:#182026;
cursor:pointer;
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
font-size:14px;
line-height:30px;
max-width:100%;
position:relative;
vertical-align:top; }
.bp3-tab a{
color:inherit;
display:block;
text-decoration:none; }
.bp3-tab-indicator-wrapper ~ .bp3-tab{
background-color:transparent !important;
-webkit-box-shadow:none !important;
box-shadow:none !important; }
.bp3-tab[aria-disabled="true"]{
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-tab[aria-selected="true"]{
border-radius:0;
-webkit-box-shadow:inset 0 -3px 0 #106ba3;
box-shadow:inset 0 -3px 0 #106ba3; }
.bp3-tab[aria-selected="true"], .bp3-tab:not([aria-disabled="true"]):hover{
color:#106ba3; }
.bp3-tab:focus{
-moz-outline-radius:0; }
.bp3-large > .bp3-tab{
font-size:16px;
line-height:40px; }
.bp3-tab-panel{
margin-top:20px; }
.bp3-tab-panel[aria-hidden="true"]{
display:none; }
.bp3-tab-indicator-wrapper{
left:0;
pointer-events:none;
position:absolute;
top:0;
-webkit-transform:translateX(0), translateY(0);
transform:translateX(0), translateY(0);
-webkit-transition:height, width, -webkit-transform;
transition:height, width, -webkit-transform;
transition:height, transform, width;
transition:height, transform, width, -webkit-transform;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-tab-indicator-wrapper .bp3-tab-indicator{
background-color:#106ba3;
bottom:0;
height:3px;
left:0;
position:absolute;
right:0; }
.bp3-tab-indicator-wrapper.bp3-no-animation{
-webkit-transition:none;
transition:none; }
.bp3-dark .bp3-tab{
color:#f5f8fa; }
.bp3-dark .bp3-tab[aria-disabled="true"]{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-tab[aria-selected="true"]{
-webkit-box-shadow:inset 0 -3px 0 #48aff0;
box-shadow:inset 0 -3px 0 #48aff0; }
.bp3-dark .bp3-tab[aria-selected="true"], .bp3-dark .bp3-tab:not([aria-disabled="true"]):hover{
color:#48aff0; }
.bp3-dark .bp3-tab-indicator{
background-color:#48aff0; }
.bp3-flex-expander{
-webkit-box-flex:1;
-ms-flex:1 1;
flex:1 1; }
.bp3-tag{
display:-webkit-inline-box;
display:-ms-inline-flexbox;
display:inline-flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
background-color:#5c7080;
border:none;
border-radius:3px;
-webkit-box-shadow:none;
box-shadow:none;
color:#f5f8fa;
font-size:12px;
line-height:16px;
max-width:100%;
min-height:20px;
min-width:20px;
padding:2px 6px;
position:relative; }
.bp3-tag.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-interactive:hover{
background-color:rgba(92, 112, 128, 0.85); }
.bp3-tag.bp3-interactive.bp3-active, .bp3-tag.bp3-interactive:active{
background-color:rgba(92, 112, 128, 0.7); }
.bp3-tag > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-tag > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-tag::before,
.bp3-tag > *{
margin-right:4px; }
.bp3-tag:empty::before,
.bp3-tag > :last-child{
margin-right:0; }
.bp3-tag:focus{
outline:rgba(19, 124, 189, 0.6) auto 2px;
outline-offset:0;
-moz-outline-radius:6px; }
.bp3-tag.bp3-round{
border-radius:30px;
padding-left:8px;
padding-right:8px; }
.bp3-dark .bp3-tag{
background-color:#bfccd6;
color:#182026; }
.bp3-dark .bp3-tag.bp3-interactive{
cursor:pointer; }
.bp3-dark .bp3-tag.bp3-interactive:hover{
background-color:rgba(191, 204, 214, 0.85); }
.bp3-dark .bp3-tag.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-interactive:active{
background-color:rgba(191, 204, 214, 0.7); }
.bp3-dark .bp3-tag > .bp3-icon, .bp3-dark .bp3-tag .bp3-icon-standard, .bp3-dark .bp3-tag .bp3-icon-large{
fill:currentColor; }
.bp3-tag > .bp3-icon, .bp3-tag .bp3-icon-standard, .bp3-tag .bp3-icon-large{
fill:#ffffff; }
.bp3-tag.bp3-large,
.bp3-large .bp3-tag{
font-size:14px;
line-height:20px;
min-height:30px;
min-width:30px;
padding:5px 10px; }
.bp3-tag.bp3-large::before,
.bp3-tag.bp3-large > *,
.bp3-large .bp3-tag::before,
.bp3-large .bp3-tag > *{
margin-right:7px; }
.bp3-tag.bp3-large:empty::before,
.bp3-tag.bp3-large > :last-child,
.bp3-large .bp3-tag:empty::before,
.bp3-large .bp3-tag > :last-child{
margin-right:0; }
.bp3-tag.bp3-large.bp3-round,
.bp3-large .bp3-tag.bp3-round{
padding-left:12px;
padding-right:12px; }
.bp3-tag.bp3-intent-primary{
background:#137cbd;
color:#ffffff; }
.bp3-tag.bp3-intent-primary.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-intent-primary.bp3-interactive:hover{
background-color:rgba(19, 124, 189, 0.85); }
.bp3-tag.bp3-intent-primary.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-primary.bp3-interactive:active{
background-color:rgba(19, 124, 189, 0.7); }
.bp3-tag.bp3-intent-success{
background:#0f9960;
color:#ffffff; }
.bp3-tag.bp3-intent-success.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-intent-success.bp3-interactive:hover{
background-color:rgba(15, 153, 96, 0.85); }
.bp3-tag.bp3-intent-success.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-success.bp3-interactive:active{
background-color:rgba(15, 153, 96, 0.7); }
.bp3-tag.bp3-intent-warning{
background:#d9822b;
color:#ffffff; }
.bp3-tag.bp3-intent-warning.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-intent-warning.bp3-interactive:hover{
background-color:rgba(217, 130, 43, 0.85); }
.bp3-tag.bp3-intent-warning.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-warning.bp3-interactive:active{
background-color:rgba(217, 130, 43, 0.7); }
.bp3-tag.bp3-intent-danger{
background:#db3737;
color:#ffffff; }
.bp3-tag.bp3-intent-danger.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-intent-danger.bp3-interactive:hover{
background-color:rgba(219, 55, 55, 0.85); }
.bp3-tag.bp3-intent-danger.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-danger.bp3-interactive:active{
background-color:rgba(219, 55, 55, 0.7); }
.bp3-tag.bp3-fill{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
width:100%; }
.bp3-tag.bp3-minimal > .bp3-icon, .bp3-tag.bp3-minimal .bp3-icon-standard, .bp3-tag.bp3-minimal .bp3-icon-large{
fill:#5c7080; }
.bp3-tag.bp3-minimal:not([class*="bp3-intent-"]){
background-color:rgba(138, 155, 168, 0.2);
color:#182026; }
.bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:hover{
background-color:rgba(92, 112, 128, 0.3); }
.bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive.bp3-active, .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:active{
background-color:rgba(92, 112, 128, 0.4); }
.bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]){
color:#f5f8fa; }
.bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive{
cursor:pointer; }
.bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:hover{
background-color:rgba(191, 204, 214, 0.3); }
.bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:active{
background-color:rgba(191, 204, 214, 0.4); }
.bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]) > .bp3-icon, .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]) .bp3-icon-standard, .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]) .bp3-icon-large{
fill:#a7b6c2; }
.bp3-tag.bp3-minimal.bp3-intent-primary{
background-color:rgba(19, 124, 189, 0.15);
color:#106ba3; }
.bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:hover{
background-color:rgba(19, 124, 189, 0.25); }
.bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:active{
background-color:rgba(19, 124, 189, 0.35); }
.bp3-tag.bp3-minimal.bp3-intent-primary > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-primary .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-primary .bp3-icon-large{
fill:#137cbd; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary{
background-color:rgba(19, 124, 189, 0.25);
color:#48aff0; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive{
cursor:pointer; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:hover{
background-color:rgba(19, 124, 189, 0.35); }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:active{
background-color:rgba(19, 124, 189, 0.45); }
.bp3-tag.bp3-minimal.bp3-intent-success{
background-color:rgba(15, 153, 96, 0.15);
color:#0d8050; }
.bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:hover{
background-color:rgba(15, 153, 96, 0.25); }
.bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:active{
background-color:rgba(15, 153, 96, 0.35); }
.bp3-tag.bp3-minimal.bp3-intent-success > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-success .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-success .bp3-icon-large{
fill:#0f9960; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success{
background-color:rgba(15, 153, 96, 0.25);
color:#3dcc91; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive{
cursor:pointer; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:hover{
background-color:rgba(15, 153, 96, 0.35); }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:active{
background-color:rgba(15, 153, 96, 0.45); }
.bp3-tag.bp3-minimal.bp3-intent-warning{
background-color:rgba(217, 130, 43, 0.15);
color:#bf7326; }
.bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:hover{
background-color:rgba(217, 130, 43, 0.25); }
.bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:active{
background-color:rgba(217, 130, 43, 0.35); }
.bp3-tag.bp3-minimal.bp3-intent-warning > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-warning .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-warning .bp3-icon-large{
fill:#d9822b; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning{
background-color:rgba(217, 130, 43, 0.25);
color:#ffb366; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive{
cursor:pointer; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:hover{
background-color:rgba(217, 130, 43, 0.35); }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:active{
background-color:rgba(217, 130, 43, 0.45); }
.bp3-tag.bp3-minimal.bp3-intent-danger{
background-color:rgba(219, 55, 55, 0.15);
color:#c23030; }
.bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive{
cursor:pointer; }
.bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:hover{
background-color:rgba(219, 55, 55, 0.25); }
.bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:active{
background-color:rgba(219, 55, 55, 0.35); }
.bp3-tag.bp3-minimal.bp3-intent-danger > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-danger .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-danger .bp3-icon-large{
fill:#db3737; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger{
background-color:rgba(219, 55, 55, 0.25);
color:#ff7373; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive{
cursor:pointer; }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:hover{
background-color:rgba(219, 55, 55, 0.35); }
.bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:active{
background-color:rgba(219, 55, 55, 0.45); }
.bp3-tag-remove{
background:none;
border:none;
color:inherit;
cursor:pointer;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
margin-bottom:-2px;
margin-right:-6px !important;
margin-top:-2px;
opacity:0.5;
padding:2px;
padding-left:0; }
.bp3-tag-remove:hover{
background:none;
opacity:0.8;
text-decoration:none; }
.bp3-tag-remove:active{
opacity:1; }
.bp3-tag-remove:empty::before{
font-family:"Icons16", sans-serif;
font-size:16px;
font-style:normal;
font-weight:400;
line-height:1;
-moz-osx-font-smoothing:grayscale;
-webkit-font-smoothing:antialiased;
content:""; }
.bp3-large .bp3-tag-remove{
margin-right:-10px !important;
padding:0 5px 0 0; }
.bp3-large .bp3-tag-remove:empty::before{
font-family:"Icons20", sans-serif;
font-size:20px;
font-style:normal;
font-weight:400;
line-height:1; }
.bp3-tag-input{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:start;
-ms-flex-align:start;
align-items:flex-start;
cursor:text;
height:auto;
line-height:inherit;
min-height:30px;
padding-left:5px;
padding-right:0; }
.bp3-tag-input > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-tag-input > .bp3-tag-input-values{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-tag-input .bp3-tag-input-icon{
color:#5c7080;
margin-left:2px;
margin-right:7px;
margin-top:7px; }
.bp3-tag-input .bp3-tag-input-values{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-webkit-box-orient:horizontal;
-webkit-box-direction:normal;
-ms-flex-direction:row;
flex-direction:row;
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
-ms-flex-item-align:stretch;
align-self:stretch;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
margin-right:7px;
margin-top:5px;
min-width:0; }
.bp3-tag-input .bp3-tag-input-values > *{
-webkit-box-flex:0;
-ms-flex-positive:0;
flex-grow:0;
-ms-flex-negative:0;
flex-shrink:0; }
.bp3-tag-input .bp3-tag-input-values > .bp3-fill{
-webkit-box-flex:1;
-ms-flex-positive:1;
flex-grow:1;
-ms-flex-negative:1;
flex-shrink:1; }
.bp3-tag-input .bp3-tag-input-values::before,
.bp3-tag-input .bp3-tag-input-values > *{
margin-right:5px; }
.bp3-tag-input .bp3-tag-input-values:empty::before,
.bp3-tag-input .bp3-tag-input-values > :last-child{
margin-right:0; }
.bp3-tag-input .bp3-tag-input-values:first-child .bp3-input-ghost:first-child{
padding-left:5px; }
.bp3-tag-input .bp3-tag-input-values > *{
margin-bottom:5px; }
.bp3-tag-input .bp3-tag{
overflow-wrap:break-word; }
.bp3-tag-input .bp3-tag.bp3-active{
outline:rgba(19, 124, 189, 0.6) auto 2px;
outline-offset:0;
-moz-outline-radius:6px; }
.bp3-tag-input .bp3-input-ghost{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
line-height:20px;
width:80px; }
.bp3-tag-input .bp3-input-ghost:disabled, .bp3-tag-input .bp3-input-ghost.bp3-disabled{
cursor:not-allowed; }
.bp3-tag-input .bp3-button,
.bp3-tag-input .bp3-spinner{
margin:3px;
margin-left:0; }
.bp3-tag-input .bp3-button{
min-height:24px;
min-width:24px;
padding:0 7px; }
.bp3-tag-input.bp3-large{
height:auto;
min-height:40px; }
.bp3-tag-input.bp3-large::before,
.bp3-tag-input.bp3-large > *{
margin-right:10px; }
.bp3-tag-input.bp3-large:empty::before,
.bp3-tag-input.bp3-large > :last-child{
margin-right:0; }
.bp3-tag-input.bp3-large .bp3-tag-input-icon{
margin-left:5px;
margin-top:10px; }
.bp3-tag-input.bp3-large .bp3-input-ghost{
line-height:30px; }
.bp3-tag-input.bp3-large .bp3-button{
min-height:30px;
min-width:30px;
padding:5px 10px;
margin:5px;
margin-left:0; }
.bp3-tag-input.bp3-large .bp3-spinner{
margin:8px;
margin-left:0; }
.bp3-tag-input.bp3-active{
background-color:#ffffff;
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-tag-input.bp3-active.bp3-intent-primary{
-webkit-box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-tag-input.bp3-active.bp3-intent-success{
-webkit-box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-tag-input.bp3-active.bp3-intent-warning{
-webkit-box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-tag-input.bp3-active.bp3-intent-danger{
-webkit-box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
.bp3-dark .bp3-tag-input .bp3-tag-input-icon, .bp3-tag-input.bp3-dark .bp3-tag-input-icon{
color:#a7b6c2; }
.bp3-dark .bp3-tag-input .bp3-input-ghost, .bp3-tag-input.bp3-dark .bp3-input-ghost{
color:#f5f8fa; }
.bp3-dark .bp3-tag-input .bp3-input-ghost::-webkit-input-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::-webkit-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-tag-input .bp3-input-ghost::-moz-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::-moz-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-tag-input .bp3-input-ghost:-ms-input-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost:-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-tag-input .bp3-input-ghost::-ms-input-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::-ms-input-placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-tag-input .bp3-input-ghost::placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::placeholder{
color:rgba(167, 182, 194, 0.6); }
.bp3-dark .bp3-tag-input.bp3-active, .bp3-tag-input.bp3-dark.bp3-active{
background-color:rgba(16, 22, 26, 0.3);
-webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-tag-input.bp3-active.bp3-intent-primary, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-primary{
-webkit-box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-tag-input.bp3-active.bp3-intent-success, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-success{
-webkit-box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-tag-input.bp3-active.bp3-intent-warning, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-warning{
-webkit-box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-dark .bp3-tag-input.bp3-active.bp3-intent-danger, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-danger{
-webkit-box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
.bp3-input-ghost{
background:none;
border:none;
-webkit-box-shadow:none;
box-shadow:none;
padding:0; }
.bp3-input-ghost::-webkit-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input-ghost::-moz-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input-ghost:-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input-ghost::-ms-input-placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input-ghost::placeholder{
color:rgba(92, 112, 128, 0.6);
opacity:1; }
.bp3-input-ghost:focus{
outline:none !important; }
.bp3-toast{
-webkit-box-align:start;
-ms-flex-align:start;
align-items:flex-start;
background-color:#ffffff;
border-radius:3px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
display:-webkit-box;
display:-ms-flexbox;
display:flex;
margin:20px 0 0;
max-width:500px;
min-width:300px;
pointer-events:all;
position:relative !important; }
.bp3-toast.bp3-toast-enter, .bp3-toast.bp3-toast-appear{
-webkit-transform:translateY(-40px);
transform:translateY(-40px); }
.bp3-toast.bp3-toast-enter-active, .bp3-toast.bp3-toast-appear-active{
-webkit-transform:translateY(0);
transform:translateY(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
.bp3-toast.bp3-toast-enter ~ .bp3-toast, .bp3-toast.bp3-toast-appear ~ .bp3-toast{
-webkit-transform:translateY(-40px);
transform:translateY(-40px); }
.bp3-toast.bp3-toast-enter-active ~ .bp3-toast, .bp3-toast.bp3-toast-appear-active ~ .bp3-toast{
-webkit-transform:translateY(0);
transform:translateY(0);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
.bp3-toast.bp3-toast-exit{
opacity:1;
-webkit-filter:blur(0);
filter:blur(0); }
.bp3-toast.bp3-toast-exit-active{
opacity:0;
-webkit-filter:blur(10px);
filter:blur(10px);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:300ms;
transition-duration:300ms;
-webkit-transition-property:opacity, -webkit-filter;
transition-property:opacity, -webkit-filter;
transition-property:opacity, filter;
transition-property:opacity, filter, -webkit-filter;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-toast.bp3-toast-exit ~ .bp3-toast{
-webkit-transform:translateY(0);
transform:translateY(0); }
.bp3-toast.bp3-toast-exit-active ~ .bp3-toast{
-webkit-transform:translateY(-40px);
transform:translateY(-40px);
-webkit-transition-delay:50ms;
transition-delay:50ms;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-toast .bp3-button-group{
-webkit-box-flex:0;
-ms-flex:0 0 auto;
flex:0 0 auto;
padding:5px;
padding-left:0; }
.bp3-toast > .bp3-icon{
color:#5c7080;
margin:12px;
margin-right:0; }
.bp3-toast.bp3-dark,
.bp3-dark .bp3-toast{
background-color:#394b59;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
.bp3-toast.bp3-dark > .bp3-icon,
.bp3-dark .bp3-toast > .bp3-icon{
color:#a7b6c2; }
.bp3-toast[class*="bp3-intent-"] a{
color:rgba(255, 255, 255, 0.7); }
.bp3-toast[class*="bp3-intent-"] a:hover{
color:#ffffff; }
.bp3-toast[class*="bp3-intent-"] > .bp3-icon{
color:#ffffff; }
.bp3-toast[class*="bp3-intent-"] .bp3-button, .bp3-toast[class*="bp3-intent-"] .bp3-button::before,
.bp3-toast[class*="bp3-intent-"] .bp3-button .bp3-icon, .bp3-toast[class*="bp3-intent-"] .bp3-button:active{
color:rgba(255, 255, 255, 0.7) !important; }
.bp3-toast[class*="bp3-intent-"] .bp3-button:focus{
outline-color:rgba(255, 255, 255, 0.5); }
.bp3-toast[class*="bp3-intent-"] .bp3-button:hover{
background-color:rgba(255, 255, 255, 0.15) !important;
color:#ffffff !important; }
.bp3-toast[class*="bp3-intent-"] .bp3-button:active{
background-color:rgba(255, 255, 255, 0.3) !important;
color:#ffffff !important; }
.bp3-toast[class*="bp3-intent-"] .bp3-button::after{
background:rgba(255, 255, 255, 0.3) !important; }
.bp3-toast.bp3-intent-primary{
background-color:#137cbd;
color:#ffffff; }
.bp3-toast.bp3-intent-success{
background-color:#0f9960;
color:#ffffff; }
.bp3-toast.bp3-intent-warning{
background-color:#d9822b;
color:#ffffff; }
.bp3-toast.bp3-intent-danger{
background-color:#db3737;
color:#ffffff; }
.bp3-toast-message{
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
padding:11px;
word-break:break-word; }
.bp3-toast-container{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box !important;
display:-ms-flexbox !important;
display:flex !important;
-webkit-box-orient:vertical;
-webkit-box-direction:normal;
-ms-flex-direction:column;
flex-direction:column;
left:0;
overflow:hidden;
padding:0 20px 20px;
pointer-events:none;
right:0;
z-index:40; }
.bp3-toast-container.bp3-toast-container-in-portal{
position:fixed; }
.bp3-toast-container.bp3-toast-container-inline{
position:absolute; }
.bp3-toast-container.bp3-toast-container-top{
top:0; }
.bp3-toast-container.bp3-toast-container-bottom{
bottom:0;
-webkit-box-orient:vertical;
-webkit-box-direction:reverse;
-ms-flex-direction:column-reverse;
flex-direction:column-reverse;
top:auto; }
.bp3-toast-container.bp3-toast-container-left{
-webkit-box-align:start;
-ms-flex-align:start;
align-items:flex-start; }
.bp3-toast-container.bp3-toast-container-right{
-webkit-box-align:end;
-ms-flex-align:end;
align-items:flex-end; }
.bp3-toast-container-bottom .bp3-toast.bp3-toast-enter:not(.bp3-toast-enter-active),
.bp3-toast-container-bottom .bp3-toast.bp3-toast-enter:not(.bp3-toast-enter-active) ~ .bp3-toast, .bp3-toast-container-bottom .bp3-toast.bp3-toast-appear:not(.bp3-toast-appear-active),
.bp3-toast-container-bottom .bp3-toast.bp3-toast-appear:not(.bp3-toast-appear-active) ~ .bp3-toast,
.bp3-toast-container-bottom .bp3-toast.bp3-toast-exit-active ~ .bp3-toast,
.bp3-toast-container-bottom .bp3-toast.bp3-toast-leave-active ~ .bp3-toast{
-webkit-transform:translateY(60px);
transform:translateY(60px); }
.bp3-tooltip{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-tooltip .bp3-popover-arrow{
height:22px;
position:absolute;
width:22px; }
.bp3-tooltip .bp3-popover-arrow::before{
height:14px;
margin:4px;
width:14px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-tooltip{
margin-bottom:11px;
margin-top:-11px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-tooltip > .bp3-popover-arrow{
bottom:-8px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-tooltip > .bp3-popover-arrow svg{
-webkit-transform:rotate(-90deg);
transform:rotate(-90deg); }
.bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-tooltip{
margin-left:11px; }
.bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-tooltip > .bp3-popover-arrow{
left:-8px; }
.bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-tooltip > .bp3-popover-arrow svg{
-webkit-transform:rotate(0);
transform:rotate(0); }
.bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-tooltip{
margin-top:11px; }
.bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-tooltip > .bp3-popover-arrow{
top:-8px; }
.bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-tooltip > .bp3-popover-arrow svg{
-webkit-transform:rotate(90deg);
transform:rotate(90deg); }
.bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-tooltip{
margin-left:-11px;
margin-right:11px; }
.bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-tooltip > .bp3-popover-arrow{
right:-8px; }
.bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-tooltip > .bp3-popover-arrow svg{
-webkit-transform:rotate(180deg);
transform:rotate(180deg); }
.bp3-tether-element-attached-middle > .bp3-tooltip > .bp3-popover-arrow{
top:50%;
-webkit-transform:translateY(-50%);
transform:translateY(-50%); }
.bp3-tether-element-attached-center > .bp3-tooltip > .bp3-popover-arrow{
right:50%;
-webkit-transform:translateX(50%);
transform:translateX(50%); }
.bp3-tether-element-attached-top.bp3-tether-target-attached-top > .bp3-tooltip > .bp3-popover-arrow{
top:-0.22183px; }
.bp3-tether-element-attached-right.bp3-tether-target-attached-right > .bp3-tooltip > .bp3-popover-arrow{
right:-0.22183px; }
.bp3-tether-element-attached-left.bp3-tether-target-attached-left > .bp3-tooltip > .bp3-popover-arrow{
left:-0.22183px; }
.bp3-tether-element-attached-bottom.bp3-tether-target-attached-bottom > .bp3-tooltip > .bp3-popover-arrow{
bottom:-0.22183px; }
.bp3-tether-element-attached-top.bp3-tether-element-attached-left > .bp3-tooltip{
-webkit-transform-origin:top left;
transform-origin:top left; }
.bp3-tether-element-attached-top.bp3-tether-element-attached-center > .bp3-tooltip{
-webkit-transform-origin:top center;
transform-origin:top center; }
.bp3-tether-element-attached-top.bp3-tether-element-attached-right > .bp3-tooltip{
-webkit-transform-origin:top right;
transform-origin:top right; }
.bp3-tether-element-attached-middle.bp3-tether-element-attached-left > .bp3-tooltip{
-webkit-transform-origin:center left;
transform-origin:center left; }
.bp3-tether-element-attached-middle.bp3-tether-element-attached-center > .bp3-tooltip{
-webkit-transform-origin:center center;
transform-origin:center center; }
.bp3-tether-element-attached-middle.bp3-tether-element-attached-right > .bp3-tooltip{
-webkit-transform-origin:center right;
transform-origin:center right; }
.bp3-tether-element-attached-bottom.bp3-tether-element-attached-left > .bp3-tooltip{
-webkit-transform-origin:bottom left;
transform-origin:bottom left; }
.bp3-tether-element-attached-bottom.bp3-tether-element-attached-center > .bp3-tooltip{
-webkit-transform-origin:bottom center;
transform-origin:bottom center; }
.bp3-tether-element-attached-bottom.bp3-tether-element-attached-right > .bp3-tooltip{
-webkit-transform-origin:bottom right;
transform-origin:bottom right; }
.bp3-tooltip .bp3-popover-content{
background:#394b59;
color:#f5f8fa; }
.bp3-tooltip .bp3-popover-arrow::before{
-webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2);
box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2); }
.bp3-tooltip .bp3-popover-arrow-border{
fill:#10161a;
fill-opacity:0.1; }
.bp3-tooltip .bp3-popover-arrow-fill{
fill:#394b59; }
.bp3-popover-enter > .bp3-tooltip, .bp3-popover-appear > .bp3-tooltip{
-webkit-transform:scale(0.8);
transform:scale(0.8); }
.bp3-popover-enter-active > .bp3-tooltip, .bp3-popover-appear-active > .bp3-tooltip{
-webkit-transform:scale(1);
transform:scale(1);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-popover-exit > .bp3-tooltip{
-webkit-transform:scale(1);
transform:scale(1); }
.bp3-popover-exit-active > .bp3-tooltip{
-webkit-transform:scale(0.8);
transform:scale(0.8);
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:100ms;
transition-duration:100ms;
-webkit-transition-property:-webkit-transform;
transition-property:-webkit-transform;
transition-property:transform;
transition-property:transform, -webkit-transform;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-tooltip .bp3-popover-content{
padding:10px 12px; }
.bp3-tooltip.bp3-dark,
.bp3-dark .bp3-tooltip{
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
.bp3-tooltip.bp3-dark .bp3-popover-content,
.bp3-dark .bp3-tooltip .bp3-popover-content{
background:#e1e8ed;
color:#394b59; }
.bp3-tooltip.bp3-dark .bp3-popover-arrow::before,
.bp3-dark .bp3-tooltip .bp3-popover-arrow::before{
-webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4);
box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4); }
.bp3-tooltip.bp3-dark .bp3-popover-arrow-border,
.bp3-dark .bp3-tooltip .bp3-popover-arrow-border{
fill:#10161a;
fill-opacity:0.2; }
.bp3-tooltip.bp3-dark .bp3-popover-arrow-fill,
.bp3-dark .bp3-tooltip .bp3-popover-arrow-fill{
fill:#e1e8ed; }
.bp3-tooltip.bp3-intent-primary .bp3-popover-content{
background:#137cbd;
color:#ffffff; }
.bp3-tooltip.bp3-intent-primary .bp3-popover-arrow-fill{
fill:#137cbd; }
.bp3-tooltip.bp3-intent-success .bp3-popover-content{
background:#0f9960;
color:#ffffff; }
.bp3-tooltip.bp3-intent-success .bp3-popover-arrow-fill{
fill:#0f9960; }
.bp3-tooltip.bp3-intent-warning .bp3-popover-content{
background:#d9822b;
color:#ffffff; }
.bp3-tooltip.bp3-intent-warning .bp3-popover-arrow-fill{
fill:#d9822b; }
.bp3-tooltip.bp3-intent-danger .bp3-popover-content{
background:#db3737;
color:#ffffff; }
.bp3-tooltip.bp3-intent-danger .bp3-popover-arrow-fill{
fill:#db3737; }
.bp3-tooltip-indicator{
border-bottom:dotted 1px;
cursor:help; }
.bp3-tree .bp3-icon, .bp3-tree .bp3-icon-standard, .bp3-tree .bp3-icon-large{
color:#5c7080; }
.bp3-tree .bp3-icon.bp3-intent-primary, .bp3-tree .bp3-icon-standard.bp3-intent-primary, .bp3-tree .bp3-icon-large.bp3-intent-primary{
color:#137cbd; }
.bp3-tree .bp3-icon.bp3-intent-success, .bp3-tree .bp3-icon-standard.bp3-intent-success, .bp3-tree .bp3-icon-large.bp3-intent-success{
color:#0f9960; }
.bp3-tree .bp3-icon.bp3-intent-warning, .bp3-tree .bp3-icon-standard.bp3-intent-warning, .bp3-tree .bp3-icon-large.bp3-intent-warning{
color:#d9822b; }
.bp3-tree .bp3-icon.bp3-intent-danger, .bp3-tree .bp3-icon-standard.bp3-intent-danger, .bp3-tree .bp3-icon-large.bp3-intent-danger{
color:#db3737; }
.bp3-tree-node-list{
list-style:none;
margin:0;
padding-left:0; }
.bp3-tree-root{
background-color:transparent;
cursor:default;
padding-left:0;
position:relative; }
.bp3-tree-node-content-0{
padding-left:0px; }
.bp3-tree-node-content-1{
padding-left:23px; }
.bp3-tree-node-content-2{
padding-left:46px; }
.bp3-tree-node-content-3{
padding-left:69px; }
.bp3-tree-node-content-4{
padding-left:92px; }
.bp3-tree-node-content-5{
padding-left:115px; }
.bp3-tree-node-content-6{
padding-left:138px; }
.bp3-tree-node-content-7{
padding-left:161px; }
.bp3-tree-node-content-8{
padding-left:184px; }
.bp3-tree-node-content-9{
padding-left:207px; }
.bp3-tree-node-content-10{
padding-left:230px; }
.bp3-tree-node-content-11{
padding-left:253px; }
.bp3-tree-node-content-12{
padding-left:276px; }
.bp3-tree-node-content-13{
padding-left:299px; }
.bp3-tree-node-content-14{
padding-left:322px; }
.bp3-tree-node-content-15{
padding-left:345px; }
.bp3-tree-node-content-16{
padding-left:368px; }
.bp3-tree-node-content-17{
padding-left:391px; }
.bp3-tree-node-content-18{
padding-left:414px; }
.bp3-tree-node-content-19{
padding-left:437px; }
.bp3-tree-node-content-20{
padding-left:460px; }
.bp3-tree-node-content{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex;
height:30px;
padding-right:5px;
width:100%; }
.bp3-tree-node-content:hover{
background-color:rgba(191, 204, 214, 0.4); }
.bp3-tree-node-caret,
.bp3-tree-node-caret-none{
min-width:30px; }
.bp3-tree-node-caret{
color:#5c7080;
cursor:pointer;
padding:7px;
-webkit-transform:rotate(0deg);
transform:rotate(0deg);
-webkit-transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-tree-node-caret:hover{
color:#182026; }
.bp3-dark .bp3-tree-node-caret{
color:#a7b6c2; }
.bp3-dark .bp3-tree-node-caret:hover{
color:#f5f8fa; }
.bp3-tree-node-caret.bp3-tree-node-caret-open{
-webkit-transform:rotate(90deg);
transform:rotate(90deg); }
.bp3-tree-node-caret.bp3-icon-standard::before{
content:""; }
.bp3-tree-node-icon{
margin-right:7px;
position:relative; }
.bp3-tree-node-label{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
word-wrap:normal;
-webkit-box-flex:1;
-ms-flex:1 1 auto;
flex:1 1 auto;
position:relative;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none; }
.bp3-tree-node-label span{
display:inline; }
.bp3-tree-node-secondary-label{
padding:0 5px;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none; }
.bp3-tree-node-secondary-label .bp3-popover-wrapper,
.bp3-tree-node-secondary-label .bp3-popover-target{
-webkit-box-align:center;
-ms-flex-align:center;
align-items:center;
display:-webkit-box;
display:-ms-flexbox;
display:flex; }
.bp3-tree-node.bp3-disabled .bp3-tree-node-content{
background-color:inherit;
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-tree-node.bp3-disabled .bp3-tree-node-caret,
.bp3-tree-node.bp3-disabled .bp3-tree-node-icon{
color:rgba(92, 112, 128, 0.6);
cursor:not-allowed; }
.bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content{
background-color:#137cbd; }
.bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content,
.bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-icon, .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-icon-standard, .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-icon-large{
color:#ffffff; }
.bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-tree-node-caret::before{
color:rgba(255, 255, 255, 0.7); }
.bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-tree-node-caret:hover::before{
color:#ffffff; }
.bp3-dark .bp3-tree-node-content:hover{
background-color:rgba(92, 112, 128, 0.3); }
.bp3-dark .bp3-tree .bp3-icon, .bp3-dark .bp3-tree .bp3-icon-standard, .bp3-dark .bp3-tree .bp3-icon-large{
color:#a7b6c2; }
.bp3-dark .bp3-tree .bp3-icon.bp3-intent-primary, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-primary, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-primary{
color:#137cbd; }
.bp3-dark .bp3-tree .bp3-icon.bp3-intent-success, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-success, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-success{
color:#0f9960; }
.bp3-dark .bp3-tree .bp3-icon.bp3-intent-warning, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-warning, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-warning{
color:#d9822b; }
.bp3-dark .bp3-tree .bp3-icon.bp3-intent-danger, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-danger, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-danger{
color:#db3737; }
.bp3-dark .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content{
background-color:#137cbd; }
.bp3-omnibar{
-webkit-filter:blur(0);
filter:blur(0);
opacity:1;
background-color:#ffffff;
border-radius:3px;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
left:calc(50% - 250px);
top:20vh;
width:500px;
z-index:21; }
.bp3-omnibar.bp3-overlay-enter, .bp3-omnibar.bp3-overlay-appear{
-webkit-filter:blur(20px);
filter:blur(20px);
opacity:0.2; }
.bp3-omnibar.bp3-overlay-enter-active, .bp3-omnibar.bp3-overlay-appear-active{
-webkit-filter:blur(0);
filter:blur(0);
opacity:1;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:opacity, -webkit-filter;
transition-property:opacity, -webkit-filter;
transition-property:filter, opacity;
transition-property:filter, opacity, -webkit-filter;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-omnibar.bp3-overlay-exit{
-webkit-filter:blur(0);
filter:blur(0);
opacity:1; }
.bp3-omnibar.bp3-overlay-exit-active{
-webkit-filter:blur(20px);
filter:blur(20px);
opacity:0.2;
-webkit-transition-delay:0;
transition-delay:0;
-webkit-transition-duration:200ms;
transition-duration:200ms;
-webkit-transition-property:opacity, -webkit-filter;
transition-property:opacity, -webkit-filter;
transition-property:filter, opacity;
transition-property:filter, opacity, -webkit-filter;
-webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
.bp3-omnibar .bp3-input{
background-color:transparent;
border-radius:0; }
.bp3-omnibar .bp3-input, .bp3-omnibar .bp3-input:focus{
-webkit-box-shadow:none;
box-shadow:none; }
.bp3-omnibar .bp3-menu{
background-color:transparent;
border-radius:0;
-webkit-box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
max-height:calc(60vh - 40px);
overflow:auto; }
.bp3-omnibar .bp3-menu:empty{
display:none; }
.bp3-dark .bp3-omnibar, .bp3-omnibar.bp3-dark{
background-color:#30404d;
-webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4); }
.bp3-omnibar-overlay .bp3-overlay-backdrop{
background-color:rgba(16, 22, 26, 0.2); }
.bp3-select-popover .bp3-popover-content{
padding:5px; }
.bp3-select-popover .bp3-input-group{
margin-bottom:0; }
.bp3-select-popover .bp3-menu{
max-height:300px;
max-width:400px;
overflow:auto;
padding:0; }
.bp3-select-popover .bp3-menu:not(:first-child){
padding-top:5px; }
.bp3-multi-select{
min-width:150px; }
.bp3-multi-select-popover .bp3-menu{
max-height:300px;
max-width:400px;
overflow:auto; }
.bp3-select-popover .bp3-popover-content{
padding:5px; }
.bp3-select-popover .bp3-input-group{
margin-bottom:0; }
.bp3-select-popover .bp3-menu{
max-height:300px;
max-width:400px;
overflow:auto;
padding:0; }
.bp3-select-popover .bp3-menu:not(:first-child){
padding-top:5px; }
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/* This file was auto-generated by ensureUiComponents() in @jupyterlab/buildutils */
/**
* (DEPRECATED) Support for consuming icons as CSS background images
*/
/* Icons urls */
:root {
--jp-icon-add: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-bug: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yMCA4aC0yLjgxYy0uNDUtLjc4LTEuMDctMS40NS0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-build: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE0LjkgMTcuNDVDMTYuMjUgMTcuNDUgMTcuMzUgMTYuMzUgMTcuMzUgMTVDMTcuMzUgMTMuNjUgMTYuMjUgMTIuNTUgMTQuOSAxMi41NUMxMy41NCAxMi41NSAxMi40NSAxMy42NSAxMi40NSAxNUMxMi40NSAxNi4zNSAxMy41NCAxNy40NSAxNC45IDE3LjQ1Wk0yMC4xIDE1LjY4TDIxLjU4IDE2Ljg0QzIxLjcxIDE2Ljk1IDIxLjc1IDE3LjEzIDIxLjY2IDE3LjI5TDIwLjI2IDE5LjcxQzIwLjE3IDE5Ljg2IDIwIDE5LjkyIDE5LjgzIDE5Ljg2TDE4LjA5IDE5LjE2QzE3LjczIDE5LjQ0IDE3LjMzIDE5LjY3IDE2LjkxIDE5Ljg1TDE2LjY0IDIxLjdDMTYuNjIgMjEuODcgMTYuNDcgMjIgMTYuMyAyMkgxMy41QzEzLjMyIDIyIDEzLjE4IDIxLjg3IDEzLjE1IDIxLjdMMTIuODkgMTkuODVDMTIuNDYgMTkuNjcgMTIuMDcgMTkuNDQgMTEuNzEgMTkuMTZMOS45NjAwMiAxOS44NkM5LjgxMDAyIDE5LjkyIDkuNjIwMDIgMTkuODYgOS41NDAwMiAxOS43MUw4LjE0MDAyIDE3LjI5QzguMDUwMDIgMTcuMTMgOC4wOTAwMiAxNi45NSA4LjIyMDAyIDE2Ljg0TDkuNzAwMDIgMTUuNjhMOS42NTAwMSAxNUw5LjcwMDAyIDE0LjMxTDguMjIwMDIgMTMuMTZDOC4wOTAwMiAxMy4wNSA4LjA1MDAyIDEyLjg2IDguMTQwMDIgMTIuNzFMOS41NDAwMiAxMC4yOUM5LjYyMDAyIDEwLjEzIDkuODEwMDIgMTAuMDcgOS45NjAwMiAxMC4xM0wxMS43MSAxMC44NEMxMi4wNyAxMC41NiAxMi40NiAxMC4zMiAxMi44OSAxMC4xNUwxMy4xNSA4LjI4OTk4QzEzLjE4IDguMTI5OTggMTMuMzIgNy45OTk5OCAxMy41IDcuOTk5OThIMTYuM0MxNi40NyA3Ljk5OTk4IDE2LjYyIDguMTI5OTggMTYuNjQgOC4yODk5OEwxNi45MSAxMC4xNUMxNy4zMyAxMC4zMiAxNy43MyAxMC41NiAxOC4wOSAxMC44NEwxOS44MyAxMC4xM0MyMCAxMC4wNyAyMC4xNyAxMC4xMyAyMC4yNiAxMC4yOUwyMS42NiAxMi43MUMyMS43NSAxMi44NiAyMS43MSAxMy4wNSAyMS41OCAxMy4xNkwyMC4xIDE0LjMxTDIwLjE1IDE1TDIwLjEgMTUuNjhaIi8+CiAgICA8cGF0aCBkPSJNNy4zMjk2NiA3LjQ0NDU0QzguMDgzMSA3LjAwOTU0IDguMzM5MzIgNi4wNTMzMiA3LjkwNDMyIDUuMjk5ODhDNy40NjkzMiA0LjU0NjQzIDYuNTA4MSA0LjI4MTU2IDUuNzU0NjYgNC43MTY1NkM1LjM5MTc2IDQuOTI2MDggNS4xMjY5NSA1LjI3MTE4IDUuMDE4NDkgNS42NzU5NEM0LjkxMDA0IDYuMDgwNzEgNC45NjY4MiA2LjUxMTk4IDUuMTc2MzQgNi44NzQ4OEM1LjYxMTM0IDcuNjI4MzIgNi41NzYyMiA3Ljg3OTU0IDcuMzI5NjYgNy40NDQ1NFpNOS42NTcxOCA0Ljc5NTkzTDEwLjg2NzIgNC45NTE3OUMxMC45NjI4IDQuOTc3NDEgMTEuMDQwMiA1LjA3MTMzIDExLjAzODIgNS4xODc5M0wxMS4wMzg4IDYuOTg4OTNDMTEuMDQ1NSA3LjEwMDU0IDEwLjk2MTYgNy4xOTUxOCAxMC44NTUgNy4yMTA1NEw5LjY2MDAxIDcuMzgwODNMOS4yMzkxNSA4LjEzMTg4TDkuNjY5NjEgOS4yNTc0NUM5LjcwNzI5IDkuMzYyNzEgOS42NjkzNCA5LjQ3Njk5IDkuNTc0MDggOS41MzE5OUw4LjAxNTIzIDEwLjQzMkM3LjkxMTMxIDEwLjQ5MiA3Ljc5MzM3IDEwLjQ2NzcgNy43MjEwNSAxMC4zODI0TDYuOTg3NDggOS40MzE4OEw2LjEwOTMxIDkuNDMwODNMNS4zNDcwNCAxMC4zOTA1QzUuMjg5MDkgMTAuNDcwMiA1LjE3MzgzIDEwLjQ5MDUgNS4wNzE4NyAxMC40MzM5TDMuNTEyNDUgOS41MzI5M0MzLjQxMDQ5IDkuNDc2MzMgMy4zNzY0NyA5LjM1NzQxIDMuNDEwNzUgOS4yNTY3OUwzLjg2MzQ3IDguMTQwOTNMMy42MTc0OSA3Ljc3NDg4TDMuNDIzNDcgNy4zNzg4M0wyLjIzMDc1IDcuMjEyOTdDMi4xMjY0NyA3LjE5MjM1IDIuMDQwNDkgNy4xMDM0MiAyLjA0MjQ1IDYuOTg2ODJMMi4wNDE4NyA1LjE4NTgyQzIuMDQzODMgNS4wNjkyMiAyLjExOTA5IDQuOTc5NTggMi4yMTcwNCA0Ljk2OTIyTDMuNDIwNjUgNC43OTM5M0wzLjg2NzQ5IDQuMDI3ODhMMy40MTEwNSAyLjkxNzMxQzMuMzczMzcgMi44MTIwNCAzLjQxMTMxIDIuNjk3NzYgMy41MTUyMyAyLjYzNzc2TDUuMDc0MDggMS43Mzc3NkM1LjE2OTM0IDEuNjgyNzYgNS4yODcyOSAxLjcwNzA0IDUuMzU5NjEgMS43OTIzMUw2LjExOTE1IDIuNzI3ODhMNi45ODAwMSAyLjczODkzTDcuNzI0OTYgMS43ODkyMkM3Ljc5MTU2IDEuNzA0NTggNy45MTU0OCAxLjY3OTIyIDguMDA4NzkgMS43NDA4Mkw5LjU2ODIxIDIuNjQxODJDOS42NzAxNyAyLjY5ODQyIDkuNzEyODUgMi44MTIzNCA5LjY4NzIzIDIuOTA3OTdMOS4yMTcxOCA0LjAzMzgzTDkuNDYzMTYgNC4zOTk4OEw5LjY1NzE4IDQuNzk1OTNaIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iOS45LDEzLjYgMy42LDcuNCA0LjQsNi42IDkuOSwxMi4yIDE1LjQsNi43IDE2LjEsNy40ICIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNS45TDksOS43bDMuOC0zLjhsMS4yLDEuMmwtNC45LDVsLTQuOS01TDUuMiw1Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNy41TDksMTEuMmwzLjgtMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-caret-left: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik0xMC44LDEyLjhMNy4xLDlsMy44LTMuOGwwLDcuNkgxMC44eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-caret-right: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik03LjIsNS4yTDEwLjksOWwtMy44LDMuOFY1LjJINy4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-caret-up-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMTUuNCwxMy4zIDkuOSw3LjcgNC40LDEzLjIgMy42LDEyLjUgOS45LDYuMyAxNi4xLDEyLjYgIi8+Cgk8L2c+Cjwvc3ZnPgo=);
--jp-icon-caret-up: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik01LjIsMTAuNUw5LDYuOGwzLjgsMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-case-sensitive: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWFjY2VudDIiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTcuNiw4aDAuOWwzLjUsOGgtMS4xTDEwLDE0SDZsLTAuOSwySDRMNy42LDh6IE04LDkuMUw2LjQsMTNoMy4yTDgsOS4xeiIvPgogICAgPHBhdGggZD0iTTE2LjYsOS44Yy0wLjIsMC4xLTAuNCwwLjEtMC43LDAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4yYy0wLjEtMC4xLTAuMi0wLjQtMC4yLTAuNyBjLTAuMywwLjMtMC42LDAuNS0wLjksMC43Yy0wLjMsMC4xLTAuNywwLjItMS4xLDAuMmMtMC4zLDAtMC41LDAtMC43LTAuMWMtMC4yLTAuMS0wLjQtMC4yLTAuNi0wLjNjLTAuMi0wLjEtMC4zLTAuMy0wLjQtMC41IGMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjdjMC0wLjMsMC4xLTAuNiwwLjItMC44YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC41QzEyLDcsMTIuMiw2LjksMTIuNSw2LjhjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjIgYzAuMy0wLjEsMC41LTAuMSwwLjctMC4xYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRjMC0xLTEuMS0xLTEuMy0xIGMtMC40LDAtMS40LDAtMS40LDEuMmgtMC45YzAtMC40LDAuMS0wLjcsMC4yLTFjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjZjMC4yLTAuMiwwLjUtMC4zLDAuOC0wLjNDMTMuMyw0LDEzLjYsNCwxMy45LDQgYzAuMywwLDAuNSwwLDAuOCwwLjFjMC4zLDAsMC41LDAuMSwwLjcsMC4yYzAuMiwwLjEsMC40LDAuMywwLjUsMC41QzE2LDUsMTYsNS4yLDE2LDUuNnYyLjljMCwwLjIsMCwwLjQsMCwwLjUgYzAsMC4xLDAuMSwwLjIsMC4zLDAuMmMwLjEsMCwwLjIsMCwwLjMsMFY5Ljh6IE0xNS4yLDYuOWMtMS4yLDAuNi0zLjEsMC4yLTMuMSwxLjRjMCwxLjQsMy4xLDEsMy4xLTAuNVY2Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-circle-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-circle: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-clear: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8bWFzayBpZD0iZG9udXRIb2xlIj4KICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIC8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiBmaWxsPSJibGFjayIvPgogIDwvbWFzaz4KCiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxyZWN0IGhlaWdodD0iMTgiIHdpZHRoPSIyIiB4PSIxMSIgeT0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1LCAxMiwgMTIpIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgbWFzaz0idXJsKCNkb251dEhvbGUpIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-close: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1ub25lIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIGpwLWljb24zLWhvdmVyIiBmaWxsPSJub25lIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjExIi8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIGpwLWljb24tYWNjZW50Mi1ob3ZlciIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIvPgogIDwvZz4KCiAgPGcgY2xhc3M9ImpwLWljb24tbm9uZSBqcC1pY29uLWJ1c3kiIGZpbGw9Im5vbmUiPgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNyIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-code: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+Cg==);
--jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1pY29uLWJyYW5kMSBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNmZmYiPgogICAgPHBhdGggZD0iTTEwNSAxMjcuM2g0MHYxMi44aC00MHpNNTEuMSA3N0w3NCA5OS45bC0yMy4zIDIzLjMgMTAuNSAxMC41IDIzLjMtMjMuM0w5NSA5OS45IDg0LjUgODkuNCA2MS42IDY2LjV6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-copy: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTExLjksMUgzLjJDMi40LDEsMS43LDEuNywxLjcsMi41djEwLjJoMS41VjIuNWg4LjdWMXogTTE0LjEsMy45aC04Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MTAuMmMwLDAuOCwwLjcsMS41LDEuNSwxLjVoOCBjMC44LDAsMS41LTAuNywxLjUtMS41VjUuNEMxNS41LDQuNiwxNC45LDMuOSwxNC4xLDMuOXogTTE0LjEsMTUuNWgtOFY1LjRoOFYxNS41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-copyright: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+CiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0xMS44OCw5LjE0YzEuMjgsMC4wNiwxLjYxLDEuMTUsMS42MywxLjY2aDEuNzljLTAuMDgtMS45OC0xLjQ5LTMuMTktMy40NS0zLjE5QzkuNjQsNy42MSw4LDksOCwxMi4xNCBjMCwxLjk0LDAuOTMsNC4yNCwzLjg0LDQuMjRjMi4yMiwwLDMuNDEtMS42NSwzLjQ0LTIuOTVoLTEuNzljLTAuMDMsMC41OS0wLjQ1LDEuMzgtMS42MywxLjQ0QzEwLjU1LDE0LjgzLDEwLDEzLjgxLDEwLDEyLjE0IEMxMCw5LjI1LDExLjI4LDkuMTYsMTEuODgsOS4xNHogTTEyLDJDNi40OCwyLDIsNi40OCwyLDEyczQuNDgsMTAsMTAsMTBzMTAtNC40OCwxMC0xMFMxNy41MiwyLDEyLDJ6IE0xMiwyMGMtNC40MSwwLTgtMy41OS04LTggczMuNTktOCw4LThzOCwzLjU5LDgsOFMxNi40MSwyMCwxMiwyMHoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-cut: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-download: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-edit: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-ellipses: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEyIiByPSIyIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-extension: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-fast-forward: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTQgMThsOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-file-upload: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-file: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuMyA4LjJsLTUuNS01LjVjLS4zLS4zLS43LS41LTEuMi0uNUgzLjljLS44LjEtMS42LjktMS42IDEuOHYxNC4xYzAgLjkuNyAxLjYgMS42IDEuNmgxNC4yYy45IDAgMS42LS43IDEuNi0xLjZWOS40Yy4xLS41LS4xLS45LS40LTEuMnptLTUuOC0zLjNsMy40IDMuNmgtMy40VjQuOXptMy45IDEyLjdINC43Yy0uMSAwLS4yIDAtLjItLjJWNC43YzAtLjIuMS0uMy4yLS4zaDcuMnY0LjRzMCAuOC4zIDEuMWMuMy4zIDEuMS4zIDEuMS4zaDQuM3Y3LjJzLS4xLjItLjIuMnoiLz4KPC9zdmc+Cg==);
--jp-icon-filter-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6Ii8+Cjwvc3ZnPgo=);
--jp-icon-html5: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMDAiIGQ9Ik0xMDguNCAwaDIzdjIyLjhoMjEuMlYwaDIzdjY5aC0yM1Y0NmgtMjF2MjNoLTIzLjJNMjA2IDIzaC0yMC4zVjBoNjMuN3YyM0gyMjl2NDZoLTIzbTUzLjUtNjloMjQuMWwxNC44IDI0LjNMMzEzLjIgMGgyNC4xdjY5aC0yM1YzNC44bC0xNi4xIDI0LjgtMTYuMS0yNC44VjY5aC0yMi42bTg5LjItNjloMjN2NDYuMmgzMi42VjY5aC01NS42Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2U0NGQyNiIgZD0iTTEwNy42IDQ3MWwtMzMtMzcwLjRoMzYyLjhsLTMzIDM3MC4yTDI1NS43IDUxMiIvPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNmMTY1MjkiIGQ9Ik0yNTYgNDgwLjVWMTMxaDE0OC4zTDM3NiA0NDciLz4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNlYmViZWIiIGQ9Ik0xNDIgMTc2LjNoMTE0djQ1LjRoLTY0LjJsNC4yIDQ2LjVoNjB2NDUuM0gxNTQuNG0yIDIyLjhIMjAybDMuMiAzNi4zIDUwLjggMTMuNnY0Ny40bC05My4yLTI2Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIiBkPSJNMzY5LjYgMTc2LjNIMjU1Ljh2NDUuNGgxMDkuNm0tNC4xIDQ2LjVIMjU1Ljh2NDUuNGg1NmwtNS4zIDU5LTUwLjcgMTMuNnY0Ny4ybDkzLTI1LjgiLz4KPC9zdmc+Cg==);
--jp-icon-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1icmFuZDQganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNGRkYiIGQ9Ik0yLjIgMi4yaDE3LjV2MTcuNUgyLjJ6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzNGNTFCNSIgZD0iTTIuMiAyLjJ2MTcuNWgxNy41bC4xLTE3LjVIMi4yem0xMi4xIDIuMmMxLjIgMCAyLjIgMSAyLjIgMi4ycy0xIDIuMi0yLjIgMi4yLTIuMi0xLTIuMi0yLjIgMS0yLjIgMi4yLTIuMnpNNC40IDE3LjZsMy4zLTguOCAzLjMgNi42IDIuMi0zLjIgNC40IDUuNEg0LjR6Ii8+Cjwvc3ZnPgo=);
--jp-icon-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K);
--jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMSBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNGOUE4MjUiPgogICAgPHBhdGggZD0iTTIwLjIgMTEuOGMtMS42IDAtMS43LjUtMS43IDEgMCAuNC4xLjkuMSAxLjMuMS41LjEuOS4xIDEuMyAwIDEuNy0xLjQgMi4zLTMuNSAyLjNoLS45di0xLjloLjVjMS4xIDAgMS40IDAgMS40LS44IDAtLjMgMC0uNi0uMS0xIDAtLjQtLjEtLjgtLjEtMS4yIDAtMS4zIDAtMS44IDEuMy0yLTEuMy0uMi0xLjMtLjctMS4zLTIgMC0uNC4xLS44LjEtMS4yLjEtLjQuMS0uNy4xLTEgMC0uOC0uNC0uNy0xLjQtLjhoLS41VjQuMWguOWMyLjIgMCAzLjUuNyAzLjUgMi4zIDAgLjQtLjEuOS0uMSAxLjMtLjEuNS0uMS45LS4xIDEuMyAwIC41LjIgMSAxLjcgMXYxLjh6TTEuOCAxMC4xYzEuNiAwIDEuNy0uNSAxLjctMSAwLS40LS4xLS45LS4xLTEuMy0uMS0uNS0uMS0uOS0uMS0xLjMgMC0xLjYgMS40LTIuMyAzLjUtMi4zaC45djEuOWgtLjVjLTEgMC0xLjQgMC0xLjQuOCAwIC4zIDAgLjYuMSAxIDAgLjIuMS42LjEgMSAwIDEuMyAwIDEuOC0xLjMgMkM2IDExLjIgNiAxMS43IDYgMTNjMCAuNC0uMS44LS4xIDEuMi0uMS4zLS4xLjctLjEgMSAwIC44LjMuOCAxLjQuOGguNXYxLjloLS45Yy0yLjEgMC0zLjUtLjYtMy41LTIuMyAwLS40LjEtLjkuMS0xLjMuMS0uNS4xLS45LjEtMS4zIDAtLjUtLjItMS0xLjctMXYtMS45eiIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMy44IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY3g9IjExIiBjeT0iOC4yIiByPSIyLjEiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-julia: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDMyNSAzMDAiPgogIDxnIGNsYXNzPSJqcC1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjY2IzYzMzIj4KICAgIDxwYXRoIGQ9Ik0gMTUwLjg5ODQzOCAyMjUgQyAxNTAuODk4NDM4IDI2Ni40MjE4NzUgMTE3LjMyMDMxMiAzMDAgNzUuODk4NDM4IDMwMCBDIDM0LjQ3NjU2MiAzMDAgMC44OTg0MzggMjY2LjQyMTg3NSAwLjg5ODQzOCAyMjUgQyAwLjg5ODQzOCAxODMuNTc4MTI1IDM0LjQ3NjU2MiAxNTAgNzUuODk4NDM4IDE1MCBDIDExNy4zMjAzMTIgMTUwIDE1MC44OTg0MzggMTgzLjU3ODEyNSAxNTAuODk4NDM4IDIyNSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzM4OTgyNiI+CiAgICA8cGF0aCBkPSJNIDIzNy41IDc1IEMgMjM3LjUgMTE2LjQyMTg3NSAyMDMuOTIxODc1IDE1MCAxNjIuNSAxNTAgQyAxMjEuMDc4MTI1IDE1MCA4Ny41IDExNi40MjE4NzUgODcuNSA3NSBDIDg3LjUgMzMuNTc4MTI1IDEyMS4wNzgxMjUgMCAxNjIuNSAwIEMgMjAzLjkyMTg3NSAwIDIzNy41IDMzLjU3ODEyNSAyMzcuNSA3NSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzk1NThiMiI+CiAgICA8cGF0aCBkPSJNIDMyNC4xMDE1NjIgMjI1IEMgMzI0LjEwMTU2MiAyNjYuNDIxODc1IDI5MC41MjM0MzggMzAwIDI0OS4xMDE1NjIgMzAwIEMgMjA3LjY3OTY4OCAzMDAgMTc0LjEwMTU2MiAyNjYuNDIxODc1IDE3NC4xMDE1NjIgMjI1IEMgMTc0LjEwMTU2MiAxODMuNTc4MTI1IDIwNy42Nzk2ODggMTUwIDI0OS4xMDE1NjIgMTUwIEMgMjkwLjUyMzQzOCAxNTAgMzI0LjEwMTU2MiAxODMuNTc4MTI1IDMyNC4xMDE1NjIgMjI1Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-jupyter-favicon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUyIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDE1MiAxNjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA3ODk0NywgMTEwLjU4MjkyNykiIGQ9Ik03NS45NDIyODQyLDI5LjU4MDQ1NjEgQzQzLjMwMjM5NDcsMjkuNTgwNDU2MSAxNC43OTY3ODMyLDE3LjY1MzQ2MzQgMCwwIEM1LjUxMDgzMjExLDE1Ljg0MDY4MjkgMTUuNzgxNTM4OSwyOS41NjY3NzMyIDI5LjM5MDQ5NDcsMzkuMjc4NDE3MSBDNDIuOTk5Nyw0OC45ODk4NTM3IDU5LjI3MzcsNTQuMjA2NzgwNSA3NS45NjA1Nzg5LDU0LjIwNjc4MDUgQzkyLjY0NzQ1NzksNTQuMjA2NzgwNSAxMDguOTIxNDU4LDQ4Ljk4OTg1MzcgMTIyLjUzMDY2MywzOS4yNzg0MTcxIEMxMzYuMTM5NDUzLDI5LjU2Njc3MzIgMTQ2LjQxMDI4NCwxNS44NDA2ODI5IDE1MS45MjExNTgsMCBDMTM3LjA4Nzg2OCwxNy42NTM0NjM0IDEwOC41ODI1ODksMjkuNTgwNDU2MSA3NS45NDIyODQyLDI5LjU4MDQ1NjEgTDc1Ljk0MjI4NDIsMjkuNTgwNDU2MSBaIiAvPgogICAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMzczNjgsIDAuNzA0ODc4KSIgZD0iTTc1Ljk3ODQ1NzksMjQuNjI2NDA3MyBDMTA4LjYxODc2MywyNC42MjY0MDczIDEzNy4xMjQ0NTgsMzYuNTUzNDQxNSAxNTEuOTIxMTU4LDU0LjIwNjc4MDUgQzE0Ni40MTAyODQsMzguMzY2MjIyIDEzNi4xMzk0NTMsMjQuNjQwMTMxNyAxMjIuNTMwNjYzLDE0LjkyODQ4NzggQzEwOC45MjE0NTgsNS4yMTY4NDM5IDkyLjY0NzQ1NzksMCA3NS45NjA1Nzg5LDAgQzU5LjI3MzcsMCA0Mi45OTk3LDUuMjE2ODQzOSAyOS4zOTA0OTQ3LDE0LjkyODQ4NzggQzE1Ljc4MTUzODksMjQuNjQwMTMxNyA1LjUxMDgzMjExLDM4LjM2NjIyMiAwLDU0LjIwNjc4MDUgQzE0LjgzMzA4MTYsMzYuNTg5OTI5MyA0My4zMzg1Njg0LDI0LjYyNjQwNzMgNzUuOTc4NDU3OSwyNC42MjY0MDczIEw3NS45Nzg0NTc5LDI0LjYyNjQwNzMgWiIgLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-jupyter: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iNTEiIHZpZXdCb3g9IjAgMCAzOSA1MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYzOCAtMjI4MSkiPgogICAgPGcgY2xhc3M9ImpwLWljb24td2FybjAiIGZpbGw9IiNGMzc3MjYiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5Ljc0IDIzMTEuOTgpIiBkPSJNIDE4LjI2NDYgNy4xMzQxMUMgMTAuNDE0NSA3LjEzNDExIDMuNTU4NzIgNC4yNTc2IDAgMEMgMS4zMjUzOSAzLjgyMDQgMy43OTU1NiA3LjEzMDgxIDcuMDY4NiA5LjQ3MzAzQyAxMC4zNDE3IDExLjgxNTIgMTQuMjU1NyAxMy4wNzM0IDE4LjI2OSAxMy4wNzM0QyAyMi4yODIzIDEzLjA3MzQgMjYuMTk2MyAxMS44MTUyIDI5LjQ2OTQgOS40NzMwM0MgMzIuNzQyNCA3LjEzMDgxIDM1LjIxMjYgMy44MjA0IDM2LjUzOCAwQyAzMi45NzA1IDQuMjU3NiAyNi4xMTQ4IDcuMTM0MTEgMTguMjY0NiA3LjEzNDExWiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5LjczIDIyODUuNDgpIiBkPSJNIDE4LjI3MzMgNS45MzkzMUMgMjYuMTIzNSA1LjkzOTMxIDMyLjk3OTMgOC44MTU4MyAzNi41MzggMTMuMDczNEMgMzUuMjEyNiA5LjI1MzAzIDMyLjc0MjQgNS45NDI2MiAyOS40Njk0IDMuNjAwNEMgMjYuMTk2MyAxLjI1ODE4IDIyLjI4MjMgMCAxOC4yNjkgMEMgMTQuMjU1NyAwIDEwLjM0MTcgMS4yNTgxOCA3LjA2ODYgMy42MDA0QyAzLjc5NTU2IDUuOTQyNjIgMS4zMjUzOSA5LjI1MzAzIDAgMTMuMDczNEMgMy41Njc0NSA4LjgyNDYzIDEwLjQyMzIgNS45MzkzMSAxOC4yNzMzIDUuOTM5MzFaIi8+CiAgICA8L2c+CiAgICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjY5LjMgMjI4MS4zMSkiIGQ9Ik0gNS44OTM1MyAyLjg0NEMgNS45MTg4OSAzLjQzMTY1IDUuNzcwODUgNC4wMTM2NyA1LjQ2ODE1IDQuNTE2NDVDIDUuMTY1NDUgNS4wMTkyMiA0LjcyMTY4IDUuNDIwMTUgNC4xOTI5OSA1LjY2ODUxQyAzLjY2NDMgNS45MTY4OCAzLjA3NDQ0IDYuMDAxNTEgMi40OTgwNSA1LjkxMTcxQyAxLjkyMTY2IDUuODIxOSAxLjM4NDYzIDUuNTYxNyAwLjk1NDg5OCA1LjE2NDAxQyAwLjUyNTE3IDQuNzY2MzMgMC4yMjIwNTYgNC4yNDkwMyAwLjA4MzkwMzcgMy42Nzc1N0MgLTAuMDU0MjQ4MyAzLjEwNjExIC0wLjAyMTIzIDIuNTA2MTcgMC4xNzg3ODEgMS45NTM2NEMgMC4zNzg3OTMgMS40MDExIDAuNzM2ODA5IDAuOTIwODE3IDEuMjA3NTQgMC41NzM1MzhDIDEuNjc4MjYgMC4yMjYyNTkgMi4yNDA1NSAwLjAyNzU5MTkgMi44MjMyNiAwLjAwMjY3MjI5QyAzLjYwMzg5IC0wLjAzMDcxMTUgNC4zNjU3MyAwLjI0OTc4OSA0Ljk0MTQyIDAuNzgyNTUxQyA1LjUxNzExIDEuMzE1MzEgNS44NTk1NiAyLjA1Njc2IDUuODkzNTMgMi44NDRaIi8+CiAgICAgIDxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MzkuOCAyMzIzLjgxKSIgZD0iTSA3LjQyNzg5IDMuNTgzMzhDIDcuNDYwMDggNC4zMjQzIDcuMjczNTUgNS4wNTgxOSA2Ljg5MTkzIDUuNjkyMTNDIDYuNTEwMzEgNi4zMjYwNyA1Ljk1MDc1IDYuODMxNTYgNS4yODQxMSA3LjE0NDZDIDQuNjE3NDcgNy40NTc2MyAzLjg3MzcxIDcuNTY0MTQgMy4xNDcwMiA3LjQ1MDYzQyAyLjQyMDMyIDcuMzM3MTIgMS43NDMzNiA3LjAwODcgMS4yMDE4NCA2LjUwNjk1QyAwLjY2MDMyOCA2LjAwNTIgMC4yNzg2MSA1LjM1MjY4IDAuMTA1MDE3IDQuNjMyMDJDIC0wLjA2ODU3NTcgMy45MTEzNSAtMC4wMjYyMzYxIDMuMTU0OTQgMC4yMjY2NzUgMi40NTg1NkMgMC40Nzk1ODcgMS43NjIxNyAwLjkzMTY5NyAxLjE1NzEzIDEuNTI1NzYgMC43MjAwMzNDIDIuMTE5ODMgMC4yODI5MzUgMi44MjkxNCAwLjAzMzQzOTUgMy41NjM4OSAwLjAwMzEzMzQ0QyA0LjU0NjY3IC0wLjAzNzQwMzMgNS41MDUyOSAwLjMxNjcwNiA2LjIyOTYxIDAuOTg3ODM1QyA2Ljk1MzkzIDEuNjU4OTYgNy4zODQ4NCAyLjU5MjM1IDcuNDI3ODkgMy41ODMzOEwgNy40Mjc4OSAzLjU4MzM4WiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM4LjM2IDIyODYuMDYpIiBkPSJNIDIuMjc0NzEgNC4zOTYyOUMgMS44NDM2MyA0LjQxNTA4IDEuNDE2NzEgNC4zMDQ0NSAxLjA0Nzk5IDQuMDc4NDNDIDAuNjc5MjY4IDMuODUyNCAwLjM4NTMyOCAzLjUyMTE0IDAuMjAzMzcxIDMuMTI2NTZDIDAuMDIxNDEzNiAyLjczMTk4IC0wLjA0MDM3OTggMi4yOTE4MyAwLjAyNTgxMTYgMS44NjE4MUMgMC4wOTIwMDMxIDEuNDMxOCAwLjI4MzIwNCAxLjAzMTI2IDAuNTc1MjEzIDAuNzEwODgzQyAwLjg2NzIyMiAwLjM5MDUxIDEuMjQ2OTEgMC4xNjQ3MDggMS42NjYyMiAwLjA2MjA1OTJDIDIuMDg1NTMgLTAuMDQwNTg5NyAyLjUyNTYxIC0wLjAxNTQ3MTQgMi45MzA3NiAwLjEzNDIzNUMgMy4zMzU5MSAwLjI4Mzk0MSAzLjY4NzkyIDAuNTUxNTA1IDMuOTQyMjIgMC45MDMwNkMgNC4xOTY1MiAxLjI1NDYyIDQuMzQxNjkgMS42NzQzNiA0LjM1OTM1IDIuMTA5MTZDIDQuMzgyOTkgMi42OTEwNyA0LjE3Njc4IDMuMjU4NjkgMy43ODU5NyAzLjY4NzQ2QyAzLjM5NTE2IDQuMTE2MjQgMi44NTE2NiA0LjM3MTE2IDIuMjc0NzEgNC4zOTYyOUwgMi4yNzQ3MSA0LjM5NjI5WiIvPgogICAgPC9nPgogIDwvZz4+Cjwvc3ZnPgo=);
--jp-icon-jupyterlab-wordmark: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIHZpZXdCb3g9IjAgMCAxODYwLjggNDc1Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0RTRFNEUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4MC4xMzY0MDEsIDY0LjI3MTQ5MykiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDU4Ljg3NTU2NikiPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA4NzYwMywgMC4xNDAyOTQpIj4KICAgICAgICA8cGF0aCBkPSJNLTQyNi45LDE2OS44YzAsNDguNy0zLjcsNjQuNy0xMy42LDc2LjRjLTEwLjgsMTAtMjUsMTUuNS0zOS43LDE1LjVsMy43LDI5IGMyMi44LDAuMyw0NC44LTcuOSw2MS45LTIzLjFjMTcuOC0xOC41LDI0LTQ0LjEsMjQtODMuM1YwSC00Mjd2MTcwLjFMLTQyNi45LDE2OS44TC00MjYuOSwxNjkuOHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU1LjA0NTI5NiwgNTYuODM3MTA0KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNTYyNDUzLCAxLjc5OTg0MikiPgogICAgICAgIDxwYXRoIGQ9Ik0tMzEyLDE0OGMwLDIxLDAsMzkuNSwxLjcsNTUuNGgtMzEuOGwtMi4xLTMzLjNoLTAuOGMtNi43LDExLjYtMTYuNCwyMS4zLTI4LDI3LjkgYy0xMS42LDYuNi0yNC44LDEwLTM4LjIsOS44Yy0zMS40LDAtNjktMTcuNy02OS04OVYwaDM2LjR2MTEyLjdjMCwzOC43LDExLjYsNjQuNyw0NC42LDY0LjdjMTAuMy0wLjIsMjAuNC0zLjUsMjguOS05LjQgYzguNS01LjksMTUuMS0xNC4zLDE4LjktMjMuOWMyLjItNi4xLDMuMy0xMi41LDMuMy0xOC45VjAuMmgzNi40VjE0OEgtMzEyTC0zMTIsMTQ4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTAuMDEzMzIyLCA1My40Nzk2MzgpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS43MDY0NTgsIDAuMjMxNDI1KSI+CiAgICAgICAgPHBhdGggZD0iTS00NzguNiw3MS40YzAtMjYtMC44LTQ3LTEuNy02Ni43aDMyLjdsMS43LDM0LjhoMC44YzcuMS0xMi41LDE3LjUtMjIuOCwzMC4xLTI5LjcgYzEyLjUtNywyNi43LTEwLjMsNDEtOS44YzQ4LjMsMCw4NC43LDQxLjcsODQuNywxMDMuM2MwLDczLjEtNDMuNywxMDkuMi05MSwxMDkuMmMtMTIuMSwwLjUtMjQuMi0yLjItMzUtNy44IGMtMTAuOC01LjYtMTkuOS0xMy45LTI2LjYtMjQuMmgtMC44VjI5MWgtMzZ2LTIyMEwtNDc4LjYsNzEuNEwtNDc4LjYsNzEuNHogTS00NDIuNiwxMjUuNmMwLjEsNS4xLDAuNiwxMC4xLDEuNywxNS4xIGMzLDEyLjMsOS45LDIzLjMsMTkuOCwzMS4xYzkuOSw3LjgsMjIuMSwxMi4xLDM0LjcsMTIuMWMzOC41LDAsNjAuNy0zMS45LDYwLjctNzguNWMwLTQwLjctMjEuMS03NS42LTU5LjUtNzUuNiBjLTEyLjksMC40LTI1LjMsNS4xLTM1LjMsMTMuNGMtOS45LDguMy0xNi45LDE5LjctMTkuNiwzMi40Yy0xLjUsNC45LTIuMywxMC0yLjUsMTUuMVYxMjUuNkwtNDQyLjYsMTI1LjZMLTQ0Mi42LDEyNS42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MDYuNzQwNzI2LCA1Ni44MzcxMDQpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC43NTEyMjYsIDEuOTg5Mjk5KSI+CiAgICAgICAgPHBhdGggZD0iTS00NDAuOCwwbDQzLjcsMTIwLjFjNC41LDEzLjQsOS41LDI5LjQsMTIuOCw0MS43aDAuOGMzLjctMTIuMiw3LjktMjcuNywxMi44LTQyLjQgbDM5LjctMTE5LjJoMzguNUwtMzQ2LjksMTQ1Yy0yNiw2OS43LTQzLjcsMTA1LjQtNjguNiwxMjcuMmMtMTIuNSwxMS43LTI3LjksMjAtNDQuNiwyMy45bC05LjEtMzEuMSBjMTEuNy0zLjksMjIuNS0xMC4xLDMxLjgtMTguMWMxMy4yLTExLjEsMjMuNy0yNS4yLDMwLjYtNDEuMmMxLjUtMi44LDIuNS01LjcsMi45LTguOGMtMC4zLTMuMy0xLjItNi42LTIuNS05LjdMLTQ4MC4yLDAuMSBoMzkuN0wtNDQwLjgsMEwtNDQwLjgsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODIyLjc0ODEwNCwgMC4wMDAwMDApIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40NjQwNTAsIDAuMzc4OTE0KSI+CiAgICAgICAgPHBhdGggZD0iTS00MTMuNywwdjU4LjNoNTJ2MjguMmgtNTJWMTk2YzAsMjUsNywzOS41LDI3LjMsMzkuNWM3LjEsMC4xLDE0LjItMC43LDIxLjEtMi41IGwxLjcsMjcuN2MtMTAuMywzLjctMjEuMyw1LjQtMzIuMiw1Yy03LjMsMC40LTE0LjYtMC43LTIxLjMtMy40Yy02LjgtMi43LTEyLjktNi44LTE3LjktMTIuMWMtMTAuMy0xMC45LTE0LjEtMjktMTQuMS01Mi45IFY4Ni41aC0zMVY1OC4zaDMxVjkuNkwtNDEzLjcsMEwtNDEzLjcsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTc0LjQzMzI4NiwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuOTkwMDM0LCAwLjYxMDMzOSkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDQ1LjgsMTEzYzAuOCw1MCwzMi4yLDcwLjYsNjguNiw3MC42YzE5LDAuNiwzNy45LTMsNTUuMy0xMC41bDYuMiwyNi40IGMtMjAuOSw4LjktNDMuNSwxMy4xLTY2LjIsMTIuNmMtNjEuNSwwLTk4LjMtNDEuMi05OC4zLTEwMi41Qy00ODAuMiw0OC4yLTQ0NC43LDAtMzg2LjUsMGM2NS4yLDAsODIuNyw1OC4zLDgyLjcsOTUuNyBjLTAuMSw1LjgtMC41LDExLjUtMS4yLDE3LjJoLTE0MC42SC00NDUuOEwtNDQ1LjgsMTEzeiBNLTMzOS4yLDg2LjZjMC40LTIzLjUtOS41LTYwLjEtNTAuNC02MC4xIGMtMzYuOCwwLTUyLjgsMzQuNC01NS43LDYwLjFILTMzOS4yTC0zMzkuMiw4Ni42TC0zMzkuMiw4Ni42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAxLjk2MTA1OCwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMTc5NjQwLCAwLjcwNTA2OCkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDc4LjYsNjhjMC0yMy45LTAuNC00NC41LTEuNy02My40aDMxLjhsMS4yLDM5LjloMS43YzkuMS0yNy4zLDMxLTQ0LjUsNTUuMy00NC41IGMzLjUtMC4xLDcsMC40LDEwLjMsMS4ydjM0LjhjLTQuMS0wLjktOC4yLTEuMy0xMi40LTEuMmMtMjUuNiwwLTQzLjcsMTkuNy00OC43LDQ3LjRjLTEsNS43LTEuNiwxMS41LTEuNywxNy4ydjEwOC4zaC0zNlY2OCBMLTQ3OC42LDY4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCBkPSJNMTM1Mi4zLDMyNi4yaDM3VjI4aC0zN1YzMjYuMnogTTE2MDQuOCwzMjYuMmMtMi41LTEzLjktMy40LTMxLjEtMy40LTQ4Ljd2LTc2IGMwLTQwLjctMTUuMS04My4xLTc3LjMtODMuMWMtMjUuNiwwLTUwLDcuMS02Ni44LDE4LjFsOC40LDI0LjRjMTQuMy05LjIsMzQtMTUuMSw1My0xNS4xYzQxLjYsMCw0Ni4yLDMwLjIsNDYuMiw0N3Y0LjIgYy03OC42LTAuNC0xMjIuMywyNi41LTEyMi4zLDc1LjZjMCwyOS40LDIxLDU4LjQsNjIuMiw1OC40YzI5LDAsNTAuOS0xNC4zLDYyLjItMzAuMmgxLjNsMi45LDI1LjZIMTYwNC44eiBNMTU2NS43LDI1Ny43IGMwLDMuOC0wLjgsOC0yLjEsMTEuOGMtNS45LDE3LjItMjIuNywzNC00OS4yLDM0Yy0xOC45LDAtMzQuOS0xMS4zLTM0LjktMzUuM2MwLTM5LjUsNDUuOC00Ni42LDg2LjItNDUuOFYyNTcuN3ogTTE2OTguNSwzMjYuMiBsMS43LTMzLjZoMS4zYzE1LjEsMjYuOSwzOC43LDM4LjIsNjguMSwzOC4yYzQ1LjQsMCw5MS4yLTM2LjEsOTEuMi0xMDguOGMwLjQtNjEuNy0zNS4zLTEwMy43LTg1LjctMTAzLjcgYy0zMi44LDAtNTYuMywxNC43LTY5LjMsMzcuNGgtMC44VjI4aC0zNi42djI0NS43YzAsMTguMS0wLjgsMzguNi0xLjcsNTIuNUgxNjk4LjV6IE0xNzA0LjgsMjA4LjJjMC01LjksMS4zLTEwLjksMi4xLTE1LjEgYzcuNi0yOC4xLDMxLjEtNDUuNCw1Ni4zLTQ1LjRjMzkuNSwwLDYwLjUsMzQuOSw2MC41LDc1LjZjMCw0Ni42LTIzLjEsNzguMS02MS44LDc4LjFjLTI2LjksMC00OC4zLTE3LjYtNTUuNS00My4zIGMtMC44LTQuMi0xLjctOC44LTEuNy0xMy40VjIwOC4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzYxNjE2MSIgZD0iTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEweiIvPgo8L3N2Zz4K);
--jp-icon-keyboard: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTdjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOSAzaDJ2MmgtMlY4em0wIDNoMnYyaC0ydi0yek04IDhoMnYySDhWOHptMCAzaDJ2Mkg4di0yem0tMSAySDV2LTJoMnYyem0wLTNINVY4aDJ2MnptOSA3SDh2LTJoOHYyem0wLTRoLTJ2LTJoMnYyem0wLTNoLTJWOGgydjJ6bTMgM2gtMnYtMmgydjJ6bTAtM2gtMlY4aDJ2MnoiLz4KPC9zdmc+Cg==);
--jp-icon-launcher: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+Cg==);
--jp-icon-line-form: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNS44OCA0LjEyTDEzLjc2IDEybC03Ljg4IDcuODhMOCAyMmwxMC0xMEw4IDJ6Ii8+Cjwvc3ZnPgo=);
--jp-icon-link: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3eiIvPgo8L3N2Zz4=);
--jp-icon-listings-info: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MC45NzggNTAuOTc4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MC45NzggNTAuOTc4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cgk8Zz4KCQk8cGF0aCBzdHlsZT0iZmlsbDojMDEwMDAyOyIgZD0iTTQzLjUyLDcuNDU4QzM4LjcxMSwyLjY0OCwzMi4zMDcsMCwyNS40ODksMEMxOC42NywwLDEyLjI2NiwyLjY0OCw3LjQ1OCw3LjQ1OAoJCQljLTkuOTQzLDkuOTQxLTkuOTQzLDI2LjExOSwwLDM2LjA2MmM0LjgwOSw0LjgwOSwxMS4yMTIsNy40NTYsMTguMDMxLDcuNDU4YzAsMCwwLjAwMSwwLDAuMDAyLDAKCQkJYzYuODE2LDAsMTMuMjIxLTIuNjQ4LDE4LjAyOS03LjQ1OGM0LjgwOS00LjgwOSw3LjQ1Ny0xMS4yMTIsNy40NTctMTguMDNDNTAuOTc3LDE4LjY3LDQ4LjMyOCwxMi4yNjYsNDMuNTIsNy40NTh6CgkJCSBNNDIuMTA2LDQyLjEwNWMtNC40MzIsNC40MzEtMTAuMzMyLDYuODcyLTE2LjYxNSw2Ljg3MmgtMC4wMDJjLTYuMjg1LTAuMDAxLTEyLjE4Ny0yLjQ0MS0xNi42MTctNi44NzIKCQkJYy05LjE2Mi05LjE2My05LjE2Mi0yNC4wNzEsMC0zMy4yMzNDMTMuMzAzLDQuNDQsMTkuMjA0LDIsMjUuNDg5LDJjNi4yODQsMCwxMi4xODYsMi40NCwxNi42MTcsNi44NzIKCQkJYzQuNDMxLDQuNDMxLDYuODcxLDEwLjMzMiw2Ljg3MSwxNi42MTdDNDguOTc3LDMxLjc3Miw0Ni41MzYsMzcuNjc1LDQyLjEwNiw0Mi4xMDV6Ii8+CgkJPHBhdGggc3R5bGU9ImZpbGw6IzAxMDAwMjsiIGQ9Ik0yMy41NzgsMzIuMjE4Yy0wLjAyMy0xLjczNCwwLjE0My0zLjA1OSwwLjQ5Ni0zLjk3MmMwLjM1My0wLjkxMywxLjExLTEuOTk3LDIuMjcyLTMuMjUzCgkJCWMwLjQ2OC0wLjUzNiwwLjkyMy0xLjA2MiwxLjM2Ny0xLjU3NWMwLjYyNi0wLjc1MywxLjEwNC0xLjQ3OCwxLjQzNi0yLjE3NWMwLjMzMS0wLjcwNywwLjQ5NS0xLjU0MSwwLjQ5NS0yLjUKCQkJYzAtMS4wOTYtMC4yNi0yLjA4OC0wLjc3OS0yLjk3OWMtMC41NjUtMC44NzktMS41MDEtMS4zMzYtMi44MDYtMS4zNjljLTEuODAyLDAuMDU3LTIuOTg1LDAuNjY3LTMuNTUsMS44MzIKCQkJYy0wLjMwMSwwLjUzNS0wLjUwMywxLjE0MS0wLjYwNywxLjgxNGMtMC4xMzksMC43MDctMC4yMDcsMS40MzItMC4yMDcsMi4xNzRoLTIuOTM3Yy0wLjA5MS0yLjIwOCwwLjQwNy00LjExNCwxLjQ5My01LjcxOQoJCQljMS4wNjItMS42NCwyLjg1NS0yLjQ4MSw1LjM3OC0yLjUyN2MyLjE2LDAuMDIzLDMuODc0LDAuNjA4LDUuMTQxLDEuNzU4YzEuMjc4LDEuMTYsMS45MjksMi43NjQsMS45NSw0LjgxMQoJCQljMCwxLjE0Mi0wLjEzNywyLjExMS0wLjQxLDIuOTExYy0wLjMwOSwwLjg0NS0wLjczMSwxLjU5My0xLjI2OCwyLjI0M2MtMC40OTIsMC42NS0xLjA2OCwxLjMxOC0xLjczLDIuMDAyCgkJCWMtMC42NSwwLjY5Ny0xLjMxMywxLjQ3OS0xLjk4NywyLjM0NmMtMC4yMzksMC4zNzctMC40MjksMC43NzctMC41NjUsMS4xOTljLTAuMTYsMC45NTktMC4yMTcsMS45NTEtMC4xNzEsMi45NzkKCQkJQzI2LjU4OSwzMi4yMTgsMjMuNTc4LDMyLjIxOCwyMy41NzgsMzIuMjE4eiBNMjMuNTc4LDM4LjIydi0zLjQ4NGgzLjA3NnYzLjQ4NEgyMy41Nzh6Ii8+Cgk8L2c+Cjwvc3ZnPgo=);
--jp-icon-markdown: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjN0IxRkEyIiBkPSJNNSAxNC45aDEybC02LjEgNnptOS40LTYuOGMwLTEuMy0uMS0yLjktLjEtNC41LS40IDEuNC0uOSAyLjktMS4zIDQuM2wtMS4zIDQuM2gtMkw4LjUgNy45Yy0uNC0xLjMtLjctMi45LTEtNC4zLS4xIDEuNi0uMSAzLjItLjIgNC42TDcgMTIuNEg0LjhsLjctMTFoMy4zTDEwIDVjLjQgMS4yLjcgMi43IDEgMy45LjMtMS4yLjctMi42IDEtMy45bDEuMi0zLjdoMy4zbC42IDExaC0yLjRsLS4zLTQuMnoiLz4KPC9zdmc+Cg==);
--jp-icon-new-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS0xIDhoLTN2M2gtMnYtM2gtM3YtMmgzVjloMnYzaDN2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-not-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI1IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMTkgMTcuMTg0NCAyLjk2OTY4IDE0LjMwMzIgMS44NjA5NCAxMS40NDA5WiIvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24yIiBzdHJva2U9IiMzMzMzMzMiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4zMTU5MiA5LjMyMDMxKSIgZD0iTTcuMzY4NDIgMEwwIDcuMzY0NzkiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzE1OTIgMTYuNjgzNikgc2NhbGUoMSAtMSkiIGQ9Ik03LjM2ODQyIDBMMCA3LjM2NDc5Ii8+Cjwvc3ZnPgo=);
--jp-icon-notebook: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNFRjZDMDAiPgogICAgPHBhdGggZD0iTTE4LjcgMy4zdjE1LjRIMy4zVjMuM2gxNS40bTEuNS0xLjVIMS44djE4LjNoMTguM2wuMS0xOC4zeiIvPgogICAgPHBhdGggZD0iTTE2LjUgMTYuNWwtNS40LTQuMy01LjYgNC4zdi0xMWgxMXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-numbering: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTQgMTlINlYxOS41SDVWMjAuNUg2VjIxSDRWMjJIN1YxOEg0VjE5Wk01IDEwSDZWNkg0VjdINVYxMFpNNCAxM0g1LjhMNCAxNS4xVjE2SDdWMTVINS4yTDcgMTIuOVYxMkg0VjEzWk05IDdWOUgyM1Y3SDlaTTkgMjFIMjNWMTlIOVYyMVpNOSAxNUgyM1YxM0g5VjE1WiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-offline-bolt: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDIuMDJjLTUuNTEgMC05Ljk4IDQuNDctOS45OCA5Ljk4czQuNDcgOS45OCA5Ljk4IDkuOTggOS45OC00LjQ3IDkuOTgtOS45OFMxNy41MSAyLjAyIDEyIDIuMDJ6TTExLjQ4IDIwdi02LjI2SDhMMTMgNHY2LjI2aDMuMzVMMTEuNDggMjB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-palette: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE4IDEzVjIwSDRWNkg5LjAyQzkuMDcgNS4yOSA5LjI0IDQuNjIgOS41IDRINEMyLjkgNCAyIDQuOSAyIDZWMjBDMiAyMS4xIDIuOSAyMiA0IDIySDE4QzE5LjEgMjIgMjAgMjEuMSAyMCAyMFYxNUwxOCAxM1pNMTkuMyA4Ljg5QzE5Ljc0IDguMTkgMjAgNy4zOCAyMCA2LjVDMjAgNC4wMSAxNy45OSAyIDE1LjUgMkMxMy4wMSAyIDExIDQuMDEgMTEgNi41QzExIDguOTkgMTMuMDEgMTEgMTUuNDkgMTFDMTYuMzcgMTEgMTcuMTkgMTAuNzQgMTcuODggMTAuM0wyMSAxMy40MkwyMi40MiAxMkwxOS4zIDguODlaTTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41QzEzIDUuMTIgMTQuMTIgNCAxNS41IDRDMTYuODggNCAxOCA1LjEyIDE4IDYuNUMxOCA3Ljg4IDE2Ljg4IDkgMTUuNSA5WiIvPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDZIOS4wMTg5NEM5LjAwNjM5IDYuMTY1MDIgOSA2LjMzMTc2IDkgNi41QzkgOC44MTU3NyAxMC4yMTEgMTAuODQ4NyAxMi4wMzQzIDEySDlWMTRIMTZWMTIuOTgxMUMxNi41NzAzIDEyLjkzNzcgMTcuMTIgMTIuODIwNyAxNy42Mzk2IDEyLjYzOTZMMTggMTNWMjBINFY2Wk04IDhINlYxMEg4VjhaTTYgMTJIOFYxNEg2VjEyWk04IDE2SDZWMThIOFYxNlpNOSAxNkgxNlYxOEg5VjE2WiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-paste: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-pdf: url(data:image/svg+xml;base64,PHN2ZwogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiAyMiIgd2lkdGg9IjE2Ij4KICAgIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0ZGMkEyQSIKICAgICAgIGQ9Im0gMjIuMzQ0MzY5LC0zLjAxNjM2NDIgaCA1LjYzODYwNCB2IDEuNTc5MjQzMyBoIC0zLjU0OTIyNyB2IDEuNTA4NjkyOTkgaCAzLjMzNzU3NiBWIDEuNjUwODE1NCBoIC0zLjMzNzU3NiB2IDMuNDM1MjYxMyBoIC0yLjA4OTM3NyB6IG0gLTcuMTM2NDQ0LDEuNTc5MjQzMyB2IDQuOTQzOTU0MyBoIDAuNzQ4OTIgcSAxLjI4MDc2MSwwIDEuOTUzNzAzLC0wLjYzNDk1MzUgMC42NzgzNjksLTAuNjM0OTUzNSAwLjY3ODM2OSwtMS44NDUxNjQxIDAsLTEuMjA0NzgzNTUgLTAuNjcyOTQyLC0xLjgzNDMxMDExIC0wLjY3Mjk0MiwtMC42Mjk1MjY1OSAtMS45NTkxMywtMC42Mjk1MjY1OSB6IG0gLTIuMDg5Mzc3LC0xLjU3OTI0MzMgaCAyLjIwMzM0MyBxIDEuODQ1MTY0LDAgMi43NDYwMzksMC4yNjU5MjA3IDAuOTA2MzAxLDAuMjYwNDkzNyAxLjU1MjEwOCwwLjg5MDAyMDMgMC41Njk4MywwLjU0ODEyMjMgMC44NDY2MDUsMS4yNjQ0ODAwNiAwLjI3Njc3NCwwLjcxNjM1NzgxIDAuMjc2Nzc0LDEuNjIyNjU4OTQgMCwwLjkxNzE1NTEgLTAuMjc2Nzc0LDEuNjM4OTM5OSAtMC4yNzY3NzUsMC43MTYzNTc4IC0wLjg0NjYwNSwxLjI2NDQ4IC0wLjY1MTIzNCwwLjYyOTUyNjYgLTEuNTYyOTYyLDAuODk1NDQ3MyAtMC45MTE3MjgsMC4yNjA0OTM3IC0yLjczNTE4NSwwLjI2MDQ5MzcgaCAtMi4yMDMzNDMgeiBtIC04LjE0NTg1NjUsMCBoIDMuNDY3ODIzIHEgMS41NDY2ODE2LDAgMi4zNzE1Nzg1LDAuNjg5MjIzIDAuODMwMzI0LDAuNjgzNzk2MSAwLjgzMDMyNCwxLjk1MzcwMzE0IDAsMS4yNzUzMzM5NyAtMC44MzAzMjQsMS45NjQ1NTcwNiBRIDkuOTg3MTk2MSwyLjI3NDkxNSA4LjQ0MDUxNDUsMi4yNzQ5MTUgSCA3LjA2MjA2ODQgViA1LjA4NjA3NjcgSCA0Ljk3MjY5MTUgWiBtIDIuMDg5Mzc2OSwxLjUxNDExOTkgdiAyLjI2MzAzOTQzIGggMS4xNTU5NDEgcSAwLjYwNzgxODgsMCAwLjkzODg2MjksLTAuMjkzMDU1NDcgMC4zMzEwNDQxLC0wLjI5ODQ4MjQxIDAuMzMxMDQ0MSwtMC44NDExNzc3MiAwLC0wLjU0MjY5NTMxIC0wLjMzMTA0NDEsLTAuODM1NzUwNzQgLTAuMzMxMDQ0MSwtMC4yOTMwNTU1IC0wLjkzODg2MjksLTAuMjkzMDU1NSB6IgovPgo8L3N2Zz4K);
--jp-icon-python: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMEQ0N0ExIj4KICAgIDxwYXRoIGQ9Ik0xMS4xIDYuOVY1LjhINi45YzAtLjUgMC0xLjMuMi0xLjYuNC0uNy44LTEuMSAxLjctMS40IDEuNy0uMyAyLjUtLjMgMy45LS4xIDEgLjEgMS45LjkgMS45IDEuOXY0LjJjMCAuNS0uOSAxLjYtMiAxLjZIOC44Yy0xLjUgMC0yLjQgMS40LTIuNCAyLjh2Mi4ySDQuN0MzLjUgMTUuMSAzIDE0IDMgMTMuMVY5Yy0uMS0xIC42LTIgMS44LTIgMS41LS4xIDYuMy0uMSA2LjMtLjF6Ii8+CiAgICA8cGF0aCBkPSJNMTAuOSAxNS4xdjEuMWg0LjJjMCAuNSAwIDEuMy0uMiAxLjYtLjQuNy0uOCAxLjEtMS43IDEuNC0xLjcuMy0yLjUuMy0zLjkuMS0xLS4xLTEuOS0uOS0xLjktMS45di00LjJjMC0uNS45LTEuNiAyLTEuNmgzLjhjMS41IDAgMi40LTEuNCAyLjQtMi44VjYuNmgxLjdDMTguNSA2LjkgMTkgOCAxOSA4LjlWMTNjMCAxLS43IDIuMS0xLjkgMi4xaC02LjJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-r-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjE5NkYzIiBkPSJNNC40IDIuNWMxLjItLjEgMi45LS4zIDQuOS0uMyAyLjUgMCA0LjEuNCA1LjIgMS4zIDEgLjcgMS41IDEuOSAxLjUgMy41IDAgMi0xLjQgMy41LTIuOSA0LjEgMS4yLjQgMS43IDEuNiAyLjIgMyAuNiAxLjkgMSAzLjkgMS4zIDQuNmgtMy44Yy0uMy0uNC0uOC0xLjctMS4yLTMuN3MtMS4yLTIuNi0yLjYtMi42aC0uOXY2LjRINC40VjIuNXptMy43IDYuOWgxLjRjMS45IDAgMi45LS45IDIuOS0yLjNzLTEtMi4zLTIuOC0yLjNjLS43IDAtMS4zIDAtMS42LjJ2NC41aC4xdi0uMXoiLz4KPC9zdmc+Cg==);
--jp-icon-react: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMTUwIDE1MCA1NDEuOSAyOTUuMyI+CiAgPGcgY2xhc3M9ImpwLWljb24tYnJhbmQyIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxREFGQiI+CiAgICA8cGF0aCBkPSJNNjY2LjMgMjk2LjVjMC0zMi41LTQwLjctNjMuMy0xMDMuMS04Mi40IDE0LjQtNjMuNiA4LTExNC4yLTIwLjItMTMwLjQtNi41LTMuOC0xNC4xLTUuNi0yMi40LTUuNnYyMi4zYzQuNiAwIDguMy45IDExLjQgMi42IDEzLjYgNy44IDE5LjUgMzcuNSAxNC45IDc1LjctMS4xIDkuNC0yLjkgMTkuMy01LjEgMjkuNC0xOS42LTQuOC00MS04LjUtNjMuNS0xMC45LTEzLjUtMTguNS0yNy41LTM1LjMtNDEuNi01MCAzMi42LTMwLjMgNjMuMi00Ni45IDg0LTQ2LjlWNzhjLTI3LjUgMC02My41IDE5LjYtOTkuOSA1My42LTM2LjQtMzMuOC03Mi40LTUzLjItOTkuOS01My4ydjIyLjNjMjAuNyAwIDUxLjQgMTYuNSA4NCA0Ni42LTE0IDE0LjctMjggMzEuNC00MS4zIDQ5LjktMjIuNiAyLjQtNDQgNi4xLTYzLjYgMTEtMi4zLTEwLTQtMTkuNy01LjItMjktNC43LTM4LjIgMS4xLTY3LjkgMTQuNi03NS44IDMtMS44IDYuOS0yLjYgMTEuNS0yLjZWNzguNWMtOC40IDAtMTYgMS44LTIyLjYgNS42LTI4LjEgMTYuMi0zNC40IDY2LjctMTkuOSAxMzAuMS02Mi4yIDE5LjItMTAyLjcgNDkuOS0xMDIuNyA4Mi4zIDAgMzIuNSA0MC43IDYzLjMgMTAzLjEgODIuNC0xNC40IDYzLjYtOCAxMTQuMiAyMC4yIDEzMC40IDYuNSAzLjggMTQuMSA1LjYgMjIuNSA1LjYgMjcuNSAwIDYzLjUtMTkuNiA5OS45LTUzLjYgMzYuNCAzMy44IDcyLjQgNTMuMiA5OS45IDUzLjIgOC40IDAgMTYtMS44IDIyLjYtNS42IDI4LjEtMTYuMiAzNC40LTY2LjcgMTkuOS0xMzAuMSA2Mi0xOS4xIDEwMi41LTQ5LjkgMTAyLjUtODIuM3ptLTEzMC4yLTY2LjdjLTMuNyAxMi45LTguMyAyNi4yLTEzLjUgMzkuNS00LjEtOC04LjQtMTYtMTMuMS0yNC00LjYtOC05LjUtMTUuOC0xNC40LTIzLjQgMTQuMiAyLjEgMjcuOSA0LjcgNDEgNy45em0tNDUuOCAxMDYuNWMtNy44IDEzLjUtMTUuOCAyNi4zLTI0LjEgMzguMi0xNC45IDEuMy0zMCAyLTQ1LjIgMi0xNS4xIDAtMzAuMi0uNy00NS0xLjktOC4zLTExLjktMTYuNC0yNC42LTI0LjItMzgtNy42LTEzLjEtMTQuNS0yNi40LTIwLjgtMzkuOCA2LjItMTMuNCAxMy4yLTI2LjggMjAuNy0zOS45IDcuOC0xMy41IDE1LjgtMjYuMyAyNC4xLTM4LjIgMTQuOS0xLjMgMzAtMiA0NS4yLTIgMTUuMSAwIDMwLjIuNyA0NSAxLjkgOC4zIDExLjkgMTYuNCAyNC42IDI0LjIgMzggNy42IDEzLjEgMTQuNSAyNi40IDIwLjggMzkuOC02LjMgMTMuNC0xMy4yIDI2LjgtMjAuNyAzOS45em0zMi4zLTEzYzUuNCAxMy40IDEwIDI2LjggMTMuOCAzOS44LTEzLjEgMy4yLTI2LjkgNS45LTQxLjIgOCA0LjktNy43IDkuOC0xNS42IDE0LjQtMjMuNyA0LjYtOCA4LjktMTYuMSAxMy0yNC4xek00MjEuMiA0MzBjLTkuMy05LjYtMTguNi0yMC4zLTI3LjgtMzIgOSAuNCAxOC4yLjcgMjcuNS43IDkuNCAwIDE4LjctLjIgMjcuOC0uNy05IDExLjctMTguMyAyMi40LTI3LjUgMzJ6bS03NC40LTU4LjljLTE0LjItMi4xLTI3LjktNC43LTQxLTcuOSAzLjctMTIuOSA4LjMtMjYuMiAxMy41LTM5LjUgNC4xIDggOC40IDE2IDEzLjEgMjQgNC43IDggOS41IDE1LjggMTQuNCAyMy40ek00MjAuNyAxNjNjOS4zIDkuNiAxOC42IDIwLjMgMjcuOCAzMi05LS40LTE4LjItLjctMjcuNS0uNy05LjQgMC0xOC43LjItMjcuOC43IDktMTEuNyAxOC4zLTIyLjQgMjcuNS0zMnptLTc0IDU4LjljLTQuOSA3LjctOS44IDE1LjYtMTQuNCAyMy43LTQuNiA4LTguOSAxNi0xMyAyNC01LjQtMTMuNC0xMC0yNi44LTEzLjgtMzkuOCAxMy4xLTMuMSAyNi45LTUuOCA0MS4yLTcuOXptLTkwLjUgMTI1LjJjLTM1LjQtMTUuMS01OC4zLTM0LjktNTguMy01MC42IDAtMTUuNyAyMi45LTM1LjYgNTguMy01MC42IDguNi0zLjcgMTgtNyAyNy43LTEwLjEgNS43IDE5LjYgMTMuMiA0MCAyMi41IDYwLjktOS4yIDIwLjgtMTYuNiA0MS4xLTIyLjIgNjAuNi05LjktMy4xLTE5LjMtNi41LTI4LTEwLjJ6TTMxMCA0OTBjLTEzLjYtNy44LTE5LjUtMzcuNS0xNC45LTc1LjcgMS4xLTkuNCAyLjktMTkuMyA1LjEtMjkuNCAxOS42IDQuOCA0MSA4LjUgNjMuNSAxMC45IDEzLjUgMTguNSAyNy41IDM1LjMgNDEuNiA1MC0zMi42IDMwLjMtNjMuMiA0Ni45LTg0IDQ2LjktNC41LS4xLTguMy0xLTExLjMtMi43em0yMzcuMi03Ni4yYzQuNyAzOC4yLTEuMSA2Ny45LTE0LjYgNzUuOC0zIDEuOC02LjkgMi42LTExLjUgMi42LTIwLjcgMC01MS40LTE2LjUtODQtNDYuNiAxNC0xNC43IDI4LTMxLjQgNDEuMy00OS45IDIyLjYtMi40IDQ0LTYuMSA2My42LTExIDIuMyAxMC4xIDQuMSAxOS44IDUuMiAyOS4xem0zOC41LTY2LjdjLTguNiAzLjctMTggNy0yNy43IDEwLjEtNS43LTE5LjYtMTMuMi00MC0yMi41LTYwLjkgOS4yLTIwLjggMTYuNi00MS4xIDIyLjItNjAuNiA5LjkgMy4xIDE5LjMgNi41IDI4LjEgMTAuMiAzNS40IDE1LjEgNTguMyAzNC45IDU4LjMgNTAuNi0uMSAxNS43LTIzIDM1LjYtNTguNCA1MC42ek0zMjAuOCA3OC40eiIvPgogICAgPGNpcmNsZSBjeD0iNDIwLjkiIGN5PSIyOTYuNSIgcj0iNDUuNyIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-redo: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-refresh: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTkgMTMuNWMtMi40OSAwLTQuNS0yLjAxLTQuNS00LjVTNi41MSA0LjUgOSA0LjVjMS4yNCAwIDIuMzYuNTIgMy4xNyAxLjMzTDEwIDhoNVYzbC0xLjc2IDEuNzZDMTIuMTUgMy42OCAxMC42NiAzIDkgMyA1LjY5IDMgMy4wMSA1LjY5IDMuMDEgOVM1LjY5IDE1IDkgMTVjMi45NyAwIDUuNDMtMi4xNiA1LjktNWgtMS41MmMtLjQ2IDItMi4yNCAzLjUtNC4zOCAzLjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-regex: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiBmaWxsPSIjRkZGIj4KICAgIDxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjUuNSIgY3k9IjE0LjUiIHI9IjEuNSIvPgogICAgPHJlY3QgeD0iMTIiIHk9IjQiIGNsYXNzPSJzdDIiIHdpZHRoPSIxIiBoZWlnaHQ9IjgiLz4KICAgIDxyZWN0IHg9IjguNSIgeT0iNy41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg2NiAtMC41IDAuNSAwLjg2NiAtMi4zMjU1IDcuMzIxOSkiIGNsYXNzPSJzdDIiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiLz4KICAgIDxyZWN0IHg9IjEyIiB5PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgLTAuODY2IDAuODY2IDAuNSAtMC42Nzc5IDE0LjgyNTIpIiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-run: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-running: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYweiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-save: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-search: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjEsMTAuOWgtMC43bC0wLjItMC4yYzAuOC0wLjksMS4zLTIuMiwxLjMtMy41YzAtMy0yLjQtNS40LTUuNC01LjRTMS44LDQuMiwxLjgsNy4xczIuNCw1LjQsNS40LDUuNCBjMS4zLDAsMi41LTAuNSwzLjUtMS4zbDAuMiwwLjJ2MC43bDQuMSw0LjFsMS4yLTEuMkwxMi4xLDEwLjl6IE03LjEsMTAuOWMtMi4xLDAtMy43LTEuNy0zLjctMy43czEuNy0zLjcsMy43LTMuN3MzLjcsMS43LDMuNywzLjcgUzkuMiwxMC45LDcuMSwxMC45eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-settings: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuNDMgMTIuOThjLjA0LS4zMi4wNy0uNjQuMDctLjk4cy0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2Yy0uMTItLjIyLS4zOS0uMy0uNjEtLjIybC0yLjQ5IDFjLS41Mi0uNC0xLjA4LS43My0xLjY5LS45OGwtLjM4LTIuNjVBLjQ4OC40ODggMCAwMDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFjLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0yIDMuNDZjLS4xMy4yMi0uMDcuNDkuMTIuNjRsMi4xMSAxLjY1Yy0uMDQuMzItLjA3LjY1LS4wNy45OHMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2Yy4xMi4yMi4zOS4zLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjIzLjA5LjQ5IDAgLjYxLS4yMmwyLTMuNDZjLjEyLS4yMi4wNy0uNDktLjEyLS42NGwtMi4xMS0xLjY1ek0xMiAxNS41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXoiLz4KPC9zdmc+Cg==);
--jp-icon-spreadsheet: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNENBRjUwIiBkPSJNMi4yIDIuMnYxNy42aDE3LjZWMi4ySDIuMnptMTUuNCA3LjdoLTUuNVY0LjRoNS41djUuNXpNOS45IDQuNHY1LjVINC40VjQuNGg1LjV6bS01LjUgNy43aDUuNXY1LjVINC40di01LjV6bTcuNyA1LjV2LTUuNWg1LjV2NS41aC01LjV6Ii8+Cjwvc3ZnPgo=);
--jp-icon-stop: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik02IDZoMTJ2MTJINnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-tab: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-table-rows: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMSw4SDNWNGgxOFY4eiBNMjEsMTBIM3Y0aDE4VjEweiBNMjEsMTZIM3Y0aDE4VjE2eiIvPgogICAgPC9nPgo8L3N2Zz4=);
--jp-icon-tag: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCA0MyAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTI4LjgzMzIgMTIuMzM0TDMyLjk5OTggMTYuNTAwN0wzNy4xNjY1IDEyLjMzNEgyOC44MzMyWiIvPgoJCTxwYXRoIGQ9Ik0xNi4yMDk1IDIxLjYxMDRDMTUuNjg3MyAyMi4xMjk5IDE0Ljg0NDMgMjIuMTI5OSAxNC4zMjQ4IDIxLjYxMDRMNi45ODI5IDE0LjcyNDVDNi41NzI0IDE0LjMzOTQgNi4wODMxMyAxMy42MDk4IDYuMDQ3ODYgMTMuMDQ4MkM1Ljk1MzQ3IDExLjUyODggNi4wMjAwMiA4LjYxOTQ0IDYuMDY2MjEgNy4wNzY5NUM2LjA4MjgxIDYuNTE0NzcgNi41NTU0OCA2LjA0MzQ3IDcuMTE4MDQgNi4wMzA1NUM5LjA4ODYzIDUuOTg0NzMgMTMuMjYzOCA1LjkzNTc5IDEzLjY1MTggNi4zMjQyNUwyMS43MzY5IDEzLjYzOUMyMi4yNTYgMTQuMTU4NSAyMS43ODUxIDE1LjQ3MjQgMjEuMjYyIDE1Ljk5NDZMMTYuMjA5NSAyMS42MTA0Wk05Ljc3NTg1IDguMjY1QzkuMzM1NTEgNy44MjU2NiA4LjYyMzUxIDcuODI1NjYgOC4xODI4IDguMjY1QzcuNzQzNDYgOC43MDU3MSA3Ljc0MzQ2IDkuNDE3MzMgOC4xODI4IDkuODU2NjdDOC42MjM4MiAxMC4yOTY0IDkuMzM1ODIgMTAuMjk2NCA5Ljc3NTg1IDkuODU2NjdDMTAuMjE1NiA5LjQxNzMzIDEwLjIxNTYgOC43MDUzMyA5Ljc3NTg1IDguMjY1WiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-terminal: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiA+CiAgICA8cmVjdCBjbGFzcz0ianAtaWNvbjIganAtaWNvbi1zZWxlY3RhYmxlIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMikiIGZpbGw9IiMzMzMzMzMiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uLWFjY2VudDIganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGQ9Ik01LjA1NjY0IDguNzYxNzJDNS4wNTY2NCA4LjU5NzY2IDUuMDMxMjUgOC40NTMxMiA0Ljk4MDQ3IDguMzI4MTJDNC45MzM1OSA4LjE5OTIyIDQuODU1NDcgOC4wODIwMyA0Ljc0NjA5IDcuOTc2NTZDNC42NDA2MiA3Ljg3MTA5IDQuNSA3Ljc3NTM5IDQuMzI0MjIgNy42ODk0NUM0LjE1MjM0IDcuNTk5NjEgMy45NDMzNiA3LjUxMTcyIDMuNjk3MjcgNy40MjU3OEMzLjMwMjczIDcuMjg1MTYgMi45NDMzNiA3LjEzNjcyIDIuNjE5MTQgNi45ODA0N0MyLjI5NDkyIDYuODI0MjIgMi4wMTc1OCA2LjY0MjU4IDEuNzg3MTEgNi40MzU1NUMxLjU2MDU1IDYuMjI4NTIgMS4zODQ3NyA1Ljk4ODI4IDEuMjU5NzcgNS43MTQ4NEMxLjEzNDc3IDUuNDM3NSAxLjA3MjI3IDUuMTA5MzggMS4wNzIyNyA0LjczMDQ3QzEuMDcyMjcgNC4zOTg0NCAxLjEyODkxIDQuMDk1NyAxLjI0MjE5IDMuODIyMjdDMS4zNTU0NyAzLjU0NDkyIDEuNTE1NjIgMy4zMDQ2OSAxLjcyMjY2IDMuMTAxNTZDMS45Mjk2OSAyLjg5ODQ0IDIuMTc5NjkgMi43MzQzNyAyLjQ3MjY2IDIuNjA5MzhDMi43NjU2MiAyLjQ4NDM4IDMuMDkxOCAyLjQwNDMgMy40NTExNyAyLjM2OTE0VjEuMTA5MzhINC4zODg2N1YyLjM4MDg2QzQuNzQwMjMgMi40Mjc3MyA1LjA1NjY0IDIuNTIzNDQgNS4zMzc4OSAyLjY2Nzk3QzUuNjE5MTQgMi44MTI1IDUuODU3NDIgMy4wMDE5NSA2LjA1MjczIDMuMjM2MzNDNi4yNTE5NSAzLjQ2NjggNi40MDQzIDMuNzQwMjMgNi41MDk3NyA0LjA1NjY0QzYuNjE5MTQgNC4zNjkxNCA2LjY3MzgzIDQuNzIwNyA2LjY3MzgzIDUuMTExMzNINS4wNDQ5MkM1LjA0NDkyIDQuNjM4NjcgNC45Mzc1IDQuMjgxMjUgNC43MjI2NiA0LjAzOTA2QzQuNTA3ODEgMy43OTI5NyA0LjIxNjggMy42Njk5MiAzLjg0OTYxIDMuNjY5OTJDMy42NTAzOSAzLjY2OTkyIDMuNDc2NTYgMy42OTcyNyAzLjMyODEyIDMuNzUxOTVDMy4xODM1OSAzLjgwMjczIDMuMDY0NDUgMy44NzY5NSAyLjk3MDcgMy45NzQ2MUMyLjg3Njk1IDQuMDY4MzYgMi44MDY2NCA0LjE3OTY5IDIuNzU5NzcgNC4zMDg1OUMyLjcxNjggNC40Mzc1IDIuNjk1MzEgNC41NzgxMiAyLjY5NTMxIDQuNzMwNDdDMi42OTUzMSA0Ljg4MjgxIDIuNzE2OCA1LjAxOTUzIDIuNzU5NzcgNS4xNDA2MkMyLjgwNjY0IDUuMjU3ODEgMi44ODI4MSA1LjM2NzE5IDIuOTg4MjggNS40Njg3NUMzLjA5NzY2IDUuNTcwMzEgMy4yNDAyMyA1LjY2Nzk3IDMuNDE2MDIgNS43NjE3MkMzLjU5MTggNS44NTE1NiAzLjgxMDU1IDUuOTQzMzYgNC4wNzIyNyA2LjAzNzExQzQuNDY2OCA2LjE4NTU1IDQuODI0MjIgNi4zMzk4NCA1LjE0NDUzIDYuNUM1LjQ2NDg0IDYuNjU2MjUgNS43MzgyOCA2LjgzOTg0IDUuOTY0ODQgNy4wNTA3OEM2LjE5NTMxIDcuMjU3ODEgNi4zNzEwOSA3LjUgNi40OTIxOSA3Ljc3NzM0QzYuNjE3MTkgOC4wNTA3OCA2LjY3OTY5IDguMzc1IDYuNjc5NjkgOC43NUM2LjY3OTY5IDkuMDkzNzUgNi42MjMwNSA5LjQwNDMgNi41MDk3NyA5LjY4MTY0QzYuMzk2NDggOS45NTUwOCA2LjIzNDM4IDEwLjE5MTQgNi4wMjM0NCAxMC4zOTA2QzUuODEyNSAxMC41ODk4IDUuNTU4NTkgMTAuNzUgNS4yNjE3MiAxMC44NzExQzQuOTY0ODQgMTAuOTg4MyA0LjYzMjgxIDExLjA2NDUgNC4yNjU2MiAxMS4wOTk2VjEyLjI0OEgzLjMzMzk4VjExLjA5OTZDMy4wMDE5NSAxMS4wNjg0IDIuNjc5NjkgMTAuOTk2MSAyLjM2NzE5IDEwLjg4MjhDMi4wNTQ2OSAxMC43NjU2IDEuNzc3MzQgMTAuNTk3NyAxLjUzNTE2IDEwLjM3ODlDMS4yOTY4OCAxMC4xNjAyIDEuMTA1NDcgOS44ODQ3NyAwLjk2MDkzOCA5LjU1MjczQzAuODE2NDA2IDkuMjE2OCAwLjc0NDE0MSA4LjgxNDQ1IDAuNzQ0MTQxIDguMzQ1N0gyLjM3ODkxQzIuMzc4OTEgOC42MjY5NSAyLjQxOTkyIDguODYzMjggMi41MDE5NSA5LjA1NDY5QzIuNTgzOTggOS4yNDIxOSAyLjY4OTQ1IDkuMzkyNTggMi44MTgzNiA5LjUwNTg2QzIuOTUxMTcgOS42MTUyMyAzLjEwMTU2IDkuNjkzMzYgMy4yNjk1MyA5Ljc0MDIzQzMuNDM3NSA5Ljc4NzExIDMuNjA5MzggOS44MTA1NSAzLjc4NTE2IDkuODEwNTVDNC4yMDMxMiA5LjgxMDU1IDQuNTE5NTMgOS43MTI4OSA0LjczNDM4IDkuNTE3NThDNC45NDkyMiA5LjMyMjI3IDUuMDU2NjQgOS4wNzAzMSA1LjA1NjY0IDguNzYxNzJaTTEzLjQxOCAxMi4yNzE1SDguMDc0MjJWMTFIMTMuNDE4VjEyLjI3MTVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjk1MjY0IDYpIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K);
--jp-icon-text-editor: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTUgMTVIM3YyaDEydi0yem0wLThIM3YyaDEyVjd6TTMgMTNoMTh2LTJIM3Yyem0wIDhoMTh2LTJIM3Yyek0zIDN2MmgxOFYzSDN6Ii8+Cjwvc3ZnPgo=);
--jp-icon-toc: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik03LDVIMjFWN0g3VjVNNywxM1YxMUgyMVYxM0g3TTQsNC41QTEuNSwxLjUgMCAwLDEgNS41LDZBMS41LDEuNSAwIDAsMSA0LDcuNUExLjUsMS41IDAgMCwxIDIuNSw2QTEuNSwxLjUgMCAwLDEgNCw0LjVNNCwxMC41QTEuNSwxLjUgMCAwLDEgNS41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMy41QTEuNSwxLjUgMCAwLDEgMi41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMC41TTcsMTlWMTdIMjFWMTlIN000LDE2LjVBMS41LDEuNSAwIDAsMSA1LjUsMThBMS41LDEuNSAwIDAsMSA0LDE5LjVBMS41LDEuNSAwIDAsMSAyLjUsMThBMS41LDEuNSAwIDAsMSA0LDE2LjVaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-tree-view: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzeiIvPgogICAgPC9nPgo8L3N2Zz4=);
--jp-icon-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMiAxNy4xODQ0IDIuOTY5NjggMTQuMzAzMiAxLjg2MDk0IDExLjQ0MDlaIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiMzMzMzMzMiIHN0cm9rZT0iIzMzMzMzMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA5Ljg2NzE5KSIgZD0iTTIuODYwMTUgNC44NjUzNUwwLjcyNjU0OSAyLjk5OTU5TDAgMy42MzA0NUwyLjg2MDE1IDYuMTMxNTdMOCAwLjYzMDg3Mkw3LjI3ODU3IDBMMi44NjAxNSA0Ljg2NTM1WiIvPgo8L3N2Zz4K);
--jp-icon-undo: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-vega: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbjEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjEyMTIxIj4KICAgIDxwYXRoIGQ9Ik0xMC42IDUuNGwyLjItMy4ySDIuMnY3LjNsNC02LjZ6Ii8+CiAgICA8cGF0aCBkPSJNMTUuOCAyLjJsLTQuNCA2LjZMNyA2LjNsLTQuOCA4djUuNWgxNy42VjIuMmgtNHptLTcgMTUuNEg1LjV2LTQuNGgzLjN2NC40em00LjQgMEg5LjhWOS44aDMuNHY3Ljh6bTQuNCAwaC0zLjRWNi41aDMuNHYxMS4xeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-yaml: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1jb250cmFzdDIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjRDgxQjYwIj4KICAgIDxwYXRoIGQ9Ik03LjIgMTguNnYtNS40TDMgNS42aDMuM2wxLjQgMy4xYy4zLjkuNiAxLjYgMSAyLjUuMy0uOC42LTEuNiAxLTIuNWwxLjQtMy4xaDMuNGwtNC40IDcuNnY1LjVsLTIuOS0uMXoiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxNi41IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxMSIgcj0iMi4xIi8+CiAgPC9nPgo8L3N2Zz4K);
}
/* Icon CSS class declarations */
.jp-AddIcon {
background-image: var(--jp-icon-add);
}
.jp-BugIcon {
background-image: var(--jp-icon-bug);
}
.jp-BuildIcon {
background-image: var(--jp-icon-build);
}
.jp-CaretDownEmptyIcon {
background-image: var(--jp-icon-caret-down-empty);
}
.jp-CaretDownEmptyThinIcon {
background-image: var(--jp-icon-caret-down-empty-thin);
}
.jp-CaretDownIcon {
background-image: var(--jp-icon-caret-down);
}
.jp-CaretLeftIcon {
background-image: var(--jp-icon-caret-left);
}
.jp-CaretRightIcon {
background-image: var(--jp-icon-caret-right);
}
.jp-CaretUpEmptyThinIcon {
background-image: var(--jp-icon-caret-up-empty-thin);
}
.jp-CaretUpIcon {
background-image: var(--jp-icon-caret-up);
}
.jp-CaseSensitiveIcon {
background-image: var(--jp-icon-case-sensitive);
}
.jp-CheckIcon {
background-image: var(--jp-icon-check);
}
.jp-CircleEmptyIcon {
background-image: var(--jp-icon-circle-empty);
}
.jp-CircleIcon {
background-image: var(--jp-icon-circle);
}
.jp-ClearIcon {
background-image: var(--jp-icon-clear);
}
.jp-CloseIcon {
background-image: var(--jp-icon-close);
}
.jp-CodeIcon {
background-image: var(--jp-icon-code);
}
.jp-ConsoleIcon {
background-image: var(--jp-icon-console);
}
.jp-CopyIcon {
background-image: var(--jp-icon-copy);
}
.jp-CopyrightIcon {
background-image: var(--jp-icon-copyright);
}
.jp-CutIcon {
background-image: var(--jp-icon-cut);
}
.jp-DownloadIcon {
background-image: var(--jp-icon-download);
}
.jp-EditIcon {
background-image: var(--jp-icon-edit);
}
.jp-EllipsesIcon {
background-image: var(--jp-icon-ellipses);
}
.jp-ExtensionIcon {
background-image: var(--jp-icon-extension);
}
.jp-FastForwardIcon {
background-image: var(--jp-icon-fast-forward);
}
.jp-FileIcon {
background-image: var(--jp-icon-file);
}
.jp-FileUploadIcon {
background-image: var(--jp-icon-file-upload);
}
.jp-FilterListIcon {
background-image: var(--jp-icon-filter-list);
}
.jp-FolderIcon {
background-image: var(--jp-icon-folder);
}
.jp-Html5Icon {
background-image: var(--jp-icon-html5);
}
.jp-ImageIcon {
background-image: var(--jp-icon-image);
}
.jp-InspectorIcon {
background-image: var(--jp-icon-inspector);
}
.jp-JsonIcon {
background-image: var(--jp-icon-json);
}
.jp-JuliaIcon {
background-image: var(--jp-icon-julia);
}
.jp-JupyterFaviconIcon {
background-image: var(--jp-icon-jupyter-favicon);
}
.jp-JupyterIcon {
background-image: var(--jp-icon-jupyter);
}
.jp-JupyterlabWordmarkIcon {
background-image: var(--jp-icon-jupyterlab-wordmark);
}
.jp-KernelIcon {
background-image: var(--jp-icon-kernel);
}
.jp-KeyboardIcon {
background-image: var(--jp-icon-keyboard);
}
.jp-LauncherIcon {
background-image: var(--jp-icon-launcher);
}
.jp-LineFormIcon {
background-image: var(--jp-icon-line-form);
}
.jp-LinkIcon {
background-image: var(--jp-icon-link);
}
.jp-ListIcon {
background-image: var(--jp-icon-list);
}
.jp-ListingsInfoIcon {
background-image: var(--jp-icon-listings-info);
}
.jp-MarkdownIcon {
background-image: var(--jp-icon-markdown);
}
.jp-NewFolderIcon {
background-image: var(--jp-icon-new-folder);
}
.jp-NotTrustedIcon {
background-image: var(--jp-icon-not-trusted);
}
.jp-NotebookIcon {
background-image: var(--jp-icon-notebook);
}
.jp-NumberingIcon {
background-image: var(--jp-icon-numbering);
}
.jp-OfflineBoltIcon {
background-image: var(--jp-icon-offline-bolt);
}
.jp-PaletteIcon {
background-image: var(--jp-icon-palette);
}
.jp-PasteIcon {
background-image: var(--jp-icon-paste);
}
.jp-PdfIcon {
background-image: var(--jp-icon-pdf);
}
.jp-PythonIcon {
background-image: var(--jp-icon-python);
}
.jp-RKernelIcon {
background-image: var(--jp-icon-r-kernel);
}
.jp-ReactIcon {
background-image: var(--jp-icon-react);
}
.jp-RedoIcon {
background-image: var(--jp-icon-redo);
}
.jp-RefreshIcon {
background-image: var(--jp-icon-refresh);
}
.jp-RegexIcon {
background-image: var(--jp-icon-regex);
}
.jp-RunIcon {
background-image: var(--jp-icon-run);
}
.jp-RunningIcon {
background-image: var(--jp-icon-running);
}
.jp-SaveIcon {
background-image: var(--jp-icon-save);
}
.jp-SearchIcon {
background-image: var(--jp-icon-search);
}
.jp-SettingsIcon {
background-image: var(--jp-icon-settings);
}
.jp-SpreadsheetIcon {
background-image: var(--jp-icon-spreadsheet);
}
.jp-StopIcon {
background-image: var(--jp-icon-stop);
}
.jp-TabIcon {
background-image: var(--jp-icon-tab);
}
.jp-TableRowsIcon {
background-image: var(--jp-icon-table-rows);
}
.jp-TagIcon {
background-image: var(--jp-icon-tag);
}
.jp-TerminalIcon {
background-image: var(--jp-icon-terminal);
}
.jp-TextEditorIcon {
background-image: var(--jp-icon-text-editor);
}
.jp-TocIcon {
background-image: var(--jp-icon-toc);
}
.jp-TreeViewIcon {
background-image: var(--jp-icon-tree-view);
}
.jp-TrustedIcon {
background-image: var(--jp-icon-trusted);
}
.jp-UndoIcon {
background-image: var(--jp-icon-undo);
}
.jp-VegaIcon {
background-image: var(--jp-icon-vega);
}
.jp-YamlIcon {
background-image: var(--jp-icon-yaml);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* (DEPRECATED) Support for consuming icons as CSS background images
*/
.jp-Icon,
.jp-MaterialIcon {
background-position: center;
background-repeat: no-repeat;
background-size: 16px;
min-width: 16px;
min-height: 16px;
}
.jp-Icon-cover {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
/**
* (DEPRECATED) Support for specific CSS icon sizes
*/
.jp-Icon-16 {
background-size: 16px;
min-width: 16px;
min-height: 16px;
}
.jp-Icon-18 {
background-size: 18px;
min-width: 18px;
min-height: 18px;
}
.jp-Icon-20 {
background-size: 20px;
min-width: 20px;
min-height: 20px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* Support for icons as inline SVG HTMLElements
*/
/* recolor the primary elements of an icon */
.jp-icon0[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon1[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon2[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon3[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon4[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon0[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon1[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon2[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon3[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon4[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/* recolor the accent elements of an icon */
.jp-icon-accent0[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-accent1[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-accent2[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-accent3[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-accent4[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-accent0[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-accent1[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-accent2[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-accent3[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-accent4[stroke] {
stroke: var(--jp-layout-color4);
}
/* set the color of an icon to transparent */
.jp-icon-none[fill] {
fill: none;
}
.jp-icon-none[stroke] {
stroke: none;
}
/* brand icon colors. Same for light and dark */
.jp-icon-brand0[fill] {
fill: var(--jp-brand-color0);
}
.jp-icon-brand1[fill] {
fill: var(--jp-brand-color1);
}
.jp-icon-brand2[fill] {
fill: var(--jp-brand-color2);
}
.jp-icon-brand3[fill] {
fill: var(--jp-brand-color3);
}
.jp-icon-brand4[fill] {
fill: var(--jp-brand-color4);
}
.jp-icon-brand0[stroke] {
stroke: var(--jp-brand-color0);
}
.jp-icon-brand1[stroke] {
stroke: var(--jp-brand-color1);
}
.jp-icon-brand2[stroke] {
stroke: var(--jp-brand-color2);
}
.jp-icon-brand3[stroke] {
stroke: var(--jp-brand-color3);
}
.jp-icon-brand4[stroke] {
stroke: var(--jp-brand-color4);
}
/* warn icon colors. Same for light and dark */
.jp-icon-warn0[fill] {
fill: var(--jp-warn-color0);
}
.jp-icon-warn1[fill] {
fill: var(--jp-warn-color1);
}
.jp-icon-warn2[fill] {
fill: var(--jp-warn-color2);
}
.jp-icon-warn3[fill] {
fill: var(--jp-warn-color3);
}
.jp-icon-warn0[stroke] {
stroke: var(--jp-warn-color0);
}
.jp-icon-warn1[stroke] {
stroke: var(--jp-warn-color1);
}
.jp-icon-warn2[stroke] {
stroke: var(--jp-warn-color2);
}
.jp-icon-warn3[stroke] {
stroke: var(--jp-warn-color3);
}
/* icon colors that contrast well with each other and most backgrounds */
.jp-icon-contrast0[fill] {
fill: var(--jp-icon-contrast-color0);
}
.jp-icon-contrast1[fill] {
fill: var(--jp-icon-contrast-color1);
}
.jp-icon-contrast2[fill] {
fill: var(--jp-icon-contrast-color2);
}
.jp-icon-contrast3[fill] {
fill: var(--jp-icon-contrast-color3);
}
.jp-icon-contrast0[stroke] {
stroke: var(--jp-icon-contrast-color0);
}
.jp-icon-contrast1[stroke] {
stroke: var(--jp-icon-contrast-color1);
}
.jp-icon-contrast2[stroke] {
stroke: var(--jp-icon-contrast-color2);
}
.jp-icon-contrast3[stroke] {
stroke: var(--jp-icon-contrast-color3);
}
/* CSS for icons in selected items in the settings editor */
#setting-editor .jp-PluginList .jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
#setting-editor
.jp-PluginList
.jp-mod-selected
.jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* CSS for icons in selected filebrowser listing items */
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* CSS for icons in selected tabs in the sidebar tab manager */
#tab-manager .lm-TabBar-tab.jp-mod-active .jp-icon-selectable[fill] {
fill: #fff;
}
#tab-manager .lm-TabBar-tab.jp-mod-active .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
#tab-manager
.lm-TabBar-tab.jp-mod-active
.jp-icon-hover
:hover
.jp-icon-selectable[fill] {
fill: var(--jp-brand-color1);
}
#tab-manager
.lm-TabBar-tab.jp-mod-active
.jp-icon-hover
:hover
.jp-icon-selectable-inverse[fill] {
fill: #fff;
}
/**
* TODO: come up with non css-hack solution for showing the busy icon on top
* of the close icon
* CSS for complex behavior of close icon of tabs in the sidebar tab manager
*/
#tab-manager
.lm-TabBar-tab.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon3[fill] {
fill: none;
}
#tab-manager
.lm-TabBar-tab.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon-busy[fill] {
fill: var(--jp-inverse-layout-color3);
}
#tab-manager
.lm-TabBar-tab.jp-mod-dirty.jp-mod-active
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon-busy[fill] {
fill: #fff;
}
/**
* TODO: come up with non css-hack solution for showing the busy icon on top
* of the close icon
* CSS for complex behavior of close icon of tabs in the main area tabbar
*/
.lm-DockPanel-tabBar
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon3[fill] {
fill: none;
}
.lm-DockPanel-tabBar
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon-busy[fill] {
fill: var(--jp-inverse-layout-color3);
}
/* CSS for icons in status bar */
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* special handling for splash icon CSS. While the theme CSS reloads during
splash, the splash icon can loose theming. To prevent that, we set a
default for its color variable */
:root {
--jp-warn-color0: var(--md-orange-700);
}
/* not sure what to do with this one, used in filebrowser listing */
.jp-DragIcon {
margin-right: 4px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* Support for alt colors for icons as inline SVG HTMLElements
*/
/* alt recolor the primary elements of an icon */
.jp-icon-alt .jp-icon0[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-alt .jp-icon1[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-alt .jp-icon2[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-alt .jp-icon3[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-alt .jp-icon4[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-alt .jp-icon0[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-alt .jp-icon1[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-alt .jp-icon2[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-alt .jp-icon3[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-alt .jp-icon4[stroke] {
stroke: var(--jp-layout-color4);
}
/* alt recolor the accent elements of an icon */
.jp-icon-alt .jp-icon-accent0[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-alt .jp-icon-accent1[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-alt .jp-icon-accent2[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-alt .jp-icon-accent3[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-alt .jp-icon-accent4[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-alt .jp-icon-accent0[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-alt .jp-icon-accent1[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-alt .jp-icon-accent2[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-alt .jp-icon-accent3[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-alt .jp-icon-accent4[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-icon-hoverShow:not(:hover) svg {
display: none !important;
}
/**
* Support for hover colors for icons as inline SVG HTMLElements
*/
/**
* regular colors
*/
/* recolor the primary elements of an icon */
.jp-icon-hover :hover .jp-icon0-hover[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-hover :hover .jp-icon1-hover[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-hover :hover .jp-icon2-hover[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-hover :hover .jp-icon3-hover[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-hover :hover .jp-icon4-hover[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-hover :hover .jp-icon0-hover[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-hover :hover .jp-icon1-hover[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-hover :hover .jp-icon2-hover[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-hover :hover .jp-icon3-hover[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-hover :hover .jp-icon4-hover[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/* recolor the accent elements of an icon */
.jp-icon-hover :hover .jp-icon-accent0-hover[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-hover :hover .jp-icon-accent1-hover[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-hover :hover .jp-icon-accent2-hover[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-hover :hover .jp-icon-accent3-hover[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-hover :hover .jp-icon-accent4-hover[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-hover :hover .jp-icon-accent0-hover[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-hover :hover .jp-icon-accent1-hover[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-hover :hover .jp-icon-accent2-hover[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-hover :hover .jp-icon-accent3-hover[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-hover :hover .jp-icon-accent4-hover[stroke] {
stroke: var(--jp-layout-color4);
}
/* set the color of an icon to transparent */
.jp-icon-hover :hover .jp-icon-none-hover[fill] {
fill: none;
}
.jp-icon-hover :hover .jp-icon-none-hover[stroke] {
stroke: none;
}
/**
* inverse colors
*/
/* inverse recolor the primary elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[stroke] {
stroke: var(--jp-layout-color4);
}
/* inverse recolor the accent elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-switch {
display: flex;
align-items: center;
padding-left: 4px;
padding-right: 4px;
font-size: var(--jp-ui-font-size1);
background-color: transparent;
color: var(--jp-ui-font-color1);
border: none;
height: 20px;
}
.jp-switch:hover {
background-color: var(--jp-layout-color2);
}
.jp-switch-label {
margin-right: 5px;
}
.jp-switch-track {
cursor: pointer;
background-color: var(--jp-border-color1);
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 34px;
height: 16px;
width: 35px;
position: relative;
}
.jp-switch-track::before {
content: '';
position: absolute;
height: 10px;
width: 10px;
margin: 3px;
left: 0px;
background-color: var(--jp-ui-inverse-font-color1);
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 50%;
}
.jp-switch[aria-checked='true'] .jp-switch-track {
background-color: var(--jp-warn-color0);
}
.jp-switch[aria-checked='true'] .jp-switch-track::before {
/* track width (35) - margins (3 + 3) - thumb width (10) */
left: 19px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/* Sibling imports */
/* Override Blueprint's _reset.scss styles */
html {
box-sizing: unset;
}
*,
*::before,
*::after {
box-sizing: unset;
}
body {
color: unset;
font-family: var(--jp-ui-font-family);
}
p {
margin-top: unset;
margin-bottom: unset;
}
small {
font-size: unset;
}
strong {
font-weight: unset;
}
/* Override Blueprint's _typography.scss styles */
a {
text-decoration: unset;
color: unset;
}
a:hover {
text-decoration: unset;
color: unset;
}
/* Override Blueprint's _accessibility.scss styles */
:focus {
outline: unset;
outline-offset: unset;
-moz-outline-radius: unset;
}
/* Styles for ui-components */
.jp-Button {
border-radius: var(--jp-border-radius);
padding: 0px 12px;
font-size: var(--jp-ui-font-size1);
}
/* Use our own theme for hover styles */
button.jp-Button.bp3-button.bp3-minimal:hover {
background-color: var(--jp-layout-color2);
}
.jp-Button.minimal {
color: unset !important;
}
.jp-Button.jp-ToolbarButtonComponent {
text-transform: none;
}
.jp-InputGroup input {
box-sizing: border-box;
border-radius: 0;
background-color: transparent;
color: var(--jp-ui-font-color0);
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
}
.jp-InputGroup input:focus {
box-shadow: inset 0 0 0 var(--jp-border-width)
var(--jp-input-active-box-shadow-color),
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}
.jp-InputGroup input::placeholder,
input::placeholder {
color: var(--jp-ui-font-color3);
}
.jp-BPIcon {
display: inline-block;
vertical-align: middle;
margin: auto;
}
/* Stop blueprint futzing with our icon fills */
.bp3-icon.jp-BPIcon > svg:not([fill]) {
fill: var(--jp-inverse-layout-color3);
}
.jp-InputGroupAction {
padding: 6px;
}
.jp-HTMLSelect.jp-DefaultStyle select {
background-color: initial;
border: none;
border-radius: 0;
box-shadow: none;
color: var(--jp-ui-font-color0);
display: block;
font-size: var(--jp-ui-font-size1);
height: 24px;
line-height: 14px;
padding: 0 25px 0 10px;
text-align: left;
-moz-appearance: none;
-webkit-appearance: none;
}
/* Use our own theme for hover and option styles */
.jp-HTMLSelect.jp-DefaultStyle select:hover,
.jp-HTMLSelect.jp-DefaultStyle select > option {
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color0);
}
select {
box-sizing: border-box;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Collapse {
display: flex;
flex-direction: column;
align-items: stretch;
border-top: 1px solid var(--jp-border-color2);
border-bottom: 1px solid var(--jp-border-color2);
}
.jp-Collapse-header {
padding: 1px 12px;
color: var(--jp-ui-font-color1);
background-color: var(--jp-layout-color1);
font-size: var(--jp-ui-font-size2);
}
.jp-Collapse-header:hover {
background-color: var(--jp-layout-color2);
}
.jp-Collapse-contents {
padding: 0px 12px 0px 12px;
background-color: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
overflow: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-commandpalette-search-height: 28px;
}
/*-----------------------------------------------------------------------------
| Overall styles
|----------------------------------------------------------------------------*/
.lm-CommandPalette {
padding-bottom: 0px;
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
}
/*-----------------------------------------------------------------------------
| Modal variant
|----------------------------------------------------------------------------*/
.jp-ModalCommandPalette {
position: absolute;
z-index: 10000;
top: 38px;
left: 30%;
margin: 0;
padding: 4px;
width: 40%;
box-shadow: var(--jp-elevation-z4);
border-radius: 4px;
background: var(--jp-layout-color0);
}
.jp-ModalCommandPalette .lm-CommandPalette {
max-height: 40vh;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {
display: none;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {
display: none;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {
margin-left: 4px;
margin-right: 4px;
}
.jp-ModalCommandPalette
.lm-CommandPalette
.lm-CommandPalette-item.lm-mod-disabled {
display: none;
}
/*-----------------------------------------------------------------------------
| Search
|----------------------------------------------------------------------------*/
.lm-CommandPalette-search {
padding: 4px;
background-color: var(--jp-layout-color1);
z-index: 2;
}
.lm-CommandPalette-wrapper {
overflow: overlay;
padding: 0px 9px;
background-color: var(--jp-input-active-background);
height: 30px;
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
}
.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {
box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color),
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}
.jp-SearchIconGroup {
color: white;
background-color: var(--jp-brand-color1);
position: absolute;
top: 4px;
right: 4px;
padding: 5px 5px 1px 5px;
}
.jp-SearchIconGroup svg {
height: 20px;
width: 20px;
}
.jp-SearchIconGroup .jp-icon3[fill] {
fill: var(--jp-layout-color0);
}
.lm-CommandPalette-input {
background: transparent;
width: calc(100% - 18px);
float: left;
border: none;
outline: none;
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
line-height: var(--jp-private-commandpalette-search-height);
}
.lm-CommandPalette-input::-webkit-input-placeholder,
.lm-CommandPalette-input::-moz-placeholder,
.lm-CommandPalette-input:-ms-input-placeholder {
color: var(--jp-ui-font-color2);
font-size: var(--jp-ui-font-size1);
}
/*-----------------------------------------------------------------------------
| Results
|----------------------------------------------------------------------------*/
.lm-CommandPalette-header:first-child {
margin-top: 0px;
}
.lm-CommandPalette-header {
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
color: var(--jp-ui-font-color1);
cursor: pointer;
display: flex;
font-size: var(--jp-ui-font-size0);
font-weight: 600;
letter-spacing: 1px;
margin-top: 8px;
padding: 8px 0 8px 12px;
text-transform: uppercase;
}
.lm-CommandPalette-header.lm-mod-active {
background: var(--jp-layout-color2);
}
.lm-CommandPalette-header > mark {
background-color: transparent;
font-weight: bold;
color: var(--jp-ui-font-color1);
}
.lm-CommandPalette-item {
padding: 4px 12px 4px 4px;
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
font-weight: 400;
display: flex;
}
.lm-CommandPalette-item.lm-mod-disabled {
color: var(--jp-ui-font-color2);
}
.lm-CommandPalette-item.lm-mod-active {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-inverse-font-color0);
}
.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {
fill: var(--jp-layout-color0);
}
.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-inverse-font-color0);
}
.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {
background: var(--jp-layout-color2);
}
.lm-CommandPalette-itemContent {
overflow: hidden;
}
.lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.lm-CommandPalette-item.lm-mod-disabled mark {
color: var(--jp-ui-font-color2);
}
.lm-CommandPalette-item .lm-CommandPalette-itemIcon {
margin: 0 4px 0 0;
position: relative;
width: 16px;
top: 2px;
flex: 0 0 auto;
}
.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {
opacity: 0.6;
}
.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {
flex: 0 0 auto;
}
.lm-CommandPalette-itemCaption {
display: none;
}
.lm-CommandPalette-content {
background-color: var(--jp-layout-color1);
}
.lm-CommandPalette-content:empty:after {
content: 'No results';
margin: auto;
margin-top: 20px;
width: 100px;
display: block;
font-size: var(--jp-ui-font-size2);
font-family: var(--jp-ui-font-family);
font-weight: lighter;
}
.lm-CommandPalette-emptyMessage {
text-align: center;
margin-top: 24px;
line-height: 1.32;
padding: 0px 8px;
color: var(--jp-content-font-color3);
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Dialog {
position: absolute;
z-index: 10000;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
top: 0px;
left: 0px;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background: var(--jp-dialog-background);
}
.jp-Dialog-content {
display: flex;
flex-direction: column;
margin-left: auto;
margin-right: auto;
background: var(--jp-layout-color1);
padding: 24px;
padding-bottom: 12px;
min-width: 300px;
min-height: 150px;
max-width: 1000px;
max-height: 500px;
box-sizing: border-box;
box-shadow: var(--jp-elevation-z20);
word-wrap: break-word;
border-radius: var(--jp-border-radius);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color1);
resize: both;
}
.jp-Dialog-button {
overflow: visible;
}
button.jp-Dialog-button:focus {
outline: 1px solid var(--jp-brand-color1);
outline-offset: 4px;
-moz-outline-radius: 0px;
}
button.jp-Dialog-button:focus::-moz-focus-inner {
border: 0;
}
button.jp-Dialog-close-button {
padding: 0;
height: 100%;
min-width: unset;
min-height: unset;
}
.jp-Dialog-header {
display: flex;
justify-content: space-between;
flex: 0 0 auto;
padding-bottom: 12px;
font-size: var(--jp-ui-font-size3);
font-weight: 400;
color: var(--jp-ui-font-color0);
}
.jp-Dialog-body {
display: flex;
flex-direction: column;
flex: 1 1 auto;
font-size: var(--jp-ui-font-size1);
background: var(--jp-layout-color1);
overflow: auto;
}
.jp-Dialog-footer {
display: flex;
flex-direction: row;
justify-content: flex-end;
flex: 0 0 auto;
margin-left: -12px;
margin-right: -12px;
padding: 12px;
}
.jp-Dialog-title {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.jp-Dialog-body > .jp-select-wrapper {
width: 100%;
}
.jp-Dialog-body > button {
padding: 0px 16px;
}
.jp-Dialog-body > label {
line-height: 1.4;
color: var(--jp-ui-font-color0);
}
.jp-Dialog-button.jp-mod-styled:not(:last-child) {
margin-right: 12px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-HoverBox {
position: fixed;
}
.jp-HoverBox.jp-mod-outofview {
display: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-IFrame {
width: 100%;
height: 100%;
}
.jp-IFrame > iframe {
border: none;
}
/*
When drag events occur, `p-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-IFrame {
position: relative;
}
body.lm-mod-override-cursor .jp-IFrame:before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
}
.jp-Input-Boolean-Dialog {
flex-direction: row-reverse;
align-items: end;
width: 100%;
}
.jp-Input-Boolean-Dialog > label {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-MainAreaWidget > :focus {
outline: none;
}
/**
* google-material-color v1.2.6
* https://github.com/danlevan/google-material-color
*/
:root {
--md-red-50: #ffebee;
--md-red-100: #ffcdd2;
--md-red-200: #ef9a9a;
--md-red-300: #e57373;
--md-red-400: #ef5350;
--md-red-500: #f44336;
--md-red-600: #e53935;
--md-red-700: #d32f2f;
--md-red-800: #c62828;
--md-red-900: #b71c1c;
--md-red-A100: #ff8a80;
--md-red-A200: #ff5252;
--md-red-A400: #ff1744;
--md-red-A700: #d50000;
--md-pink-50: #fce4ec;
--md-pink-100: #f8bbd0;
--md-pink-200: #f48fb1;
--md-pink-300: #f06292;
--md-pink-400: #ec407a;
--md-pink-500: #e91e63;
--md-pink-600: #d81b60;
--md-pink-700: #c2185b;
--md-pink-800: #ad1457;
--md-pink-900: #880e4f;
--md-pink-A100: #ff80ab;
--md-pink-A200: #ff4081;
--md-pink-A400: #f50057;
--md-pink-A700: #c51162;
--md-purple-50: #f3e5f5;
--md-purple-100: #e1bee7;
--md-purple-200: #ce93d8;
--md-purple-300: #ba68c8;
--md-purple-400: #ab47bc;
--md-purple-500: #9c27b0;
--md-purple-600: #8e24aa;
--md-purple-700: #7b1fa2;
--md-purple-800: #6a1b9a;
--md-purple-900: #4a148c;
--md-purple-A100: #ea80fc;
--md-purple-A200: #e040fb;
--md-purple-A400: #d500f9;
--md-purple-A700: #aa00ff;
--md-deep-purple-50: #ede7f6;
--md-deep-purple-100: #d1c4e9;
--md-deep-purple-200: #b39ddb;
--md-deep-purple-300: #9575cd;
--md-deep-purple-400: #7e57c2;
--md-deep-purple-500: #673ab7;
--md-deep-purple-600: #5e35b1;
--md-deep-purple-700: #512da8;
--md-deep-purple-800: #4527a0;
--md-deep-purple-900: #311b92;
--md-deep-purple-A100: #b388ff;
--md-deep-purple-A200: #7c4dff;
--md-deep-purple-A400: #651fff;
--md-deep-purple-A700: #6200ea;
--md-indigo-50: #e8eaf6;
--md-indigo-100: #c5cae9;
--md-indigo-200: #9fa8da;
--md-indigo-300: #7986cb;
--md-indigo-400: #5c6bc0;
--md-indigo-500: #3f51b5;
--md-indigo-600: #3949ab;
--md-indigo-700: #303f9f;
--md-indigo-800: #283593;
--md-indigo-900: #1a237e;
--md-indigo-A100: #8c9eff;
--md-indigo-A200: #536dfe;
--md-indigo-A400: #3d5afe;
--md-indigo-A700: #304ffe;
--md-blue-50: #e3f2fd;
--md-blue-100: #bbdefb;
--md-blue-200: #90caf9;
--md-blue-300: #64b5f6;
--md-blue-400: #42a5f5;
--md-blue-500: #2196f3;
--md-blue-600: #1e88e5;
--md-blue-700: #1976d2;
--md-blue-800: #1565c0;
--md-blue-900: #0d47a1;
--md-blue-A100: #82b1ff;
--md-blue-A200: #448aff;
--md-blue-A400: #2979ff;
--md-blue-A700: #2962ff;
--md-light-blue-50: #e1f5fe;
--md-light-blue-100: #b3e5fc;
--md-light-blue-200: #81d4fa;
--md-light-blue-300: #4fc3f7;
--md-light-blue-400: #29b6f6;
--md-light-blue-500: #03a9f4;
--md-light-blue-600: #039be5;
--md-light-blue-700: #0288d1;
--md-light-blue-800: #0277bd;
--md-light-blue-900: #01579b;
--md-light-blue-A100: #80d8ff;
--md-light-blue-A200: #40c4ff;
--md-light-blue-A400: #00b0ff;
--md-light-blue-A700: #0091ea;
--md-cyan-50: #e0f7fa;
--md-cyan-100: #b2ebf2;
--md-cyan-200: #80deea;
--md-cyan-300: #4dd0e1;
--md-cyan-400: #26c6da;
--md-cyan-500: #00bcd4;
--md-cyan-600: #00acc1;
--md-cyan-700: #0097a7;
--md-cyan-800: #00838f;
--md-cyan-900: #006064;
--md-cyan-A100: #84ffff;
--md-cyan-A200: #18ffff;
--md-cyan-A400: #00e5ff;
--md-cyan-A700: #00b8d4;
--md-teal-50: #e0f2f1;
--md-teal-100: #b2dfdb;
--md-teal-200: #80cbc4;
--md-teal-300: #4db6ac;
--md-teal-400: #26a69a;
--md-teal-500: #009688;
--md-teal-600: #00897b;
--md-teal-700: #00796b;
--md-teal-800: #00695c;
--md-teal-900: #004d40;
--md-teal-A100: #a7ffeb;
--md-teal-A200: #64ffda;
--md-teal-A400: #1de9b6;
--md-teal-A700: #00bfa5;
--md-green-50: #e8f5e9;
--md-green-100: #c8e6c9;
--md-green-200: #a5d6a7;
--md-green-300: #81c784;
--md-green-400: #66bb6a;
--md-green-500: #4caf50;
--md-green-600: #43a047;
--md-green-700: #388e3c;
--md-green-800: #2e7d32;
--md-green-900: #1b5e20;
--md-green-A100: #b9f6ca;
--md-green-A200: #69f0ae;
--md-green-A400: #00e676;
--md-green-A700: #00c853;
--md-light-green-50: #f1f8e9;
--md-light-green-100: #dcedc8;
--md-light-green-200: #c5e1a5;
--md-light-green-300: #aed581;
--md-light-green-400: #9ccc65;
--md-light-green-500: #8bc34a;
--md-light-green-600: #7cb342;
--md-light-green-700: #689f38;
--md-light-green-800: #558b2f;
--md-light-green-900: #33691e;
--md-light-green-A100: #ccff90;
--md-light-green-A200: #b2ff59;
--md-light-green-A400: #76ff03;
--md-light-green-A700: #64dd17;
--md-lime-50: #f9fbe7;
--md-lime-100: #f0f4c3;
--md-lime-200: #e6ee9c;
--md-lime-300: #dce775;
--md-lime-400: #d4e157;
--md-lime-500: #cddc39;
--md-lime-600: #c0ca33;
--md-lime-700: #afb42b;
--md-lime-800: #9e9d24;
--md-lime-900: #827717;
--md-lime-A100: #f4ff81;
--md-lime-A200: #eeff41;
--md-lime-A400: #c6ff00;
--md-lime-A700: #aeea00;
--md-yellow-50: #fffde7;
--md-yellow-100: #fff9c4;
--md-yellow-200: #fff59d;
--md-yellow-300: #fff176;
--md-yellow-400: #ffee58;
--md-yellow-500: #ffeb3b;
--md-yellow-600: #fdd835;
--md-yellow-700: #fbc02d;
--md-yellow-800: #f9a825;
--md-yellow-900: #f57f17;
--md-yellow-A100: #ffff8d;
--md-yellow-A200: #ffff00;
--md-yellow-A400: #ffea00;
--md-yellow-A700: #ffd600;
--md-amber-50: #fff8e1;
--md-amber-100: #ffecb3;
--md-amber-200: #ffe082;
--md-amber-300: #ffd54f;
--md-amber-400: #ffca28;
--md-amber-500: #ffc107;
--md-amber-600: #ffb300;
--md-amber-700: #ffa000;
--md-amber-800: #ff8f00;
--md-amber-900: #ff6f00;
--md-amber-A100: #ffe57f;
--md-amber-A200: #ffd740;
--md-amber-A400: #ffc400;
--md-amber-A700: #ffab00;
--md-orange-50: #fff3e0;
--md-orange-100: #ffe0b2;
--md-orange-200: #ffcc80;
--md-orange-300: #ffb74d;
--md-orange-400: #ffa726;
--md-orange-500: #ff9800;
--md-orange-600: #fb8c00;
--md-orange-700: #f57c00;
--md-orange-800: #ef6c00;
--md-orange-900: #e65100;
--md-orange-A100: #ffd180;
--md-orange-A200: #ffab40;
--md-orange-A400: #ff9100;
--md-orange-A700: #ff6d00;
--md-deep-orange-50: #fbe9e7;
--md-deep-orange-100: #ffccbc;
--md-deep-orange-200: #ffab91;
--md-deep-orange-300: #ff8a65;
--md-deep-orange-400: #ff7043;
--md-deep-orange-500: #ff5722;
--md-deep-orange-600: #f4511e;
--md-deep-orange-700: #e64a19;
--md-deep-orange-800: #d84315;
--md-deep-orange-900: #bf360c;
--md-deep-orange-A100: #ff9e80;
--md-deep-orange-A200: #ff6e40;
--md-deep-orange-A400: #ff3d00;
--md-deep-orange-A700: #dd2c00;
--md-brown-50: #efebe9;
--md-brown-100: #d7ccc8;
--md-brown-200: #bcaaa4;
--md-brown-300: #a1887f;
--md-brown-400: #8d6e63;
--md-brown-500: #795548;
--md-brown-600: #6d4c41;
--md-brown-700: #5d4037;
--md-brown-800: #4e342e;
--md-brown-900: #3e2723;
--md-grey-50: #fafafa;
--md-grey-100: #f5f5f5;
--md-grey-200: #eeeeee;
--md-grey-300: #e0e0e0;
--md-grey-400: #bdbdbd;
--md-grey-500: #9e9e9e;
--md-grey-600: #757575;
--md-grey-700: #616161;
--md-grey-800: #424242;
--md-grey-900: #212121;
--md-blue-grey-50: #eceff1;
--md-blue-grey-100: #cfd8dc;
--md-blue-grey-200: #b0bec5;
--md-blue-grey-300: #90a4ae;
--md-blue-grey-400: #78909c;
--md-blue-grey-500: #607d8b;
--md-blue-grey-600: #546e7a;
--md-blue-grey-700: #455a64;
--md-blue-grey-800: #37474f;
--md-blue-grey-900: #263238;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Spinner {
position: absolute;
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: var(--jp-layout-color0);
outline: none;
}
.jp-SpinnerContent {
font-size: 10px;
margin: 50px auto;
text-indent: -9999em;
width: 3em;
height: 3em;
border-radius: 50%;
background: var(--jp-brand-color3);
background: linear-gradient(
to right,
#f37626 10%,
rgba(255, 255, 255, 0) 42%
);
position: relative;
animation: load3 1s infinite linear, fadeIn 1s;
}
.jp-SpinnerContent:before {
width: 50%;
height: 50%;
background: #f37626;
border-radius: 100% 0 0 0;
position: absolute;
top: 0;
left: 0;
content: '';
}
.jp-SpinnerContent:after {
background: var(--jp-layout-color0);
width: 75%;
height: 75%;
border-radius: 50%;
content: '';
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes load3 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
button.jp-mod-styled {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
border: none;
box-sizing: border-box;
text-align: center;
line-height: 32px;
height: 32px;
padding: 0px 12px;
letter-spacing: 0.8px;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input.jp-mod-styled {
background: var(--jp-input-background);
height: 28px;
box-sizing: border-box;
border: var(--jp-border-width) solid var(--jp-border-color1);
padding-left: 7px;
padding-right: 7px;
font-size: var(--jp-ui-font-size2);
color: var(--jp-ui-font-color0);
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input[type='checkbox'].jp-mod-styled {
appearance: checkbox;
-webkit-appearance: checkbox;
-moz-appearance: checkbox;
height: auto;
}
input.jp-mod-styled:focus {
border: var(--jp-border-width) solid var(--md-blue-500);
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-FileDialog-Checkbox {
margin-top: 35px;
display: flex;
flex-direction: row;
align-items: end;
width: 100%;
}
.jp-FileDialog-Checkbox > label {
flex: 1 1 auto;
}
.jp-select-wrapper {
display: flex;
position: relative;
flex-direction: column;
padding: 1px;
background-color: var(--jp-layout-color1);
height: 28px;
box-sizing: border-box;
margin-bottom: 12px;
}
.jp-select-wrapper.jp-mod-focused select.jp-mod-styled {
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
background-color: var(--jp-input-active-background);
}
select.jp-mod-styled:hover {
background-color: var(--jp-layout-color1);
cursor: pointer;
color: var(--jp-ui-font-color0);
background-color: var(--jp-input-hover-background);
box-shadow: inset 0 0px 1px rgba(0, 0, 0, 0.5);
}
select.jp-mod-styled {
flex: 1 1 auto;
height: 32px;
width: 100%;
font-size: var(--jp-ui-font-size2);
background: var(--jp-input-background);
color: var(--jp-ui-font-color0);
padding: 0 25px 0 8px;
border: var(--jp-border-width) solid var(--jp-input-border-color);
border-radius: 0px;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
:root {
--jp-private-toolbar-height: calc(
28px + var(--jp-border-width)
); /* leave 28px for content */
}
.jp-Toolbar {
color: var(--jp-ui-font-color1);
flex: 0 0 auto;
display: flex;
flex-direction: row;
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
background: var(--jp-toolbar-background);
min-height: var(--jp-toolbar-micro-height);
padding: 2px;
z-index: 1;
overflow-x: auto;
}
/* Toolbar items */
.jp-Toolbar > .jp-Toolbar-item.jp-Toolbar-spacer {
flex-grow: 1;
flex-shrink: 1;
}
.jp-Toolbar-item.jp-Toolbar-kernelStatus {
display: inline-block;
width: 32px;
background-repeat: no-repeat;
background-position: center;
background-size: 16px;
}
.jp-Toolbar > .jp-Toolbar-item {
flex: 0 0 auto;
display: flex;
padding-left: 1px;
padding-right: 1px;
font-size: var(--jp-ui-font-size1);
line-height: var(--jp-private-toolbar-height);
height: 100%;
}
/* Toolbar buttons */
/* This is the div we use to wrap the react component into a Widget */
div.jp-ToolbarButton {
color: transparent;
border: none;
box-sizing: border-box;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 0px;
margin: 0px;
}
button.jp-ToolbarButtonComponent {
background: var(--jp-layout-color1);
border: none;
box-sizing: border-box;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 0px 6px;
margin: 0px;
height: 24px;
border-radius: var(--jp-border-radius);
display: flex;
align-items: center;
text-align: center;
font-size: 14px;
min-width: unset;
min-height: unset;
}
button.jp-ToolbarButtonComponent:disabled {
opacity: 0.4;
}
button.jp-ToolbarButtonComponent span {
padding: 0px;
flex: 0 0 auto;
}
button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label {
font-size: var(--jp-ui-font-size1);
line-height: 100%;
padding-left: 2px;
color: var(--jp-ui-font-color1);
}
#jp-main-dock-panel[data-mode='single-document']
.jp-MainAreaWidget
> .jp-Toolbar.jp-Toolbar-micro {
padding: 0;
min-height: 0;
}
#jp-main-dock-panel[data-mode='single-document']
.jp-MainAreaWidget
> .jp-Toolbar {
border: none;
box-shadow: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/* <DEPRECATED> */ body.p-mod-override-cursor *, /* </DEPRECATED> */
body.lm-mod-override-cursor * {
cursor: inherit !important;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-JSONEditor {
display: flex;
flex-direction: column;
width: 100%;
}
.jp-JSONEditor-host {
flex: 1 1 auto;
border: var(--jp-border-width) solid var(--jp-input-border-color);
border-radius: 0px;
background: var(--jp-layout-color0);
min-height: 50px;
padding: 1px;
}
.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {
border-color: red;
outline-color: red;
}
.jp-JSONEditor-header {
display: flex;
flex: 1 0 auto;
padding: 0 0 0 12px;
}
.jp-JSONEditor-header label {
flex: 0 0 auto;
}
.jp-JSONEditor-commitButton {
height: 16px;
width: 16px;
background-size: 18px;
background-repeat: no-repeat;
background-position: center;
}
.jp-JSONEditor-host.jp-mod-focused {
background-color: var(--jp-input-active-background);
border: 1px solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
}
.jp-Editor.jp-mod-dropTarget {
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
}
/* BASICS */
.CodeMirror {
/* Set height, width, borders, and global font properties here */
font-family: monospace;
height: 300px;
color: black;
direction: ltr;
}
/* PADDING */
.CodeMirror-lines {
padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
padding: 0 4px; /* Horizontal padding of content */
}
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
background-color: white; /* The little square between H and V scrollbars */
}
/* GUTTER */
.CodeMirror-gutters {
border-right: 1px solid #ddd;
background-color: #f7f7f7;
white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
padding: 0 3px 0 5px;
min-width: 20px;
text-align: right;
color: #999;
white-space: nowrap;
}
.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }
/* CURSOR */
.CodeMirror-cursor {
border-left: 1px solid black;
border-right: none;
width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
border-left: 1px solid silver;
}
.cm-fat-cursor .CodeMirror-cursor {
width: auto;
border: 0 !important;
background: #7e7;
}
.cm-fat-cursor div.CodeMirror-cursors {
z-index: 1;
}
.cm-fat-cursor-mark {
background-color: rgba(20, 255, 20, 0.5);
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
}
.cm-animate-fat-cursor {
width: auto;
border: 0;
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
background-color: #7e7;
}
@-moz-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@-webkit-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror-overwrite .CodeMirror-cursor {}
.cm-tab { display: inline-block; text-decoration: inherit; }
.CodeMirror-rulers {
position: absolute;
left: 0; right: 0; top: -50px; bottom: 0;
overflow: hidden;
}
.CodeMirror-ruler {
border-left: 1px solid #ccc;
top: 0; bottom: 0;
position: absolute;
}
/* DEFAULT THEME */
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
.cm-strikethrough {text-decoration: line-through;}
.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}
.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}
.CodeMirror-composing { border-bottom: 2px solid; }
/* Default styles for common addons */
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
.CodeMirror-activeline-background {background: #e8f2ff;}
/* STOP */
/* The rest of this file contains styles related to the mechanics of
the editor. You probably shouldn't touch them. */
.CodeMirror {
position: relative;
overflow: hidden;
background: white;
}
.CodeMirror-scroll {
overflow: scroll !important; /* Things will break if this is overridden */
/* 50px is the magic margin used to hide the element's real scrollbars */
/* See overflow: hidden in .CodeMirror */
margin-bottom: -50px; margin-right: -50px;
padding-bottom: 50px;
height: 100%;
outline: none; /* Prevent dragging from highlighting the element */
position: relative;
}
.CodeMirror-sizer {
position: relative;
border-right: 50px solid transparent;
}
/* The fake, visible scrollbars. Used to force redraw during scrolling
before actual scrolling happens, thus preventing shaking and
flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
position: absolute;
z-index: 6;
display: none;
outline: none;
}
.CodeMirror-vscrollbar {
right: 0; top: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.CodeMirror-hscrollbar {
bottom: 0; left: 0;
overflow-y: hidden;
overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
right: 0; bottom: 0;
}
.CodeMirror-gutter-filler {
left: 0; bottom: 0;
}
.CodeMirror-gutters {
position: absolute; left: 0; top: 0;
min-height: 100%;
z-index: 3;
}
.CodeMirror-gutter {
white-space: normal;
height: 100%;
display: inline-block;
vertical-align: top;
margin-bottom: -50px;
}
.CodeMirror-gutter-wrapper {
position: absolute;
z-index: 4;
background: none !important;
border: none !important;
}
.CodeMirror-gutter-background {
position: absolute;
top: 0; bottom: 0;
z-index: 4;
}
.CodeMirror-gutter-elt {
position: absolute;
cursor: default;
z-index: 4;
}
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
.CodeMirror-lines {
cursor: text;
min-height: 1px; /* prevents collapsing before first draw */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
/* Reset some styles that the rest of the page might have set */
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
border-width: 0;
background: transparent;
font-family: inherit;
font-size: inherit;
margin: 0;
white-space: pre;
word-wrap: normal;
line-height: inherit;
color: inherit;
z-index: 2;
position: relative;
overflow: visible;
-webkit-tap-highlight-color: transparent;
-webkit-font-variant-ligatures: contextual;
font-variant-ligatures: contextual;
}
.CodeMirror-wrap pre.CodeMirror-line,
.CodeMirror-wrap pre.CodeMirror-line-like {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal;
}
.CodeMirror-linebackground {
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
z-index: 0;
}
.CodeMirror-linewidget {
position: relative;
z-index: 2;
padding: 0.1px; /* Force widget margins to stay inside of the container */
}
.CodeMirror-widget {}
.CodeMirror-rtl pre { direction: rtl; }
.CodeMirror-code {
outline: none;
}
/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.CodeMirror-measure {
position: absolute;
width: 100%;
height: 0;
overflow: hidden;
visibility: hidden;
}
.CodeMirror-cursor {
position: absolute;
pointer-events: none;
}
.CodeMirror-measure pre { position: static; }
div.CodeMirror-cursors {
visibility: hidden;
position: relative;
z-index: 3;
}
div.CodeMirror-dragcursors {
visibility: visible;
}
.CodeMirror-focused div.CodeMirror-cursors {
visibility: visible;
}
.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-crosshair { cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
.cm-searching {
background-color: #ffa;
background-color: rgba(255, 255, 0, .4);
}
/* Used to force a border model for a node */
.cm-force-border { padding-right: .1px; }
@media print {
/* Hide the cursor when printing */
.CodeMirror div.CodeMirror-cursors {
visibility: hidden;
}
}
/* See issue #2901 */
.cm-tab-wrap-hack:after { content: ''; }
/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext { background: none; }
.CodeMirror-dialog {
position: absolute;
left: 0; right: 0;
background: inherit;
z-index: 15;
padding: .1em .8em;
overflow: hidden;
color: inherit;
}
.CodeMirror-dialog-top {
border-bottom: 1px solid #eee;
top: 0;
}
.CodeMirror-dialog-bottom {
border-top: 1px solid #eee;
bottom: 0;
}
.CodeMirror-dialog input {
border: none;
outline: none;
background: transparent;
width: 20em;
color: inherit;
font-family: monospace;
}
.CodeMirror-dialog button {
font-size: 70%;
}
.CodeMirror-foldmarker {
color: blue;
text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
font-family: arial;
line-height: .3;
cursor: pointer;
}
.CodeMirror-foldgutter {
width: .7em;
}
.CodeMirror-foldgutter-open,
.CodeMirror-foldgutter-folded {
cursor: pointer;
}
.CodeMirror-foldgutter-open:after {
content: "\25BE";
}
.CodeMirror-foldgutter-folded:after {
content: "\25B8";
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.CodeMirror {
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
font-family: var(--jp-code-font-family);
border: 0;
border-radius: 0;
height: auto;
/* Changed to auto to autogrow */
}
.CodeMirror pre {
padding: 0 var(--jp-code-padding);
}
.jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-dialog {
background-color: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
}
/* This causes https://github.com/jupyter/jupyterlab/issues/522 */
/* May not cause it not because we changed it! */
.CodeMirror-lines {
padding: var(--jp-code-padding) 0;
}
.CodeMirror-linenumber {
padding: 0 8px;
}
.jp-CodeMirrorEditor {
cursor: text;
}
.jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
}
/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
border-left: var(--jp-code-cursor-width1) solid
var(--jp-editor-cursor-color);
}
}
/* When zoomed out less than 33% */
@media screen and (min-width: 4320px) {
.jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
border-left: var(--jp-code-cursor-width2) solid
var(--jp-editor-cursor-color);
}
}
.CodeMirror.jp-mod-readOnly .CodeMirror-cursor {
display: none;
}
.CodeMirror-gutters {
border-right: 1px solid var(--jp-border-color2);
background-color: var(--jp-layout-color0);
}
.jp-CollaboratorCursor {
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: none;
border-bottom: 3px solid;
background-clip: content-box;
margin-left: -5px;
margin-right: -5px;
}
.CodeMirror-selectedtext.cm-searching {
background-color: var(--jp-search-selected-match-background-color) !important;
color: var(--jp-search-selected-match-color) !important;
}
.cm-searching {
background-color: var(
--jp-search-unselected-match-background-color
) !important;
color: var(--jp-search-unselected-match-color) !important;
}
.CodeMirror-focused .CodeMirror-selected {
background-color: var(--jp-editor-selected-focused-background);
}
.CodeMirror-selected {
background-color: var(--jp-editor-selected-background);
}
.jp-CollaboratorCursor-hover {
position: absolute;
z-index: 1;
transform: translateX(-50%);
color: white;
border-radius: 3px;
padding-left: 4px;
padding-right: 4px;
padding-top: 1px;
padding-bottom: 1px;
text-align: center;
font-size: var(--jp-ui-font-size1);
white-space: nowrap;
}
.jp-CodeMirror-ruler {
border-left: 1px dashed var(--jp-border-color2);
}
/**
* Here is our jupyter theme for CodeMirror syntax highlighting
* This is used in our marked.js syntax highlighting and CodeMirror itself
* The string "jupyter" is set in ../codemirror/widget.DEFAULT_CODEMIRROR_THEME
* This came from the classic notebook, which came form highlight.js/GitHub
*/
/**
* CodeMirror themes are handling the background/color in this way. This works
* fine for CodeMirror editors outside the notebook, but the notebook styles
* these things differently.
*/
.CodeMirror.cm-s-jupyter {
background: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
}
/* In the notebook, we want this styling to be handled by its container */
.jp-CodeConsole .CodeMirror.cm-s-jupyter,
.jp-Notebook .CodeMirror.cm-s-jupyter {
background: transparent;
}
.cm-s-jupyter .CodeMirror-cursor {
border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
}
.cm-s-jupyter span.cm-keyword {
color: var(--jp-mirror-editor-keyword-color);
font-weight: bold;
}
.cm-s-jupyter span.cm-atom {
color: var(--jp-mirror-editor-atom-color);
}
.cm-s-jupyter span.cm-number {
color: var(--jp-mirror-editor-number-color);
}
.cm-s-jupyter span.cm-def {
color: var(--jp-mirror-editor-def-color);
}
.cm-s-jupyter span.cm-variable {
color: var(--jp-mirror-editor-variable-color);
}
.cm-s-jupyter span.cm-variable-2 {
color: var(--jp-mirror-editor-variable-2-color);
}
.cm-s-jupyter span.cm-variable-3 {
color: var(--jp-mirror-editor-variable-3-color);
}
.cm-s-jupyter span.cm-punctuation {
color: var(--jp-mirror-editor-punctuation-color);
}
.cm-s-jupyter span.cm-property {
color: var(--jp-mirror-editor-property-color);
}
.cm-s-jupyter span.cm-operator {
color: var(--jp-mirror-editor-operator-color);
font-weight: bold;
}
.cm-s-jupyter span.cm-comment {
color: var(--jp-mirror-editor-comment-color);
font-style: italic;
}
.cm-s-jupyter span.cm-string {
color: var(--jp-mirror-editor-string-color);
}
.cm-s-jupyter span.cm-string-2 {
color: var(--jp-mirror-editor-string-2-color);
}
.cm-s-jupyter span.cm-meta {
color: var(--jp-mirror-editor-meta-color);
}
.cm-s-jupyter span.cm-qualifier {
color: var(--jp-mirror-editor-qualifier-color);
}
.cm-s-jupyter span.cm-builtin {
color: var(--jp-mirror-editor-builtin-color);
}
.cm-s-jupyter span.cm-bracket {
color: var(--jp-mirror-editor-bracket-color);
}
.cm-s-jupyter span.cm-tag {
color: var(--jp-mirror-editor-tag-color);
}
.cm-s-jupyter span.cm-attribute {
color: var(--jp-mirror-editor-attribute-color);
}
.cm-s-jupyter span.cm-header {
color: var(--jp-mirror-editor-header-color);
}
.cm-s-jupyter span.cm-quote {
color: var(--jp-mirror-editor-quote-color);
}
.cm-s-jupyter span.cm-link {
color: var(--jp-mirror-editor-link-color);
}
.cm-s-jupyter span.cm-error {
color: var(--jp-mirror-editor-error-color);
}
.cm-s-jupyter span.cm-hr {
color: #999;
}
.cm-s-jupyter span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
.cm-s-jupyter .CodeMirror-activeline-background,
.cm-s-jupyter .CodeMirror-gutter {
background-color: var(--jp-layout-color2);
}
/* Styles for shared cursors (remote cursor locations and selected ranges) */
.jp-CodeMirrorEditor .remote-caret {
position: relative;
border-left: 2px solid black;
margin-left: -1px;
margin-right: -1px;
box-sizing: border-box;
}
.jp-CodeMirrorEditor .remote-caret > div {
white-space: nowrap;
position: absolute;
top: -1.15em;
padding-bottom: 0.05em;
left: -2px;
font-size: 0.95em;
background-color: rgb(250, 129, 0);
font-family: var(--jp-ui-font-family);
font-weight: bold;
line-height: normal;
user-select: none;
color: white;
padding-left: 2px;
padding-right: 2px;
z-index: 3;
transition: opacity 0.3s ease-in-out;
}
.jp-CodeMirrorEditor .remote-caret.hide-name > div {
transition-delay: 0.7s;
opacity: 0;
}
.jp-CodeMirrorEditor .remote-caret:hover > div {
opacity: 1;
transition-delay: 0s;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| RenderedText
|----------------------------------------------------------------------------*/
:root {
/* This is the padding value to fill the gaps between lines containing spans with background color. */
--jp-private-code-span-padding: calc(
(var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
);
}
.jp-RenderedText {
text-align: left;
padding-left: var(--jp-code-padding);
line-height: var(--jp-code-line-height);
font-family: var(--jp-code-font-family);
}
.jp-RenderedText pre,
.jp-RenderedJavaScript pre,
.jp-RenderedHTMLCommon pre {
color: var(--jp-content-font-color1);
font-size: var(--jp-code-font-size);
border: none;
margin: 0px;
padding: 0px;
}
.jp-RenderedText pre a:link {
text-decoration: none;
color: var(--jp-content-link-color);
}
.jp-RenderedText pre a:hover {
text-decoration: underline;
color: var(--jp-content-link-color);
}
.jp-RenderedText pre a:visited {
text-decoration: none;
color: var(--jp-content-link-color);
}
/* console foregrounds and backgrounds */
.jp-RenderedText pre .ansi-black-fg {
color: #3e424d;
}
.jp-RenderedText pre .ansi-red-fg {
color: #e75c58;
}
.jp-RenderedText pre .ansi-green-fg {
color: #00a250;
}
.jp-RenderedText pre .ansi-yellow-fg {
color: #ddb62b;
}
.jp-RenderedText pre .ansi-blue-fg {
color: #208ffb;
}
.jp-RenderedText pre .ansi-magenta-fg {
color: #d160c4;
}
.jp-RenderedText pre .ansi-cyan-fg {
color: #60c6c8;
}
.jp-RenderedText pre .ansi-white-fg {
color: #c5c1b4;
}
.jp-RenderedText pre .ansi-black-bg {
background-color: #3e424d;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-red-bg {
background-color: #e75c58;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-green-bg {
background-color: #00a250;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-yellow-bg {
background-color: #ddb62b;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-blue-bg {
background-color: #208ffb;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-magenta-bg {
background-color: #d160c4;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-cyan-bg {
background-color: #60c6c8;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-white-bg {
background-color: #c5c1b4;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-black-intense-fg {
color: #282c36;
}
.jp-RenderedText pre .ansi-red-intense-fg {
color: #b22b31;
}
.jp-RenderedText pre .ansi-green-intense-fg {
color: #007427;
}
.jp-RenderedText pre .ansi-yellow-intense-fg {
color: #b27d12;
}
.jp-RenderedText pre .ansi-blue-intense-fg {
color: #0065ca;
}
.jp-RenderedText pre .ansi-magenta-intense-fg {
color: #a03196;
}
.jp-RenderedText pre .ansi-cyan-intense-fg {
color: #258f8f;
}
.jp-RenderedText pre .ansi-white-intense-fg {
color: #a1a6b2;
}
.jp-RenderedText pre .ansi-black-intense-bg {
background-color: #282c36;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-red-intense-bg {
background-color: #b22b31;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-green-intense-bg {
background-color: #007427;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-yellow-intense-bg {
background-color: #b27d12;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-blue-intense-bg {
background-color: #0065ca;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-magenta-intense-bg {
background-color: #a03196;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-cyan-intense-bg {
background-color: #258f8f;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-white-intense-bg {
background-color: #a1a6b2;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-default-inverse-fg {
color: var(--jp-ui-inverse-font-color0);
}
.jp-RenderedText pre .ansi-default-inverse-bg {
background-color: var(--jp-inverse-layout-color0);
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-bold {
font-weight: bold;
}
.jp-RenderedText pre .ansi-underline {
text-decoration: underline;
}
.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
background: var(--jp-rendermime-error-background);
padding-top: var(--jp-code-padding);
}
/*-----------------------------------------------------------------------------
| RenderedLatex
|----------------------------------------------------------------------------*/
.jp-RenderedLatex {
color: var(--jp-content-font-color1);
font-size: var(--jp-content-font-size1);
line-height: var(--jp-content-line-height);
}
/* Left-justify outputs.*/
.jp-OutputArea-output.jp-RenderedLatex {
padding: var(--jp-code-padding);
text-align: left;
}
/*-----------------------------------------------------------------------------
| RenderedHTML
|----------------------------------------------------------------------------*/
.jp-RenderedHTMLCommon {
color: var(--jp-content-font-color1);
font-family: var(--jp-content-font-family);
font-size: var(--jp-content-font-size1);
line-height: var(--jp-content-line-height);
/* Give a bit more R padding on Markdown text to keep line lengths reasonable */
padding-right: 20px;
}
.jp-RenderedHTMLCommon em {
font-style: italic;
}
.jp-RenderedHTMLCommon strong {
font-weight: bold;
}
.jp-RenderedHTMLCommon u {
text-decoration: underline;
}
.jp-RenderedHTMLCommon a:link {
text-decoration: none;
color: var(--jp-content-link-color);
}
.jp-RenderedHTMLCommon a:hover {
text-decoration: underline;
color: var(--jp-content-link-color);
}
.jp-RenderedHTMLCommon a:visited {
text-decoration: none;
color: var(--jp-content-link-color);
}
/* Headings */
.jp-RenderedHTMLCommon h1,
.jp-RenderedHTMLCommon h2,
.jp-RenderedHTMLCommon h3,
.jp-RenderedHTMLCommon h4,
.jp-RenderedHTMLCommon h5,
.jp-RenderedHTMLCommon h6 {
line-height: var(--jp-content-heading-line-height);
font-weight: var(--jp-content-heading-font-weight);
font-style: normal;
margin: var(--jp-content-heading-margin-top) 0
var(--jp-content-heading-margin-bottom) 0;
}
.jp-RenderedHTMLCommon h1:first-child,
.jp-RenderedHTMLCommon h2:first-child,
.jp-RenderedHTMLCommon h3:first-child,
.jp-RenderedHTMLCommon h4:first-child,
.jp-RenderedHTMLCommon h5:first-child,
.jp-RenderedHTMLCommon h6:first-child {
margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
}
.jp-RenderedHTMLCommon h1:last-child,
.jp-RenderedHTMLCommon h2:last-child,
.jp-RenderedHTMLCommon h3:last-child,
.jp-RenderedHTMLCommon h4:last-child,
.jp-RenderedHTMLCommon h5:last-child,
.jp-RenderedHTMLCommon h6:last-child {
margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
}
.jp-RenderedHTMLCommon h1 {
font-size: var(--jp-content-font-size5);
}
.jp-RenderedHTMLCommon h2 {
font-size: var(--jp-content-font-size4);
}
.jp-RenderedHTMLCommon h3 {
font-size: var(--jp-content-font-size3);
}
.jp-RenderedHTMLCommon h4 {
font-size: var(--jp-content-font-size2);
}
.jp-RenderedHTMLCommon h5 {
font-size: var(--jp-content-font-size1);
}
.jp-RenderedHTMLCommon h6 {
font-size: var(--jp-content-font-size0);
}
/* Lists */
.jp-RenderedHTMLCommon ul:not(.list-inline),
.jp-RenderedHTMLCommon ol:not(.list-inline) {
padding-left: 2em;
}
.jp-RenderedHTMLCommon ul {
list-style: disc;
}
.jp-RenderedHTMLCommon ul ul {
list-style: square;
}
.jp-RenderedHTMLCommon ul ul ul {
list-style: circle;
}
.jp-RenderedHTMLCommon ol {
list-style: decimal;
}
.jp-RenderedHTMLCommon ol ol {
list-style: upper-alpha;
}
.jp-RenderedHTMLCommon ol ol ol {
list-style: lower-alpha;
}
.jp-RenderedHTMLCommon ol ol ol ol {
list-style: lower-roman;
}
.jp-RenderedHTMLCommon ol ol ol ol ol {
list-style: decimal;
}
.jp-RenderedHTMLCommon ol,
.jp-RenderedHTMLCommon ul {
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon ul ul,
.jp-RenderedHTMLCommon ul ol,
.jp-RenderedHTMLCommon ol ul,
.jp-RenderedHTMLCommon ol ol {
margin-bottom: 0em;
}
.jp-RenderedHTMLCommon hr {
color: var(--jp-border-color2);
background-color: var(--jp-border-color1);
margin-top: 1em;
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon > pre {
margin: 1.5em 2em;
}
.jp-RenderedHTMLCommon pre,
.jp-RenderedHTMLCommon code {
border: 0;
background-color: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
font-family: var(--jp-code-font-family);
font-size: inherit;
line-height: var(--jp-code-line-height);
padding: 0;
white-space: pre-wrap;
}
.jp-RenderedHTMLCommon :not(pre) > code {
background-color: var(--jp-layout-color2);
padding: 1px 5px;
}
/* Tables */
.jp-RenderedHTMLCommon table {
border-collapse: collapse;
border-spacing: 0;
border: none;
color: var(--jp-ui-font-color1);
font-size: 12px;
table-layout: fixed;
margin-left: auto;
margin-right: auto;
}
.jp-RenderedHTMLCommon thead {
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
vertical-align: bottom;
}
.jp-RenderedHTMLCommon td,
.jp-RenderedHTMLCommon th,
.jp-RenderedHTMLCommon tr {
vertical-align: middle;
padding: 0.5em 0.5em;
line-height: normal;
white-space: normal;
max-width: none;
border: none;
}
.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
max-width: none;
}
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
text-align: right;
}
.jp-RenderedHTMLCommon th {
font-weight: bold;
}
.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
background: var(--jp-layout-color0);
}
.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
background: var(--jp-rendermime-table-row-background);
}
.jp-RenderedHTMLCommon tbody tr:hover {
background: var(--jp-rendermime-table-row-hover-background);
}
.jp-RenderedHTMLCommon table {
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon p {
text-align: left;
margin: 0px;
}
.jp-RenderedHTMLCommon p {
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon img {
-moz-force-broken-image-icon: 1;
}
/* Restrict to direct children as other images could be nested in other content. */
.jp-RenderedHTMLCommon > img {
display: block;
margin-left: 0;
margin-right: 0;
margin-bottom: 1em;
}
/* Change color behind transparent images if they need it... */
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
background-color: var(--jp-inverse-layout-color1);
}
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
background-color: var(--jp-inverse-layout-color1);
}
/* ...or leave it untouched if they don't */
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-dark-background {
}
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-light-background {
}
.jp-RenderedHTMLCommon img,
.jp-RenderedImage img,
.jp-RenderedHTMLCommon svg,
.jp-RenderedSVG svg {
max-width: 100%;
height: auto;
}
.jp-RenderedHTMLCommon img.jp-mod-unconfined,
.jp-RenderedImage img.jp-mod-unconfined,
.jp-RenderedHTMLCommon svg.jp-mod-unconfined,
.jp-RenderedSVG svg.jp-mod-unconfined {
max-width: none;
}
.jp-RenderedHTMLCommon .alert {
padding: var(--jp-notebook-padding);
border: var(--jp-border-width) solid transparent;
border-radius: var(--jp-border-radius);
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon .alert-info {
color: var(--jp-info-color0);
background-color: var(--jp-info-color3);
border-color: var(--jp-info-color2);
}
.jp-RenderedHTMLCommon .alert-info hr {
border-color: var(--jp-info-color3);
}
.jp-RenderedHTMLCommon .alert-info > p:last-child,
.jp-RenderedHTMLCommon .alert-info > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-warning {
color: var(--jp-warn-color0);
background-color: var(--jp-warn-color3);
border-color: var(--jp-warn-color2);
}
.jp-RenderedHTMLCommon .alert-warning hr {
border-color: var(--jp-warn-color3);
}
.jp-RenderedHTMLCommon .alert-warning > p:last-child,
.jp-RenderedHTMLCommon .alert-warning > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-success {
color: var(--jp-success-color0);
background-color: var(--jp-success-color3);
border-color: var(--jp-success-color2);
}
.jp-RenderedHTMLCommon .alert-success hr {
border-color: var(--jp-success-color3);
}
.jp-RenderedHTMLCommon .alert-success > p:last-child,
.jp-RenderedHTMLCommon .alert-success > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-danger {
color: var(--jp-error-color0);
background-color: var(--jp-error-color3);
border-color: var(--jp-error-color2);
}
.jp-RenderedHTMLCommon .alert-danger hr {
border-color: var(--jp-error-color3);
}
.jp-RenderedHTMLCommon .alert-danger > p:last-child,
.jp-RenderedHTMLCommon .alert-danger > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon blockquote {
margin: 1em 2em;
padding: 0 1em;
border-left: 5px solid var(--jp-border-color2);
}
a.jp-InternalAnchorLink {
visibility: hidden;
margin-left: 8px;
color: var(--md-blue-800);
}
h1:hover .jp-InternalAnchorLink,
h2:hover .jp-InternalAnchorLink,
h3:hover .jp-InternalAnchorLink,
h4:hover .jp-InternalAnchorLink,
h5:hover .jp-InternalAnchorLink,
h6:hover .jp-InternalAnchorLink {
visibility: visible;
}
.jp-RenderedHTMLCommon kbd {
background-color: var(--jp-rendermime-table-row-background);
border: 1px solid var(--jp-border-color0);
border-bottom-color: var(--jp-border-color2);
border-radius: 3px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
display: inline-block;
font-size: 0.8em;
line-height: 1em;
padding: 0.2em 0.5em;
}
/* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
* At the bottom of cells this is a bit too much as there is also spacing
* between cells. Going all the way to 0 gets too tight between markdown and
* code cells.
*/
.jp-RenderedHTMLCommon > *:last-child {
margin-bottom: 0.5em;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-MimeDocument {
outline: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-filebrowser-button-height: 28px;
--jp-private-filebrowser-button-width: 48px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-FileBrowser {
display: flex;
flex-direction: column;
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
}
.jp-FileBrowser-toolbar.jp-Toolbar {
border-bottom: none;
height: auto;
margin: var(--jp-toolbar-header-margin);
box-shadow: none;
}
.jp-BreadCrumbs {
flex: 0 0 auto;
margin: 8px 12px 8px 12px;
}
.jp-BreadCrumbs-item {
margin: 0px 2px;
padding: 0px 2px;
border-radius: var(--jp-border-radius);
cursor: pointer;
}
.jp-BreadCrumbs-item:hover {
background-color: var(--jp-layout-color2);
}
.jp-BreadCrumbs-item:first-child {
margin-left: 0px;
}
.jp-BreadCrumbs-item.jp-mod-dropTarget {
background-color: var(--jp-brand-color2);
opacity: 0.7;
}
/*-----------------------------------------------------------------------------
| Buttons
|----------------------------------------------------------------------------*/
.jp-FileBrowser-toolbar.jp-Toolbar {
padding: 0px;
margin: 8px 12px 0px 12px;
}
.jp-FileBrowser-toolbar.jp-Toolbar {
justify-content: flex-start;
}
.jp-FileBrowser-toolbar.jp-Toolbar .jp-Toolbar-item {
flex: 0 0 auto;
padding-left: 0px;
padding-right: 2px;
}
.jp-FileBrowser-toolbar.jp-Toolbar .jp-ToolbarButtonComponent {
width: 40px;
}
.jp-FileBrowser-toolbar.jp-Toolbar
.jp-Toolbar-item:first-child
.jp-ToolbarButtonComponent {
width: 72px;
background: var(--jp-brand-color1);
}
.jp-FileBrowser-toolbar.jp-Toolbar
.jp-Toolbar-item:first-child
.jp-ToolbarButtonComponent:focus-visible {
background-color: var(--jp-brand-color0);
}
.jp-FileBrowser-toolbar.jp-Toolbar
.jp-Toolbar-item:first-child
.jp-ToolbarButtonComponent
.jp-icon3 {
fill: white;
}
/*-----------------------------------------------------------------------------
| Other styles
|----------------------------------------------------------------------------*/
.jp-FileDialog.jp-mod-conflict input {
color: var(--jp-error-color1);
}
.jp-FileDialog .jp-new-name-title {
margin-top: 12px;
}
.jp-LastModified-hidden {
display: none;
}
.jp-FileBrowser-filterBox {
padding: 0px;
flex: 0 0 auto;
margin: 8px 12px 0px 12px;
}
/*-----------------------------------------------------------------------------
| DirListing
|----------------------------------------------------------------------------*/
.jp-DirListing {
flex: 1 1 auto;
display: flex;
flex-direction: column;
outline: 0;
}
.jp-DirListing:focus-visible {
border: 1px solid var(--jp-brand-color1);
}
.jp-DirListing-header {
flex: 0 0 auto;
display: flex;
flex-direction: row;
overflow: hidden;
border-top: var(--jp-border-width) solid var(--jp-border-color2);
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
box-shadow: var(--jp-toolbar-box-shadow);
z-index: 2;
}
.jp-DirListing-headerItem {
padding: 4px 12px 2px 12px;
font-weight: 500;
}
.jp-DirListing-headerItem:hover {
background: var(--jp-layout-color2);
}
.jp-DirListing-headerItem.jp-id-name {
flex: 1 0 84px;
}
.jp-DirListing-headerItem.jp-id-modified {
flex: 0 0 112px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
}
.jp-id-narrow {
display: none;
flex: 0 0 5px;
padding: 4px 4px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
color: var(--jp-border-color2);
}
.jp-DirListing-narrow .jp-id-narrow {
display: block;
}
.jp-DirListing-narrow .jp-id-modified,
.jp-DirListing-narrow .jp-DirListing-itemModified {
display: none;
}
.jp-DirListing-headerItem.jp-mod-selected {
font-weight: 600;
}
/* increase specificity to override bundled default */
.jp-DirListing-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
list-style-type: none;
overflow: auto;
background-color: var(--jp-layout-color1);
}
.jp-DirListing-content mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
color: var(--jp-ui-inverse-font-color0);
}
/* Style the directory listing content when a user drops a file to upload */
.jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
outline: 5px dashed rgba(128, 128, 128, 0.5);
outline-offset: -10px;
cursor: copy;
}
.jp-DirListing-item {
display: flex;
flex-direction: row;
padding: 4px 12px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-DirListing-item[data-is-dot] {
opacity: 75%;
}
.jp-DirListing-item.jp-mod-selected {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.jp-DirListing-item.jp-mod-dropTarget {
background: var(--jp-brand-color3);
}
.jp-DirListing-item:hover:not(.jp-mod-selected) {
background: var(--jp-layout-color2);
}
.jp-DirListing-itemIcon {
flex: 0 0 20px;
margin-right: 4px;
}
.jp-DirListing-itemText {
flex: 1 0 64px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
user-select: none;
}
.jp-DirListing-itemModified {
flex: 0 0 125px;
text-align: right;
}
.jp-DirListing-editor {
flex: 1 0 64px;
outline: none;
border: none;
}
.jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon:before {
color: var(--jp-success-color1);
content: '\25CF';
font-size: 8px;
position: absolute;
left: -8px;
}
.jp-DirListing-item.jp-mod-running.jp-mod-selected
.jp-DirListing-itemIcon:before {
color: var(--jp-ui-inverse-font-color1);
}
.jp-DirListing-item.lm-mod-drag-image,
.jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
font-size: var(--jp-ui-font-size1);
padding-left: 4px;
margin-left: 4px;
width: 160px;
background-color: var(--jp-ui-inverse-font-color2);
box-shadow: var(--jp-elevation-z2);
border-radius: 0px;
color: var(--jp-ui-font-color1);
transform: translateX(-40%) translateY(-58%);
}
.jp-DirListing-deadSpace {
flex: 1 1 auto;
margin: 0;
padding: 0;
list-style-type: none;
overflow: auto;
background-color: var(--jp-layout-color1);
}
.jp-Document {
min-width: 120px;
min-height: 120px;
outline: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Private CSS variables
|----------------------------------------------------------------------------*/
:root {
}
/*-----------------------------------------------------------------------------
| Main OutputArea
| OutputArea has a list of Outputs
|----------------------------------------------------------------------------*/
.jp-OutputArea {
overflow-y: auto;
}
.jp-OutputArea-child {
display: flex;
flex-direction: row;
}
body[data-format='mobile'] .jp-OutputArea-child {
flex-direction: column;
}
.jp-OutputPrompt {
flex: 0 0 var(--jp-cell-prompt-width);
color: var(--jp-cell-outprompt-font-color);
font-family: var(--jp-cell-prompt-font-family);
padding: var(--jp-code-padding);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
opacity: var(--jp-cell-prompt-opacity);
/* Right align prompt text, don't wrap to handle large prompt numbers */
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Disable text selection */
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
body[data-format='mobile'] .jp-OutputPrompt {
flex: 0 0 auto;
text-align: left;
}
.jp-OutputArea-output {
height: auto;
overflow: auto;
user-select: text;
-moz-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
}
.jp-OutputArea-child .jp-OutputArea-output {
flex-grow: 1;
flex-shrink: 1;
}
body[data-format='mobile'] .jp-OutputArea-child .jp-OutputArea-output {
margin-left: var(--jp-notebook-padding);
}
/**
* Isolated output.
*/
.jp-OutputArea-output.jp-mod-isolated {
width: 100%;
display: block;
}
/*
When drag events occur, `p-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
position: relative;
}
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated:before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
}
/* pre */
.jp-OutputArea-output pre {
border: none;
margin: 0px;
padding: 0px;
overflow-x: auto;
overflow-y: auto;
word-break: break-all;
word-wrap: break-word;
white-space: pre-wrap;
}
/* tables */
.jp-OutputArea-output.jp-RenderedHTMLCommon table {
margin-left: 0;
margin-right: 0;
}
/* description lists */
.jp-OutputArea-output dl,
.jp-OutputArea-output dt,
.jp-OutputArea-output dd {
display: block;
}
.jp-OutputArea-output dl {
width: 100%;
overflow: hidden;
padding: 0;
margin: 0;
}
.jp-OutputArea-output dt {
font-weight: bold;
float: left;
width: 20%;
padding: 0;
margin: 0;
}
.jp-OutputArea-output dd {
float: left;
width: 80%;
padding: 0;
margin: 0;
}
/* Hide the gutter in case of
* - nested output areas (e.g. in the case of output widgets)
* - mirrored output areas
*/
.jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
display: none;
}
/*-----------------------------------------------------------------------------
| executeResult is added to any Output-result for the display of the object
| returned by a cell
|----------------------------------------------------------------------------*/
.jp-OutputArea-output.jp-OutputArea-executeResult {
margin-left: 0px;
flex: 1 1 auto;
}
/* Text output with the Out[] prompt needs a top padding to match the
* alignment of the Out[] prompt itself.
*/
.jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
padding-top: var(--jp-code-padding);
border-top: var(--jp-border-width) solid transparent;
}
/*-----------------------------------------------------------------------------
| The Stdin output
|----------------------------------------------------------------------------*/
.jp-OutputArea-stdin {
line-height: var(--jp-code-line-height);
padding-top: var(--jp-code-padding);
display: flex;
}
.jp-Stdin-prompt {
color: var(--jp-content-font-color0);
padding-right: var(--jp-code-padding);
vertical-align: baseline;
flex: 0 0 auto;
}
.jp-Stdin-input {
font-family: var(--jp-code-font-family);
font-size: inherit;
color: inherit;
background-color: inherit;
width: 42%;
min-width: 200px;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
flex: 0 0 70%;
}
.jp-Stdin-input:focus {
box-shadow: none;
}
/*-----------------------------------------------------------------------------
| Output Area View
|----------------------------------------------------------------------------*/
.jp-LinkedOutputView .jp-OutputArea {
height: 100%;
display: block;
}
.jp-LinkedOutputView .jp-OutputArea-output:only-child {
height: 100%;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Collapser {
flex: 0 0 var(--jp-cell-collapser-width);
padding: 0px;
margin: 0px;
border: none;
outline: none;
background: transparent;
border-radius: var(--jp-border-radius);
opacity: 1;
}
.jp-Collapser-child {
display: block;
width: 100%;
box-sizing: border-box;
/* height: 100% doesn't work because the height of its parent is computed from content */
position: absolute;
top: 0px;
bottom: 0px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Header/Footer
|----------------------------------------------------------------------------*/
/* Hidden by zero height by default */
.jp-CellHeader,
.jp-CellFooter {
height: 0px;
width: 100%;
padding: 0px;
margin: 0px;
border: none;
outline: none;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Input
|----------------------------------------------------------------------------*/
/* All input areas */
.jp-InputArea {
display: flex;
flex-direction: row;
overflow: hidden;
}
body[data-format='mobile'] .jp-InputArea {
flex-direction: column;
}
.jp-InputArea-editor {
flex: 1 1 auto;
overflow: hidden;
}
.jp-InputArea-editor {
/* This is the non-active, default styling */
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
border-radius: 0px;
background: var(--jp-cell-editor-background);
}
body[data-format='mobile'] .jp-InputArea-editor {
margin-left: var(--jp-notebook-padding);
}
.jp-InputPrompt {
flex: 0 0 var(--jp-cell-prompt-width);
color: var(--jp-cell-inprompt-font-color);
font-family: var(--jp-cell-prompt-font-family);
padding: var(--jp-code-padding);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
opacity: var(--jp-cell-prompt-opacity);
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
opacity: var(--jp-cell-prompt-opacity);
/* Right align prompt text, don't wrap to handle large prompt numbers */
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Disable text selection */
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
body[data-format='mobile'] .jp-InputPrompt {
flex: 0 0 auto;
text-align: left;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/
.jp-Placeholder {
display: flex;
flex-direction: row;
flex: 1 1 auto;
}
.jp-Placeholder-prompt {
box-sizing: border-box;
}
.jp-Placeholder-content {
flex: 1 1 auto;
border: none;
background: transparent;
height: 20px;
box-sizing: border-box;
}
.jp-Placeholder-content .jp-MoreHorizIcon {
width: 32px;
height: 16px;
border: 1px solid transparent;
border-radius: var(--jp-border-radius);
}
.jp-Placeholder-content .jp-MoreHorizIcon:hover {
border: 1px solid var(--jp-border-color1);
box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.25);
background-color: var(--jp-layout-color0);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Private CSS variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-cell-scrolling-output-offset: 5px;
}
/*-----------------------------------------------------------------------------
| Cell
|----------------------------------------------------------------------------*/
.jp-Cell {
padding: var(--jp-cell-padding);
margin: 0px;
border: none;
outline: none;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Common input/output
|----------------------------------------------------------------------------*/
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: flex;
flex-direction: row;
padding: 0px;
margin: 0px;
/* Added to reveal the box-shadow on the input and output collapsers. */
overflow: visible;
}
/* Only input/output areas inside cells */
.jp-Cell-inputArea,
.jp-Cell-outputArea {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Collapser
|----------------------------------------------------------------------------*/
/* Make the output collapser disappear when there is not output, but do so
* in a manner that leaves it in the layout and preserves its width.
*/
.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
border: none !important;
background: transparent !important;
}
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
min-height: var(--jp-cell-collapser-min-height);
}
/*-----------------------------------------------------------------------------
| Output
|----------------------------------------------------------------------------*/
/* Put a space between input and output when there IS output */
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
margin-top: 5px;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
overflow-y: auto;
max-height: 200px;
box-shadow: inset 0 0 6px 2px rgba(0, 0, 0, 0.3);
margin-left: var(--jp-private-cell-scrolling-output-offset);
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
flex: 0 0
calc(
var(--jp-cell-prompt-width) -
var(--jp-private-cell-scrolling-output-offset)
);
}
/*-----------------------------------------------------------------------------
| CodeCell
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| MarkdownCell
|----------------------------------------------------------------------------*/
.jp-MarkdownOutput {
flex: 1 1 auto;
margin-top: 0;
margin-bottom: 0;
padding-left: var(--jp-code-padding);
}
.jp-MarkdownOutput.jp-RenderedHTMLCommon {
overflow: auto;
}
.jp-showHiddenCellsButton {
margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
margin-top: var(--jp-code-padding);
border: 1px solid var(--jp-border-color2);
background-color: var(--jp-border-color3) !important;
color: var(--jp-content-font-color0) !important;
}
.jp-showHiddenCellsButton:hover {
background-color: var(--jp-border-color2) !important;
}
.jp-collapseHeadingButton {
display: none;
}
.jp-MarkdownCell:hover .jp-collapseHeadingButton {
display: flex;
min-height: var(--jp-cell-collapser-min-height);
position: absolute;
right: 0;
top: 0;
bottom: 0;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-NotebookPanel-toolbar {
padding: 2px;
}
.jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused {
border: none;
box-shadow: none;
}
.jp-Notebook-toolbarCellTypeDropdown select {
height: 24px;
font-size: var(--jp-ui-font-size1);
line-height: 14px;
border-radius: 0;
display: block;
}
.jp-Notebook-toolbarCellTypeDropdown span {
top: 5px !important;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Private CSS variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-notebook-dragImage-width: 304px;
--jp-private-notebook-dragImage-height: 36px;
--jp-private-notebook-selected-color: var(--md-blue-400);
--jp-private-notebook-active-color: var(--md-green-400);
}
/*-----------------------------------------------------------------------------
| Imports
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Notebook
|----------------------------------------------------------------------------*/
.jp-NotebookPanel {
display: block;
height: 100%;
}
.jp-NotebookPanel.jp-Document {
min-width: 240px;
min-height: 120px;
}
.jp-Notebook {
padding: var(--jp-notebook-padding);
outline: none;
overflow: auto;
background: var(--jp-layout-color0);
}
.jp-Notebook.jp-mod-scrollPastEnd::after {
display: block;
content: '';
min-height: var(--jp-notebook-scroll-padding);
}
.jp-MainAreaWidget-ContainStrict .jp-Notebook * {
contain: strict;
}
.jp-Notebook-render * {
contain: none !important;
}
.jp-Notebook .jp-Cell {
overflow: visible;
}
.jp-Notebook .jp-Cell .jp-InputPrompt {
cursor: move;
float: left;
}
/*-----------------------------------------------------------------------------
| Notebook state related styling
|
| The notebook and cells each have states, here are the possibilities:
|
| - Notebook
| - Command
| - Edit
| - Cell
| - None
| - Active (only one can be active)
| - Selected (the cells actions are applied to)
| - Multiselected (when multiple selected, the cursor)
| - No outputs
|----------------------------------------------------------------------------*/
/* Command or edit modes */
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
opacity: var(--jp-cell-prompt-not-active-opacity);
color: var(--jp-cell-prompt-not-active-font-color);
}
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
opacity: var(--jp-cell-prompt-not-active-opacity);
color: var(--jp-cell-prompt-not-active-font-color);
}
/* cell is active */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
background: var(--jp-brand-color1);
}
/* cell is dirty */
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
color: var(--jp-warn-color1);
}
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt:before {
color: var(--jp-warn-color1);
content: '•';
}
.jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
background: var(--jp-warn-color1);
}
/* collapser is hovered */
.jp-Notebook .jp-Cell .jp-Collapser:hover {
box-shadow: var(--jp-elevation-z2);
background: var(--jp-brand-color1);
opacity: var(--jp-cell-collapser-not-active-hover-opacity);
}
/* cell is active and collapser is hovered */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
background: var(--jp-brand-color0);
opacity: 1;
}
/* Command mode */
.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
background: var(--jp-notebook-multiselected-color);
}
.jp-Notebook.jp-mod-commandMode
.jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
background: transparent;
}
/* Edit mode */
.jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
box-shadow: var(--jp-input-box-shadow);
background-color: var(--jp-cell-editor-active-background);
}
/*-----------------------------------------------------------------------------
| Notebook drag and drop
|----------------------------------------------------------------------------*/
.jp-Notebook-cell.jp-mod-dropSource {
opacity: 0.5;
}
.jp-Notebook-cell.jp-mod-dropTarget,
.jp-Notebook.jp-mod-commandMode
.jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
border-top-color: var(--jp-private-notebook-selected-color);
border-top-style: solid;
border-top-width: 2px;
}
.jp-dragImage {
display: block;
flex-direction: row;
width: var(--jp-private-notebook-dragImage-width);
height: var(--jp-private-notebook-dragImage-height);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background);
overflow: visible;
}
.jp-dragImage-singlePrompt {
box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.12);
}
.jp-dragImage .jp-dragImage-content {
flex: 1 1 auto;
z-index: 2;
font-size: var(--jp-code-font-size);
font-family: var(--jp-code-font-family);
line-height: var(--jp-code-line-height);
padding: var(--jp-code-padding);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background-color);
color: var(--jp-content-font-color3);
text-align: left;
margin: 4px 4px 4px 0px;
}
.jp-dragImage .jp-dragImage-prompt {
flex: 0 0 auto;
min-width: 36px;
color: var(--jp-cell-inprompt-font-color);
padding: var(--jp-code-padding);
padding-left: 12px;
font-family: var(--jp-cell-prompt-font-family);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
line-height: 1.9;
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
}
.jp-dragImage-multipleBack {
z-index: -1;
position: absolute;
height: 32px;
width: 300px;
top: 8px;
left: 8px;
background: var(--jp-layout-color2);
border: var(--jp-border-width) solid var(--jp-input-border-color);
box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.12);
}
/*-----------------------------------------------------------------------------
| Cell toolbar
|----------------------------------------------------------------------------*/
.jp-NotebookTools {
display: block;
min-width: var(--jp-sidebar-min-width);
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
overflow: auto;
}
.jp-NotebookTools-tool {
padding: 0px 12px 0 12px;
}
.jp-ActiveCellTool {
padding: 12px;
background-color: var(--jp-layout-color1);
border-top: none !important;
}
.jp-ActiveCellTool .jp-InputArea-prompt {
flex: 0 0 auto;
padding-left: 0px;
}
.jp-ActiveCellTool .jp-InputArea-editor {
flex: 1 1 auto;
background: var(--jp-cell-editor-background);
border-color: var(--jp-cell-editor-border-color);
}
.jp-ActiveCellTool .jp-InputArea-editor .CodeMirror {
background: transparent;
}
.jp-MetadataEditorTool {
flex-direction: column;
padding: 12px 0px 12px 0px;
}
.jp-RankedPanel > :not(:first-child) {
margin-top: 12px;
}
.jp-KeySelector select.jp-mod-styled {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
border: var(--jp-border-width) solid var(--jp-border-color1);
}
.jp-KeySelector label,
.jp-MetadataEditorTool label {
line-height: 1.4;
}
.jp-NotebookTools .jp-select-wrapper {
margin-top: 4px;
margin-bottom: 0px;
}
.jp-NotebookTools .jp-Collapse {
margin-top: 16px;
}
/*-----------------------------------------------------------------------------
| Presentation Mode (.jp-mod-presentationMode)
|----------------------------------------------------------------------------*/
.jp-mod-presentationMode .jp-Notebook {
--jp-content-font-size1: var(--jp-content-presentation-font-size1);
--jp-code-font-size: var(--jp-code-presentation-font-size);
}
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
flex: 0 0 110px;
}
/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/
.jp-Cell-Placeholder {
padding-left: 55px;
}
.jp-Cell-Placeholder-wrapper {
background: #fff;
border: 1px solid;
border-color: #e5e6e9 #dfe0e4 #d0d1d5;
border-radius: 4px;
-webkit-border-radius: 4px;
margin: 10px 15px;
}
.jp-Cell-Placeholder-wrapper-inner {
padding: 15px;
position: relative;
}
.jp-Cell-Placeholder-wrapper-body {
background-repeat: repeat;
background-size: 50% auto;
}
.jp-Cell-Placeholder-wrapper-body div {
background: #f6f7f8;
background-image: -webkit-linear-gradient(
left,
#f6f7f8 0%,
#edeef1 20%,
#f6f7f8 40%,
#f6f7f8 100%
);
background-repeat: no-repeat;
background-size: 800px 104px;
height: 104px;
position: relative;
}
.jp-Cell-Placeholder-wrapper-body div {
position: absolute;
right: 15px;
left: 15px;
top: 15px;
}
div.jp-Cell-Placeholder-h1 {
top: 20px;
height: 20px;
left: 15px;
width: 150px;
}
div.jp-Cell-Placeholder-h2 {
left: 15px;
top: 50px;
height: 10px;
width: 100px;
}
div.jp-Cell-Placeholder-content-1,
div.jp-Cell-Placeholder-content-2,
div.jp-Cell-Placeholder-content-3 {
left: 15px;
right: 15px;
height: 10px;
}
div.jp-Cell-Placeholder-content-1 {
top: 100px;
}
div.jp-Cell-Placeholder-content-2 {
top: 120px;
}
div.jp-Cell-Placeholder-content-3 {
top: 140px;
}
</style>
<style type="text/css">
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*
The following CSS variables define the main, public API for styling JupyterLab.
These variables should be used by all plugins wherever possible. In other
words, plugins should not define custom colors, sizes, etc unless absolutely
necessary. This enables users to change the visual theme of JupyterLab
by changing these variables.
Many variables appear in an ordered sequence (0,1,2,3). These sequences
are designed to work well together, so for example, `--jp-border-color1` should
be used with `--jp-layout-color1`. The numbers have the following meanings:
* 0: super-primary, reserved for special emphasis
* 1: primary, most important under normal situations
* 2: secondary, next most important under normal situations
* 3: tertiary, next most important under normal situations
Throughout JupyterLab, we are mostly following principles from Google's
Material Design when selecting colors. We are not, however, following
all of MD as it is not optimized for dense, information rich UIs.
*/
:root {
/* Elevation
*
* We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:
*
* https://github.com/material-components/material-components-web
* https://material-components-web.appspot.com/elevation.html
*/
--jp-shadow-base-lightness: 0;
--jp-shadow-umbra-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.2
);
--jp-shadow-penumbra-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.14
);
--jp-shadow-ambient-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.12
);
--jp-elevation-z0: none;
--jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),
0px 1px 1px 0px var(--jp-shadow-penumbra-color),
0px 1px 3px 0px var(--jp-shadow-ambient-color);
--jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),
0px 2px 2px 0px var(--jp-shadow-penumbra-color),
0px 1px 5px 0px var(--jp-shadow-ambient-color);
--jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),
0px 4px 5px 0px var(--jp-shadow-penumbra-color),
0px 1px 10px 0px var(--jp-shadow-ambient-color);
--jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),
0px 6px 10px 0px var(--jp-shadow-penumbra-color),
0px 1px 18px 0px var(--jp-shadow-ambient-color);
--jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),
0px 8px 10px 1px var(--jp-shadow-penumbra-color),
0px 3px 14px 2px var(--jp-shadow-ambient-color);
--jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),
0px 12px 17px 2px var(--jp-shadow-penumbra-color),
0px 5px 22px 4px var(--jp-shadow-ambient-color);
--jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),
0px 16px 24px 2px var(--jp-shadow-penumbra-color),
0px 6px 30px 5px var(--jp-shadow-ambient-color);
--jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),
0px 20px 31px 3px var(--jp-shadow-penumbra-color),
0px 8px 38px 7px var(--jp-shadow-ambient-color);
--jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),
0px 24px 38px 3px var(--jp-shadow-penumbra-color),
0px 9px 46px 8px var(--jp-shadow-ambient-color);
/* Borders
*
* The following variables, specify the visual styling of borders in JupyterLab.
*/
--jp-border-width: 1px;
--jp-border-color0: var(--md-grey-400);
--jp-border-color1: var(--md-grey-400);
--jp-border-color2: var(--md-grey-300);
--jp-border-color3: var(--md-grey-200);
--jp-border-radius: 2px;
/* UI Fonts
*
* The UI font CSS variables are used for the typography all of the JupyterLab
* user interface elements that are not directly user generated content.
*
* The font sizing here is done assuming that the body font size of --jp-ui-font-size1
* is applied to a parent element. When children elements, such as headings, are sized
* in em all things will be computed relative to that body size.
*/
--jp-ui-font-scale-factor: 1.2;
--jp-ui-font-size0: 0.83333em;
--jp-ui-font-size1: 13px; /* Base font size */
--jp-ui-font-size2: 1.2em;
--jp-ui-font-size3: 1.44em;
--jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,
Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
/*
* Use these font colors against the corresponding main layout colors.
* In a light theme, these go from dark to light.
*/
/* Defaults use Material Design specification */
--jp-ui-font-color0: rgba(0, 0, 0, 1);
--jp-ui-font-color1: rgba(0, 0, 0, 0.87);
--jp-ui-font-color2: rgba(0, 0, 0, 0.54);
--jp-ui-font-color3: rgba(0, 0, 0, 0.38);
/*
* Use these against the brand/accent/warn/error colors.
* These will typically go from light to darker, in both a dark and light theme.
*/
--jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);
--jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);
--jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);
--jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);
/* Content Fonts
*
* Content font variables are used for typography of user generated content.
*
* The font sizing here is done assuming that the body font size of --jp-content-font-size1
* is applied to a parent element. When children elements, such as headings, are sized
* in em all things will be computed relative to that body size.
*/
--jp-content-line-height: 1.6;
--jp-content-font-scale-factor: 1.2;
--jp-content-font-size0: 0.83333em;
--jp-content-font-size1: 14px; /* Base font size */
--jp-content-font-size2: 1.2em;
--jp-content-font-size3: 1.44em;
--jp-content-font-size4: 1.728em;
--jp-content-font-size5: 2.0736em;
/* This gives a magnification of about 125% in presentation mode over normal. */
--jp-content-presentation-font-size1: 17px;
--jp-content-heading-line-height: 1;
--jp-content-heading-margin-top: 1.2em;
--jp-content-heading-margin-bottom: 0.8em;
--jp-content-heading-font-weight: 500;
/* Defaults use Material Design specification */
--jp-content-font-color0: rgba(0, 0, 0, 1);
--jp-content-font-color1: rgba(0, 0, 0, 0.87);
--jp-content-font-color2: rgba(0, 0, 0, 0.54);
--jp-content-font-color3: rgba(0, 0, 0, 0.38);
--jp-content-link-color: var(--md-blue-700);
--jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
'Segoe UI Symbol';
/*
* Code Fonts
*
* Code font variables are used for typography of code and other monospaces content.
*/
--jp-code-font-size: 13px;
--jp-code-line-height: 1.3077; /* 17px for 13px base */
--jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
--jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;
--jp-code-font-family: var(--jp-code-font-family-default);
/* This gives a magnification of about 125% in presentation mode over normal. */
--jp-code-presentation-font-size: 16px;
/* may need to tweak cursor width if you change font size */
--jp-code-cursor-width0: 1.4px;
--jp-code-cursor-width1: 2px;
--jp-code-cursor-width2: 4px;
/* Layout
*
* The following are the main layout colors use in JupyterLab. In a light
* theme these would go from light to dark.
*/
--jp-layout-color0: white;
--jp-layout-color1: white;
--jp-layout-color2: var(--md-grey-200);
--jp-layout-color3: var(--md-grey-400);
--jp-layout-color4: var(--md-grey-600);
/* Inverse Layout
*
* The following are the inverse layout colors use in JupyterLab. In a light
* theme these would go from dark to light.
*/
--jp-inverse-layout-color0: #111111;
--jp-inverse-layout-color1: var(--md-grey-900);
--jp-inverse-layout-color2: var(--md-grey-800);
--jp-inverse-layout-color3: var(--md-grey-700);
--jp-inverse-layout-color4: var(--md-grey-600);
/* Brand/accent */
--jp-brand-color0: var(--md-blue-900);
--jp-brand-color1: var(--md-blue-700);
--jp-brand-color2: var(--md-blue-300);
--jp-brand-color3: var(--md-blue-100);
--jp-brand-color4: var(--md-blue-50);
--jp-accent-color0: var(--md-green-900);
--jp-accent-color1: var(--md-green-700);
--jp-accent-color2: var(--md-green-300);
--jp-accent-color3: var(--md-green-100);
/* State colors (warn, error, success, info) */
--jp-warn-color0: var(--md-orange-900);
--jp-warn-color1: var(--md-orange-700);
--jp-warn-color2: var(--md-orange-300);
--jp-warn-color3: var(--md-orange-100);
--jp-error-color0: var(--md-red-900);
--jp-error-color1: var(--md-red-700);
--jp-error-color2: var(--md-red-300);
--jp-error-color3: var(--md-red-100);
--jp-success-color0: var(--md-green-900);
--jp-success-color1: var(--md-green-700);
--jp-success-color2: var(--md-green-300);
--jp-success-color3: var(--md-green-100);
--jp-info-color0: var(--md-cyan-900);
--jp-info-color1: var(--md-cyan-700);
--jp-info-color2: var(--md-cyan-300);
--jp-info-color3: var(--md-cyan-100);
/* Cell specific styles */
--jp-cell-padding: 5px;
--jp-cell-collapser-width: 8px;
--jp-cell-collapser-min-height: 20px;
--jp-cell-collapser-not-active-hover-opacity: 0.6;
--jp-cell-editor-background: var(--md-grey-100);
--jp-cell-editor-border-color: var(--md-grey-300);
--jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);
--jp-cell-editor-active-background: var(--jp-layout-color0);
--jp-cell-editor-active-border-color: var(--jp-brand-color1);
--jp-cell-prompt-width: 64px;
--jp-cell-prompt-font-family: var(--jp-code-font-family-default);
--jp-cell-prompt-letter-spacing: 0px;
--jp-cell-prompt-opacity: 1;
--jp-cell-prompt-not-active-opacity: 0.5;
--jp-cell-prompt-not-active-font-color: var(--md-grey-700);
/* A custom blend of MD grey and blue 600
* See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
--jp-cell-inprompt-font-color: #307fc1;
/* A custom blend of MD grey and orange 600
* https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */
--jp-cell-outprompt-font-color: #bf5b3d;
/* Notebook specific styles */
--jp-notebook-padding: 10px;
--jp-notebook-select-background: var(--jp-layout-color1);
--jp-notebook-multiselected-color: var(--md-blue-50);
/* The scroll padding is calculated to fill enough space at the bottom of the
notebook to show one single-line cell (with appropriate padding) at the top
when the notebook is scrolled all the way to the bottom. We also subtract one
pixel so that no scrollbar appears if we have just one single-line cell in the
notebook. This padding is to enable a 'scroll past end' feature in a notebook.
*/
--jp-notebook-scroll-padding: calc(
100% - var(--jp-code-font-size) * var(--jp-code-line-height) -
var(--jp-code-padding) - var(--jp-cell-padding) - 1px
);
/* Rendermime styles */
--jp-rendermime-error-background: #fdd;
--jp-rendermime-table-row-background: var(--md-grey-100);
--jp-rendermime-table-row-hover-background: var(--md-light-blue-50);
/* Dialog specific styles */
--jp-dialog-background: rgba(0, 0, 0, 0.25);
/* Console specific styles */
--jp-console-padding: 10px;
/* Toolbar specific styles */
--jp-toolbar-border-color: var(--jp-border-color1);
--jp-toolbar-micro-height: 8px;
--jp-toolbar-background: var(--jp-layout-color1);
--jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);
--jp-toolbar-header-margin: 4px 4px 0px 4px;
--jp-toolbar-active-background: var(--md-grey-300);
/* Statusbar specific styles */
--jp-statusbar-height: 24px;
/* Input field styles */
--jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);
--jp-input-active-background: var(--jp-layout-color1);
--jp-input-hover-background: var(--jp-layout-color1);
--jp-input-background: var(--md-grey-100);
--jp-input-border-color: var(--jp-border-color1);
--jp-input-active-border-color: var(--jp-brand-color1);
--jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);
/* General editor styles */
--jp-editor-selected-background: #d9d9d9;
--jp-editor-selected-focused-background: #d7d4f0;
--jp-editor-cursor-color: var(--jp-ui-font-color0);
/* Code mirror specific styles */
--jp-mirror-editor-keyword-color: #008000;
--jp-mirror-editor-atom-color: #88f;
--jp-mirror-editor-number-color: #080;
--jp-mirror-editor-def-color: #00f;
--jp-mirror-editor-variable-color: var(--md-grey-900);
--jp-mirror-editor-variable-2-color: #05a;
--jp-mirror-editor-variable-3-color: #085;
--jp-mirror-editor-punctuation-color: #05a;
--jp-mirror-editor-property-color: #05a;
--jp-mirror-editor-operator-color: #aa22ff;
--jp-mirror-editor-comment-color: #408080;
--jp-mirror-editor-string-color: #ba2121;
--jp-mirror-editor-string-2-color: #708;
--jp-mirror-editor-meta-color: #aa22ff;
--jp-mirror-editor-qualifier-color: #555;
--jp-mirror-editor-builtin-color: #008000;
--jp-mirror-editor-bracket-color: #997;
--jp-mirror-editor-tag-color: #170;
--jp-mirror-editor-attribute-color: #00c;
--jp-mirror-editor-header-color: blue;
--jp-mirror-editor-quote-color: #090;
--jp-mirror-editor-link-color: #00c;
--jp-mirror-editor-error-color: #f00;
--jp-mirror-editor-hr-color: #999;
/* Vega extension styles */
--jp-vega-background: white;
/* Sidebar-related styles */
--jp-sidebar-min-width: 250px;
/* Search-related styles */
--jp-search-toggle-off-opacity: 0.5;
--jp-search-toggle-hover-opacity: 0.8;
--jp-search-toggle-on-opacity: 1;
--jp-search-selected-match-background-color: rgb(245, 200, 0);
--jp-search-selected-match-color: black;
--jp-search-unselected-match-background-color: var(
--jp-inverse-layout-color0
);
--jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);
/* Icon colors that work well with light or dark backgrounds */
--jp-icon-contrast-color0: var(--md-purple-600);
--jp-icon-contrast-color1: var(--md-green-600);
--jp-icon-contrast-color2: var(--md-pink-600);
--jp-icon-contrast-color3: var(--md-blue-600);
}
</style>
<style type="text/css">
/* Force rendering true colors when outputing to pdf */
* {
-webkit-print-color-adjust: exact;
}
/* Misc */
a.anchor-link {
display: none;
}
/* Input area styling */
.jp-InputArea {
overflow: hidden;
}
.jp-InputArea-editor {
overflow: hidden;
}
.CodeMirror.cm-s-jupyter .highlight pre {
/* weird, but --jp-code-padding defined to be 5px but 4px horizontal padding is hardcoded for pre.CodeMirror-line */
padding: var(--jp-code-padding) 4px;
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
color: inherit;
}
.jp-OutputArea-output pre {
line-height: inherit;
font-family: inherit;
}
.jp-RenderedText pre {
color: var(--jp-content-font-color1);
font-size: var(--jp-code-font-size);
}
/* Using table instead of flexbox so that we can use break-inside property */
/* CSS rules under this comment should not be required anymore after we move to the JupyterLab 4.0 CSS */
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
min-width: calc(
var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)
);
}
.jp-OutputArea-child {
display: table;
width: 100%;
}
.jp-OutputPrompt {
display: table-cell;
vertical-align: top;
min-width: var(--jp-cell-prompt-width);
}
body[data-format='mobile'] .jp-OutputPrompt {
display: table-row;
}
.jp-OutputArea-output {
display: table-cell;
width: 100%;
}
body[data-format='mobile'] .jp-OutputArea-child .jp-OutputArea-output {
display: table-row;
}
.jp-OutputArea-output.jp-OutputArea-executeResult {
width: 100%;
}
/* Hiding the collapser by default */
.jp-Collapser {
display: none;
}
@media print {
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: block;
}
.jp-OutputArea-child {
break-inside: avoid-page;
}
}
</style>
<!-- Load mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
TeX: {
equationNumbers: {
autoNumber: "AMS",
useLabelIds: true
}
},
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
displayAlign: 'center',
CommonHTML: {
linebreaks: {
automatic: true
}
}
});
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}
}
init_mathjax();
</script>
<!-- End of mathjax configuration --></head>
<body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light">
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="Treating-Trees">Treating Trees<a class="anchor-link" href="#Treating-Trees">&#182;</a></h1><p>Although any expression in Joy can be considered to describe a <a href="https://en.wikipedia.org/wiki/Tree_structure">tree</a> with the quotes as compound nodes and the non-quote values as leaf nodes, in this page I want to talk about <a href="https://en.wikipedia.org/wiki/Binary_search_tree">ordered binary trees</a> and how to make and use them.</p>
<p>The basic structure, in a <a href="https://en.wikipedia.org/wiki/Algebraic_data_type">crude type notation</a>, is:</p>
<pre><code>BTree :: [] | [key value BTree BTree]
</code></pre>
<p>That says that a BTree is either the empty quote <code>[]</code> or a quote with four items: a key, a value, and two BTrees representing the left and right branches of the tree.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="A-Function-to-Traverse-this-Structure">A Function to Traverse this Structure<a class="anchor-link" href="#A-Function-to-Traverse-this-Structure">&#182;</a></h2><p>Let's take a crack at writing a function that can recursively iterate or traverse these trees.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Base-case-%5B%5D">Base case <code>[]</code><a class="anchor-link" href="#Base-case-%5B%5D">&#182;</a></h4><p>The stopping predicate just has to detect the empty list:</p>
<pre><code>BTree-iter == [not] [E] [R0] [R1] genrec
</code></pre>
<p>And since there's nothing at this node, we just <code>pop</code> it:</p>
<pre><code>BTree-iter == [not] [pop] [R0] [R1] genrec
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Node-case-%5Bkey-value-left-right%5D">Node case <code>[key value left right]</code><a class="anchor-link" href="#Node-case-%5Bkey-value-left-right%5D">&#182;</a></h4><p>Now we need to figure out <code>R0</code> and <code>R1</code>:</p>
<pre><code>BTree-iter == [not] [pop] [R0] [R1] genrec
== [not] [pop] [R0 [BTree-iter] R1] ifte
</code></pre>
<p>Let's look at it <em>in situ</em>:</p>
<pre><code>[key value left right] R0 [BTree-iter] R1
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Processing-the-current-node.">Processing the current node.<a class="anchor-link" href="#Processing-the-current-node.">&#182;</a></h4><p><code>R0</code> is almost certainly going to use <code>dup</code> to make a copy of the node and then <code>dip</code> on some function to process the copy with it:</p>
<pre><code>[key value left right] [F] dupdip [BTree-iter] R1
[key value left right] F [key value left right] [BTree-iter] R1
</code></pre>
<p>For example, if we're getting all the keys <code>F</code> would be <code>first</code>:</p>
<pre><code>R0 == [first] dupdip
[key value left right] [first] dupdip [BTree-iter] R1
[key value left right] first [key value left right] [BTree-iter] R1
key [key value left right] [BTree-iter] R1
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Recur">Recur<a class="anchor-link" href="#Recur">&#182;</a></h4><p>Now <code>R1</code> needs to apply <code>[BTree-iter]</code> to <code>left</code> and <code>right</code>. If we drop the key and value from the node using <code>rest</code> twice we are left with an interesting situation:</p>
<pre><code>key [key value left right] [BTree-iter] R1
key [key value left right] [BTree-iter] [rest rest] dip
key [key value left right] rest rest [BTree-iter]
key [left right] [BTree-iter]
</code></pre>
<p>Hmm, will <code>step</code> do?</p>
<pre><code>key [left right] [BTree-iter] step
key left BTree-iter [right] [BTree-iter] step
key left-keys [right] [BTree-iter] step
key left-keys right BTree-iter
key left-keys right-keys
</code></pre>
<p>Wow. So:</p>
<pre><code>R1 == [rest rest] dip step
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Putting-it-together">Putting it together<a class="anchor-link" href="#Putting-it-together">&#182;</a></h4><p>We have:</p>
<pre><code>BTree-iter == [not] [pop] [[F] dupdip] [[rest rest] dip step] genrec
</code></pre>
<p>When I was reading this over I realized <code>rest rest</code> could go in <code>R0</code>:</p>
<pre><code>BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec
</code></pre>
<p>(And <code>[step] genrec</code> is such a cool and suggestive combinator!)</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Parameterizing-the-F-per-node-processing-function.">Parameterizing the <code>F</code> per-node processing function.<a class="anchor-link" href="#Parameterizing-the-F-per-node-processing-function.">&#182;</a></h4><pre><code>[F] BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec
</code></pre>
<p>Working backward:</p>
<pre><code>[not] [pop] [[F] dupdip rest rest] [step] genrec
[not] [pop] [F] [dupdip rest rest] cons [step] genrec
[F] [not] [pop] roll&lt; [dupdip rest rest] cons [step] genrec
</code></pre>
<p>Ergo:</p>
<pre><code>BTree-iter == [not] [pop] roll&lt; [dupdip rest rest] cons [step] genrec
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[1]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">notebook_preamble</span> <span class="kn">import</span> <span class="n">D</span><span class="p">,</span> <span class="n">J</span><span class="p">,</span> <span class="n">V</span><span class="p">,</span> <span class="n">define</span><span class="p">,</span> <span class="n">DefinitionWrapper</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[2]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'BTree-iter == [not] [pop] roll&lt; [dupdip rest rest] cons [step] genrec'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[3]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] [23] BTree-iter'</span><span class="p">)</span> <span class="c1"># It doesn't matter what F is as it won't be used.</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[4]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["tommy" 23 [] []] [first] BTree-iter'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>&#39;tommy&#39;
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[5]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["tommy" 23 ["richard" 48 [] []] ["jenny" 18 [] []]] [first] BTree-iter'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>&#39;tommy&#39; &#39;richard&#39; &#39;jenny&#39;
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[6]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["tommy" 23 ["richard" 48 [] []] ["jenny" 18 [] []]] [second] BTree-iter'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>23 48 18
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="Adding-Nodes-to-the-BTree">Adding Nodes to the BTree<a class="anchor-link" href="#Adding-Nodes-to-the-BTree">&#182;</a></h1><p>Let's consider adding nodes to a BTree structure.</p>
<pre><code>BTree value key BTree-add == BTree
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Adding-to-an-empty-node.">Adding to an empty node.<a class="anchor-link" href="#Adding-to-an-empty-node.">&#182;</a></h4><p>If the current node is <code>[]</code> then you just return <code>[key value [] []]</code>:</p>
<pre><code>BTree-add == [popop not] [[pop] dipd BTree-new] [R0] [R1] genrec
</code></pre>
<p>Where <code>BTree-new</code> is:</p>
<pre><code>value key BTree-new == [key value [] []]
value key swap [[] []] cons cons
key value [[] []] cons cons
key [value [] []] cons
[key value [] []]
BTree-new == swap [[] []] cons cons
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[7]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'BTree-new == swap [[] []] cons cons'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[8]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">'"v" "k" BTree-new'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre> . &#39;v&#39; &#39;k&#39; BTree-new
&#39;v&#39; . &#39;k&#39; BTree-new
&#39;v&#39; &#39;k&#39; . BTree-new
&#39;v&#39; &#39;k&#39; . swap [[] []] cons cons
&#39;k&#39; &#39;v&#39; . [[] []] cons cons
&#39;k&#39; &#39;v&#39; [[] []] . cons cons
&#39;k&#39; [&#39;v&#39; [] []] . cons
[&#39;k&#39; &#39;v&#39; [] []] .
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>(As an implementation detail, the <code>[[] []]</code> literal used in the definition of <code>BTree-new</code> will be reused to supply the <em>constant</em> tail for <em>all</em> new nodes produced by it. This is one of those cases where you get amortized storage &quot;for free&quot; by using <a href="https://en.wikipedia.org/wiki/Persistent_data_structure">persistent datastructures</a>. Because the tail, which is <code>((), ((), ()))</code> in Python, is immutable and embedded in the definition body for <code>BTree-new</code>, all new nodes can reuse it as their own tail without fear that some other code somewhere will change it.)</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="If-the-current-node-isn't-empty.">If the current node isn't empty.<a class="anchor-link" href="#If-the-current-node-isn't-empty.">&#182;</a></h4><p>We now have to derive <code>R0</code> and <code>R1</code>, consider:</p>
<pre><code>[key_n value_n left right] value key R0 [BTree-add] R1
</code></pre>
<p>In this case, there are three possibilites: the key can be greater or less than or equal to the node's key. In two of those cases we will need to apply a copy of <code>BTree-add</code>, so <code>R0</code> is pretty much out of the picture.</p>
<pre><code>[R0] == []
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="A-predicate-to-compare-keys.">A predicate to compare keys.<a class="anchor-link" href="#A-predicate-to-compare-keys.">&#182;</a></h4><p>The first thing we need to do is compare the the key we're adding to see if it is greater than the node key and <code>branch</code> accordingly, although in this case it's easier to write a destructive predicate and then use <code>ifte</code> to apply it <code>nullary</code>:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] R1
[key_n value_n left right] value key [BTree-add] [P &gt;] [T] [E] ifte
[key_n value_n left right] value key [BTree-add] P &gt;
[key_n value_n left right] value key [BTree-add] pop roll&gt; pop first &gt;
[key_n value_n left right] value key roll&gt; pop first &gt;
key [key_n value_n left right] value roll&gt; pop first &gt;
key key_n &gt;
Boolean
P &gt; == pop roll&gt; pop first &gt;
P &lt; == pop roll&gt; pop first &lt;
P == pop roll&gt; pop first
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[9]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'P == pop roll&gt; pop first'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[10]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">'["k" "v" [] []] "vv" "kk" [0] P &gt;'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre> . [&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; &#39;kk&#39; [0] P &gt;
[&#39;k&#39; &#39;v&#39; [] []] . &#39;vv&#39; &#39;kk&#39; [0] P &gt;
[&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; . &#39;kk&#39; [0] P &gt;
[&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; &#39;kk&#39; . [0] P &gt;
[&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; &#39;kk&#39; [0] . P &gt;
[&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; &#39;kk&#39; [0] . pop roll&gt; pop first &gt;
[&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; &#39;kk&#39; . roll&gt; pop first &gt;
&#39;kk&#39; [&#39;k&#39; &#39;v&#39; [] []] &#39;vv&#39; . pop first &gt;
&#39;kk&#39; [&#39;k&#39; &#39;v&#39; [] []] . first &gt;
&#39;kk&#39; &#39;k&#39; . &gt;
True .
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="If-the-key-we're-adding-is-greater-than-the-node's-key.">If the key we're adding is greater than the node's key.<a class="anchor-link" href="#If-the-key-we're-adding-is-greater-than-the-node's-key.">&#182;</a></h4><p>Here the parantheses are meant to signify that the right-hand side (RHS) is not literal, the code in the parentheses is meant to have been evaluated:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] T == [key_n value_n left (BTree-add key value right)]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Use-infra-on-K.">Use <code>infra</code> on <code>K</code>.<a class="anchor-link" href="#Use-infra-on-K.">&#182;</a></h4><p>So how do we do this? We know we're going to want to use <code>infra</code> on some function <code>K</code> that has the key and value to work with, as well as the quoted copy of <code>BTree-add</code> to apply somehow:</p>
<pre><code>right left value_n key_n value key [BTree-add] K
...
right value key BTree-add left value_n key_n
</code></pre>
<p>Pretty easy:</p>
<pre><code>right left value_n key_n value key [BTree-add] cons cons dipdd
right left value_n key_n [value key BTree-add] dipdd
right value key BTree-add left value_n key_n
</code></pre>
<p>So:</p>
<pre><code>K == cons cons dipdd
</code></pre>
<p>And:</p>
<pre><code>[key_n value_n left right] [value key [BTree-add] K] infra
</code></pre>
<h4 id="Derive-T.">Derive <code>T</code>.<a class="anchor-link" href="#Derive-T.">&#182;</a></h4><p>So now we're at getting from this to this:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] T
...
[key_n value_n left right] [value key [BTree-add] K] infra
</code></pre>
<p>And so <code>T</code> is just:</p>
<pre><code>value key [BTree-add] T == [value key [BTree-add] K] infra
T == [ K] cons cons cons infra
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[11]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'K == cons cons dipdd'</span><span class="p">)</span>
<span class="n">define</span><span class="p">(</span><span class="s1">'T == [K] cons cons cons infra'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[12]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">'"r" "l" "v" "k" "vv" "kk" [0] K'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre> . &#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] K
&#39;r&#39; . &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] K
&#39;r&#39; &#39;l&#39; . &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] K
&#39;r&#39; &#39;l&#39; &#39;v&#39; . &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] K
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; . &#39;vv&#39; &#39;kk&#39; [0] K
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; . &#39;kk&#39; [0] K
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; . [0] K
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] . K
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] . cons cons dipdd
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; [&#39;kk&#39; 0] . cons dipdd
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; [&#39;vv&#39; &#39;kk&#39; 0] . dipdd
&#39;r&#39; . &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39;
&#39;r&#39; &#39;vv&#39; . &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39;
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; . 0 &#39;l&#39; &#39;v&#39; &#39;k&#39;
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 . &#39;l&#39; &#39;v&#39; &#39;k&#39;
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; . &#39;v&#39; &#39;k&#39;
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; . &#39;k&#39;
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39; .
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[13]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">'["k" "v" "l" "r"] "vv" "kk" [0] T'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre> . [&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] T
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] . &#39;vv&#39; &#39;kk&#39; [0] T
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; . &#39;kk&#39; [0] T
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; . [0] T
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] . T
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] . [K] cons cons cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] [K] . cons cons cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [[0] K] . cons cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; [&#39;kk&#39; [0] K] . cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] [&#39;vv&#39; &#39;kk&#39; [0] K] . infra
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; . &#39;vv&#39; &#39;kk&#39; [0] K [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; . &#39;kk&#39; [0] K [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; . [0] K [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] . K [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] . cons cons dipdd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; [&#39;kk&#39; 0] . cons dipdd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; [&#39;vv&#39; &#39;kk&#39; 0] . dipdd [] swaack
&#39;r&#39; . &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;vv&#39; . &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; . 0 &#39;l&#39; &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 . &#39;l&#39; &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; . &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; . &#39;k&#39; [] swaack
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39; . [] swaack
&#39;r&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;l&#39; &#39;v&#39; &#39;k&#39; [] . swaack
[&#39;k&#39; &#39;v&#39; &#39;l&#39; 0 &#39;kk&#39; &#39;vv&#39; &#39;r&#39;] .
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="If-the-key-we're-adding-is-less-than-the-node's-key.">If the key we're adding is less than the node's key.<a class="anchor-link" href="#If-the-key-we're-adding-is-less-than-the-node's-key.">&#182;</a></h4><p>This is very very similar to the above:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] E
[key_n value_n left right] value key [BTree-add] [P &lt;] [Te] [Ee] ifte
</code></pre>
<p>In this case <code>Te</code> works that same as <code>T</code> but on the left child tree instead of the right, so the only difference is that it must use <code>dipd</code> instead of <code>dipdd</code>:</p>
<pre><code>Te == [cons cons dipd] cons cons cons infra
</code></pre>
<p>This suggests an alternate factorization:</p>
<pre><code>ccons == cons cons
T == [ccons dipdd] ccons cons infra
Te == [ccons dipd] ccons cons infra
</code></pre>
<p>But whatever.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[14]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'Te == [cons cons dipd] cons cons cons infra'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[15]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">'["k" "v" "l" "r"] "vv" "kk" [0] Te'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre> . [&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] Te
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] . &#39;vv&#39; &#39;kk&#39; [0] Te
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; . &#39;kk&#39; [0] Te
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; . [0] Te
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] . Te
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] . [cons cons dipd] cons cons cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [0] [cons cons dipd] . cons cons cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;kk&#39; [[0] cons cons dipd] . cons cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; [&#39;kk&#39; [0] cons cons dipd] . cons infra
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] [&#39;vv&#39; &#39;kk&#39; [0] cons cons dipd] . infra
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; . &#39;vv&#39; &#39;kk&#39; [0] cons cons dipd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; . &#39;kk&#39; [0] cons cons dipd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; . [0] cons cons dipd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; &#39;kk&#39; [0] . cons cons dipd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; &#39;vv&#39; [&#39;kk&#39; 0] . cons dipd [] swaack
&#39;r&#39; &#39;l&#39; &#39;v&#39; &#39;k&#39; [&#39;vv&#39; &#39;kk&#39; 0] . dipd [] swaack
&#39;r&#39; &#39;l&#39; . &#39;vv&#39; &#39;kk&#39; 0 &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;l&#39; &#39;vv&#39; . &#39;kk&#39; 0 &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;l&#39; &#39;vv&#39; &#39;kk&#39; . 0 &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;l&#39; &#39;vv&#39; &#39;kk&#39; 0 . &#39;v&#39; &#39;k&#39; [] swaack
&#39;r&#39; &#39;l&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;v&#39; . &#39;k&#39; [] swaack
&#39;r&#39; &#39;l&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;v&#39; &#39;k&#39; . [] swaack
&#39;r&#39; &#39;l&#39; &#39;vv&#39; &#39;kk&#39; 0 &#39;v&#39; &#39;k&#39; [] . swaack
[&#39;k&#39; &#39;v&#39; 0 &#39;kk&#39; &#39;vv&#39; &#39;l&#39; &#39;r&#39;] .
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Else-the-keys-must-be-equal.">Else the keys must be equal.<a class="anchor-link" href="#Else-the-keys-must-be-equal.">&#182;</a></h4><p>This means we must find:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] Ee
...
[key value left right]
</code></pre>
<p>This is another easy one:</p>
<pre><code>Ee == pop swap roll&lt; rest rest cons cons
[key_n value_n left right] value key [BTree-add] pop swap roll&lt; rest rest cons cons
[key_n value_n left right] value key swap roll&lt; rest rest cons cons
[key_n value_n left right] key value roll&lt; rest rest cons cons
key value [key_n value_n left right] rest rest cons cons
key value [ left right] cons cons
[key value left right]
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[16]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'Ee == pop swap roll&lt; rest rest cons cons'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[17]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">'["k" "v" "l" "r"] "vv" "k" [0] Ee'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre> . [&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;k&#39; [0] Ee
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] . &#39;vv&#39; &#39;k&#39; [0] Ee
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; . &#39;k&#39; [0] Ee
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;k&#39; . [0] Ee
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;k&#39; [0] . Ee
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;k&#39; [0] . pop swap roll&lt; rest rest cons cons
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;vv&#39; &#39;k&#39; . swap roll&lt; rest rest cons cons
[&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] &#39;k&#39; &#39;vv&#39; . roll&lt; rest rest cons cons
&#39;k&#39; &#39;vv&#39; [&#39;k&#39; &#39;v&#39; &#39;l&#39; &#39;r&#39;] . rest rest cons cons
&#39;k&#39; &#39;vv&#39; [&#39;v&#39; &#39;l&#39; &#39;r&#39;] . rest cons cons
&#39;k&#39; &#39;vv&#39; [&#39;l&#39; &#39;r&#39;] . cons cons
&#39;k&#39; [&#39;vv&#39; &#39;l&#39; &#39;r&#39;] . cons
[&#39;k&#39; &#39;vv&#39; &#39;l&#39; &#39;r&#39;] .
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[18]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'E == [P &lt;] [Te] [Ee] ifte'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Now-we-can-define-BTree-add">Now we can define <code>BTree-add</code><a class="anchor-link" href="#Now-we-can-define-BTree-add">&#182;</a></h4><pre><code>BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P &gt;] [T] [E] ifte] genrec
</code></pre>
<p>Putting it all together:</p>
<pre><code>BTree-new == swap [[] []] cons cons
P == pop roll&gt; pop first
T == [cons cons dipdd] cons cons cons infra
Te == [cons cons dipd] cons cons cons infra
Ee == pop swap roll&lt; rest rest cons cons
E == [P &lt;] [Te] [Ee] ifte
BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P &gt;] [T] [E] ifte] genrec
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[19]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P &gt;] [T] [E] ifte] genrec'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[20]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] 23 "b" BTree-add'</span><span class="p">)</span> <span class="c1"># Initial</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 23 [] []]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[21]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["b" 23 [] []] 88 "c" BTree-add'</span><span class="p">)</span> <span class="c1"># Less than</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 23 [] [&#39;c&#39; 88 [] []]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[22]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["b" 23 [] []] 88 "a" BTree-add'</span><span class="p">)</span> <span class="c1"># Greater than</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 23 [&#39;a&#39; 88 [] []] []]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[23]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["b" 23 [] []] 88 "b" BTree-add'</span><span class="p">)</span> <span class="c1"># Equal to</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 88 [] []]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[24]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] 23 "a" BTree-add 88 "b" BTree-add 44 "c" BTree-add'</span><span class="p">)</span> <span class="c1"># Series.</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;a&#39; 23 [] [&#39;b&#39; 88 [] [&#39;c&#39; 44 [] []]]]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>We can use this to make a set-like datastructure by just setting values to e.g. 0 and ignoring them. It's set-like in that duplicate items added to it will only occur once within it, and we can query it in <a href="https://en.wikipedia.org/wiki/Binary_search_tree#cite_note-2">$O(\log_2 N)$</a> time.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[25]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] [3 9 5 2 8 6 7 8 4] [0 swap BTree-add] step'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[26]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'to_set == [] swap [0 swap BTree-add] step'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[27]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[3 9 5 2 8 6 7 8 4] to_set'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>And with that we can write a little program to remove duplicate items from a list.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[28]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'unique == [to_set [first] BTree-iter] cons run'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[29]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[3 9 3 5 2 9 8 8 8 6 2 7 8 4 3] unique'</span><span class="p">)</span> <span class="c1"># Filter duplicate items.</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[7 6 8 4 5 9 2 3]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="cmp-combinator"><code>cmp</code> combinator<a class="anchor-link" href="#cmp-combinator">&#182;</a></h1><p>Instead of all this mucking about with nested <code>ifte</code> let's just go whole hog and define <code>cmp</code> which takes two values and three quoted programs on the stack and runs one of the three depending on the results of comparing the two values:</p>
<pre><code> a b [G] [E] [L] cmp
------------------------- a &gt; b
G
a b [G] [E] [L] cmp
------------------------- a = b
E
a b [G] [E] [L] cmp
------------------------- a &lt; b
L
</code></pre>
<p>We need a new non-destructive predicate <code>P</code>:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] P
[key_n value_n left right] value key [BTree-add] over [Q] nullary
[key_n value_n left right] value key [BTree-add] key [Q] nullary
[key_n value_n left right] value key [BTree-add] key Q
[key_n value_n left right] value key [BTree-add] key popop popop first
[key_n value_n left right] value key popop first
[key_n value_n left right] first
key_n
[key_n value_n left right] value key [BTree-add] key [Q] nullary
[key_n value_n left right] value key [BTree-add] key key_n
P == over [popop popop first] nullary
</code></pre>
<p>Here are the definitions again, pruned and renamed in some cases:</p>
<pre><code>BTree-new == swap [[] []] cons cons
P == over [popop popop first] nullary
T&gt; == [cons cons dipdd] cons cons cons infra
T&lt; == [cons cons dipd] cons cons cons infra
E == pop swap roll&lt; rest rest cons cons
</code></pre>
<p>Using <code>cmp</code> to simplify <a href="#If-the-current-node-isn%27t-empty.">our code above at <code>R1</code></a>:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] R1
[key_n value_n left right] value key [BTree-add] P [T&gt;] [E] [T&lt;] cmp
</code></pre>
<p>The line above becomes one of the three lines below:</p>
<pre><code>[key_n value_n left right] value key [BTree-add] T&gt;
[key_n value_n left right] value key [BTree-add] E
[key_n value_n left right] value key [BTree-add] T&lt;
</code></pre>
<p>The definition is a little longer but, I think, more elegant and easier to understand:</p>
<pre><code>BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T&gt;] [E] [T&lt;] cmp] genrec
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[30]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">joy.library</span> <span class="kn">import</span> <span class="n">FunctionWrapper</span>
<span class="kn">from</span> <span class="nn">joy.utils.stack</span> <span class="kn">import</span> <span class="n">concat</span>
<span class="kn">from</span> <span class="nn">notebook_preamble</span> <span class="kn">import</span> <span class="n">D</span>
<span class="nd">@FunctionWrapper</span>
<span class="k">def</span> <span class="nf">cmp_</span><span class="p">(</span><span class="n">stack</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dictionary</span><span class="p">):</span>
<span class="sd">'''</span>
<span class="sd"> cmp takes two values and three quoted programs on the stack and runs</span>
<span class="sd"> one of the three depending on the results of comparing the two values:</span>
<span class="sd"> a b [G] [E] [L] cmp</span>
<span class="sd"> ------------------------- a &gt; b</span>
<span class="sd"> G</span>
<span class="sd"> a b [G] [E] [L] cmp</span>
<span class="sd"> ------------------------- a = b</span>
<span class="sd"> E</span>
<span class="sd"> a b [G] [E] [L] cmp</span>
<span class="sd"> ------------------------- a &lt; b</span>
<span class="sd"> L</span>
<span class="sd"> '''</span>
<span class="n">L</span><span class="p">,</span> <span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="p">(</span><span class="n">G</span><span class="p">,</span> <span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">stack</span><span class="p">))))</span> <span class="o">=</span> <span class="n">stack</span>
<span class="n">expression</span> <span class="o">=</span> <span class="n">concat</span><span class="p">(</span><span class="n">G</span> <span class="k">if</span> <span class="n">a</span> <span class="o">&gt;</span> <span class="n">b</span> <span class="k">else</span> <span class="n">L</span> <span class="k">if</span> <span class="n">a</span> <span class="o">&lt;</span> <span class="n">b</span> <span class="k">else</span> <span class="n">E</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span>
<span class="k">return</span> <span class="n">stack</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dictionary</span>
<span class="n">D</span><span class="p">[</span><span class="s1">'cmp'</span><span class="p">]</span> <span class="o">=</span> <span class="n">cmp_</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[31]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">joy.library</span> <span class="kn">import</span> <span class="n">FunctionWrapper</span><span class="p">,</span> <span class="n">S_ifte</span>
<span class="nd">@FunctionWrapper</span>
<span class="k">def</span> <span class="nf">cond</span><span class="p">(</span><span class="n">stack</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dictionary</span><span class="p">):</span>
<span class="sd">'''</span>
<span class="sd"> like a case statement; works by rewriting into a chain of ifte.</span>
<span class="sd"> [..[[Bi] Ti]..[D]] -&gt; ...</span>
<span class="sd"> [[[B0] T0] [[B1] T1] [D]] cond</span>
<span class="sd"> -----------------------------------------</span>
<span class="sd"> [B0] [T0] [[B1] [T1] [D] ifte] ifte</span>
<span class="sd"> '''</span>
<span class="n">conditions</span><span class="p">,</span> <span class="n">stack</span> <span class="o">=</span> <span class="n">stack</span>
<span class="k">if</span> <span class="n">conditions</span><span class="p">:</span>
<span class="n">expression</span> <span class="o">=</span> <span class="n">_cond</span><span class="p">(</span><span class="n">conditions</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="c1"># Attempt to preload the args to first ifte.</span>
<span class="p">(</span><span class="n">P</span><span class="p">,</span> <span class="p">(</span><span class="n">T</span><span class="p">,</span> <span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">expression</span><span class="p">)))</span> <span class="o">=</span> <span class="n">expression</span>
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
<span class="c1"># If, for any reason, the argument to cond should happen to contain</span>
<span class="c1"># only the default clause then this optimization will fail.</span>
<span class="k">pass</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">stack</span> <span class="o">=</span> <span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="p">(</span><span class="n">T</span><span class="p">,</span> <span class="p">(</span><span class="n">P</span><span class="p">,</span> <span class="n">stack</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">stack</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">dictionary</span>
<span class="k">def</span> <span class="nf">_cond</span><span class="p">(</span><span class="n">conditions</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
<span class="p">(</span><span class="n">clause</span><span class="p">,</span> <span class="n">rest</span><span class="p">)</span> <span class="o">=</span> <span class="n">conditions</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">rest</span><span class="p">:</span> <span class="c1"># clause is [D]</span>
<span class="k">return</span> <span class="n">clause</span>
<span class="n">P</span><span class="p">,</span> <span class="n">T</span> <span class="o">=</span> <span class="n">clause</span>
<span class="k">return</span> <span class="p">(</span><span class="n">P</span><span class="p">,</span> <span class="p">(</span><span class="n">T</span><span class="p">,</span> <span class="p">(</span><span class="n">_cond</span><span class="p">(</span><span class="n">rest</span><span class="p">,</span> <span class="p">()),</span> <span class="p">(</span><span class="n">S_ifte</span><span class="p">,</span> <span class="n">expression</span><span class="p">))))</span>
<span class="n">D</span><span class="p">[</span><span class="s1">'cond'</span><span class="p">]</span> <span class="o">=</span> <span class="n">cond</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[32]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"1 0 ['G'] ['E'] ['L'] cmp"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>&#39;G&#39;
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[33]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"1 1 ['G'] ['E'] ['L'] cmp"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>&#39;E&#39;
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[34]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"0 1 ['G'] ['E'] ['L'] cmp"</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>&#39;L&#39;
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[35]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">joy.library</span> <span class="kn">import</span> <span class="n">DefinitionWrapper</span>
<span class="n">DefinitionWrapper</span><span class="o">.</span><span class="n">add_definitions</span><span class="p">(</span><span class="s1">'''</span>
<span class="s1">P == over [popop popop first] nullary</span>
<span class="s1">T&gt; == [cons cons dipdd] cons cons cons infra</span>
<span class="s1">T&lt; == [cons cons dipd] cons cons cons infra</span>
<span class="s1">E == pop swap roll&lt; rest rest cons cons</span>
<span class="s1">BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T&gt;] [E] [T&lt;] cmp] genrec</span>
<span class="s1">'''</span><span class="p">,</span> <span class="n">D</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[36]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] 23 "b" BTree-add'</span><span class="p">)</span> <span class="c1"># Initial</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 23 [] []]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[37]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["b" 23 [] []] 88 "c" BTree-add'</span><span class="p">)</span> <span class="c1"># Less than</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 23 [] [&#39;c&#39; 88 [] []]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[38]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["b" 23 [] []] 88 "a" BTree-add'</span><span class="p">)</span> <span class="c1"># Greater than</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 23 [&#39;a&#39; 88 [] []] []]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[39]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["b" 23 [] []] 88 "b" BTree-add'</span><span class="p">)</span> <span class="c1"># Equal to</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 88 [] []]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[40]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] 23 "a" BTree-add 88 "b" BTree-add 44 "c" BTree-add'</span><span class="p">)</span> <span class="c1"># Series.</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;a&#39; 23 [] [&#39;b&#39; 88 [] [&#39;c&#39; 44 [] []]]]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="Factoring-and-naming">Factoring and naming<a class="anchor-link" href="#Factoring-and-naming">&#182;</a></h1><p>It may seem silly, but a big part of programming in Forth (and therefore in Joy) is the idea of small, highly-factored definitions. If you choose names carefully the resulting definitions can take on a semantic role.</p>
<pre><code>get-node-key == popop popop first
remove-key-and-value-from-node == rest rest
pack-key-and-value == cons cons
prep-new-key-and-value == pop swap roll&lt;
pack-and-apply == [pack-key-and-value] swoncat cons pack-key-and-value infra
BTree-new == swap [[] []] pack-key-and-value
P == over [get-node-key] nullary
T&gt; == [dipdd] pack-and-apply
T&lt; == [dipd] pack-and-apply
E == prep-new-key-and-value remove-key-and-value-from-node pack-key-and-value
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="A-Version-of-BTree-iter-that-does-In-Order-Traversal">A Version of <code>BTree-iter</code> that does In-Order Traversal<a class="anchor-link" href="#A-Version-of-BTree-iter-that-does-In-Order-Traversal">&#182;</a></h1>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>If you look back to the <a href="#Node-case-%5Bkey-value-left-right%5D">non-empty case of the <code>BTree-iter</code> function</a> we can design a varient that first processes the left child, then the current node, then the right child. This will allow us to traverse the tree in sort order.</p>
<pre><code>BTree-iter-order == [not] [pop] [R0 [BTree-iter] R1] ifte
</code></pre>
<p>To define <code>R0</code> and <code>R1</code> it helps to look at them as they will appear when they run:</p>
<pre><code>[key value left right] R0 [BTree-iter-order] R1
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Process-the-left-child.">Process the left child.<a class="anchor-link" href="#Process-the-left-child.">&#182;</a></h4><p>Staring at this for a bit suggests <code>dup third</code> to start:</p>
<pre><code>[key value left right] R0 [BTree-iter-order] R1
[key value left right] dup third [BTree-iter-order] R1
[key value left right] left [BTree-iter-order] R1
</code></pre>
<p>Now maybe:</p>
<pre><code>[key value left right] left [BTree-iter-order] [cons dip] dupdip
[key value left right] left [BTree-iter-order] cons dip [BTree-iter-order]
[key value left right] [left BTree-iter-order] dip [BTree-iter-order]
left BTree-iter-order [key value left right] [BTree-iter-order]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Process-the-current-node.">Process the current node.<a class="anchor-link" href="#Process-the-current-node.">&#182;</a></h4><p>So far, so good. Now we need to process the current node's values:</p>
<pre><code>left BTree-iter-order [key value left right] [BTree-iter-order] [[F] dupdip] dip
left BTree-iter-order [key value left right] [F] dupdip [BTree-iter-order]
left BTree-iter-order [key value left right] F [key value left right] [BTree-iter-order]
</code></pre>
<p>If <code>F</code> needs items from the stack below the left stuff it should have <code>cons</code>'d them before beginning maybe? For functions like <code>first</code> it works fine as-is.</p>
<pre><code>left BTree-iter-order [key value left right] first [key value left right] [BTree-iter-order]
left BTree-iter-order key [key value left right] [BTree-iter-order]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Process-the-right-child.">Process the right child.<a class="anchor-link" href="#Process-the-right-child.">&#182;</a></h4><p>First ditch the rest of the node and get the right child:</p>
<pre><code>left BTree-iter-order key [key value left right] [BTree-iter-order] [rest rest rest first] dip
left BTree-iter-order key right [BTree-iter-order]
</code></pre>
<p>Then, of course, we just need <code>i</code> to run <code>BTree-iter-order</code> on the right side:</p>
<pre><code>left BTree-iter-order key right [BTree-iter-order] i
left BTree-iter-order key right BTree-iter-order
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Defining-BTree-iter-order">Defining <code>BTree-iter-order</code><a class="anchor-link" href="#Defining-BTree-iter-order">&#182;</a></h4><p>The result is a little awkward:</p>
<pre><code>R1 == [cons dip] dupdip [[F] dupdip] dip [rest rest rest first] dip i
</code></pre>
<p>Let's do a little semantic factoring:</p>
<pre><code>fourth == rest rest rest first
proc_left == [cons dip] dupdip
proc_current == [[F] dupdip] dip
proc_right == [fourth] dip i
BTree-iter-order == [not] [pop] [dup third] [proc_left proc_current proc_right] genrec
</code></pre>
<p>Now we can sort sequences.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[41]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'BTree-iter-order == [not] [pop] [dup third] [[cons dip] dupdip [[first] dupdip] dip [rest rest rest first] dip i] genrec'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[42]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[3 9 5 2 8 6 7 8 4] to_set BTree-iter-order'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>2 3 4 5 6 7 8 9
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="Getting-values-by-key">Getting values by key<a class="anchor-link" href="#Getting-values-by-key">&#182;</a></h1><p>Let's derive a function that accepts a tree and a key and returns the value associated with that key.</p>
<pre><code> tree key BTree-get
------------------------
value
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="The-base-case-%5B%5D">The base case <code>[]</code><a class="anchor-link" href="#The-base-case-%5B%5D">&#182;</a></h4><p>As before, the stopping predicate just has to detect the empty list:</p>
<pre><code>BTree-get == [pop not] [E] [R0] [R1] genrec
</code></pre>
<p>But what do we do if the key isn't in the tree? In Python we might raise a <code>KeyError</code> but I'd like to avoid exceptions in Joy if possible, and here I think it's possible. (Division by zero is an example of where I think it's probably better to let Python crash Joy. Sometimes the machinery fails and you have to &quot;stop the line&quot;, methinks.)</p>
<p>Let's pass the buck to the caller by making the base case a given, you have to decide for yourself what <code>[E]</code> should be.</p>
<pre><code> tree key [E] BTree-get
---------------------------- key in tree
value
tree key [E] BTree-get
---------------------------- key not in tree
tree key E
</code></pre>
<p>Now we define:</p>
<pre><code>BTree-get == [pop not] swap [R0] [R1] genrec
</code></pre>
<p>Note that this <code>BTree-get</code> creates a slightly different function than itself and <em>that function</em> does the actual recursion. This kind of higher-level programming is unusual in most languages but natural in Joy.</p>
<pre><code>tree key [E] [pop not] swap [R0] [R1] genrec
tree key [pop not] [E] [R0] [R1] genrec
</code></pre>
<p>The anonymous specialized recursive function that will do the real work.</p>
<pre><code>[pop not] [E] [R0] [R1] genrec
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Node-case-%5Bkey-value-left-right%5D">Node case <code>[key value left right]</code><a class="anchor-link" href="#Node-case-%5Bkey-value-left-right%5D">&#182;</a></h4><p>Now we need to figure out <code>R0</code> and <code>R1</code>:</p>
<pre><code>[key value left right] key R0 [BTree-get] R1
</code></pre>
<p>We want to compare the search key with the key in the node, and if they are the same return the value and if they differ then recurse on one of the child nodes. So it's very similar to the above funtion, with <code>[R0] == []</code> and <code>R1 == P [T&gt;] [E] [T&lt;] cmp</code>:</p>
<pre><code>[key value left right] key [BTree-get] P [T&gt;] [E] [T&lt;] cmp
</code></pre>
<p>So:</p>
<pre><code>get-node-key == pop popop first
P == over [get-node-key] nullary
</code></pre>
<p>The only difference is that <code>get-node-key</code> does one less <code>pop</code> because there's no value to discard. Now we have to derive the branches:</p>
<pre><code>[key_n value_n left right] key [BTree-get] T&gt;
[key_n value_n left right] key [BTree-get] E
[key_n value_n left right] key [BTree-get] T&lt;
</code></pre>
<p>The cases of <code>T&gt;</code> and <code>T&lt;</code> are similar to above but instead of using <code>infra</code> we have to discard the rest of the structure:</p>
<pre><code>[key_n value_n left right] key [BTree-get] T&gt; == right key BTree-get
[key_n value_n left right] key [BTree-get] T&lt; == left key BTree-get
</code></pre>
<p>So:</p>
<pre><code>T&gt; == [fourth] dipd i
T&lt; == [third] dipd i
</code></pre>
<p>E.g.:</p>
<pre><code>[key_n value_n left right] key [BTree-get] [fourth] dipd i
[key_n value_n left right] fourth key [BTree-get] i
right key [BTree-get] i
right key BTree-get
</code></pre>
<p>And:</p>
<pre><code>[key_n value_n left right] key [BTree-get] E == value_n
E == popop second
</code></pre>
<p>So:</p>
<pre><code>fourth == rest rest rest first
get-node-key == pop popop first
P == over [get-node-key] nullary
T&gt; == [fourth] dipd i
T&lt; == [third] dipd i
E == popop second
BTree-get == [pop not] swap [] [P [T&gt;] [E] [T&lt;] cmp] genrec
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[43]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># I don't want to deal with name conflicts with the above so I'm inlining everything here.</span>
<span class="c1"># The original Joy system has "hide" which is a meta-command which allows you to use named</span>
<span class="c1"># definitions that are only in scope for a given definition. I don't want to implement</span>
<span class="c1"># that (yet) so...</span>
<span class="n">define</span><span class="p">(</span><span class="s1">'''</span>
<span class="s1">BTree-get == [pop not] swap [] [</span>
<span class="s1"> over [pop popop first] nullary</span>
<span class="s1"> [[rest rest rest first] dipd i]</span>
<span class="s1"> [popop second]</span>
<span class="s1"> [[third] dipd i]</span>
<span class="s1"> cmp</span>
<span class="s1"> ] genrec</span>
<span class="s1">'''</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[44]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] "gary" [popop "err"] BTree-get'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>&#39;err&#39;
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[45]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'["gary" 23 [] []] "gary" [popop "err"] BTree-get'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>23
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[46]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'''</span>
<span class="s1"> [] [[0 'a'] [1 'b'] [2 'c']] [i BTree-add] step</span>
<span class="s1"> 'c' [popop 'not found'] BTree-get</span>
<span class="s1">'''</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>2
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="BTree-delete">BTree-delete<a class="anchor-link" href="#BTree-delete">&#182;</a></h1><p>Now let's write a function that can return a tree datastructure with a key, value pair deleted:</p>
<pre><code> tree key BTree-delete
---------------------------
tree
</code></pre>
<p>If the key is not in tree it just returns the tree unchanged.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>So:</p>
<pre><code>BTree-Delete == [pop not] swap [R0] [R1] genrec
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<pre><code> [Er] BTree-delete
-------------------------------------
[pop not] [Er] [R0] [R1] genrec
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<pre><code>[n_key n_value left right] [BTree-get]
[n_key n_value left right] [BTree-get] E
[n_key n_value left right] [BTree-get] T&lt;
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Now we get to figure out the recursive case:</p>
<pre><code>w/ D == [pop not] [Er] [R0] [R1] genrec
[node_key node_value left right] key R0 [D] R1
[node_key node_value left right] key over first swap dup [D] R1
[node_key node_value left right] node_key key key [D] R1
</code></pre>
<p>And then:</p>
<pre><code>[node_key node_value left right] node_key key key [D] R1
[node_key node_value left right] node_key key key [D] cons roll&gt; [T&gt;] [E] [T&lt;] cmp
[node_key node_value left right] node_key key [key D] roll&gt; [T&gt;] [E] [T&lt;] cmp
[node_key node_value left right] [key D] node_key key [T&gt;] [E] [T&lt;] cmp
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Now this:;</p>
<pre><code>[node_key node_value left right] [key D] node_key key [T&gt;] [E] [T&lt;] cmp
</code></pre>
<p>Becomes one of these three:;</p>
<pre><code>[node_key node_value left right] [key D] T&gt;
[node_key node_value left right] [key D] E
[node_key node_value left right] [key D] T&lt;
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="Greater-than-case-and-less-than-case">Greater than case and less than case<a class="anchor-link" href="#Greater-than-case-and-less-than-case">&#182;</a></h3><pre><code> [node_key node_value left right] [key D] T&gt;
-------------------------------------------------
[node_key node_value left key D right]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>First:</p>
<pre><code>right left node_value node_key [key D] dipd
right left key D node_value node_key
right left' node_value node_key
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Ergo:</p>
<pre><code>[node_key node_value left right] [key D] [dipd] cons infra
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>So:</p>
<pre><code>T&gt; == [dipd] cons infra
T&lt; == [dipdd] cons infra
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="The-else-case">The else case<a class="anchor-link" href="#The-else-case">&#182;</a></h3><pre><code>[node_key node_value left right] [key D] E
</code></pre>
<p>We have to handle three cases, so let's use <code>cond</code>.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>The first two cases are symmetrical, if we only have one non-empty child node return it.</p>
<pre><code>E == [
[[pop third not] pop fourth]
[[pop fourth not] pop third]
[default]
] cond
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>(If both child nodes are empty return an empty node.)</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>The initial structure of the default function:</p>
<pre><code>default == [E'] cons infra
[node_key node_value left right] [key D] default
[node_key node_value left right] [key D] [E'] cons infra
[node_key node_value left right] [[key D] E'] infra
right left node_value node_key [key D] E'
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>If both child nodes are non-empty, we find the highest node in our lower sub-tree, take its key and value to replace (delete) our own, then get rid of it by recursively calling delete() on our lower sub-node with our new key.</p>
<p>(We could also find the lowest node in our higher sub-tree and take its key and value and delete it. I only implemented one of these two symmetrical options. Over a lot of deletions this might make the tree more unbalanced. Oh well.)</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>First things first, we no longer need this node's key and value:</p>
<pre><code>right left node_value node_key [key D] roll&gt; popop E''
right left [key D] node_value node_key popop E''
right left [key D] E''
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Then we have to we find the highest (right-most) node in our lower (left) sub-tree:</p>
<pre><code>right left [key D] E''
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Ditch the key:</p>
<pre><code>right left [key D] rest E'''
right left [D] E'''
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Find the right-most node:</p>
<pre><code>right left [D] [dup W] dip E''''
right left dup W [D] E''''
right left left W [D] E''''
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Consider:</p>
<pre><code>left W
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>We know left is not empty:</p>
<pre><code>[L_key L_value L_left L_right] W
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>We want to keep extracting the right node as long as it is not empty:</p>
<pre><code>left [P] [B] while W'
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>The predicate:</p>
<pre><code>[L_key L_value L_left L_right] P
[L_key L_value L_left L_right] fourth
L_right
</code></pre>
<p>(This has a bug, can run on <code>[]</code> so must be guarded:</p>
<pre><code>if_not_empty == [] swap [] ifte
?fourth == [fourth] if_not_empty
W.rightmost == [?fourth] [fourth] while
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>The body is also <code>fourth</code>:</p>
<pre><code>left [fourth] [fourth] while W'
rightest W'
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>We know rightest is not empty:</p>
<pre><code>[R_key R_value R_left R_right] W'
[R_key R_value R_left R_right] uncons uncons pop
R_key [R_value R_left R_right] uncons pop
R_key R_value [R_left R_right] pop
R_key R_value
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>So:</p>
<pre><code>W == [fourth] [fourth] while uncons uncons pop
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>And:</p>
<pre><code>right left left W [D] E''''
right left R_key R_value [D] E''''
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Final stretch. We want to end up with something like:</p>
<pre><code>right left [R_key D] i R_value R_key
right left R_key D R_value R_key
right left' R_value R_key
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>If we adjust our definition of <code>W</code> to include <code>over</code> at the end:</p>
<pre><code>W == [fourth] [fourth] while uncons uncons pop over
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>That will give us:</p>
<pre><code>right left R_key R_value R_key [D] E''''
right left R_key R_value R_key [D] cons dipdd E'''''
right left R_key R_value [R_key D] dipdd E'''''
right left R_key D R_key R_value E'''''
right left' R_key R_value E'''''
right left' R_key R_value swap
right left' R_value R_key
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>So:</p>
<pre><code>E' == roll&gt; popop E''
E'' == rest E'''
E''' == [dup W] dip E''''
E'''' == cons dipdd swap
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Substituting:</p>
<pre><code>W == [fourth] [fourth] while uncons uncons pop over
E' == roll&gt; popop rest [dup W] dip cons dipdd swap
E == [
[[pop third not] pop fourth]
[[pop fourth not] pop third]
[[E'] cons infra]
] cond
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Minor rearrangement:</p>
<pre><code>W == dup [fourth] [fourth] while uncons uncons pop over
E' == roll&gt; popop rest [W] dip cons dipdd swap
E == [
[[pop third not] pop fourth]
[[pop fourth not] pop third]
[[E'] cons infra]
] cond
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="Refactoring">Refactoring<a class="anchor-link" href="#Refactoring">&#182;</a></h3><pre><code>W.rightmost == [fourth] [fourth] while
W.unpack == uncons uncons pop
E.clear_stuff == roll&gt; popop rest
E.delete == cons dipdd
W == dup W.rightmost W.unpack over
E.0 == E.clear_stuff [W] dip E.delete swap
E == [
[[pop third not] pop fourth]
[[pop fourth not] pop third]
[[E.0] cons infra]
] cond
T&gt; == [dipd] cons infra
T&lt; == [dipdd] cons infra
R0 == over first swap dup
R1 == cons roll&gt; [T&gt;] [E] [T&lt;] cmp
BTree-Delete == [pop not] swap [R0] [R1] genrec
</code></pre>
<p>By the standards of the code I've written so far, this is a <em>huge</em> Joy program.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[47]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">DefinitionWrapper</span><span class="o">.</span><span class="n">add_definitions</span><span class="p">(</span><span class="s1">'''</span>
<span class="s1">first_two == uncons uncons pop</span>
<span class="s1">fourth == rest rest rest first</span>
<span class="s1">?fourth == [] [fourth] [] ifte</span>
<span class="s1">W.rightmost == [?fourth] [fourth] while</span>
<span class="s1">E.clear_stuff == roll&gt; popop rest</span>
<span class="s1">E.delete == cons dipdd</span>
<span class="s1">W == dup W.rightmost first_two over</span>
<span class="s1">E.0 == E.clear_stuff [W] dip E.delete swap</span>
<span class="s1">E == [[[pop third not] pop fourth] [[pop fourth not] pop third] [[E.0] cons infra]] cond</span>
<span class="s1">T&gt; == [dipd] cons infra</span>
<span class="s1">T&lt; == [dipdd] cons infra</span>
<span class="s1">R0 == over first swap dup</span>
<span class="s1">R1 == cons roll&gt; [T&gt;] [E] [T&lt;] cmp</span>
<span class="s1">BTree-Delete == [pop not] swap [R0] [R1] genrec'''</span><span class="p">,</span> <span class="n">D</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[48]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] 'c' ['Er'] BTree-Delete "</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;a&#39; 23 [] [&#39;b&#39; 88 [] []]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[49]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] 'b' ['Er'] BTree-Delete "</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;a&#39; 23 [] [&#39;c&#39; 44 [] []]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[50]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] 'a' ['Er'] BTree-Delete "</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;b&#39; 88 [] [&#39;c&#39; 44 [] []]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[51]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] 'der' ['Er'] BTree-Delete "</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;a&#39; 23 [] [&#39;b&#39; 88 [] [&#39;c&#39; 44 [] &#39;Er&#39; &#39;der&#39; []]]]
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[52]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s2">"['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] 'der' [pop] BTree-Delete "</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[&#39;a&#39; 23 [] [&#39;b&#39; 88 [] [&#39;c&#39; 44 [] []]]]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>One bug, I forgot to put <code>not</code> in the first two clauses of the <code>cond</code>.</p>
<p>The behavior of the <code>[Er]</code> function should maybe be different: either just silently fail, or maybe implement some sort of function that can grab the pending expression up to a sentinel value or something, allowing for a kind of &quot;except&quot;-ish control-flow?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Then, once we have add, get, and delete we can see about abstracting them.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h1 id="Tree-with-node-and-list-of-trees.">Tree with node and list of trees.<a class="anchor-link" href="#Tree-with-node-and-list-of-trees.">&#182;</a></h1><p>Let's consider a tree structure, similar to one described <a href="https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf">&quot;Why functional programming matters&quot; by John Hughes</a>, that consists of a node value and a sequence of zero or more child trees. (The asterisk is meant to indicate the <a href="https://en.wikipedia.org/wiki/Kleene_star">Kleene star</a>.)</p>
<pre><code>tree = [] | [node [tree*]]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="treestep"><code>treestep</code><a class="anchor-link" href="#treestep">&#182;</a></h3><p>In the spirit of <code>step</code> we are going to define a combinator <code>treestep</code> which expects a tree and three additional items: a base-case value <code>z</code>, and two quoted programs <code>[C]</code> and <code>[N]</code>.</p>
<pre><code>tree z [C] [N] treestep
</code></pre>
<p>If the current tree node is empty then just leave <code>z</code> on the stack in lieu:</p>
<pre><code> [] z [C] [N] treestep
---------------------------
z
</code></pre>
<p>Otherwise, evaluate <code>N</code> on the node value, <code>map</code> the whole function (abbreviated here as <code>k</code>) over the child trees recursively, and then combine the result with <code>C</code>.</p>
<pre><code> [node [tree*]] z [C] [N] treestep
--------------------------------------- w/ K == z [C] [N] treestep
node N [tree*] [K] map C
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="Derive-the-recursive-form.">Derive the recursive form.<a class="anchor-link" href="#Derive-the-recursive-form.">&#182;</a></h3><p>Since this is a recursive function, we can begin to derive it by finding the <code>ifte</code> stage that <code>genrec</code> will produce. The predicate and base-case functions are trivial, so we just have to derive <code>J</code>.</p>
<pre><code>K == [not] [pop z] [J] ifte
</code></pre>
<p>The behavior of <code>J</code> is to accept a (non-empty) tree node and arrive at the desired outcome.</p>
<pre><code> [node [tree*]] J
------------------------------
node N [tree*] [K] map C
</code></pre>
<p>So <code>J</code> will have some form like:</p>
<pre><code>J == .. [N] .. [K] .. [C] ..
</code></pre>
<p>Let's dive in. First, unquote the node and <code>dip</code> <code>N</code>.</p>
<pre><code>[node [tree*]] i [N] dip
node [tree*] [N] dip
node N [tree*]
</code></pre>
<p>Next, <code>map</code> <code>K</code> over teh child trees and combine with <code>C</code>.</p>
<pre><code>node N [tree*] [K] map C
node N [tree*] [K] map C
node N [K.tree*] C
</code></pre>
<p>So:</p>
<pre><code>J == i [N] dip [K] map C
</code></pre>
<p>Plug it in and convert to <code>genrec</code>:</p>
<pre><code>K == [not] [pop z] [i [N] dip [K] map C] ifte
K == [not] [pop z] [i [N] dip] [map C] genrec
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="Extract-the-givens-to-parameterize-the-program.">Extract the givens to parameterize the program.<a class="anchor-link" href="#Extract-the-givens-to-parameterize-the-program.">&#182;</a></h3><pre><code>[not] [pop z] [i [N] dip] [map C] genrec
[not] [pop z] [i [N] dip] [map C] genrec
[not] [z] [pop] swoncat [i [N] dip] [map C] genrec
[not] z unit [pop] swoncat [i [N] dip] [map C] genrec
z [not] swap unit [pop] swoncat [i [N] dip] [map C] genrec
\ .........TS0............./
\/
z TS0 [i [N] dip] [map C] genrec
z [i [N] dip] [TS0] dip [map C] genrec
z [[N] dip] [i] swoncat [TS0] dip [map C] genrec
z [N] [dip] cons [i] swoncat [TS0] dip [map C] genrec
\ ......TS1........./
\/
z [N] TS1 [TS0] dip [map C] genrec
z [N] [map C] [TS1 [TS0] dip] dip genrec
z [N] [C] [map] swoncat [TS1 [TS0] dip] dip genrec
z [C] [N] swap [map] swoncat [TS1 [TS0] dip] dip genrec
</code></pre>
<p>The givens are all to the left so we have our definition.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="Define-treestep">Define <code>treestep</code><a class="anchor-link" href="#Define-treestep">&#182;</a></h3><pre><code> TS0 == [not] swap unit [pop] swoncat
TS1 == [dip] cons [i] swoncat
treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[53]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">DefinitionWrapper</span><span class="o">.</span><span class="n">add_definitions</span><span class="p">(</span><span class="s1">'''</span>
<span class="s1"> TS0 == [not] swap unit [pop] swoncat</span>
<span class="s1"> TS1 == [dip] cons [i] swoncat</span>
<span class="s1">treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec</span>
<span class="s1">'''</span><span class="p">,</span> <span class="n">D</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<pre><code> [] 0 [C] [N] treestep
---------------------------
0
[n [tree*]] 0 [sum +] [] treestep
--------------------------------------------------
n [tree*] [0 [sum +] [] treestep] map sum +
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[54]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[] 0 [sum +] [] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>0
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[55]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[23 []] 0 [sum +] [] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>23
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[56]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[23 [[2 []] [3 []]]] 0 [sum +] [] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>28
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="A-slight-modification.">A slight modification.<a class="anchor-link" href="#A-slight-modification.">&#182;</a></h2><p>Let's simplify the tree datastructure definition slightly by just letting the children be the <code>rest</code> of the tree:</p>
<pre><code>tree = [] | [node tree*]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>The <code>J</code> function changes slightly.</p>
<pre><code> [node tree*] J
------------------------------
node N [tree*] [K] map C
[node tree*] uncons [N] dip [K] map C
node [tree*] [N] dip [K] map C
node N [tree*] [K] map C
node N [tree*] [K] map C
node N [K.tree*] C
J == uncons [N] dip [K] map C
K == [not] [pop z] [uncons [N] dip] [map C] genrec
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[57]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">'TS1 == [dip] cons [uncons] swoncat'</span><span class="p">)</span> <span class="c1"># We only need to redefine one word.</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[58]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[23 [2] [3]] 0 [sum +] [] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>28
</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[59]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[23 [2 [8] [9]] [3] [4 []]] 0 [sum +] [] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>49
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>I think these trees seem a little easier to read.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="Redefining-our-BTree-in-terms-of-this-form.">Redefining our BTree in terms of this form.<a class="anchor-link" href="#Redefining-our-BTree-in-terms-of-this-form.">&#182;</a></h2><pre><code>BTree = [] | [[key value] left right]
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>What kind of functions can we write for this with our <code>treestep</code>? The pattern for processing a non-empty node is:</p>
<pre><code>node N [tree*] [K] map C
</code></pre>
<p>Plugging in our BTree structure:</p>
<pre><code>[key value] N [left right] [K] map C
[key value] uncons pop [left right] [K] map i
key [value] pop [left right] [K] map i
key [left right] [K] map i
key [lkey rkey ] i
key lkey rkey
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[60]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] 23 [i] [uncons pop] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>3 23 23
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>Doesn't work because <code>map</code> extracts the <code>first</code> item of whatever its mapped function produces. We have to return a list, rather than depositing our results directly on the stack.</p>
<pre><code>[key value] N [left right] [K] map C
[key value] first [left right] [K] map flatten cons
key [left right] [K] map flatten cons
key [[lk] [rk] ] flatten cons
key [ lk rk ] cons
[key lk rk ]
</code></pre>
<p>So:</p>
<pre><code>[] [flatten cons] [first] treestep
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[61]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] [] [flatten cons] [first] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[3 2 9 5 4 8 6 7]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>There we go.</p>
<h4 id="In-order-traversal-with-treestep.">In-order traversal with <code>treestep</code>.<a class="anchor-link" href="#In-order-traversal-with-treestep.">&#182;</a></h4><p>From here:</p>
<pre><code>key [[lk] [rk]] C
key [[lk] [rk]] i
key [lk] [rk] roll&lt;
[lk] [rk] key swons concat
[lk] [key rk] concat
[lk key rk]
</code></pre>
<p>So:</p>
<pre><code>[] [i roll&lt; swons concat] [first] treestep
</code></pre>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[62]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">'[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] [] [i roll&lt; swons concat] [uncons pop] treestep'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>[2 3 4 5 6 7 8 9]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="Miscellaneous-Crap">Miscellaneous Crap<a class="anchor-link" href="#Miscellaneous-Crap">&#182;</a></h2>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="Toy-with-it.">Toy with it.<a class="anchor-link" href="#Toy-with-it.">&#182;</a></h3><p>Let's reexamine:</p>
<pre><code>[key value left right] R0 [BTree-iter-order] R1
...
left BTree-iter-order key value F right BTree-iter-order
[key value left right] unstack swap
key value left right swap
key value right left
key value right left [BTree-iter-order] [cons dipdd] dupdip
key value right left [BTree-iter-order] cons dipdd [BTree-iter-order]
key value right [left BTree-iter-order] dipdd [BTree-iter-order]
left BTree-iter-order key value right [BTree-iter-order]
left BTree-iter-order key value right [F] dip [BTree-iter-order]
left BTree-iter-order key value F right [BTree-iter-order] i
left BTree-iter-order key value F right BTree-iter-order
</code></pre>
<p>So:</p>
<pre><code>R0 == unstack swap
R1 == [cons dipdd [F] dip] dupdip i
[key value left right] R0 [BTree-iter-order] R1
[key value left right] unstack swap [BTree-iter-order] [cons dipdd [F] dip] dupdip i
key value right left [BTree-iter-order] [cons dipdd [F] dip] dupdip i
key value right left [BTree-iter-order] cons dipdd [F] dip [BTree-iter-order] i
key value right [left BTree-iter-order] dipdd [F] dip [BTree-iter-order] i
left BTree-iter-order key value right [F] dip [BTree-iter-order] i
left BTree-iter-order key value F right [BTree-iter-order] i
left BTree-iter-order key value F right BTree-iter-order
BTree-iter-order == [not] [pop] [unstack swap] [[cons dipdd [F] dip] dupdip i] genrec
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Refactor-cons-cons">Refactor <code>cons cons</code><a class="anchor-link" href="#Refactor-cons-cons">&#182;</a></h4><pre><code>cons2 == cons cons
</code></pre>
<p>Refactoring:</p>
<pre><code>BTree-new == swap [[] []] cons2
T == [cons2 dipdd] cons2 cons infra
Te == [cons2 dipd] cons2 cons infra
Ee == pop swap roll&lt; rest rest cons2
</code></pre>
<p>It's used a lot because it's tied to the fact that there are two &quot;data items&quot; in each node. This point to a more general factorization that would render a combinator that could work for other geometries of trees.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="A-General-Form-for-Trees">A General Form for Trees<a class="anchor-link" href="#A-General-Form-for-Trees">&#182;</a></h2><p>A general form for tree data with N children per node:</p>
<pre><code>[[data] [child0] ... [childN-1]]
</code></pre>
<p>Suggests a general form of recursive iterator, but I have to go walk the dogs at the mo'.</p>
<p>For a given structure, you would have a structure of operator functions and sort of merge them and run them, possibly in a different order (pre- post- in- y'know). The <code>Cn</code> functions could all be the same and use the <code>step</code> trick if the children nodes are all of the right kind. If they are heterogeneous then we need a way to get the different <code>Cn</code> into the structure in the right order. If I understand correctly, the &quot;Bananas...&quot; paper shows how to do this automatically from a type description. They present, if I have it right, a tiny machine that accepts <a href="https://en.wikipedia.org/wiki/Catamorphism#General_case">some sort of algebraic data type description and returns a function that can recusre over it</a>, I think.</p>
<pre><code> [data.. [c0] [c1] ... [cN]] [F C0 C1 ... CN] infil
--------------------------------------------------------
data F [c0] C0 [c1] C1 ... [cN] CN
</code></pre>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="Just-make-%5BF%5D-a-parameter.">Just make <code>[F]</code> a parameter.<a class="anchor-link" href="#Just-make-%5BF%5D-a-parameter.">&#182;</a></h4><p>We can generalize to a sort of pure form:</p>
<pre><code>BTree-iter == [not] [pop] [[F]] [R1] genrec
== [not] [pop] [[F] [BTree-iter] R1] ifte
</code></pre>
<p>Putting <code>[F]</code> to the left as a given:</p>
<pre><code> [F] unit [not] [pop] roll&lt; [R1] genrec
[[F]] [not] [pop] roll&lt; [R1] genrec
[not] [pop] [[F]] [R1] genrec
</code></pre>
<p>Let's us define a parameterized form:</p>
<pre><code>BTree-iter == unit [not] [pop] roll&lt; [R1] genrec
</code></pre>
<p>So in the general case of non-empty nodes:</p>
<pre><code>[key value left right] [F] [BTree-iter] R1
</code></pre>
<p>We just define <code>R1</code> to do whatever it has to to process the node. For example:</p>
<pre><code>[key value left right] [F] [BTree-iter] R1
...
key value F left BTree-iter right BTree-iter
left BTree-iter key value F right BTree-iter
left BTree-iter right BTree-iter key value F
</code></pre>
<p>Pre-, ??-, post-order traversals.</p>
<pre><code>[key value left right] uncons uncons
key value [left right]
</code></pre>
<p>For pre- and post-order we can use the <code>step</code> trick:</p>
<pre><code>[left right] [BTree-iter] step
...
left BTree-iter right BTree-iter
</code></pre>
<p>We worked out one scheme for ?in-order? traversal above, but maybe we can do better?</p>
<pre><code>[key value left right] [F] [BTree-iter] [unstack] dipd
[key value left right] unstack [F] [BTree-iter]
key value left right [F] [BTree-iter]
key value left right [F] [BTree-iter] R1.1
</code></pre>
<p>Hmm...</p>
<pre><code>key value left right [F] [BTree-iter] tuck
key value left right [BTree-iter] [F] [BTree-iter]
[key value left right] [F] [BTree-iter] [unstack [roll&gt;] dip] dipd
[key value left right] unstack [roll&gt;] dip [F] [BTree-iter]
key value left right [roll&gt;] dip [F] [BTree-iter]
key value left roll&gt; right [F] [BTree-iter]
left key value right [F] [BTree-iter]
left key value right [F] [BTree-iter] tuck foo
left key value right [BTree-iter] [F] [BTree-iter] foo
...
left BTree-iter key value F right BTree-iter
</code></pre>
<p>We could just let <code>[R1]</code> be a parameter too, for maximum flexibility.</p>
<h4 id="Automatically-deriving-the-recursion-combinator-for-a-data-type?">Automatically deriving the recursion combinator for a data type?<a class="anchor-link" href="#Automatically-deriving-the-recursion-combinator-for-a-data-type?">&#182;</a></h4><p>If I understand it correctly, the &quot;Bananas...&quot; paper talks about a way to build the processor function automatically from the description of the type. I think if we came up with an elegant way for the Joy code to express that, it would be cool. In Joypy the definitions can be circular because lookup happens at evaluation, not parsing. E.g.:</p>
<pre><code>A == ... B ...
B == ... A ...
</code></pre>
<p>That's fine. Circular datastructures can't be made though.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>