that is identified by id #documenter.
+ */
+ /*!
+ Theme: a11y-dark
+ Author: @ericwbailey
+ Maintainer: @ericwbailey
+
+ Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
+*/
+ /* Comment */
+ /* Red */
+ /* Orange */
+ /* Yellow */
+ /* Green */
+ /* Blue */
+ /* Purple */ }
+ html.theme--documenter-dark html {
+ background-color: #1f2424;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark article,
+ html.theme--documenter-dark aside,
+ html.theme--documenter-dark figure,
+ html.theme--documenter-dark footer,
+ html.theme--documenter-dark header,
+ html.theme--documenter-dark hgroup,
+ html.theme--documenter-dark section {
+ display: block; }
+ html.theme--documenter-dark body,
+ html.theme--documenter-dark button,
+ html.theme--documenter-dark input,
+ html.theme--documenter-dark select,
+ html.theme--documenter-dark textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+ html.theme--documenter-dark code,
+ html.theme--documenter-dark pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+ html.theme--documenter-dark body {
+ color: #fff;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+ html.theme--documenter-dark a {
+ color: #1abc9c;
+ cursor: pointer;
+ text-decoration: none; }
+ html.theme--documenter-dark a strong {
+ color: currentColor; }
+ html.theme--documenter-dark a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark code {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: #ececec;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+ html.theme--documenter-dark hr {
+ background-color: #282f2f;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+ html.theme--documenter-dark img {
+ height: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark input[type="checkbox"],
+ html.theme--documenter-dark input[type="radio"] {
+ vertical-align: baseline; }
+ html.theme--documenter-dark small {
+ font-size: 0.875em; }
+ html.theme--documenter-dark span {
+ font-style: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark strong {
+ color: #f2f2f2;
+ font-weight: 700; }
+ html.theme--documenter-dark fieldset {
+ border: none; }
+ html.theme--documenter-dark pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: #282f2f;
+ color: #fff;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+ html.theme--documenter-dark table td,
+ html.theme--documenter-dark table th {
+ vertical-align: top; }
+ html.theme--documenter-dark table td:not([align]),
+ html.theme--documenter-dark table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .box {
+ background-color: #343c3d;
+ border-radius: 8px;
+ box-shadow: none;
+ color: #fff;
+ display: block;
+ padding: 1.25rem; }
+ html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark .button {
+ background-color: #282f2f;
+ border-color: #4c5759;
+ border-width: 1px;
+ color: #375a7f;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ html.theme--documenter-dark .button strong {
+ color: inherit; }
+ html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered {
+ border-color: #8c9b9d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused {
+ border-color: #8c9b9d;
+ color: #17a689; }
+ html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active {
+ border-color: #343c3d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active {
+ background-color: #1d2122;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused {
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused {
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered {
+ background-color: #dde4e6; }
+ html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .button.is-normal {
+ font-size: 15px; }
+ html.theme--documenter-dark .button.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .button.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button {
+ background-color: #8c9b9d;
+ border-color: #dbdee0;
+ box-shadow: none;
+ opacity: 0.5; }
+ html.theme--documenter-dark .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ html.theme--documenter-dark .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ html.theme--documenter-dark .button.is-static {
+ background-color: #282f2f;
+ border-color: #5e6d6f;
+ color: #dbdee0;
+ box-shadow: none;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .buttons .button {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ html.theme--documenter-dark .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ html.theme--documenter-dark .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .buttons.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .buttons.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .container {
+ max-width: 992px; }
+ html.theme--documenter-dark .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ html.theme--documenter-dark .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ html.theme--documenter-dark .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .container {
+ max-width: 1344px; } }
+ html.theme--documenter-dark .content li + li {
+ margin-top: 0.25em; }
+ html.theme--documenter-dark .content p:not(:last-child),
+ html.theme--documenter-dark .content dl:not(:last-child),
+ html.theme--documenter-dark .content ol:not(:last-child),
+ html.theme--documenter-dark .content ul:not(:last-child),
+ html.theme--documenter-dark .content blockquote:not(:last-child),
+ html.theme--documenter-dark .content pre:not(:last-child),
+ html.theme--documenter-dark .content table:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content h1,
+ html.theme--documenter-dark .content h2,
+ html.theme--documenter-dark .content h3,
+ html.theme--documenter-dark .content h4,
+ html.theme--documenter-dark .content h5,
+ html.theme--documenter-dark .content h6 {
+ color: #f2f2f2;
+ font-weight: 600;
+ line-height: 1.125; }
+ html.theme--documenter-dark .content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .content h1:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ html.theme--documenter-dark .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+ html.theme--documenter-dark .content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ html.theme--documenter-dark .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+ html.theme--documenter-dark .content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+ html.theme--documenter-dark .content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+ html.theme--documenter-dark .content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content blockquote {
+ background-color: #282f2f;
+ border-left: 5px solid #5e6d6f;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ol:not([type]) {
+ list-style-type: decimal; }
+ html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ html.theme--documenter-dark .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ html.theme--documenter-dark .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+ html.theme--documenter-dark .content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ html.theme--documenter-dark .content ul ul ul {
+ list-style-type: square; }
+ html.theme--documenter-dark .content dd {
+ margin-left: 2em; }
+ html.theme--documenter-dark .content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ html.theme--documenter-dark .content figure:not(:first-child) {
+ margin-top: 2em; }
+ html.theme--documenter-dark .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ html.theme--documenter-dark .content figure img {
+ display: inline-block; }
+ html.theme--documenter-dark .content figure figcaption {
+ font-style: italic; }
+ html.theme--documenter-dark .content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark .content sup,
+ html.theme--documenter-dark .content sub {
+ font-size: 75%; }
+ html.theme--documenter-dark .content table {
+ width: 100%; }
+ html.theme--documenter-dark .content table td,
+ html.theme--documenter-dark .content table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .content table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .content table thead td,
+ html.theme--documenter-dark .content table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tfoot td,
+ html.theme--documenter-dark .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tbody tr:last-child td,
+ html.theme--documenter-dark .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .content .tabs li + li {
+ margin-top: 0; }
+ html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .content.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .content.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ html.theme--documenter-dark .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ html.theme--documenter-dark .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+ html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+ html.theme--documenter-dark .image.is-square .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ html.theme--documenter-dark .image.is-1by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ html.theme--documenter-dark .image.is-5by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ html.theme--documenter-dark .image.is-4by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ html.theme--documenter-dark .image.is-3by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ html.theme--documenter-dark .image.is-5by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ html.theme--documenter-dark .image.is-16by9 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ html.theme--documenter-dark .image.is-2by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ html.theme--documenter-dark .image.is-3by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ html.theme--documenter-dark .image.is-4by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ html.theme--documenter-dark .image.is-3by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ html.theme--documenter-dark .image.is-2by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ html.theme--documenter-dark .image.is-3by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ html.theme--documenter-dark .image.is-9by16 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ html.theme--documenter-dark .image.is-1by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ html.theme--documenter-dark .image.is-1by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+ html.theme--documenter-dark .notification {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification strong {
+ color: currentColor; }
+ html.theme--documenter-dark .notification code,
+ html.theme--documenter-dark .notification pre {
+ background: white; }
+ html.theme--documenter-dark .notification pre code {
+ background: transparent; }
+ html.theme--documenter-dark .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ html.theme--documenter-dark .notification .title,
+ html.theme--documenter-dark .notification .subtitle,
+ html.theme--documenter-dark .notification .content {
+ color: currentColor; }
+ html.theme--documenter-dark .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .notification.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 15px;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ html.theme--documenter-dark .progress::-webkit-progress-bar {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .progress::-webkit-progress-value {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-moz-progress-bar {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-ms-fill {
+ background-color: #dbdee0;
+ border: none; }
+ html.theme--documenter-dark .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-ms-fill {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-light::-webkit-progress-value {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-moz-progress-bar {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-ms-fill {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-link::-webkit-progress-value {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-moz-progress-bar {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-ms-fill {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-info::-webkit-progress-value {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-moz-progress-bar {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-ms-fill {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-success::-webkit-progress-value {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-moz-progress-bar {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-ms-fill {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-warning::-webkit-progress-value {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-moz-progress-bar {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-ms-fill {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-danger::-webkit-progress-value {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-moz-progress-bar {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-ms-fill {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #5e6d6f;
+ background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.85em; }
+ html.theme--documenter-dark .progress.is-medium {
+ height: 1.25rem; }
+ html.theme--documenter-dark .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+ html.theme--documenter-dark .table {
+ background-color: #343c3d;
+ color: #fff; }
+ html.theme--documenter-dark .table td,
+ html.theme--documenter-dark .table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .table td.is-white,
+ html.theme--documenter-dark .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .table td.is-black,
+ html.theme--documenter-dark .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .table td.is-light,
+ html.theme--documenter-dark .table th.is-light {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .table td.is-dark,
+ html.theme--documenter-dark .table th.is-dark {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .table td.is-primary,
+ html.theme--documenter-dark .table th.is-primary {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-link,
+ html.theme--documenter-dark .table th.is-link {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-info,
+ html.theme--documenter-dark .table th.is-info {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-success,
+ html.theme--documenter-dark .table th.is-success {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-warning,
+ html.theme--documenter-dark .table th.is-warning {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-danger,
+ html.theme--documenter-dark .table th.is-danger {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-narrow,
+ html.theme--documenter-dark .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ html.theme--documenter-dark .table td.is-selected,
+ html.theme--documenter-dark .table th.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-selected a,
+ html.theme--documenter-dark .table td.is-selected strong,
+ html.theme--documenter-dark .table th.is-selected a,
+ html.theme--documenter-dark .table th.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .table tr.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table tr.is-selected a,
+ html.theme--documenter-dark .table tr.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table tr.is-selected td,
+ html.theme--documenter-dark .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ html.theme--documenter-dark .table thead {
+ background-color: transparent; }
+ html.theme--documenter-dark .table thead td,
+ html.theme--documenter-dark .table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tfoot {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tfoot td,
+ html.theme--documenter-dark .table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tbody {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tbody tr:last-child td,
+ html.theme--documenter-dark .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .table.is-bordered td,
+ html.theme--documenter-dark .table.is-bordered th {
+ border-width: 1px; }
+ html.theme--documenter-dark .table.is-bordered tr:last-child td,
+ html.theme--documenter-dark .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .table.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: #2d3435; }
+ html.theme--documenter-dark .table.is-narrow td,
+ html.theme--documenter-dark .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+ html.theme--documenter-dark .tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .tags:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tags.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ html.theme--documenter-dark .tags.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ color: #fff;
+ display: inline-flex;
+ font-size: 0.85em;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #111414; }
+ html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+ html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+ html.theme--documenter-dark .title,
+ html.theme--documenter-dark .subtitle {
+ word-break: break-word; }
+ html.theme--documenter-dark .title em,
+ html.theme--documenter-dark .title span,
+ html.theme--documenter-dark .subtitle em,
+ html.theme--documenter-dark .subtitle span {
+ font-weight: inherit; }
+ html.theme--documenter-dark .title sub,
+ html.theme--documenter-dark .subtitle sub {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title sup,
+ html.theme--documenter-dark .subtitle sup {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink,
+ html.theme--documenter-dark .subtitle .tag,
+ html.theme--documenter-dark .subtitle .content kbd,
+ html.theme--documenter-dark .content .subtitle kbd,
+ html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+ html.theme--documenter-dark .title {
+ color: #fff;
+ font-size: 2rem;
+ font-weight: 500;
+ line-height: 1.125; }
+ html.theme--documenter-dark .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark .title + .highlight {
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .title.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .title.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .title.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .title.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .title.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .title.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .title.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .subtitle {
+ color: #8c9b9d;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ html.theme--documenter-dark .subtitle strong {
+ color: #8c9b9d;
+ font-weight: 600; }
+ html.theme--documenter-dark .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .subtitle.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .subtitle.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .subtitle.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .subtitle.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .subtitle.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .subtitle.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .subtitle.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ html.theme--documenter-dark .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark .number {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+ html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #1f2424;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ color: #dbdee0; }
+ html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #8c9b9d;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #008438; }
+ html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+ html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+ html.theme--documenter-dark .textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ html.theme--documenter-dark .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ html.theme--documenter-dark .textarea[rows] {
+ height: initial; }
+ html.theme--documenter-dark .textarea.has-fixed-size {
+ resize: none; }
+ html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input {
+ cursor: pointer; }
+ html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover {
+ color: #8c9b9d; }
+ html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox {
+ color: white;
+ cursor: not-allowed; }
+ html.theme--documenter-dark .radio + .radio {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .select:not(.is-multiple) {
+ height: 2.25em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #1abc9c;
+ right: 1.125em;
+ z-index: 4; }
+ html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ html.theme--documenter-dark .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ html.theme--documenter-dark .select select::-ms-expand {
+ display: none; }
+ html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ html.theme--documenter-dark .select select[multiple] option {
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select.is-white:not(:hover)::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered {
+ border-color: black; }
+ html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .select.is-light:not(:hover)::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered {
+ border-color: #dde4e6; }
+ html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered {
+ border-color: #1d2122; }
+ html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #2f4d6d; }
+ html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .select.is-link:not(:hover)::after {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered {
+ border-color: #17a689; }
+ html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select.is-info:not(:hover)::after {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered {
+ border-color: #023d64; }
+ html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .select.is-success:not(:hover)::after {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered {
+ border-color: #006b2d; }
+ html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .select.is-warning:not(:hover)::after {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered {
+ border-color: #946e00; }
+ html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .select.is-danger:not(:hover)::after {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered {
+ border-color: #86170b; }
+ html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .select.is-disabled::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-fullwidth select {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ html.theme--documenter-dark .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-light .file-cta {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25);
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25);
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link .file-cta {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info .file-cta {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success .file-cta {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning .file-cta {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger .file-cta {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .file.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-cta {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-name {
+ display: none; }
+ html.theme--documenter-dark .file.is-boxed .file-label {
+ flex-direction: column; }
+ html.theme--documenter-dark .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ html.theme--documenter-dark .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-cta {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 0.4em 0.4em;
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .file.is-fullwidth .file-label {
+ width: 100%; }
+ html.theme--documenter-dark .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ html.theme--documenter-dark .file.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .file.is-right .file-cta {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .file.is-right .file-name {
+ border-radius: 0.4em 0 0 0.4em;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+ html.theme--documenter-dark .file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ html.theme--documenter-dark .file-label:hover .file-cta {
+ background-color: #e5eaec;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:hover .file-name {
+ border-color: #596668; }
+ html.theme--documenter-dark .file-label:active .file-cta {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:active .file-name {
+ border-color: #535f61; }
+ html.theme--documenter-dark .file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ html.theme--documenter-dark .file-cta,
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .file-cta {
+ background-color: #ecf0f1;
+ color: #343c3d; }
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+ html.theme--documenter-dark .file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ html.theme--documenter-dark .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .label {
+ color: #282f2f;
+ display: block;
+ font-size: 15px;
+ font-weight: 700; }
+ html.theme--documenter-dark .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .label.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .label.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .help {
+ display: block;
+ font-size: 0.85em;
+ margin-top: 0.25rem; }
+ html.theme--documenter-dark .help.is-white {
+ color: white; }
+ html.theme--documenter-dark .help.is-black {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .help.is-light {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help {
+ color: #282f2f; }
+ html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink {
+ color: #375a7f; }
+ html.theme--documenter-dark .help.is-link {
+ color: #1abc9c; }
+ html.theme--documenter-dark .help.is-info {
+ color: #024c7d; }
+ html.theme--documenter-dark .help.is-success {
+ color: #008438; }
+ html.theme--documenter-dark .help.is-warning {
+ color: #ad8100; }
+ html.theme--documenter-dark .help.is-danger {
+ color: #9e1b0d; }
+ html.theme--documenter-dark .field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ html.theme--documenter-dark .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.is-grouped > .control {
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field.is-horizontal {
+ display: flex; } }
+ html.theme--documenter-dark .field-label .label {
+ font-size: inherit; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .field-label {
+ margin-bottom: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.85em;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-normal {
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+ html.theme--documenter-dark .field-body .field .field {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body .field {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .field-body > .field {
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ html.theme--documenter-dark .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 15px;
+ position: relative;
+ text-align: left; }
+ html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon {
+ color: #5e6d6f; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon {
+ color: #dbdee0;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-left .icon.is-left {
+ left: 0; }
+ html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-right .icon.is-right {
+ right: 0; }
+ html.theme--documenter-dark .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb {
+ font-size: 15px;
+ white-space: nowrap; }
+ html.theme--documenter-dark .breadcrumb a {
+ align-items: center;
+ color: #1abc9c;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ html.theme--documenter-dark .breadcrumb a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .breadcrumb li:first-child a {
+ padding-left: 0; }
+ html.theme--documenter-dark .breadcrumb li.is-active a {
+ color: #f2f2f2;
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb li + li::before {
+ color: #8c9b9d;
+ content: "\0002f"; }
+ html.theme--documenter-dark .breadcrumb ul,
+ html.theme--documenter-dark .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .breadcrumb.is-centered ol,
+ html.theme--documenter-dark .breadcrumb.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .breadcrumb.is-right ol,
+ html.theme--documenter-dark .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+ html.theme--documenter-dark .card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #fff;
+ max-width: 100%;
+ position: relative; }
+ html.theme--documenter-dark .card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+ html.theme--documenter-dark .card-header-title {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-header-title.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-image {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+ html.theme--documenter-dark .card-footer {
+ background-color: transparent;
+ border-top: 1px solid #5e6d6f;
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-footer-item:not(:last-child) {
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ html.theme--documenter-dark .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+ html.theme--documenter-dark .dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .dropdown-content {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .dropdown-item {
+ color: #fff;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+ html.theme--documenter-dark a.dropdown-item,
+ html.theme--documenter-dark button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ html.theme--documenter-dark a.dropdown-item:hover,
+ html.theme--documenter-dark button.dropdown-item:hover {
+ background-color: #282f2f;
+ color: #0a0a0a; }
+ html.theme--documenter-dark a.dropdown-item.is-active,
+ html.theme--documenter-dark button.dropdown-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .dropdown-divider {
+ background-color: #5e6d6f;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+ html.theme--documenter-dark .level {
+ align-items: center;
+ justify-content: space-between; }
+ html.theme--documenter-dark .level code {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .level img {
+ display: inline-block;
+ vertical-align: top; }
+ html.theme--documenter-dark .level.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left,
+ html.theme--documenter-dark .level.is-mobile .level-right {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level {
+ display: flex; }
+ html.theme--documenter-dark .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+ html.theme--documenter-dark .level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ html.theme--documenter-dark .level-item .title,
+ html.theme--documenter-dark .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ html.theme--documenter-dark .level-left,
+ html.theme--documenter-dark .level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .level-left .level-item.is-flexible,
+ html.theme--documenter-dark .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left .level-item:not(:last-child),
+ html.theme--documenter-dark .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left {
+ display: flex; } }
+ html.theme--documenter-dark .level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-right {
+ display: flex; } }
+ html.theme--documenter-dark .list {
+ background-color: white;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .list-item:not(a) {
+ color: #fff; }
+ html.theme--documenter-dark .list-item:first-child {
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:last-child {
+ border-bottom-left-radius: 0.4em;
+ border-bottom-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:not(:last-child) {
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .list-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark a.list-item {
+ background-color: #282f2f;
+ cursor: pointer; }
+ html.theme--documenter-dark .media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ html.theme--documenter-dark .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .media .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ html.theme--documenter-dark .media .media .content:not(:last-child),
+ html.theme--documenter-dark .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .media .media .media {
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .media .media .media + .media {
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark .media + .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ html.theme--documenter-dark .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+ html.theme--documenter-dark .media-left,
+ html.theme--documenter-dark .media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .media-left {
+ margin-right: 1rem; }
+ html.theme--documenter-dark .media-right {
+ margin-left: 1rem; }
+ html.theme--documenter-dark .media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .media-content {
+ overflow-x: auto; } }
+ html.theme--documenter-dark .menu {
+ font-size: 15px; }
+ html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .menu.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .menu.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .menu-list {
+ line-height: 1.25; }
+ html.theme--documenter-dark .menu-list a {
+ border-radius: 3px;
+ color: #fff;
+ display: block;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .menu-list a:hover {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .menu-list a.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .menu-list li ul {
+ border-left: 1px solid #5e6d6f;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .menu-label {
+ color: white;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .message {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .message strong {
+ color: currentColor; }
+ html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .message.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .message.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .message.is-white {
+ background-color: white; }
+ html.theme--documenter-dark .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ html.theme--documenter-dark .message.is-black {
+ background-color: #fafafa; }
+ html.theme--documenter-dark .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ html.theme--documenter-dark .message.is-light {
+ background-color: #f9fafb; }
+ html.theme--documenter-dark .message.is-light .message-header {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .message.is-light .message-body {
+ border-color: #ecf0f1;
+ color: #505050; }
+ html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message {
+ background-color: #f9fafa; }
+ html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body {
+ border-color: #282f2f;
+ color: #212526; }
+ html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink {
+ background-color: #f8fafc; }
+ html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #375a7f;
+ color: #2b4159; }
+ html.theme--documenter-dark .message.is-link {
+ background-color: #f6fefc; }
+ html.theme--documenter-dark .message.is-link .message-header {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-link .message-body {
+ border-color: #1abc9c;
+ color: #0b2f28; }
+ html.theme--documenter-dark .message.is-info {
+ background-color: #f5fbff; }
+ html.theme--documenter-dark .message.is-info .message-header {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-info .message-body {
+ border-color: #024c7d;
+ color: #033659; }
+ html.theme--documenter-dark .message.is-success {
+ background-color: #f5fff9; }
+ html.theme--documenter-dark .message.is-success .message-header {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-success .message-body {
+ border-color: #008438;
+ color: #023518; }
+ html.theme--documenter-dark .message.is-warning {
+ background-color: #fffcf5; }
+ html.theme--documenter-dark .message.is-warning .message-header {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-warning .message-body {
+ border-color: #ad8100;
+ color: #3d2e03; }
+ html.theme--documenter-dark .message.is-danger {
+ background-color: #fef6f6; }
+ html.theme--documenter-dark .message.is-danger .message-header {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-danger .message-body {
+ border-color: #9e1b0d;
+ color: #7a170c; }
+ html.theme--documenter-dark .message-header {
+ align-items: center;
+ background-color: #fff;
+ border-radius: 0.4em 0.4em 0 0;
+ color: rgba(0, 0, 0, 0.7);
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ html.theme--documenter-dark .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ html.theme--documenter-dark .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .message-body {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #fff;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .message-body code,
+ html.theme--documenter-dark .message-body pre {
+ background-color: white; }
+ html.theme--documenter-dark .message-body pre code {
+ background-color: transparent; }
+ html.theme--documenter-dark .modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ html.theme--documenter-dark .modal.is-active {
+ display: flex; }
+ html.theme--documenter-dark .modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+ html.theme--documenter-dark .modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+ html.theme--documenter-dark .modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+ html.theme--documenter-dark .modal-card-head,
+ html.theme--documenter-dark .modal-card-foot {
+ align-items: center;
+ background-color: #282f2f;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+ html.theme--documenter-dark .modal-card-head {
+ border-bottom: 1px solid #5e6d6f;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px; }
+ html.theme--documenter-dark .modal-card-title {
+ color: #f2f2f2;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+ html.theme--documenter-dark .modal-card-foot {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+ html.theme--documenter-dark .navbar {
+ background-color: #375a7f;
+ min-height: 4rem;
+ position: relative;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ html.theme--documenter-dark .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ html.theme--documenter-dark .navbar.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-burger {
+ color: #282f2f; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ecf0f1;
+ color: #282f2f; } }
+ html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger {
+ color: #ecf0f1; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #282f2f;
+ color: #ecf0f1; } }
+ html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #375a7f;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #024c7d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #008438;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ad8100;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #9e1b0d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 4rem;
+ width: 100%; }
+ html.theme--documenter-dark .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-top {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top,
+ html.theme--documenter-dark body.has-navbar-fixed-top {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark .navbar-brand,
+ html.theme--documenter-dark .navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+ html.theme--documenter-dark .navbar-burger {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ height: 4rem;
+ position: relative;
+ width: 4rem;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ html.theme--documenter-dark .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ html.theme--documenter-dark .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+ html.theme--documenter-dark .navbar-menu {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ color: #fff;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .navbar-item .icon:only-child,
+ html.theme--documenter-dark .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+ html.theme--documenter-dark a.navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ cursor: pointer; }
+ html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link:focus,
+ html.theme--documenter-dark .navbar-link:focus-within,
+ html.theme--documenter-dark .navbar-link:hover,
+ html.theme--documenter-dark .navbar-link.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-item img {
+ max-height: 1.75rem; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ padding: 0; }
+ html.theme--documenter-dark .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 4rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #1abc9c;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #1abc9c;
+ padding-bottom: calc(0.5rem - 3px); }
+ html.theme--documenter-dark .navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after {
+ border-color: #fff;
+ margin-top: -0.375em;
+ right: 1.125em; }
+ html.theme--documenter-dark .navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+ html.theme--documenter-dark .navbar-divider {
+ background-color: rgba(0, 0, 0, 0.2);
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar > .container {
+ display: block; }
+ html.theme--documenter-dark .navbar-brand .navbar-item,
+ html.theme--documenter-dark .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-link::after {
+ display: none; }
+ html.theme--documenter-dark .navbar-menu {
+ background-color: #375a7f;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark .navbar-menu.is-active {
+ display: block; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ top: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 4rem);
+ overflow: auto; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-top-touch {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 4rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar,
+ html.theme--documenter-dark .navbar-menu,
+ html.theme--documenter-dark .navbar-start,
+ html.theme--documenter-dark .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .navbar {
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ html.theme--documenter-dark .navbar.is-spaced .navbar-start,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ html.theme--documenter-dark .navbar.is-spaced a.navbar-item,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-link {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-burger {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-item {
+ display: flex; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ align-items: stretch; }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 8px 8px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ html.theme--documenter-dark .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ html.theme--documenter-dark .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-dropdown {
+ background-color: #375a7f;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed {
+ border-radius: 8px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ html.theme--documenter-dark .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .navbar-divider {
+ display: block; }
+ html.theme--documenter-dark .navbar > .container .navbar-brand,
+ html.theme--documenter-dark .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ html.theme--documenter-dark .navbar > .container .navbar-menu,
+ html.theme--documenter-dark .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-top-desktop {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-top,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-top {
+ padding-top: 6rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 6rem; }
+ html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link.is-active {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),
+ html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: transparent; } }
+ html.theme--documenter-dark .hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 4rem); }
+ html.theme--documenter-dark .pagination {
+ font-size: 15px;
+ margin: -0.25rem; }
+ html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .pagination.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .pagination.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ html.theme--documenter-dark .pagination.is-rounded .pagination-next,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination,
+ html.theme--documenter-dark .pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link {
+ border-color: #5e6d6f;
+ color: #1abc9c;
+ min-width: 2.25em; }
+ html.theme--documenter-dark .pagination-previous:hover,
+ html.theme--documenter-dark .pagination-next:hover,
+ html.theme--documenter-dark .pagination-link:hover {
+ border-color: #8c9b9d;
+ color: #1dd2af; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled] {
+ background-color: #dbdee0;
+ border-color: #dbdee0;
+ box-shadow: none;
+ color: #5e6d6f;
+ opacity: 0.5; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .pagination-link.is-current {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .pagination-ellipsis {
+ color: #8c9b9d;
+ pointer-events: none; }
+ html.theme--documenter-dark .pagination-list {
+ flex-wrap: wrap; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .pagination {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ html.theme--documenter-dark .pagination-previous {
+ order: 2; }
+ html.theme--documenter-dark .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination {
+ justify-content: space-between; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination.is-right .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-right .pagination-next {
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+ html.theme--documenter-dark .panel {
+ font-size: 15px; }
+ html.theme--documenter-dark .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs,
+ html.theme--documenter-dark .panel-block {
+ border-bottom: 1px solid #5e6d6f;
+ border-left: 1px solid #5e6d6f;
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child,
+ html.theme--documenter-dark .panel-block:first-child {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading {
+ background-color: #282f2f;
+ border-radius: 0.4em 0.4em 0 0;
+ color: #f2f2f2;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-bottom: 1px solid #5e6d6f;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #343c3d;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-list a {
+ color: #fff; }
+ html.theme--documenter-dark .panel-list a:hover {
+ color: #1abc9c; }
+ html.theme--documenter-dark .panel-block {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ html.theme--documenter-dark .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .panel-block.is-active {
+ border-left-color: #1abc9c;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.panel-block,
+ html.theme--documenter-dark label.panel-block {
+ cursor: pointer; }
+ html.theme--documenter-dark a.panel-block:hover,
+ html.theme--documenter-dark label.panel-block:hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: white;
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+ html.theme--documenter-dark .tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 15px;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tabs a {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ html.theme--documenter-dark .tabs a:hover {
+ border-bottom-color: #f2f2f2;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .tabs li {
+ display: block; }
+ html.theme--documenter-dark .tabs li.is-active a {
+ border-bottom-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .tabs ul {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tabs ul.is-left {
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .tabs.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .tabs.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .tabs.is-boxed a:hover {
+ background-color: #282f2f;
+ border-bottom-color: #5e6d6f; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #5e6d6f;
+ border-bottom-color: transparent !important; }
+ html.theme--documenter-dark .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .tabs.is-toggle a {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ html.theme--documenter-dark .tabs.is-toggle a:hover {
+ background-color: #282f2f;
+ border-color: #8c9b9d;
+ z-index: 2; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .tabs.is-toggle li:first-child a {
+ border-radius: 0.4em 0 0 0.4em; }
+ html.theme--documenter-dark .tabs.is-toggle li:last-child a {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .tabs.is-toggle li.is-active a {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff;
+ z-index: 1; }
+ html.theme--documenter-dark .tabs.is-toggle ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tabs.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tabs.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .column.is-narrow-mobile {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .column.is-narrow-touch {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-touch {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .column.is-narrow-desktop {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .column.is-narrow-widescreen {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .column.is-narrow-fullhd {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+ html.theme--documenter-dark .columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .columns:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ html.theme--documenter-dark .columns.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ html.theme--documenter-dark .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ html.theme--documenter-dark .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .columns.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .columns.is-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-desktop {
+ display: flex; } }
+ html.theme--documenter-dark .columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ html.theme--documenter-dark .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ html.theme--documenter-dark .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+ html.theme--documenter-dark .tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ html.theme--documenter-dark .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .tile.is-child {
+ margin: 0 !important; }
+ html.theme--documenter-dark .tile.is-parent {
+ padding: 0.75rem; }
+ html.theme--documenter-dark .tile.is-vertical {
+ flex-direction: column; }
+ html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .tile:not(.is-child) {
+ display: flex; }
+ html.theme--documenter-dark .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+ html.theme--documenter-dark .hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ html.theme--documenter-dark .hero .navbar {
+ background: none; }
+ html.theme--documenter-dark .hero .tabs ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-white strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-white .title {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-white .navbar-menu {
+ background-color: white; } }
+ html.theme--documenter-dark .hero.is-white .navbar-item,
+ html.theme--documenter-dark .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-white .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ html.theme--documenter-dark .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-black strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-black .title {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ html.theme--documenter-dark .hero.is-black .navbar-item,
+ html.theme--documenter-dark .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-black .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ html.theme--documenter-dark .hero.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-light strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-light .title {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .subtitle {
+ color: rgba(40, 47, 47, 0.9); }
+ html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-light .subtitle strong {
+ color: #282f2f; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-light .navbar-menu {
+ background-color: #ecf0f1; } }
+ html.theme--documenter-dark .hero.is-light .navbar-item,
+ html.theme--documenter-dark .hero.is-light .navbar-link {
+ color: rgba(40, 47, 47, 0.7); }
+ html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-light .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-light .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs a {
+ color: #282f2f;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } }
+ html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-dark strong,
+ html.theme--documenter-dark .content kbd.hero strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle {
+ color: rgba(236, 240, 241, 0.9); }
+ html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-dark .subtitle strong,
+ html.theme--documenter-dark .content kbd.hero .subtitle strong {
+ color: #ecf0f1; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu {
+ background-color: #282f2f; } }
+ html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item,
+ html.theme--documenter-dark .hero.is-dark .navbar-link,
+ html.theme--documenter-dark .content kbd.hero .navbar-link {
+ color: rgba(236, 240, 241, 0.7); }
+ html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-dark .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.hero .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.hero .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a {
+ color: #ecf0f1;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } }
+ html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-primary strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-primary .subtitle strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #375a7f; } }
+ html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ html.theme--documenter-dark .hero.is-primary .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-primary .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } }
+ html.theme--documenter-dark .hero.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-link strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-link .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-link .navbar-menu {
+ background-color: #1abc9c; } }
+ html.theme--documenter-dark .hero.is-link .navbar-item,
+ html.theme--documenter-dark .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-link .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-link .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } }
+ html.theme--documenter-dark .hero.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-info strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-info .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-info .navbar-menu {
+ background-color: #024c7d; } }
+ html.theme--documenter-dark .hero.is-info .navbar-item,
+ html.theme--documenter-dark .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-info .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-info .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } }
+ html.theme--documenter-dark .hero.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-success strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-success .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-success .navbar-menu {
+ background-color: #008438; } }
+ html.theme--documenter-dark .hero.is-success .navbar-item,
+ html.theme--documenter-dark .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-success .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-success .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } }
+ html.theme--documenter-dark .hero.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-warning strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-warning .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-warning .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-warning .navbar-menu {
+ background-color: #ad8100; } }
+ html.theme--documenter-dark .hero.is-warning .navbar-item,
+ html.theme--documenter-dark .hero.is-warning .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-warning .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-warning .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } }
+ html.theme--documenter-dark .hero.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-danger strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-danger .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-danger .navbar-menu {
+ background-color: #9e1b0d; } }
+ html.theme--documenter-dark .hero.is-danger .navbar-item,
+ html.theme--documenter-dark .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-danger .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-danger .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } }
+ html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .hero.is-halfheight {
+ min-height: 50vh; }
+ html.theme--documenter-dark .hero.is-fullheight {
+ min-height: 100vh; }
+ html.theme--documenter-dark .hero-video {
+ overflow: hidden; }
+ html.theme--documenter-dark .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ html.theme--documenter-dark .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-video {
+ display: none; } }
+ html.theme--documenter-dark .hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-buttons .button {
+ display: flex; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+ html.theme--documenter-dark .hero-head,
+ html.theme--documenter-dark .hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+ html.theme--documenter-dark .section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .section.is-medium {
+ padding: 9rem 1.5rem; }
+ html.theme--documenter-dark .section.is-large {
+ padding: 18rem 1.5rem; } }
+ html.theme--documenter-dark .footer {
+ background-color: #282f2f;
+ padding: 3rem 1.5rem 6rem; }
+ html.theme--documenter-dark hr {
+ height: 1px; }
+ html.theme--documenter-dark h6 {
+ text-transform: uppercase;
+ letter-spacing: 0.5px; }
+ html.theme--documenter-dark .hero {
+ background-color: #343c3d; }
+ html.theme--documenter-dark a {
+ transition: all 200ms ease; }
+ html.theme--documenter-dark .button {
+ transition: all 200ms ease;
+ border-width: 1px;
+ color: white; }
+ html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus {
+ box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); }
+ html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus {
+ border-color: white;
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); }
+ html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover {
+ background-color: #1d1d1d; }
+ html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus {
+ border-color: #0a0a0a;
+ box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); }
+ html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus {
+ border-color: #ecf0f1;
+ box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); }
+ html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover {
+ background-color: #3a4344; }
+ html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus {
+ border-color: #282f2f;
+ box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); }
+ html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover {
+ background-color: #436d9a; }
+ html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus {
+ border-color: #375a7f;
+ box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); }
+ html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover {
+ background-color: #1fdeb8; }
+ html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); }
+ html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover {
+ background-color: #0363a3; }
+ html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus {
+ border-color: #024c7d;
+ box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); }
+ html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover {
+ background-color: #00aa48; }
+ html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus {
+ border-color: #008438;
+ box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); }
+ html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover {
+ background-color: #d39e00; }
+ html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus {
+ border-color: #ad8100;
+ box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); }
+ html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover {
+ background-color: #c12110; }
+ html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus {
+ border-color: #9e1b0d;
+ box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); }
+ html.theme--documenter-dark .label {
+ color: #dbdee0; }
+ html.theme--documenter-dark .button,
+ html.theme--documenter-dark .control.has-icons-left .icon,
+ html.theme--documenter-dark .control.has-icons-right .icon,
+ html.theme--documenter-dark .input,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .select,
+ html.theme--documenter-dark .select select,
+ html.theme--documenter-dark .textarea {
+ height: 2.5em; }
+ html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .textarea {
+ transition: all 200ms ease;
+ box-shadow: none;
+ border-width: 1px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .select:after,
+ html.theme--documenter-dark .select select {
+ border-width: 1px; }
+ html.theme--documenter-dark .control.has-addons .button,
+ html.theme--documenter-dark .control.has-addons .input,
+ html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input,
+ html.theme--documenter-dark .control.has-addons .select {
+ margin-right: -1px; }
+ html.theme--documenter-dark .notification {
+ background-color: #343c3d; }
+ html.theme--documenter-dark .card {
+ box-shadow: none;
+ border: 1px solid #343c3d;
+ background-color: #282f2f;
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .card .card-image img {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-header {
+ box-shadow: none;
+ background-color: rgba(18, 18, 18, 0.2);
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-footer {
+ background-color: rgba(18, 18, 18, 0.2); }
+ html.theme--documenter-dark .card .card-footer,
+ html.theme--documenter-dark .card .card-footer-item {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .notification.is-white a:not(.button) {
+ color: #0a0a0a;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-black a:not(.button) {
+ color: white;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-light a:not(.button) {
+ color: #282f2f;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) {
+ color: #ecf0f1;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-link a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-info a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-success a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-warning a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-danger a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .menu-list a {
+ transition: all 300ms ease; }
+ html.theme--documenter-dark .modal-card-body {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .modal-card-foot,
+ html.theme--documenter-dark .modal-card-head {
+ border-color: #343c3d; }
+ html.theme--documenter-dark .message-header {
+ font-weight: 700;
+ background-color: #343c3d;
+ color: white; }
+ html.theme--documenter-dark .message-body {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .navbar {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent {
+ background: none; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar .navbar-menu {
+ background-color: #375a7f;
+ border-radius: 0 0 0.4em 0.4em; } }
+ html.theme--documenter-dark .hero .navbar,
+ html.theme--documenter-dark body > .navbar {
+ border-radius: 0; }
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block,
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block:first-child,
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child {
+ border-top-width: 1px; }
+ html.theme--documenter-dark .panel-heading {
+ font-weight: 700; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #17a689; }
+ html.theme--documenter-dark .panel-block:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block:hover .panel-icon {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #17a689; }
+ html.theme--documenter-dark .tabs a {
+ border-bottom-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .tabs ul {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .tabs.is-toggle li a {
+ border-width: 1px;
+ margin-bottom: 0; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited {
+ color: #f2f2f2; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+ html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+ html.theme--documenter-dark .docs-light-only {
+ display: none !important; }
+ html.theme--documenter-dark pre {
+ position: relative;
+ overflow: hidden; }
+ html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ html.theme--documenter-dark pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #fff;
+ cursor: pointer;
+ text-align: center; }
+ html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(255, 255, 255, 0.1);
+ color: #1abc9c; }
+ html.theme--documenter-dark pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ html.theme--documenter-dark pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ html.theme--documenter-dark pre:hover .copy-button {
+ opacity: 1; }
+ html.theme--documenter-dark .admonition {
+ background-color: #282f2f;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .admonition strong {
+ color: currentColor; }
+ html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .admonition.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .admonition.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .admonition.is-default {
+ background-color: #282f2f;
+ border-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-default > .admonition-header {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-info {
+ background-color: #282f2f;
+ border-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-info > .admonition-header {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-success {
+ background-color: #282f2f;
+ border-color: #008438; }
+ html.theme--documenter-dark .admonition.is-success > .admonition-header {
+ background-color: #008438; }
+ html.theme--documenter-dark .admonition.is-warning {
+ background-color: #282f2f;
+ border-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-warning > .admonition-header {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-danger {
+ background-color: #282f2f;
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-danger > .admonition-header {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-compat {
+ background-color: #282f2f;
+ border-color: #137886; }
+ html.theme--documenter-dark .admonition.is-compat > .admonition-header {
+ background-color: #137886; }
+ html.theme--documenter-dark .admonition-header {
+ background-color: #5e6d6f;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+ html.theme--documenter-dark .admonition-body {
+ color: #fff;
+ padding: 0.5rem 0.75rem; }
+ html.theme--documenter-dark .admonition-body pre {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .admonition-body code {
+ background-color: rgba(255, 255, 255, 0.05); }
+ html.theme--documenter-dark .docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #5e6d6f;
+ box-shadow: none;
+ max-width: 100%; }
+ html.theme--documenter-dark .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: #282f2f;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > header code {
+ background-color: transparent; }
+ html.theme--documenter-dark .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ html.theme--documenter-dark .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ html.theme--documenter-dark .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > section:last-child {
+ border-bottom: none; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+ html.theme--documenter-dark .documenter-example-output {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #282f2f;
+ border-bottom: 3px solid #9e1b0d;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ html.theme--documenter-dark .outdated-warning-overlay a {
+ color: #1abc9c; }
+ html.theme--documenter-dark .outdated-warning-overlay a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .content pre {
+ border: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .content code {
+ font-weight: inherit; }
+ html.theme--documenter-dark .content a code {
+ color: #1abc9c; }
+ html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+ html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+ html.theme--documenter-dark pre, html.theme--documenter-dark code {
+ font-variant-ligatures: no-contextual; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .hljs {
+ background: initial !important; }
+ html.theme--documenter-dark .katex .katex-mathml {
+ top: 0;
+ right: 0; }
+ html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display {
+ margin: 0.5em 0 !important; }
+ html.theme--documenter-dark html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+ html.theme--documenter-dark li.no-marker {
+ list-style: none; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ html.theme--documenter-dark #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ width: 100%; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ background-color: #1f2424;
+ border-bottom: 1px solid #5e6d6f;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #171717;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #5e6d6f;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #fff;
+ background-color: #282f2f;
+ border-right: 1px solid #5e6d6f;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 15px;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #171717; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #5e6d6f;
+ display: none;
+ padding: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #5e6d6f;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 14.25px;
+ margin-left: 1em;
+ border-left: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 11.25px;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #fff;
+ background: #282f2f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #fff;
+ background-color: #32393a; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #5e6d6f;
+ border-bottom: 1px solid #5e6d6f;
+ background-color: #1f2424; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: #1f2424;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #32393a;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 12.75px;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+ html.theme--documenter-dark {
+ background-color: #1f2424;
+ font-size: 16px;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark .ansi span.sgr1 {
+ font-weight: bolder; }
+ html.theme--documenter-dark .ansi span.sgr2 {
+ font-weight: lighter; }
+ html.theme--documenter-dark .ansi span.sgr3 {
+ font-style: italic; }
+ html.theme--documenter-dark .ansi span.sgr4 {
+ text-decoration: underline; }
+ html.theme--documenter-dark .ansi span.sgr7 {
+ color: #1f2424;
+ background-color: #fff; }
+ html.theme--documenter-dark .ansi span.sgr8 {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr8 span {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr9 {
+ text-decoration: line-through; }
+ html.theme--documenter-dark .ansi span.sgr30 {
+ color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr31 {
+ color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr32 {
+ color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr33 {
+ color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr34 {
+ color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr35 {
+ color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr36 {
+ color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr37 {
+ color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr40 {
+ background-color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr41 {
+ background-color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr42 {
+ background-color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr43 {
+ background-color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr44 {
+ background-color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr45 {
+ background-color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr46 {
+ background-color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr47 {
+ background-color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr90 {
+ color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr91 {
+ color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr92 {
+ color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr93 {
+ color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr94 {
+ color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr95 {
+ color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr96 {
+ color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr97 {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .ansi span.sgr100 {
+ background-color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr101 {
+ background-color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr102 {
+ background-color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr103 {
+ background-color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr104 {
+ background-color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr105 {
+ background-color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr106 {
+ background-color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr107 {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark code.language-julia-repl > span.hljs-meta {
+ color: #4fb43a;
+ font-weight: bolder; }
+ html.theme--documenter-dark .hljs {
+ background: #2b2b2b;
+ color: #f8f8f2; }
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-quote {
+ color: #d4d0ab; }
+ html.theme--documenter-dark .hljs-variable,
+ html.theme--documenter-dark .hljs-template-variable,
+ html.theme--documenter-dark .hljs-tag,
+ html.theme--documenter-dark .hljs-name,
+ html.theme--documenter-dark .hljs-selector-id,
+ html.theme--documenter-dark .hljs-selector-class,
+ html.theme--documenter-dark .hljs-regexp,
+ html.theme--documenter-dark .hljs-deletion {
+ color: #ffa07a; }
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-link {
+ color: #f5ab35; }
+ html.theme--documenter-dark .hljs-attribute {
+ color: #ffd700; }
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-addition {
+ color: #abe338; }
+ html.theme--documenter-dark .hljs-title,
+ html.theme--documenter-dark .hljs-section {
+ color: #00e0e0; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ color: #dcc6e0; }
+ html.theme--documenter-dark .hljs-emphasis {
+ font-style: italic; }
+ html.theme--documenter-dark .hljs-strong {
+ font-weight: bold; }
+ @media screen and (-ms-high-contrast: active) {
+ html.theme--documenter-dark .hljs-addition,
+ html.theme--documenter-dark .hljs-attribute,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-link,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-quote {
+ color: highlight; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ font-weight: bold; } }
+ html.theme--documenter-dark .hljs-subst {
+ color: #f8f8f2; }
diff --git a/v0.1.0/assets/themes/documenter-light.css b/v0.1.0/assets/themes/documenter-light.css
new file mode 100644
index 0000000..9595d5b
--- /dev/null
+++ b/v0.1.0/assets/themes/documenter-light.css
@@ -0,0 +1,7738 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+.tabs, .pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child),
+.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.modal-close, .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ .modal-close::before, .delete::before, .modal-close::after, .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .modal-close::before, .delete::before {
+ height: 2px;
+ width: 50%; }
+ .modal-close::after, .delete::after {
+ height: 50%;
+ width: 2px; }
+ .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ .modal-close:active, .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ .is-medium.modal-close, .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ .is-large.modal-close, .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdbdb;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+.image.is-square .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+.image.is-1by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+.image.is-5by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+.image.is-4by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+.image.is-3by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+.image.is-5by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+.image.is-16by9 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+.image.is-2by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+.image.is-3by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+.image.is-4by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+.image.is-3by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+.image.is-2by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+.image.is-3by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+.image.is-9by16 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+.image.is-1by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+.image.is-1by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .file-cta,
+.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus,
+ .pagination-ellipsis:focus, .file-cta:focus,
+ .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous,
+ .is-focused.pagination-next,
+ .is-focused.pagination-link,
+ .is-focused.pagination-ellipsis, .is-focused.file-cta,
+ .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active,
+ .pagination-ellipsis:active, .file-cta:active,
+ .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous,
+ .is-active.pagination-next,
+ .is-active.pagination-link,
+ .is-active.pagination-ellipsis, .is-active.file-cta,
+ .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button {
+ outline: none; }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled],
+ .pagination-ellipsis[disabled], .file-cta[disabled],
+ .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous,
+ fieldset[disabled] .pagination-next,
+ fieldset[disabled] .pagination-link,
+ fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta,
+ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+html {
+ background-color: white;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section {
+ display: block; }
+
+body,
+button,
+input,
+select,
+textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+
+code,
+pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+
+body {
+ color: #222222;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+
+a {
+ color: #2e63b8;
+ cursor: pointer;
+ text-decoration: none; }
+ a strong {
+ color: currentColor; }
+ a:hover {
+ color: #363636; }
+
+code {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #000000;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+
+hr {
+ background-color: whitesmoke;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+
+img {
+ height: auto;
+ max-width: 100%; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ vertical-align: baseline; }
+
+small {
+ font-size: 0.875em; }
+
+span {
+ font-style: inherit;
+ font-weight: inherit; }
+
+strong {
+ color: #222222;
+ font-weight: 700; }
+
+fieldset {
+ border: none; }
+
+pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: whitesmoke;
+ color: #222222;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+
+table td,
+table th {
+ vertical-align: top; }
+ table td:not([align]),
+ table th:not([align]) {
+ text-align: left; }
+
+table th {
+ color: #222222; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 1rem !important; }
+
+.is-size-7, .docstring > section > a.docs-sourcelink {
+ font-size: 0.75rem !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 1rem !important; }
+ .is-size-7-mobile {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 1rem !important; }
+ .is-size-7-tablet {
+ font-size: 0.75rem !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 1rem !important; }
+ .is-size-7-touch {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 1rem !important; }
+ .is-size-7-desktop {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 1rem !important; }
+ .is-size-7-widescreen {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 1rem !important; }
+ .is-size-7-fullhd {
+ font-size: 0.75rem !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: whitesmoke !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #dbdbdb !important; }
+
+.has-background-light {
+ background-color: whitesmoke !important; }
+
+.has-text-dark {
+ color: #363636 !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #1c1c1c !important; }
+
+.has-background-dark {
+ background-color: #363636 !important; }
+
+.has-text-primary {
+ color: #4eb5de !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #27a1d2 !important; }
+
+.has-background-primary {
+ background-color: #4eb5de !important; }
+
+.has-text-link {
+ color: #2e63b8 !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #244d8f !important; }
+
+.has-background-link {
+ background-color: #2e63b8 !important; }
+
+.has-text-info {
+ color: #209cee !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #1081cb !important; }
+
+.has-background-info {
+ background-color: #209cee !important; }
+
+.has-text-success {
+ color: #22c35b !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #1a9847 !important; }
+
+.has-background-success {
+ background-color: #22c35b !important; }
+
+.has-text-warning {
+ color: #ffdd57 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #ffd324 !important; }
+
+.has-background-warning {
+ background-color: #ffdd57 !important; }
+
+.has-text-danger {
+ color: #da0b00 !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #a70800 !important; }
+
+.has-background-danger {
+ background-color: #da0b00 !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #363636 !important; }
+
+.has-background-grey-darker {
+ background-color: #363636 !important; }
+
+.has-text-grey-dark {
+ color: #4a4a4a !important; }
+
+.has-background-grey-dark {
+ background-color: #4a4a4a !important; }
+
+.has-text-grey {
+ color: #6b6b6b !important; }
+
+.has-background-grey {
+ background-color: #6b6b6b !important; }
+
+.has-text-grey-light {
+ color: #b5b5b5 !important; }
+
+.has-background-grey-light {
+ background-color: #b5b5b5 !important; }
+
+.has-text-grey-lighter {
+ color: #dbdbdb !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdbdb !important; }
+
+.has-text-white-ter {
+ color: whitesmoke !important; }
+
+.has-background-white-ter {
+ background-color: whitesmoke !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+.box {
+ background-color: white;
+ border-radius: 6px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ display: block;
+ padding: 1.25rem; }
+
+a.box:hover, a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; }
+
+a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; }
+
+.button {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-width: 1px;
+ color: #363636;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ .button strong {
+ color: inherit; }
+ .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ .button:hover, .button.is-hovered {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .button:focus, .button.is-focused {
+ border-color: #3c5dcd;
+ color: #363636; }
+ .button:focus:not(:active), .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button:active, .button.is-active {
+ border-color: #4a4a4a;
+ color: #363636; }
+ .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #222222;
+ text-decoration: underline; }
+ .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused {
+ background-color: whitesmoke;
+ color: #222222; }
+ .button.is-text:active, .button.is-text.is-active {
+ background-color: #e8e8e8;
+ color: #222222; }
+ .button.is-text[disabled], fieldset[disabled] .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:hover, .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus, .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .button.is-white:active, .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white[disabled], fieldset[disabled] .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:hover, .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus, .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .button.is-black:active, .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .button.is-black[disabled], fieldset[disabled] .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:hover, .button.is-light.is-hovered {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus, .button.is-light.is-focused {
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .button.is-light:active, .button.is-light.is-active {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light[disabled], fieldset[disabled] .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-light.is-inverted {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered {
+ background-color: #292929; }
+ .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark, .content kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused {
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-dark.is-inverted, .content kbd.button.is-inverted {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered {
+ background-color: #e8e8e8; }
+ .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-loading::after, .content kbd.button.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined, .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-primary, .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ color: #4eb5de; }
+ .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:hover, .button.is-link.is-hovered {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus, .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button.is-link:active, .button.is-link.is-active {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link[disabled], fieldset[disabled] .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ color: #2e63b8; }
+ .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:hover, .button.is-info.is-hovered {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus, .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .button.is-info:active, .button.is-info.is-active {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info[disabled], fieldset[disabled] .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ color: #209cee; }
+ .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:hover, .button.is-success.is-hovered {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus, .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .button.is-success:active, .button.is-success.is-active {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success[disabled], fieldset[disabled] .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ color: #22c35b; }
+ .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:hover, .button.is-warning.is-hovered {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus, .button.is-warning.is-focused {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .button.is-warning:active, .button.is-warning.is-active {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning[disabled], fieldset[disabled] .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered {
+ background-color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ color: #ffdd57; }
+ .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:hover, .button.is-danger.is-hovered {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus, .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .button.is-danger:active, .button.is-danger.is-active {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger[disabled], fieldset[disabled] .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ color: #da0b00; }
+ .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-small, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .button.is-normal {
+ font-size: 1rem; }
+ .button.is-medium {
+ font-size: 1.25rem; }
+ .button.is-large {
+ font-size: 1.5rem; }
+ .button[disabled], fieldset[disabled] .button {
+ background-color: white;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ opacity: 0.5; }
+ .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ .button.is-static {
+ background-color: whitesmoke;
+ border-color: #dbdbdb;
+ color: #6b6b6b;
+ box-shadow: none;
+ pointer-events: none; }
+ .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .buttons .button {
+ margin-bottom: 0.5rem; }
+ .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .buttons.is-centered {
+ justify-content: center; }
+ .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ .buttons.is-right {
+ justify-content: flex-end; }
+ .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+
+.container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ .container {
+ max-width: 992px; }
+ .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ .container {
+ max-width: 1344px; } }
+.content li + li {
+ margin-top: 0.25em; }
+
+.content p:not(:last-child),
+.content dl:not(:last-child),
+.content ol:not(:last-child),
+.content ul:not(:last-child),
+.content blockquote:not(:last-child),
+.content pre:not(:last-child),
+.content table:not(:last-child) {
+ margin-bottom: 1em; }
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ color: #222222;
+ font-weight: 600;
+ line-height: 1.125; }
+
+.content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ .content h1:not(:first-child) {
+ margin-top: 1em; }
+
+.content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+
+.content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+
+.content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+
+.content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+
+.content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+
+.content blockquote {
+ background-color: whitesmoke;
+ border-left: 5px solid #dbdbdb;
+ padding: 1.25em 1.5em; }
+
+.content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ol:not([type]) {
+ list-style-type: decimal; }
+ .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+
+.content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ .content ul ul ul {
+ list-style-type: square; }
+
+.content dd {
+ margin-left: 2em; }
+
+.content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ .content figure:not(:first-child) {
+ margin-top: 2em; }
+ .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ .content figure img {
+ display: inline-block; }
+ .content figure figcaption {
+ font-style: italic; }
+
+.content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+
+.content sup,
+.content sub {
+ font-size: 75%; }
+
+.content table {
+ width: 100%; }
+ .content table td,
+ .content table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .content table th {
+ color: #222222; }
+ .content table th:not([align]) {
+ text-align: left; }
+ .content table thead td,
+ .content table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .content table tfoot td,
+ .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .content table tbody tr:last-child td,
+ .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+
+.content .tabs li + li {
+ margin-top: 0; }
+
+.content.is-small, #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.75rem; }
+
+.content.is-medium {
+ font-size: 1.25rem; }
+
+.content.is-large {
+ font-size: 1.5rem; }
+
+.icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+
+.image, #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ .image img, #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+ .image.is-square .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ .image.is-1by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ .image.is-5by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ .image.is-4by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ .image.is-3by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ .image.is-5by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ .image.is-16by9 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ .image.is-2by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ .image.is-3by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ .image.is-4by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ .image.is-3by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ .image.is-2by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ .image.is-3by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ .image.is-9by16 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ .image.is-1by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ .image.is-1by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+
+.notification {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .notification strong {
+ color: currentColor; }
+ .notification code,
+ .notification pre {
+ background: white; }
+ .notification pre code {
+ background: transparent; }
+ .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ .notification .title,
+ .notification .subtitle,
+ .notification .content {
+ color: currentColor; }
+ .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .notification.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .notification.is-dark, .content kbd.notification {
+ background-color: #363636;
+ color: whitesmoke; }
+ .notification.is-primary, .docstring > section > a.notification.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .notification.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .notification.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .notification.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .notification.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .notification.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+
+.progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 1rem;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ .progress::-webkit-progress-bar {
+ background-color: #dbdbdb; }
+ .progress::-webkit-progress-value {
+ background-color: #222222; }
+ .progress::-moz-progress-bar {
+ background-color: #222222; }
+ .progress::-ms-fill {
+ background-color: #222222;
+ border: none; }
+ .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ .progress.is-white::-ms-fill {
+ background-color: white; }
+ .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }
+ .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }
+ .progress.is-light::-webkit-progress-value {
+ background-color: whitesmoke; }
+ .progress.is-light::-moz-progress-bar {
+ background-color: whitesmoke; }
+ .progress.is-light::-ms-fill {
+ background-color: whitesmoke; }
+ .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }
+ .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value {
+ background-color: #363636; }
+ .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar {
+ background-color: #363636; }
+ .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill {
+ background-color: #363636; }
+ .progress.is-dark:indeterminate, .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }
+ .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #4eb5de; }
+ .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #4eb5de; }
+ .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #4eb5de; }
+ .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); }
+ .progress.is-link::-webkit-progress-value {
+ background-color: #2e63b8; }
+ .progress.is-link::-moz-progress-bar {
+ background-color: #2e63b8; }
+ .progress.is-link::-ms-fill {
+ background-color: #2e63b8; }
+ .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); }
+ .progress.is-info::-webkit-progress-value {
+ background-color: #209cee; }
+ .progress.is-info::-moz-progress-bar {
+ background-color: #209cee; }
+ .progress.is-info::-ms-fill {
+ background-color: #209cee; }
+ .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); }
+ .progress.is-success::-webkit-progress-value {
+ background-color: #22c35b; }
+ .progress.is-success::-moz-progress-bar {
+ background-color: #22c35b; }
+ .progress.is-success::-ms-fill {
+ background-color: #22c35b; }
+ .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); }
+ .progress.is-warning::-webkit-progress-value {
+ background-color: #ffdd57; }
+ .progress.is-warning::-moz-progress-bar {
+ background-color: #ffdd57; }
+ .progress.is-warning::-ms-fill {
+ background-color: #ffdd57; }
+ .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }
+ .progress.is-danger::-webkit-progress-value {
+ background-color: #da0b00; }
+ .progress.is-danger::-moz-progress-bar {
+ background-color: #da0b00; }
+ .progress.is-danger::-ms-fill {
+ background-color: #da0b00; }
+ .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); }
+ .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #dbdbdb;
+ background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.75rem; }
+ .progress.is-medium {
+ height: 1.25rem; }
+ .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+
+.table {
+ background-color: white;
+ color: #363636; }
+ .table td,
+ .table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .table td.is-white,
+ .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .table td.is-black,
+ .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .table td.is-light,
+ .table th.is-light {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .table td.is-dark,
+ .table th.is-dark {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .table td.is-primary,
+ .table th.is-primary {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .table td.is-link,
+ .table th.is-link {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .table td.is-info,
+ .table th.is-info {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .table td.is-success,
+ .table th.is-success {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .table td.is-warning,
+ .table th.is-warning {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .table td.is-danger,
+ .table th.is-danger {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .table td.is-narrow,
+ .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ .table td.is-selected,
+ .table th.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table td.is-selected a,
+ .table td.is-selected strong,
+ .table th.is-selected a,
+ .table th.is-selected strong {
+ color: currentColor; }
+ .table th {
+ color: #222222; }
+ .table th:not([align]) {
+ text-align: left; }
+ .table tr.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table tr.is-selected a,
+ .table tr.is-selected strong {
+ color: currentColor; }
+ .table tr.is-selected td,
+ .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ .table thead {
+ background-color: transparent; }
+ .table thead td,
+ .table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .table tfoot {
+ background-color: transparent; }
+ .table tfoot td,
+ .table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .table tbody {
+ background-color: transparent; }
+ .table tbody tr:last-child td,
+ .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ .table.is-bordered td,
+ .table.is-bordered th {
+ border-width: 1px; }
+ .table.is-bordered tr:last-child td,
+ .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ .table.is-fullwidth {
+ width: 100%; }
+ .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: whitesmoke; }
+ .table.is-narrow td,
+ .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #fafafa; }
+
+.table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+
+.tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ .tags:last-child {
+ margin-bottom: -0.5rem; }
+ .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 1rem; }
+ .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ .tags.is-centered {
+ justify-content: center; }
+ .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ .tags.is-right {
+ justify-content: flex-end; }
+ .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 4px;
+ color: #222222;
+ display: inline-flex;
+ font-size: 0.75rem;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: whitesmoke;
+ color: #363636; }
+ .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) {
+ background-color: #363636;
+ color: whitesmoke; }
+ .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #4eb5de;
+ color: #fff; }
+ .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #2e63b8;
+ color: #fff; }
+ .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #209cee;
+ color: #fff; }
+ .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #22c35b;
+ color: #fff; }
+ .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #da0b00;
+ color: #fff; }
+ .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.75rem; }
+ .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 1rem; }
+ .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #e8e8e8; }
+ .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #dbdbdb; }
+ .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+
+a.tag:hover, .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+
+.title,
+.subtitle {
+ word-break: break-word; }
+ .title em,
+ .title span,
+ .subtitle em,
+ .subtitle span {
+ font-weight: inherit; }
+ .title sub,
+ .subtitle sub {
+ font-size: 0.75em; }
+ .title sup,
+ .subtitle sup {
+ font-size: 0.75em; }
+ .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink,
+ .subtitle .tag,
+ .subtitle .content kbd,
+ .content .subtitle kbd,
+ .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+
+.title {
+ color: #363636;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: 1.125; }
+ .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ .title + .highlight {
+ margin-top: -0.75rem; }
+ .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ .title.is-1 {
+ font-size: 3rem; }
+ .title.is-2 {
+ font-size: 2.5rem; }
+ .title.is-3 {
+ font-size: 2rem; }
+ .title.is-4 {
+ font-size: 1.5rem; }
+ .title.is-5 {
+ font-size: 1.25rem; }
+ .title.is-6 {
+ font-size: 1rem; }
+ .title.is-7 {
+ font-size: 0.75rem; }
+
+.subtitle {
+ color: #4a4a4a;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ .subtitle strong {
+ color: #363636;
+ font-weight: 600; }
+ .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ .subtitle.is-1 {
+ font-size: 3rem; }
+ .subtitle.is-2 {
+ font-size: 2.5rem; }
+ .subtitle.is-3 {
+ font-size: 2rem; }
+ .subtitle.is-4 {
+ font-size: 1.5rem; }
+ .subtitle.is-5 {
+ font-size: 1.25rem; }
+ .subtitle.is-6 {
+ font-size: 1rem; }
+ .subtitle.is-7 {
+ font-size: 0.75rem; }
+
+.heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+
+.highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+
+.number {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+
+.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ color: #363636; }
+ .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #b5b5b5; }
+ .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #2e63b8;
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: #6b6b6b; }
+ .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+
+.textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: whitesmoke; }
+ .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input {
+ border-color: #363636; }
+ .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink {
+ border-color: #4eb5de; }
+ .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #2e63b8; }
+ .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #209cee; }
+ .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #22c35b; }
+ .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ffdd57; }
+ .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #da0b00; }
+ .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+
+.input.is-rounded, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+
+.textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ .textarea[rows] {
+ height: initial; }
+ .textarea.has-fixed-size {
+ resize: none; }
+
+.radio, .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ .radio input, .checkbox input {
+ cursor: pointer; }
+ .radio:hover, .checkbox:hover {
+ color: #363636; }
+ .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox {
+ color: #6b6b6b;
+ cursor: not-allowed; }
+
+.radio + .radio {
+ margin-left: 0.5em; }
+
+.select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ .select:not(.is-multiple) {
+ height: 2.25em; }
+ .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #2e63b8;
+ right: 1.125em;
+ z-index: 4; }
+ .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ .select select::-ms-expand {
+ display: none; }
+ .select select[disabled]:hover, fieldset[disabled] .select select:hover {
+ border-color: whitesmoke; }
+ .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ .select select[multiple] option {
+ padding: 0.5em 1em; }
+ .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #363636; }
+ .select.is-white:not(:hover)::after {
+ border-color: white; }
+ .select.is-white select {
+ border-color: white; }
+ .select.is-white select:hover, .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ .select.is-black select {
+ border-color: #0a0a0a; }
+ .select.is-black select:hover, .select.is-black select.is-hovered {
+ border-color: black; }
+ .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .select.is-light:not(:hover)::after {
+ border-color: whitesmoke; }
+ .select.is-light select {
+ border-color: whitesmoke; }
+ .select.is-light select:hover, .select.is-light select.is-hovered {
+ border-color: #e8e8e8; }
+ .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after {
+ border-color: #363636; }
+ .select.is-dark select, .content kbd.select select {
+ border-color: #363636; }
+ .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered {
+ border-color: #292929; }
+ .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #4eb5de; }
+ .select.is-primary select, .docstring > section > a.select.docs-sourcelink select {
+ border-color: #4eb5de; }
+ .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #39acda; }
+ .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .select.is-link:not(:hover)::after {
+ border-color: #2e63b8; }
+ .select.is-link select {
+ border-color: #2e63b8; }
+ .select.is-link select:hover, .select.is-link select.is-hovered {
+ border-color: #2958a4; }
+ .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select.is-info:not(:hover)::after {
+ border-color: #209cee; }
+ .select.is-info select {
+ border-color: #209cee; }
+ .select.is-info select:hover, .select.is-info select.is-hovered {
+ border-color: #1190e3; }
+ .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .select.is-success:not(:hover)::after {
+ border-color: #22c35b; }
+ .select.is-success select {
+ border-color: #22c35b; }
+ .select.is-success select:hover, .select.is-success select.is-hovered {
+ border-color: #1ead51; }
+ .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .select.is-warning:not(:hover)::after {
+ border-color: #ffdd57; }
+ .select.is-warning select {
+ border-color: #ffdd57; }
+ .select.is-warning select:hover, .select.is-warning select.is-hovered {
+ border-color: #ffd83e; }
+ .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .select.is-danger:not(:hover)::after {
+ border-color: #da0b00; }
+ .select.is-danger select {
+ border-color: #da0b00; }
+ .select.is-danger select:hover, .select.is-danger select.is-hovered {
+ border-color: #c10a00; }
+ .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .select.is-small, #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .select.is-medium {
+ font-size: 1.25rem; }
+ .select.is-large {
+ font-size: 1.5rem; }
+ .select.is-disabled::after {
+ border-color: #6b6b6b; }
+ .select.is-fullwidth {
+ width: 100%; }
+ .select.is-fullwidth select {
+ width: 100%; }
+ .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ .file.is-white:active .file-cta, .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ .file.is-black:active .file-cta, .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .file.is-light .file-cta {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
+ color: #363636; }
+ .file.is-light:active .file-cta, .file.is-light.is-active .file-cta {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-dark .file-cta, .content kbd.file .file-cta {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
+ color: whitesmoke; }
+ .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25);
+ color: #fff; }
+ .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link .file-cta {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25);
+ color: #fff; }
+ .file.is-link:active .file-cta, .file.is-link.is-active .file-cta {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info .file-cta {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25);
+ color: #fff; }
+ .file.is-info:active .file-cta, .file.is-info.is-active .file-cta {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success .file-cta {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25);
+ color: #fff; }
+ .file.is-success:active .file-cta, .file.is-success.is-active .file-cta {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-warning .file-cta {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-danger .file-cta {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25);
+ color: #fff; }
+ .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-small, #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.75rem; }
+ .file.is-medium {
+ font-size: 1.25rem; }
+ .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ .file.is-large {
+ font-size: 1.5rem; }
+ .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .file.has-name.is-empty .file-cta {
+ border-radius: 4px; }
+ .file.has-name.is-empty .file-name {
+ display: none; }
+ .file.is-boxed .file-label {
+ flex-direction: column; }
+ .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ .file.is-boxed.has-name .file-cta {
+ border-radius: 4px 4px 0 0; }
+ .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 4px 4px;
+ border-width: 0 1px 1px; }
+ .file.is-centered {
+ justify-content: center; }
+ .file.is-fullwidth .file-label {
+ width: 100%; }
+ .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ .file.is-right {
+ justify-content: flex-end; }
+ .file.is-right .file-cta {
+ border-radius: 0 4px 4px 0; }
+ .file.is-right .file-name {
+ border-radius: 4px 0 0 4px;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+
+.file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ .file-label:hover .file-cta {
+ background-color: #eeeeee;
+ color: #363636; }
+ .file-label:hover .file-name {
+ border-color: #d5d5d5; }
+ .file-label:active .file-cta {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .file-label:active .file-name {
+ border-color: #cfcfcf; }
+
+.file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+
+.file-cta,
+.file-name {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+
+.file-cta {
+ background-color: whitesmoke;
+ color: #4a4a4a; }
+
+.file-name {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+
+.file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ .file-icon .fa {
+ font-size: 14px; }
+
+.label {
+ color: #363636;
+ display: block;
+ font-size: 1rem;
+ font-weight: 700; }
+ .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ .label.is-small, #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.75rem; }
+ .label.is-medium {
+ font-size: 1.25rem; }
+ .label.is-large {
+ font-size: 1.5rem; }
+
+.help {
+ display: block;
+ font-size: 0.75rem;
+ margin-top: 0.25rem; }
+ .help.is-white {
+ color: white; }
+ .help.is-black {
+ color: #0a0a0a; }
+ .help.is-light {
+ color: whitesmoke; }
+ .help.is-dark, .content kbd.help {
+ color: #363636; }
+ .help.is-primary, .docstring > section > a.help.docs-sourcelink {
+ color: #4eb5de; }
+ .help.is-link {
+ color: #2e63b8; }
+ .help.is-info {
+ color: #209cee; }
+ .help.is-success {
+ color: #22c35b; }
+ .help.is-warning {
+ color: #ffdd57; }
+ .help.is-danger {
+ color: #da0b00; }
+
+.field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+
+.field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ .field.has-addons .control:first-child:not(:only-child) .button,
+ .field.has-addons .control:first-child:not(:only-child) .input,
+ .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .field.has-addons .control:last-child:not(:only-child) .button,
+ .field.has-addons .control:last-child:not(:only-child) .input,
+ .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ .field.has-addons .control .input.is-hovered:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):hover,
+ .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):focus,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ .field.has-addons .control .input.is-focused:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):active,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ .field.has-addons .control .input.is-active:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):focus,
+ .field.has-addons .control .select select.is-focused:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):active,
+ .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):focus:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):active:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ .field.has-addons .control .input.is-active:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):focus:hover,
+ .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):active:hover,
+ .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+
+.field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ .field.is-grouped > .control {
+ flex-shrink: 0; }
+ .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field.is-horizontal {
+ display: flex; } }
+
+.field-label .label {
+ font-size: inherit; }
+
+@media screen and (max-width: 768px) {
+ .field-label {
+ margin-bottom: 0.5rem; } }
+
+@media screen and (min-width: 769px), print {
+ .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.75rem;
+ padding-top: 0.375em; }
+ .field-label.is-normal {
+ padding-top: 0.375em; }
+ .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+
+.field-body .field .field {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ .field-body .field {
+ margin-bottom: 0; }
+ .field-body > .field {
+ flex-shrink: 1; }
+ .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+
+.control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 1rem;
+ position: relative;
+ text-align: left; }
+ .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ .control.has-icons-right .select:focus ~ .icon {
+ color: #6b6b6b; }
+ .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.75rem; }
+ .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ .control.has-icons-left .icon, .control.has-icons-right .icon {
+ color: #dbdbdb;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ .control.has-icons-left .icon.is-left {
+ left: 0; }
+ .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ .control.has-icons-right .icon.is-right {
+ right: 0; }
+ .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.breadcrumb {
+ font-size: 1rem;
+ white-space: nowrap; }
+ .breadcrumb a {
+ align-items: center;
+ color: #2e63b8;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ .breadcrumb a:hover {
+ color: #363636; }
+ .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ .breadcrumb li:first-child a {
+ padding-left: 0; }
+ .breadcrumb li.is-active a {
+ color: #222222;
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb li + li::before {
+ color: #b5b5b5;
+ content: "\0002f"; }
+ .breadcrumb ul,
+ .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ .breadcrumb.is-centered ol,
+ .breadcrumb.is-centered ul {
+ justify-content: center; }
+ .breadcrumb.is-right ol,
+ .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.75rem; }
+ .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+
+.card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ max-width: 100%;
+ position: relative; }
+
+.card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+
+.card-header-title {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ .card-header-title.is-centered {
+ justify-content: center; }
+
+.card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+
+.card-image {
+ display: block;
+ position: relative; }
+
+.card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+
+.card-footer {
+ background-color: transparent;
+ border-top: 1px solid #dbdbdb;
+ align-items: stretch;
+ display: flex; }
+
+.card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ .card-footer-item:not(:last-child) {
+ border-right: 1px solid #dbdbdb; }
+
+.card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+
+.dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+
+.dropdown-content {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+
+.dropdown-item {
+ color: #4a4a4a;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+
+a.dropdown-item,
+button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ a.dropdown-item:hover,
+ button.dropdown-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ a.dropdown-item.is-active,
+ button.dropdown-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+.dropdown-divider {
+ background-color: #dbdbdb;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+
+.level {
+ align-items: center;
+ justify-content: space-between; }
+ .level code {
+ border-radius: 4px; }
+ .level img {
+ display: inline-block;
+ vertical-align: top; }
+ .level.is-mobile {
+ display: flex; }
+ .level.is-mobile .level-left,
+ .level.is-mobile .level-right {
+ display: flex; }
+ .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level {
+ display: flex; }
+ .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+.level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ .level-item .title,
+ .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+.level-left,
+.level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .level-left .level-item.is-flexible,
+ .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level-left .level-item:not(:last-child),
+ .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+.level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .level-left {
+ display: flex; } }
+.level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ .level-right {
+ display: flex; } }
+.list {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+
+.list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ .list-item:not(a) {
+ color: #222222; }
+ .list-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px; }
+ .list-item:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px; }
+ .list-item:not(:last-child) {
+ border-bottom: 1px solid #dbdbdb; }
+ .list-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+a.list-item {
+ background-color: whitesmoke;
+ cursor: pointer; }
+
+.media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .media .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ .media .media .content:not(:last-child),
+ .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ .media .media .media {
+ padding-top: 0.5rem; }
+ .media .media .media + .media {
+ margin-top: 0.5rem; }
+ .media + .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+
+.media-left,
+.media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.media-left {
+ margin-right: 1rem; }
+
+.media-right {
+ margin-left: 1rem; }
+
+.media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+
+@media screen and (max-width: 768px) {
+ .media-content {
+ overflow-x: auto; } }
+
+.menu {
+ font-size: 1rem; }
+ .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.75rem; }
+ .menu.is-medium {
+ font-size: 1.25rem; }
+ .menu.is-large {
+ font-size: 1.5rem; }
+
+.menu-list {
+ line-height: 1.25; }
+ .menu-list a {
+ border-radius: 2px;
+ color: #222222;
+ display: block;
+ padding: 0.5em 0.75em; }
+ .menu-list a:hover {
+ background-color: whitesmoke;
+ color: #222222; }
+ .menu-list a.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+ .menu-list li ul {
+ border-left: 1px solid #dbdbdb;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+
+.menu-label {
+ color: #6b6b6b;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+
+.message {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .message strong {
+ color: currentColor; }
+ .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .message.is-small, #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.75rem; }
+ .message.is-medium {
+ font-size: 1.25rem; }
+ .message.is-large {
+ font-size: 1.5rem; }
+ .message.is-white {
+ background-color: white; }
+ .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ .message.is-black {
+ background-color: #fafafa; }
+ .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ .message.is-light {
+ background-color: #fafafa; }
+ .message.is-light .message-header {
+ background-color: whitesmoke;
+ color: #363636; }
+ .message.is-light .message-body {
+ border-color: whitesmoke;
+ color: #505050; }
+ .message.is-dark, .content kbd.message {
+ background-color: #fafafa; }
+ .message.is-dark .message-header, .content kbd.message .message-header {
+ background-color: #363636;
+ color: whitesmoke; }
+ .message.is-dark .message-body, .content kbd.message .message-body {
+ border-color: #363636;
+ color: #2a2a2a; }
+ .message.is-primary, .docstring > section > a.message.docs-sourcelink {
+ background-color: #f6fbfd; }
+ .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #4eb5de;
+ color: #fff; }
+ .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #4eb5de;
+ color: #1f556a; }
+ .message.is-link {
+ background-color: #f7f9fd; }
+ .message.is-link .message-header {
+ background-color: #2e63b8;
+ color: #fff; }
+ .message.is-link .message-body {
+ border-color: #2e63b8;
+ color: #264981; }
+ .message.is-info {
+ background-color: #f6fbfe; }
+ .message.is-info .message-header {
+ background-color: #209cee;
+ color: #fff; }
+ .message.is-info .message-body {
+ border-color: #209cee;
+ color: #12537d; }
+ .message.is-success {
+ background-color: #f6fdf9; }
+ .message.is-success .message-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .message.is-success .message-body {
+ border-color: #22c35b;
+ color: #0f361d; }
+ .message.is-warning {
+ background-color: #fffdf5; }
+ .message.is-warning .message-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .message.is-warning .message-body {
+ border-color: #ffdd57;
+ color: #3c3108; }
+ .message.is-danger {
+ background-color: #fff5f5; }
+ .message.is-danger .message-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .message.is-danger .message-body {
+ border-color: #da0b00;
+ color: #9b0c04; }
+
+.message-header {
+ align-items: center;
+ background-color: #222222;
+ border-radius: 4px 4px 0 0;
+ color: #fff;
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.message-body {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #222222;
+ padding: 1.25em 1.5em; }
+ .message-body code,
+ .message-body pre {
+ background-color: white; }
+ .message-body pre code {
+ background-color: transparent; }
+
+.modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ .modal.is-active {
+ display: flex; }
+
+.modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+
+.modal-content,
+.modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ .modal-content,
+ .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+.modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+
+.modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+
+.modal-card-head,
+.modal-card-foot {
+ align-items: center;
+ background-color: whitesmoke;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+
+.modal-card-head {
+ border-bottom: 1px solid #dbdbdb;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.modal-card-title {
+ color: #222222;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+
+.modal-card-foot {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid #dbdbdb; }
+ .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+
+.modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+
+.navbar {
+ background-color: white;
+ min-height: 3.25rem;
+ position: relative;
+ z-index: 30; }
+ .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > .navbar-item,
+ .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-white .navbar-brand .navbar-link:focus,
+ .navbar.is-white .navbar-brand .navbar-link:hover,
+ .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-white .navbar-start > .navbar-item,
+ .navbar.is-white .navbar-start .navbar-link,
+ .navbar.is-white .navbar-end > .navbar-item,
+ .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ .navbar.is-white .navbar-start .navbar-link:focus,
+ .navbar.is-white .navbar-start .navbar-link:hover,
+ .navbar.is-white .navbar-start .navbar-link.is-active,
+ .navbar.is-white .navbar-end > a.navbar-item:focus,
+ .navbar.is-white .navbar-end > a.navbar-item:hover,
+ .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ .navbar.is-white .navbar-end .navbar-link:focus,
+ .navbar.is-white .navbar-end .navbar-link:hover,
+ .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start .navbar-link::after,
+ .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .navbar.is-black .navbar-brand > .navbar-item,
+ .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-black .navbar-brand .navbar-link:focus,
+ .navbar.is-black .navbar-brand .navbar-link:hover,
+ .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-black .navbar-start > .navbar-item,
+ .navbar.is-black .navbar-start .navbar-link,
+ .navbar.is-black .navbar-end > .navbar-item,
+ .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ .navbar.is-black .navbar-start .navbar-link:focus,
+ .navbar.is-black .navbar-start .navbar-link:hover,
+ .navbar.is-black .navbar-start .navbar-link.is-active,
+ .navbar.is-black .navbar-end > a.navbar-item:focus,
+ .navbar.is-black .navbar-end > a.navbar-item:hover,
+ .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ .navbar.is-black .navbar-end .navbar-link:focus,
+ .navbar.is-black .navbar-end .navbar-link:hover,
+ .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-start .navbar-link::after,
+ .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ .navbar.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .navbar.is-light .navbar-brand > .navbar-item,
+ .navbar.is-light .navbar-brand .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-light .navbar-brand .navbar-link:focus,
+ .navbar.is-light .navbar-brand .navbar-link:hover,
+ .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-burger {
+ color: #363636; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-light .navbar-start > .navbar-item,
+ .navbar.is-light .navbar-start .navbar-link,
+ .navbar.is-light .navbar-end > .navbar-item,
+ .navbar.is-light .navbar-end .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ .navbar.is-light .navbar-start .navbar-link:focus,
+ .navbar.is-light .navbar-start .navbar-link:hover,
+ .navbar.is-light .navbar-start .navbar-link.is-active,
+ .navbar.is-light .navbar-end > a.navbar-item:focus,
+ .navbar.is-light .navbar-end > a.navbar-item:hover,
+ .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ .navbar.is-light .navbar-end .navbar-link:focus,
+ .navbar.is-light .navbar-end .navbar-link:hover,
+ .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-start .navbar-link::after,
+ .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #363636; } }
+ .navbar.is-dark, .content kbd.navbar {
+ background-color: #363636;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item,
+ .navbar.is-dark .navbar-brand .navbar-link,
+ .content kbd.navbar .navbar-brand .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-brand .navbar-link:focus,
+ .content kbd.navbar .navbar-brand .navbar-link:focus,
+ .navbar.is-dark .navbar-brand .navbar-link:hover,
+ .content kbd.navbar .navbar-brand .navbar-link:hover,
+ .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger {
+ color: whitesmoke; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item,
+ .navbar.is-dark .navbar-start .navbar-link,
+ .content kbd.navbar .navbar-start .navbar-link,
+ .navbar.is-dark .navbar-end > .navbar-item,
+ .content kbd.navbar .navbar-end > .navbar-item,
+ .navbar.is-dark .navbar-end .navbar-link,
+ .content kbd.navbar .navbar-end .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-start .navbar-link:focus,
+ .content kbd.navbar .navbar-start .navbar-link:focus,
+ .navbar.is-dark .navbar-start .navbar-link:hover,
+ .content kbd.navbar .navbar-start .navbar-link:hover,
+ .navbar.is-dark .navbar-start .navbar-link.is-active,
+ .content kbd.navbar .navbar-start .navbar-link.is-active,
+ .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-end .navbar-link:focus,
+ .content kbd.navbar .navbar-end .navbar-link:focus,
+ .navbar.is-dark .navbar-end .navbar-link:hover,
+ .content kbd.navbar .navbar-end .navbar-link:hover,
+ .navbar.is-dark .navbar-end .navbar-link.is-active,
+ .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after,
+ .navbar.is-dark .navbar-end .navbar-link::after,
+ .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #363636;
+ color: whitesmoke; } }
+ .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ .navbar.is-primary .navbar-brand .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-brand .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ .navbar.is-primary .navbar-brand .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ .navbar.is-primary .navbar-start .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ .navbar.is-primary .navbar-end > .navbar-item,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ .navbar.is-primary .navbar-end .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-start .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ .navbar.is-primary .navbar-start .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ .navbar.is-primary .navbar-start .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-end .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ .navbar.is-primary .navbar-end .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ .navbar.is-primary .navbar-end .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ .navbar.is-primary .navbar-end .navbar-link::after,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #4eb5de;
+ color: #fff; } }
+ .navbar.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .navbar.is-link .navbar-brand > .navbar-item,
+ .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-link .navbar-brand .navbar-link:focus,
+ .navbar.is-link .navbar-brand .navbar-link:hover,
+ .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-link .navbar-start > .navbar-item,
+ .navbar.is-link .navbar-start .navbar-link,
+ .navbar.is-link .navbar-end > .navbar-item,
+ .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ .navbar.is-link .navbar-start .navbar-link:focus,
+ .navbar.is-link .navbar-start .navbar-link:hover,
+ .navbar.is-link .navbar-start .navbar-link.is-active,
+ .navbar.is-link .navbar-end > a.navbar-item:focus,
+ .navbar.is-link .navbar-end > a.navbar-item:hover,
+ .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ .navbar.is-link .navbar-end .navbar-link:focus,
+ .navbar.is-link .navbar-end .navbar-link:hover,
+ .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-start .navbar-link::after,
+ .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; } }
+ .navbar.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .navbar.is-info .navbar-brand > .navbar-item,
+ .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-info .navbar-brand .navbar-link:focus,
+ .navbar.is-info .navbar-brand .navbar-link:hover,
+ .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-info .navbar-start > .navbar-item,
+ .navbar.is-info .navbar-start .navbar-link,
+ .navbar.is-info .navbar-end > .navbar-item,
+ .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ .navbar.is-info .navbar-start .navbar-link:focus,
+ .navbar.is-info .navbar-start .navbar-link:hover,
+ .navbar.is-info .navbar-start .navbar-link.is-active,
+ .navbar.is-info .navbar-end > a.navbar-item:focus,
+ .navbar.is-info .navbar-end > a.navbar-item:hover,
+ .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ .navbar.is-info .navbar-end .navbar-link:focus,
+ .navbar.is-info .navbar-end .navbar-link:hover,
+ .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-start .navbar-link::after,
+ .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #209cee;
+ color: #fff; } }
+ .navbar.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .navbar.is-success .navbar-brand > .navbar-item,
+ .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-success .navbar-brand .navbar-link:focus,
+ .navbar.is-success .navbar-brand .navbar-link:hover,
+ .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-success .navbar-start > .navbar-item,
+ .navbar.is-success .navbar-start .navbar-link,
+ .navbar.is-success .navbar-end > .navbar-item,
+ .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ .navbar.is-success .navbar-start .navbar-link:focus,
+ .navbar.is-success .navbar-start .navbar-link:hover,
+ .navbar.is-success .navbar-start .navbar-link.is-active,
+ .navbar.is-success .navbar-end > a.navbar-item:focus,
+ .navbar.is-success .navbar-end > a.navbar-item:hover,
+ .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ .navbar.is-success .navbar-end .navbar-link:focus,
+ .navbar.is-success .navbar-end .navbar-link:hover,
+ .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-start .navbar-link::after,
+ .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #22c35b;
+ color: #fff; } }
+ .navbar.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > .navbar-item,
+ .navbar.is-warning .navbar-brand .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-brand .navbar-link:focus,
+ .navbar.is-warning .navbar-brand .navbar-link:hover,
+ .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-burger {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-warning .navbar-start > .navbar-item,
+ .navbar.is-warning .navbar-start .navbar-link,
+ .navbar.is-warning .navbar-end > .navbar-item,
+ .navbar.is-warning .navbar-end .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-start .navbar-link:focus,
+ .navbar.is-warning .navbar-start .navbar-link:hover,
+ .navbar.is-warning .navbar-start .navbar-link.is-active,
+ .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-end .navbar-link:focus,
+ .navbar.is-warning .navbar-end .navbar-link:hover,
+ .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start .navbar-link::after,
+ .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); } }
+ .navbar.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > .navbar-item,
+ .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-brand .navbar-link:focus,
+ .navbar.is-danger .navbar-brand .navbar-link:hover,
+ .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-danger .navbar-start > .navbar-item,
+ .navbar.is-danger .navbar-start .navbar-link,
+ .navbar.is-danger .navbar-end > .navbar-item,
+ .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-start .navbar-link:focus,
+ .navbar.is-danger .navbar-start .navbar-link:hover,
+ .navbar.is-danger .navbar-start .navbar-link.is-active,
+ .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-end .navbar-link:focus,
+ .navbar.is-danger .navbar-end .navbar-link:hover,
+ .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-start .navbar-link::after,
+ .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #da0b00;
+ color: #fff; } }
+ .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+ width: 100%; }
+ .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 whitesmoke; }
+ .navbar.is-fixed-bottom, .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom {
+ bottom: 0; }
+ .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 whitesmoke; }
+ .navbar.is-fixed-top {
+ top: 0; }
+
+html.has-navbar-fixed-top,
+body.has-navbar-fixed-top {
+ padding-top: 3.25rem; }
+
+html.has-navbar-fixed-bottom,
+body.has-navbar-fixed-bottom {
+ padding-bottom: 3.25rem; }
+
+.navbar-brand,
+.navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 3.25rem; }
+
+.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+
+.navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+.navbar-burger {
+ color: #4a4a4a;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto; }
+ .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+
+.navbar-menu {
+ display: none; }
+
+.navbar-item,
+.navbar-link {
+ color: #4a4a4a;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .navbar-item .icon:only-child,
+ .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+
+a.navbar-item,
+.navbar-link {
+ cursor: pointer; }
+ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
+ .navbar-link:focus,
+ .navbar-link:focus-within,
+ .navbar-link:hover,
+ .navbar-link.is-active {
+ background-color: #fafafa;
+ color: #2e63b8; }
+
+.navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .navbar-item img {
+ max-height: 1.75rem; }
+ .navbar-item.has-dropdown {
+ padding: 0; }
+ .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 3.25rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ .navbar-item.is-tab:focus, .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #2e63b8; }
+ .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #2e63b8;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #2e63b8;
+ padding-bottom: calc(0.5rem - 3px); }
+
+.navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+
+.navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ .navbar-link:not(.is-arrowless)::after {
+ border-color: #2e63b8;
+ margin-top: -0.375em;
+ right: 1.125em; }
+
+.navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+
+.navbar-divider {
+ background-color: whitesmoke;
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+
+@media screen and (max-width: 1055px) {
+ .navbar > .container {
+ display: block; }
+ .navbar-brand .navbar-item,
+ .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ .navbar-link::after {
+ display: none; }
+ .navbar-menu {
+ background-color: white;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ .navbar-menu.is-active {
+ display: block; }
+ .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-touch {
+ top: 0; }
+ .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto; }
+ html.has-navbar-fixed-top-touch,
+ body.has-navbar-fixed-top-touch {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-touch,
+ body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 3.25rem; } }
+
+@media screen and (min-width: 1056px) {
+ .navbar,
+ .navbar-menu,
+ .navbar-start,
+ .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ .navbar {
+ min-height: 3.25rem; }
+ .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ .navbar.is-spaced .navbar-start,
+ .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ .navbar.is-spaced a.navbar-item,
+ .navbar.is-spaced .navbar-link {
+ border-radius: 4px; }
+ .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active,
+ .navbar.is-transparent .navbar-link:focus,
+ .navbar.is-transparent .navbar-link:hover,
+ .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar-burger {
+ display: none; }
+ .navbar-item,
+ .navbar-link {
+ align-items: center;
+ display: flex; }
+ .navbar-item {
+ display: flex; }
+ .navbar-item.has-dropdown {
+ align-items: stretch; }
+ .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 2px solid #dbdbdb;
+ border-radius: 6px 6px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ .navbar-dropdown {
+ background-color: white;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid #dbdbdb;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed {
+ border-radius: 6px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ .navbar-divider {
+ display: block; }
+ .navbar > .container .navbar-brand,
+ .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ .navbar > .container .navbar-menu,
+ .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.has-navbar-fixed-top-desktop,
+ body.has-navbar-fixed-top-desktop {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-desktop,
+ body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 3.25rem; }
+ html.has-spaced-navbar-fixed-top,
+ body.has-spaced-navbar-fixed-top {
+ padding-top: 5.25rem; }
+ html.has-spaced-navbar-fixed-bottom,
+ body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 5.25rem; }
+ a.navbar-item.is-active,
+ .navbar-link.is-active {
+ color: #0a0a0a; }
+ a.navbar-item.is-active:not(:focus):not(:hover),
+ .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #fafafa; } }
+
+.hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 3.25rem); }
+
+.pagination {
+ font-size: 1rem;
+ margin: -0.25rem; }
+ .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.75rem; }
+ .pagination.is-medium {
+ font-size: 1.25rem; }
+ .pagination.is-large {
+ font-size: 1.5rem; }
+ .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ .pagination.is-rounded .pagination-next,
+ #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+
+.pagination,
+.pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link {
+ border-color: #dbdbdb;
+ color: #363636;
+ min-width: 2.25em; }
+ .pagination-previous:hover,
+ .pagination-next:hover,
+ .pagination-link:hover {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus {
+ border-color: #3c5dcd; }
+ .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled] {
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ color: #6b6b6b;
+ opacity: 0.5; }
+
+.pagination-previous,
+.pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+
+.pagination-link.is-current {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+
+.pagination-ellipsis {
+ color: #b5b5b5;
+ pointer-events: none; }
+
+.pagination-list {
+ flex-wrap: wrap; }
+
+@media screen and (max-width: 768px) {
+ .pagination {
+ flex-wrap: wrap; }
+ .pagination-previous,
+ .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+
+@media screen and (min-width: 769px), print {
+ .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ .pagination-previous {
+ order: 2; }
+ .pagination-next {
+ order: 3; }
+ .pagination {
+ justify-content: space-between; }
+ .pagination.is-centered .pagination-previous {
+ order: 1; }
+ .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ .pagination.is-centered .pagination-next {
+ order: 3; }
+ .pagination.is-right .pagination-previous {
+ order: 1; }
+ .pagination.is-right .pagination-next {
+ order: 2; }
+ .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+
+.panel {
+ font-size: 1rem; }
+ .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.panel-heading,
+.panel-tabs,
+.panel-block {
+ border-bottom: 1px solid #dbdbdb;
+ border-left: 1px solid #dbdbdb;
+ border-right: 1px solid #dbdbdb; }
+ .panel-heading:first-child,
+ .panel-tabs:first-child,
+ .panel-block:first-child {
+ border-top: 1px solid #dbdbdb; }
+
+.panel-heading {
+ background-color: whitesmoke;
+ border-radius: 4px 4px 0 0;
+ color: #222222;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+
+.panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ .panel-tabs a {
+ border-bottom: 1px solid #dbdbdb;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ .panel-tabs a.is-active {
+ border-bottom-color: #4a4a4a;
+ color: #363636; }
+
+.panel-list a {
+ color: #222222; }
+ .panel-list a:hover {
+ color: #2e63b8; }
+
+.panel-block {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ .panel-block.is-active {
+ border-left-color: #2e63b8;
+ color: #363636; }
+ .panel-block.is-active .panel-icon {
+ color: #2e63b8; }
+
+a.panel-block,
+label.panel-block {
+ cursor: pointer; }
+ a.panel-block:hover,
+ label.panel-block:hover {
+ background-color: whitesmoke; }
+
+.panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: #6b6b6b;
+ margin-right: 0.75em; }
+ .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+
+.tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 1rem;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ .tabs a {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #222222;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ .tabs a:hover {
+ border-bottom-color: #222222;
+ color: #222222; }
+ .tabs li {
+ display: block; }
+ .tabs li.is-active a {
+ border-bottom-color: #2e63b8;
+ color: #2e63b8; }
+ .tabs ul {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ .tabs ul.is-left {
+ padding-right: 0.75em; }
+ .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ .tabs.is-centered ul {
+ justify-content: center; }
+ .tabs.is-right ul {
+ justify-content: flex-end; }
+ .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .tabs.is-boxed a:hover {
+ background-color: whitesmoke;
+ border-bottom-color: #dbdbdb; }
+ .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-bottom-color: transparent !important; }
+ .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .tabs.is-toggle a {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ .tabs.is-toggle a:hover {
+ background-color: whitesmoke;
+ border-color: #b5b5b5;
+ z-index: 2; }
+ .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ .tabs.is-toggle li:first-child a {
+ border-radius: 4px 0 0 4px; }
+ .tabs.is-toggle li:last-child a {
+ border-radius: 0 4px 4px 0; }
+ .tabs.is-toggle li.is-active a {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff;
+ z-index: 1; }
+ .tabs.is-toggle ul {
+ border-bottom: none; }
+ .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.75rem; }
+ .tabs.is-medium {
+ font-size: 1.25rem; }
+ .tabs.is-large {
+ font-size: 1.5rem; }
+
+.column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ .column.is-narrow-mobile {
+ flex: none; }
+ .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ .column.is-narrow, .column.is-narrow-tablet {
+ flex: none; }
+ .column.is-full, .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters, .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds, .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half, .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third, .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter, .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth, .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths, .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths, .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths, .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ .column.is-offset-half, .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ .column.is-offset-one-third, .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ .column.is-0, .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0, .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ .column.is-1, .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1, .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ .column.is-2, .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2, .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ .column.is-3, .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3, .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ .column.is-4, .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4, .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ .column.is-5, .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5, .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ .column.is-6, .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6, .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ .column.is-7, .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7, .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ .column.is-8, .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8, .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ .column.is-9, .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9, .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ .column.is-10, .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10, .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ .column.is-11, .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11, .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ .column.is-12, .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12, .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ .column.is-narrow-touch {
+ flex: none; }
+ .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-touch {
+ margin-left: 50%; }
+ .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-touch {
+ margin-left: 0%; }
+ .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-touch {
+ margin-left: 25%; }
+ .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-touch {
+ margin-left: 50%; }
+ .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-touch {
+ margin-left: 75%; }
+ .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ .column.is-narrow-desktop {
+ flex: none; }
+ .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ .column.is-narrow-widescreen {
+ flex: none; }
+ .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ .column.is-narrow-fullhd {
+ flex: none; }
+ .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+.columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .columns:last-child {
+ margin-bottom: -0.75rem; }
+ .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ .columns.is-centered {
+ justify-content: center; }
+ .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ .columns.is-mobile {
+ display: flex; }
+ .columns.is-multiline {
+ flex-wrap: wrap; }
+ .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-desktop {
+ display: flex; } }
+.columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+.tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .tile.is-child {
+ margin: 0 !important; }
+ .tile.is-parent {
+ padding: 0.75rem; }
+ .tile.is-vertical {
+ flex-direction: column; }
+ .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ .tile:not(.is-child) {
+ display: flex; }
+ .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+.hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ .hero .navbar {
+ background: none; }
+ .hero .tabs ul {
+ border-bottom: none; }
+ .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-white strong {
+ color: inherit; }
+ .hero.is-white .title {
+ color: #0a0a0a; }
+ .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ .hero.is-white .subtitle a:not(.button),
+ .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-white .navbar-menu {
+ background-color: white; } }
+ .hero.is-white .navbar-item,
+ .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active,
+ .hero.is-white .navbar-link:hover,
+ .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-black strong {
+ color: inherit; }
+ .hero.is-black .title {
+ color: white; }
+ .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-black .subtitle a:not(.button),
+ .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ .hero.is-black .navbar-item,
+ .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active,
+ .hero.is-black .navbar-link:hover,
+ .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ .hero.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-light strong {
+ color: inherit; }
+ .hero.is-light .title {
+ color: #363636; }
+ .hero.is-light .subtitle {
+ color: rgba(54, 54, 54, 0.9); }
+ .hero.is-light .subtitle a:not(.button),
+ .hero.is-light .subtitle strong {
+ color: #363636; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-light .navbar-menu {
+ background-color: whitesmoke; } }
+ .hero.is-light .navbar-item,
+ .hero.is-light .navbar-link {
+ color: rgba(54, 54, 54, 0.7); }
+ .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active,
+ .hero.is-light .navbar-link:hover,
+ .hero.is-light .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .hero.is-light .tabs a {
+ color: #363636;
+ opacity: 0.9; }
+ .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a {
+ color: #363636; }
+ .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }
+ .hero.is-dark, .content kbd.hero {
+ background-color: #363636;
+ color: whitesmoke; }
+ .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-dark strong,
+ .content kbd.hero strong {
+ color: inherit; }
+ .hero.is-dark .title, .content kbd.hero .title {
+ color: whitesmoke; }
+ .hero.is-dark .subtitle, .content kbd.hero .subtitle {
+ color: rgba(245, 245, 245, 0.9); }
+ .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button),
+ .hero.is-dark .subtitle strong,
+ .content kbd.hero .subtitle strong {
+ color: whitesmoke; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu {
+ background-color: #363636; } }
+ .hero.is-dark .navbar-item, .content kbd.hero .navbar-item,
+ .hero.is-dark .navbar-link,
+ .content kbd.hero .navbar-link {
+ color: rgba(245, 245, 245, 0.7); }
+ .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active,
+ .hero.is-dark .navbar-link:hover,
+ .content kbd.hero .navbar-link:hover,
+ .hero.is-dark .navbar-link.is-active,
+ .content kbd.hero .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .hero.is-dark .tabs a, .content kbd.hero .tabs a {
+ color: whitesmoke;
+ opacity: 0.9; }
+ .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a {
+ color: whitesmoke; }
+ .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .hero.is-dark.is-bold, .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }
+ .hero.is-primary, .docstring > section > a.hero.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-primary strong,
+ .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ .hero.is-primary .subtitle strong,
+ .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #4eb5de; } }
+ .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ .hero.is-primary .navbar-link,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ .hero.is-primary .navbar-link:hover,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ .hero.is-primary .navbar-link.is-active,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #4eb5de; }
+ .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } }
+ .hero.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-link strong {
+ color: inherit; }
+ .hero.is-link .title {
+ color: #fff; }
+ .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-link .subtitle a:not(.button),
+ .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-link .navbar-menu {
+ background-color: #2e63b8; } }
+ .hero.is-link .navbar-item,
+ .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active,
+ .hero.is-link .navbar-link:hover,
+ .hero.is-link .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #2e63b8; }
+ .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } }
+ .hero.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-info strong {
+ color: inherit; }
+ .hero.is-info .title {
+ color: #fff; }
+ .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-info .subtitle a:not(.button),
+ .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-info .navbar-menu {
+ background-color: #209cee; } }
+ .hero.is-info .navbar-item,
+ .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active,
+ .hero.is-info .navbar-link:hover,
+ .hero.is-info .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #209cee; }
+ .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } }
+ .hero.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-success strong {
+ color: inherit; }
+ .hero.is-success .title {
+ color: #fff; }
+ .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-success .subtitle a:not(.button),
+ .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-success .navbar-menu {
+ background-color: #22c35b; } }
+ .hero.is-success .navbar-item,
+ .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active,
+ .hero.is-success .navbar-link:hover,
+ .hero.is-success .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #22c35b; }
+ .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } }
+ .hero.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-warning strong {
+ color: inherit; }
+ .hero.is-warning .title {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .subtitle {
+ color: rgba(0, 0, 0, 0.9); }
+ .hero.is-warning .subtitle a:not(.button),
+ .hero.is-warning .subtitle strong {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (max-width: 1055px) {
+ .hero.is-warning .navbar-menu {
+ background-color: #ffdd57; } }
+ .hero.is-warning .navbar-item,
+ .hero.is-warning .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active,
+ .hero.is-warning .navbar-link:hover,
+ .hero.is-warning .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9; }
+ .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } }
+ .hero.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-danger strong {
+ color: inherit; }
+ .hero.is-danger .title {
+ color: #fff; }
+ .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-danger .subtitle a:not(.button),
+ .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-danger .navbar-menu {
+ background-color: #da0b00; } }
+ .hero.is-danger .navbar-item,
+ .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active,
+ .hero.is-danger .navbar-link:hover,
+ .hero.is-danger .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #da0b00; }
+ .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } }
+ .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .hero.is-halfheight {
+ min-height: 50vh; }
+ .hero.is-fullheight {
+ min-height: 100vh; }
+
+.hero-video {
+ overflow: hidden; }
+ .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ .hero-video {
+ display: none; } }
+.hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .hero-buttons .button {
+ display: flex; }
+ .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+.hero-head,
+.hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+
+.section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ .section.is-medium {
+ padding: 9rem 1.5rem; }
+ .section.is-large {
+ padding: 18rem 1.5rem; } }
+.footer {
+ background-color: #fafafa;
+ padding: 3rem 1.5rem 6rem; }
+
+h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited {
+ color: #222222; }
+
+h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+
+h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+
+.docs-dark-only {
+ display: none !important; }
+
+pre {
+ position: relative;
+ overflow: hidden; }
+ pre code, pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ pre code:first-of-type, pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ pre code:last-of-type, pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #222222;
+ cursor: pointer;
+ text-align: center; }
+ pre .copy-button:focus, pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(34, 34, 34, 0.1);
+ color: #2e63b8; }
+ pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ pre:hover .copy-button {
+ opacity: 1; }
+
+.admonition {
+ background-color: #b5b5b5;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #363636;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .admonition strong {
+ color: currentColor; }
+ .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.75rem; }
+ .admonition.is-medium {
+ font-size: 1.25rem; }
+ .admonition.is-large {
+ font-size: 1.5rem; }
+ .admonition.is-default {
+ background-color: #b5b5b5;
+ border-color: #363636; }
+ .admonition.is-default > .admonition-header {
+ background-color: #363636;
+ color: #fff; }
+ .admonition.is-default > .admonition-body {
+ color: #fff; }
+ .admonition.is-info {
+ background-color: #def0fc;
+ border-color: #209cee; }
+ .admonition.is-info > .admonition-header {
+ background-color: #209cee;
+ color: #fff; }
+ .admonition.is-info > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-success {
+ background-color: #bdf4d1;
+ border-color: #22c35b; }
+ .admonition.is-success > .admonition-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .admonition.is-success > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning {
+ background-color: #fff3c5;
+ border-color: #ffdd57; }
+ .admonition.is-warning > .admonition-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-danger {
+ background-color: #ffaba7;
+ border-color: #da0b00; }
+ .admonition.is-danger > .admonition-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .admonition.is-danger > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-compat {
+ background-color: #bdeff5;
+ border-color: #1db5c9; }
+ .admonition.is-compat > .admonition-header {
+ background-color: #1db5c9;
+ color: #fff; }
+ .admonition.is-compat > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+
+.admonition-header {
+ color: #fff;
+ background-color: #363636;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+
+.admonition-body {
+ color: #222222;
+ padding: 0.5rem 0.75rem; }
+ .admonition-body pre {
+ background-color: whitesmoke; }
+ .admonition-body code {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #dbdbdb;
+ box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1);
+ max-width: 100%; }
+ .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: whitesmoke;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > header code {
+ background-color: transparent; }
+ .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > section:last-child {
+ border-bottom: none; }
+ .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+
+.documenter-example-output {
+ background-color: white; }
+
+.outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #ffaba7;
+ color: rgba(0, 0, 0, 0.7);
+ border-bottom: 3px solid #da0b00;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ .outdated-warning-overlay a {
+ color: #2e63b8; }
+ .outdated-warning-overlay a:hover {
+ color: #363636; }
+
+.content pre {
+ border: 1px solid #dbdbdb; }
+
+.content code {
+ font-weight: inherit; }
+
+.content a code {
+ color: #2e63b8; }
+
+.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code {
+ color: #222222; }
+
+.content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+
+.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+
+pre, code {
+ font-variant-ligatures: no-contextual; }
+
+.breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover {
+ color: #222222; }
+
+.hljs {
+ background: initial !important; }
+
+.katex .katex-mathml {
+ top: 0;
+ right: 0; }
+
+.katex-display, mjx-container, .MathJax_Display {
+ margin: 0.5em 0 !important; }
+
+html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+
+li.no-marker {
+ list-style: none; }
+
+/* This file contain the overall layout.
+ *
+ * The main container is
that is identified by id #documenter.
+ */
+#documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+@media screen and (min-width: 1056px) {
+ #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+
+@media screen and (max-width: 1055px) {
+ #documenter .docs-main {
+ width: 100%; }
+ #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-main > header, #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+
+#documenter .docs-main header.docs-navbar {
+ background-color: white;
+ border-bottom: 1px solid #dbdbdb;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #bbb;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+#documenter .docs-main section.footnotes {
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+
+#documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #dbdbdb;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+
+#documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #0a0a0a;
+ background-color: whitesmoke;
+ border-right: 1px solid #dbdbdb;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 1rem;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #bbb; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #0a0a0a; }
+ #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #dbdbdb;
+ display: none;
+ padding: 0.5rem; }
+ #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #dbdbdb;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 0.95rem;
+ margin-left: 1em;
+ border-left: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 0.75rem;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #0a0a0a;
+ background: whitesmoke; }
+ #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #0a0a0a;
+ background-color: #ebebeb; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #dbdbdb;
+ border-bottom: 1px solid #dbdbdb;
+ background-color: white; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: white;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #ebebeb;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 0.85rem;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+#documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+
+#documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+
+.ansi span.sgr1 {
+ font-weight: bolder; }
+
+.ansi span.sgr2 {
+ font-weight: lighter; }
+
+.ansi span.sgr3 {
+ font-style: italic; }
+
+.ansi span.sgr4 {
+ text-decoration: underline; }
+
+.ansi span.sgr7 {
+ color: white;
+ background-color: #222222; }
+
+.ansi span.sgr8 {
+ color: transparent; }
+ .ansi span.sgr8 span {
+ color: transparent; }
+
+.ansi span.sgr9 {
+ text-decoration: line-through; }
+
+.ansi span.sgr30 {
+ color: #242424; }
+
+.ansi span.sgr31 {
+ color: #a7201f; }
+
+.ansi span.sgr32 {
+ color: #066f00; }
+
+.ansi span.sgr33 {
+ color: #856b00; }
+
+.ansi span.sgr34 {
+ color: #2149b0; }
+
+.ansi span.sgr35 {
+ color: #7d4498; }
+
+.ansi span.sgr36 {
+ color: #007989; }
+
+.ansi span.sgr37 {
+ color: gray; }
+
+.ansi span.sgr40 {
+ background-color: #242424; }
+
+.ansi span.sgr41 {
+ background-color: #a7201f; }
+
+.ansi span.sgr42 {
+ background-color: #066f00; }
+
+.ansi span.sgr43 {
+ background-color: #856b00; }
+
+.ansi span.sgr44 {
+ background-color: #2149b0; }
+
+.ansi span.sgr45 {
+ background-color: #7d4498; }
+
+.ansi span.sgr46 {
+ background-color: #007989; }
+
+.ansi span.sgr47 {
+ background-color: gray; }
+
+.ansi span.sgr90 {
+ color: #616161; }
+
+.ansi span.sgr91 {
+ color: #cb3c33; }
+
+.ansi span.sgr92 {
+ color: #0e8300; }
+
+.ansi span.sgr93 {
+ color: #a98800; }
+
+.ansi span.sgr94 {
+ color: #3c5dcd; }
+
+.ansi span.sgr95 {
+ color: #9256af; }
+
+.ansi span.sgr96 {
+ color: #008fa3; }
+
+.ansi span.sgr97 {
+ color: whitesmoke; }
+
+.ansi span.sgr100 {
+ background-color: #616161; }
+
+.ansi span.sgr101 {
+ background-color: #cb3c33; }
+
+.ansi span.sgr102 {
+ background-color: #0e8300; }
+
+.ansi span.sgr103 {
+ background-color: #a98800; }
+
+.ansi span.sgr104 {
+ background-color: #3c5dcd; }
+
+.ansi span.sgr105 {
+ background-color: #9256af; }
+
+.ansi span.sgr106 {
+ background-color: #008fa3; }
+
+.ansi span.sgr107 {
+ background-color: whitesmoke; }
+
+code.language-julia-repl > span.hljs-meta {
+ color: #066f00;
+ font-weight: bolder; }
+
+/*!
+ Theme: Default
+ Description: Original highlight.js style
+ Author: (c) Ivan Sagalaev
+ Maintainer: @highlightjs/core-team
+ Website: https://highlightjs.org/
+ License: see project LICENSE
+ Touched: 2021
+*/
+/*
+This is left on purpose making default.css the single file that can be lifted
+as-is from the repository directly without the need for a build step
+
+Typically this "required" baseline CSS is added by `makestuff.js` during build.
+*/
+pre code.hljs {
+ display: block;
+ overflow-x: auto; }
+
+code.hljs {
+ padding: 3px 5px; }
+
+/* end baseline CSS */
+.hljs {
+ background: #F0F0F0;
+ color: #444; }
+
+/* Base color: saturation 0; */
+.hljs-subst {
+ /* default */ }
+
+/* purposely ignored */
+.hljs-comment {
+ color: #888888; }
+
+.hljs-tag,
+.hljs-punctuation {
+ color: #444a; }
+
+.hljs-tag .hljs-name,
+.hljs-tag .hljs-attr {
+ color: #444; }
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta .hljs-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold; }
+
+/* User color: hue: 0 */
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000; }
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold; }
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-operator,
+.hljs-selector-pseudo {
+ color: #BC6060; }
+
+/* Language color: hue: 90; */
+.hljs-literal {
+ color: #78A960; }
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #397300; }
+
+/* Meta color: hue: 200 */
+.hljs-meta {
+ color: #1f7199; }
+
+.hljs-meta .hljs-string {
+ color: #4d99bf; }
+
+/* Misc effects */
+.hljs-emphasis {
+ font-style: italic; }
+
+.hljs-strong {
+ font-weight: bold; }
diff --git a/v0.1.0/assets/themeswap.js b/v0.1.0/assets/themeswap.js
new file mode 100644
index 0000000..c58e993
--- /dev/null
+++ b/v0.1.0/assets/themeswap.js
@@ -0,0 +1,66 @@
+// Small function to quickly swap out themes. Gets put into the tag..
+function set_theme_from_local_storage() {
+ // Intialize the theme to null, which means default
+ var theme = null;
+ // If the browser supports the localstorage and is not disabled then try to get the
+ // documenter theme
+ if(window.localStorage != null) {
+ // Get the user-picked theme from localStorage. May be `null`, which means the default
+ // theme.
+ theme = window.localStorage.getItem("documenter-theme");
+ }
+ // Check if the browser supports user color preference
+ var darkPreference = false;
+ // Check if the users preference is for dark color scheme
+ if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) {
+ darkPreference = true;
+ }
+ // Initialize a few variables for the loop:
+ //
+ // - active: will contain the index of the theme that should be active. Note that there
+ // is no guarantee that localStorage contains sane values. If `active` stays `null`
+ // we either could not find the theme or it is the default (primary) theme anyway.
+ // Either way, we then need to stick to the primary theme.
+ //
+ // - disabled: style sheets that should be disabled (i.e. all the theme style sheets
+ // that are not the currently active theme)
+ var active = null; var disabled = []; var darkTheme = null;
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ // The tag of each style sheet is expected to have a data-theme-name attribute
+ // which must contain the name of the theme. The names in localStorage much match this.
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ // attribute not set => non-theme stylesheet => ignore
+ if(themename === null) continue;
+ // To distinguish the default (primary) theme, it needs to have the data-theme-primary
+ // attribute set.
+ var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
+ // Check if the theme is primary dark theme
+ var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null);
+ // If ss is for dark theme then set the value of darkTheme to the name of the theme
+ if(isDarkTheme) darkTheme = themename;
+ // If we find a matching theme (and it's not the default), we'll set active to non-null
+ if(themename === theme) active = i;
+ // Store the style sheets of inactive themes so that we could disable them
+ if(themename !== theme) disabled.push(ss);
+ }
+ if(active !== null) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+ else if(darkTheme !== null && darkPreference === true) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + darkTheme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) {
+ ss.disabled = true;
+ }
+ });
+ }
+}
+set_theme_from_local_storage();
diff --git a/v0.1.0/assets/warner.js b/v0.1.0/assets/warner.js
new file mode 100644
index 0000000..5531c88
--- /dev/null
+++ b/v0.1.0/assets/warner.js
@@ -0,0 +1,49 @@
+function maybeAddWarning () {
+ // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
+ // in siteinfo.js.
+ // If either of these are undefined something went horribly wrong, so we abort.
+ if (
+ window.DOCUMENTER_NEWEST === undefined ||
+ window.DOCUMENTER_CURRENT_VERSION === undefined ||
+ window.DOCUMENTER_STABLE === undefined
+ ) {
+ return
+ };
+
+ // Current version is not a version number, so we can't tell if it's the newest version. Abort.
+ if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
+ return
+ };
+
+ // Current version is newest version, so no need to add a warning.
+ if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
+ return
+ };
+
+ // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
+ if (document.body.querySelector('meta[name="robots"]') === null) {
+ const meta = document.createElement('meta');
+ meta.name = 'robots';
+ meta.content = 'noindex';
+
+ document.getElementsByTagName('head')[0].appendChild(meta);
+ };
+
+ const div = document.createElement('div');
+ div.classList.add('outdated-warning-overlay');
+ const closer = document.createElement('button');
+ closer.classList.add('outdated-warning-closer', 'delete');
+ closer.addEventListener('click', function () {
+ document.body.removeChild(div);
+ });
+ const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE;
+ div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
+ div.appendChild(closer);
+ document.body.appendChild(div);
+};
+
+if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', maybeAddWarning);
+} else {
+ maybeAddWarning();
+};
diff --git a/v0.1.0/generated/examples/01-tomography.ipynb b/v0.1.0/generated/examples/01-tomography.ipynb
new file mode 100644
index 0000000..dc8f73f
--- /dev/null
+++ b/v0.1.0/generated/examples/01-tomography.ipynb
@@ -0,0 +1,416 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Tomography"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page gives an overview of the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JeffFessler/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[01-tomography.jl](https://github.com/JeffFessler/Sinograms.jl/blob/main/docs/lit/examples/01-tomography.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: fbp\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Tomography\n",
+ "\n",
+ "[Tomography](https://en.wikipedia.org/wiki/Tomography)\n",
+ "is the process of imaging cross sections of an object\n",
+ "without actually slicing the object.\n",
+ "There are many forms of tomography;\n",
+ "the description here\n",
+ "focuses on\n",
+ "[X-ray computed tomography (CT scans)](https://en.wikipedia.org/wiki/CT_scan).\n",
+ "(See\n",
+ "[SPECTrecon.jl](https://github.com/JeffFessler/SPECTrecon.jl)\n",
+ "for a Julia package related to\n",
+ "[SPECT](https://en.wikipedia.org/wiki/Single-photon_emission_computed_tomography)\n",
+ "imaging.)\n",
+ "\n",
+ "In an\n",
+ "[X-ray CT imaging system](http://en.wikipedia.org/wiki/File:Ct-internals.jpg),\n",
+ "X-rays emitted from an X-ray source\n",
+ "are transmitted through an object\n",
+ "(e.g., a patient in medical CT)\n",
+ "towards a detector array.\n",
+ "The source and detector\n",
+ "[rotate rapidly](https://www.youtube.com/watch?v=2CWpZKuy-NE)\n",
+ "around the object.\n",
+ "The signal intensities recorded by the detector\n",
+ "are related\n",
+ "to the sizes and densities\n",
+ "of the object materials\n",
+ "between the source and each detector element.\n",
+ "\n",
+ "\n",
+ "## Radon transform\n",
+ "\n",
+ "The mathematical foundation\n",
+ "for 2D X-ray CT imaging\n",
+ "is the\n",
+ "[Radon transform](https://en.wikipedia.org/wiki/Radon_transform),\n",
+ "an\n",
+ "[integral transform](https://en.wikipedia.org/wiki/Integral_transform)\n",
+ "that maps a 2D function\n",
+ "$f(x,y)$\n",
+ "into the collection of line integrals\n",
+ "through that function.\n",
+ "Here we describe each line\n",
+ "by its angle $\\phi$\n",
+ "measured counter-clockwise from the $y$ axis,\n",
+ "and by the radial distance $r$ of the line from the origin.\n",
+ "The collection of integrals\n",
+ "is called a sinogram.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$ is defined by\n",
+ "$$\n",
+ "p(r,\\phi) = \\int_{-\\infty}^{\\infty}\n",
+ "f(r \\cos \\phi - l \\sin \\phi,\n",
+ "r \\sin \\phi + l \\cos \\phi) \\, \\mathrm{d} l.\n",
+ "$$\n",
+ "\n",
+ "The Radon transform of the object that is 1 inside the unit disk\n",
+ "and 0 elsewhere is given by\n",
+ "$$\n",
+ "p_1(r,\\phi) = 2 \\sqrt{1 - r^2}, \\ \\mathrm{ for } \\ |r| < 1.\n",
+ "$$\n",
+ "\n",
+ "By the Radon transform's translation and scaling properties,\n",
+ "the Radon transform\n",
+ "of a disk of radius $r_0$\n",
+ "centered at $(x_0,y_0)$\n",
+ "is given by\n",
+ "$$\n",
+ "p(r,\\phi) = r_0 \\, p_1\n",
+ "\\left( \\frac{r - (x_0 \\cos \\phi + y_0 \\sin \\phi)}{r_0}, ϕ \\right).\n",
+ "$$\n",
+ "\n",
+ "## Sinogram example\n",
+ "\n",
+ "Here is a display of that Radon transform\n",
+ "for a disk of radius $3$\n",
+ "centered at coordinate $(5,1)$.\n",
+ "Note that maximum value is approximately $6$,\n",
+ "the length of the longest chord\n",
+ "through a disk of radius $3$."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "nr = 128\n",
+ "dr = 20 / nr\n",
+ "r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\n",
+ "na = 130\n",
+ "ϕ = (0:(na-1))/na * π # angular samples\n",
+ "proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\n",
+ "proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\n",
+ "sino = proj2.(r, ϕ', 5, 1, 3)\n",
+ "jimsino = (sino, title) -> jim(\n",
+ " r, ϕ, sino; title, aspect_ratio=:none,\n",
+ " xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n",
+ " yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n",
+ " clim = (0, 6),\n",
+ ")\n",
+ "jimsino(sino, \"Sinogram for one disk\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As this figure illustrates,\n",
+ "the Radon transform of a unit disk\n",
+ "has a somewhat sinusoidal shape.\n",
+ "Indeed every point in the $(x,y)$ plane\n",
+ "traces out a distinct sinusoid\n",
+ "in the sinogram.\n",
+ "\n",
+ "The mapping from the object $f(x,y)$\n",
+ "to data like the sinogram $p(r,\\phi)$\n",
+ "is called the \"forward problem.\"\n",
+ "\n",
+ "\n",
+ "## Image reconstruction\n",
+ "\n",
+ "[Image reconstruction](http://en.wikipedia.org/wiki/Image_reconstruction)\n",
+ "is the process of solving the\n",
+ "[inverse problem](https://en.wikipedia.org/wiki/Inverse_problem)\n",
+ "of recovering an estimate $\\hat{f}(x,y)$\n",
+ "of the object $f(x,y)$\n",
+ "from a measured sinogram,\n",
+ "i.e.,\n",
+ "from (usually noisy) samples of $p(r,\\phi)$.\n",
+ "\n",
+ "\n",
+ "## FBP\n",
+ "\n",
+ "A simple image reconstruction method\n",
+ "is called the\n",
+ "\"filtered back-projection\" (FBP) approach.\n",
+ "It works by filtering each row of the sinogram\n",
+ "with a filter,\n",
+ "called the\n",
+ "[ramp filter](https://en.wikipedia.org/wiki/Radon_transform#Radon_inversion_formula),\n",
+ "whose frequency response\n",
+ "is roughly $|\\nu|$,\n",
+ "where $\\nu$ is the spatial frequency variable\n",
+ "(units cycles / m),\n",
+ "followed by a\n",
+ "[back-projection](https://en.wikipedia.org/wiki/Radon_transform#Dual_transform)\n",
+ "step that is the\n",
+ "[adjoint](https://en.wikipedia.org/wiki/Hermitian_adjoint)\n",
+ "of the Radon transform.\n",
+ "\n",
+ "\n",
+ "### FBP example\n",
+ "\n",
+ "Here is an illustration\n",
+ "of using the `fbp` method\n",
+ "in this package\n",
+ "to perform image reconstruction\n",
+ "from the preceding sinogram."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "image = fbp(sino; dr)\n",
+ "(nx,ny) = size(image)\n",
+ "dx = dr # default\n",
+ "x = ((-(nx-1)/2):((nx-1)/2)) * dr\n",
+ "y = x\n",
+ "jim(x, y, image, \"FBP image\",\n",
+ " xtick=[-10, 0, 2, 5, 8, 10],\n",
+ " ytick=[-10, 0, -2, 1, 4, 10],\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The FBP reconstructed image\n",
+ "looks pretty similar\n",
+ "to a disk of radius $3$\n",
+ "centered at $(5,1)$\n",
+ "as expected.\n",
+ "However,\n",
+ "there are quite a few ripples;\n",
+ "these are\n",
+ "[aliasing](https://en.wikipedia.org/wiki/Aliasing)\n",
+ "artifacts\n",
+ "due to the finite sampling\n",
+ "in $r$ and $\\phi$.\n",
+ "\n",
+ "This is example is what is called\n",
+ "2D parallel-beam tomography,\n",
+ "because for the angles $\\phi$ are equally spaced\n",
+ "and for each angle\n",
+ "the radial samples $r$ are also equally spaced.\n",
+ "This package includes\n",
+ "FBP reconstruction methods\n",
+ "for several other sinogram geometries,\n",
+ "including the well-known fan beam geometries\n",
+ "and the specialized Mojette geometry.\n",
+ "\n",
+ "\n",
+ "## Noise effects on FBP\n",
+ "\n",
+ "Simulating the effects of measurement noise in sinogram\n",
+ "leads to even worse FBP results.\n",
+ "\n",
+ "First note that a practical imaging system\n",
+ "has a finite field of view (FOV):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rmax = maximum(r)\n",
+ "fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\n",
+ "jim(x, y, fovmask, \"FOV mask\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Add noise to the original sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_sinogram = sino + 0.1 * randn(size(sino))\n",
+ "jimsino(noisy_sinogram, \"Noisy sinogram\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Apply FBP to the noisy sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_fbp_image = fbp(noisy_sinogram; dr)\n",
+ "noisy_fbp_image .*= fovmask # apply FOV mask\n",
+ "jim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The methods in this package\n",
+ "(WIP)\n",
+ "and related methods in the\n",
+ "[JuliaImageRecon](https://github.com/JuliaImageRecon)\n",
+ "suite\n",
+ "are designed\n",
+ "to provide better reconstructions\n",
+ "than the simple FBP method.\n",
+ "In particular,\n",
+ "model-based image reconstruction (MBIR) methods\n",
+ "and methods that use suitable machine-learning approaches\n",
+ "can improve image quality significantly.\n",
+ "See this\n",
+ "[2020 survey paper](http://doi.org/10.1109/JPROC.2019.2936204)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Reproducibility"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page was generated with the following version of Julia:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "And with the following package versions"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "import Pkg; Pkg.status()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.7.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.7",
+ "display_name": "Julia 1.7.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.1.0/generated/examples/01-tomography/index.html b/v0.1.0/generated/examples/01-tomography/index.html
new file mode 100644
index 0000000..2b13e22
--- /dev/null
+++ b/v0.1.0/generated/examples/01-tomography/index.html
@@ -0,0 +1,3933 @@
+
+Tomography · Sinograms.jl This page gives an overview of the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 01-tomography.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb
, and opened in binder here: 01-tomography.ipynb
.
Packages needed here.
using Sinograms: fbp
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans) . (See SPECTrecon.jl for a Julia package related to SPECT imaging.)
In an X-ray CT imaging system , X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.
The mathematical foundation for 2D X-ray CT imaging is the Radon transform , an integral transform that maps a 2D function $f(x,y)$ into the collection of line integrals through that function. Here we describe each line by its angle $\phi$ measured counter-clockwise from the $y$ axis, and by the radial distance $r$ of the line from the origin. The collection of integrals is called a sinogram.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined by
\[p(r,\phi) = \int_{-\infty}^{\infty}
+f(r \cos \phi - l \sin \phi,
+r \sin \phi + l \cos \phi) \, \mathrm{d} l.\]
The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by
\[p_1(r,\phi) = 2 \sqrt{1 - r^2}, \ \mathrm{ for } \ |r| < 1.\]
By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius $r_0$ centered at $(x_0,y_0)$ is given by
\[p(r,\phi) = r_0 \, p_1
+\left( \frac{r - (x_0 \cos \phi + y_0 \sin \phi)}{r_0}, ϕ \right).\]
Here is a display of that Radon transform for a disk of radius $3$ centered at coordinate $(5,1)$ . Note that maximum value is approximately $6$ , the length of the longest chord through a disk of radius $3$ .
nr = 128
+dr = 20 / nr
+r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations
+na = 130
+ϕ = (0:(na-1))/na * π # angular samples
+proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.
+proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)
+sino = proj2.(r, ϕ', 5, 1, 3)
+jimsino = (sino, title) -> jim(
+ r, ϕ, sino; title, aspect_ratio=:none,
+ xlabel = "r", ylabel = "ϕ", ylims=(0,π), yticks=([0, π], ["0", "π"]),
+ yflip=false, xticks = [-10, 0, 2, 5, 8, 10],
+ clim = (0, 6),
+)
+jimsino(sino, "Sinogram for one disk")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the $(x,y)$ plane traces out a distinct sinusoid in the sinogram.
The mapping from the object $f(x,y)$ to data like the sinogram $p(r,\phi)$ is called the "forward problem."
Image reconstruction is the process of solving the inverse problem of recovering an estimate $\hat{f}(x,y)$ of the object $f(x,y)$ from a measured sinogram, i.e., from (usually noisy) samples of $p(r,\phi)$ .
A simple image reconstruction method is called the "filtered back-projection" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter , whose frequency response is roughly $|\nu|$ , where $\nu$ is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.
Here is an illustration of using the fbp
method in this package to perform image reconstruction from the preceding sinogram.
image = fbp(sino; dr)
+(nx,ny) = size(image)
+dx = dr # default
+x = ((-(nx-1)/2):((nx-1)/2)) * dr
+y = x
+jim(x, y, image, "FBP image",
+ xtick=[-10, 0, 2, 5, 8, 10],
+ ytick=[-10, 0, -2, 1, 4, 10],
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The FBP reconstructed image looks pretty similar to a disk of radius $3$ centered at $(5,1)$ as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in $r$ and $\phi$ .
This is example is what is called 2D parallel-beam tomography, because for the angles $\phi$ are equally spaced and for each angle the radial samples $r$ are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.
Simulating the effects of measurement noise in sinogram leads to even worse FBP results.
First note that a practical imaging system has a finite field of view (FOV):
rmax = maximum(r)
+fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax
+jim(x, y, fovmask, "FOV mask")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Add noise to the original sinogram:
noisy_sinogram = sino + 0.1 * randn(size(sino))
+jimsino(noisy_sinogram, "Noisy sinogram")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Apply FBP to the noisy sinogram:
noisy_fbp_image = fbp(noisy_sinogram; dr)
+noisy_fbp_image .*= fovmask # apply FOV mask
+jim(x, y, noisy_fbp_image, "Noisy FBP image"; clim=(0,1))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper .
This page was generated with the following version of Julia:
io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\n')
9-element Vector{SubString{String}}:
+ "Julia Version 1.7.3"
+ "Commit 742b9abb4d (2022-05-06 12:58 UTC)"
+ "Platform Info:"
+ " OS: Linux (x86_64-pc-linux-gnu)"
+ " CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz"
+ " WORD_SIZE: 64"
+ " LIBM: libopenlibm"
+ " LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)"
+ ""
And with the following package versions
import Pkg; Pkg.status()
Status `~/work/Sinograms.jl/Sinograms.jl/docs/Project.toml`
+ [39de3d68] AxisArrays v0.4.6
+ [e30172f5] Documenter v0.27.22
+ [98b081ad] Literate v2.13.4
+ [170b2178] MIRTjim v0.11.0
+ [6fe1bfb0] OffsetArrays v1.12.7
+ [91a5bcdd] Plots v1.31.4
+ [02a14def] Sinograms v0.1.0 `~/work/Sinograms.jl/Sinograms.jl`
+ [1986cc42] Unitful v1.11.0
+ [42071c24] UnitfulRecipes v1.5.3
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.22 on Saturday 30 July 2022 . Using Julia version 1.7.3.
diff --git a/v0.1.0/generated/examples/02-sino-geom.ipynb b/v0.1.0/generated/examples/02-sino-geom.ipynb
new file mode 100644
index 0000000..e2431f3
--- /dev/null
+++ b/v0.1.0/generated/examples/02-sino-geom.ipynb
@@ -0,0 +1,352 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 2D sinogram geometry"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page describes the 2D sinogram geometries\n",
+ "available in the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JeffFessler/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[02-sino-geom.jl](https://github.com/JeffFessler/Sinograms.jl/blob/main/docs/lit/examples/02-sino-geom.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Unitful: mm, °\n",
+ "using UnitfulRecipes\n",
+ "using Plots # must precede 'using Sinograms' for sino_plot_rays to work\n",
+ "using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\n",
+ "using Sinograms: sino_plot_rays\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 2D Sinogram geometries\n",
+ "\n",
+ "To perform 2D image reconstruction\n",
+ "from a 2D sinogram,\n",
+ "one must first describe\n",
+ "how the rays in the sinogram are sampled.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$\n",
+ "is defined for all $r$ and $ϕ$\n",
+ "but practical systems\n",
+ "record $p(r,ϕ)$\n",
+ "only for certain finite sets of samples\n",
+ "of those values.\n",
+ "\n",
+ "\n",
+ "## Parallel-beam geometry\n",
+ "\n",
+ "The simplest form of sinogram sampling\n",
+ "is equally spaced samples\n",
+ "in both $r$ and $ϕ$.\n",
+ "This sampling is called a parallel-beam geometry.\n",
+ "(Very few practical systems have this sampling pattern,\n",
+ "but it is an easy place to start.)\n",
+ "Both FBP and iterative reconstruction methods\n",
+ "need to know which values\n",
+ "of $r$ and $ϕ$\n",
+ "are sampled.\n",
+ "\n",
+ "In this package,\n",
+ "`SinoPar`\n",
+ "is the type that describes\n",
+ "a parallel-beam sinogram geometry.\n",
+ "\n",
+ "The built-in defaults provide helpful reminders about the usage."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "SinoPar()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This package supports units via the\n",
+ "[Unitful.jl](https://github.com/PainterQubits/Unitful.jl)\n",
+ "and using units is recommended\n",
+ "(but not required).\n",
+ "\n",
+ "Here is an example of how to specify\n",
+ "a parallel-beam geometry.\n",
+ "Everything is a named keyword argument with sensible default values.\n",
+ "\n",
+ "* `orbit` and `orbit_start` must both be unitless (degrees)\n",
+ " or have the same units (e.g., degrees or radians).\n",
+ "* detector spacing `d` and `strip_width`\n",
+ " must both be unitless or have the same units (e.g., mm).\n",
+ "* The projection angles $ϕ$ are equally space and given by\n",
+ " `orbit_start + (0:(nb-1))/nb * orbit`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoPar( ;\n",
+ " nb = 64, # number of radial samples (\"bins\")\n",
+ " na = 30, # number of angular samples\n",
+ " d = 2mm, # detector spacing\n",
+ " offset = 0.25, # quarter detector offset (unitless)\n",
+ " orbit = 180, # angular range (in degrees)\n",
+ " orbit_start = 0, # starting angle (in degrees)\n",
+ " strip_width = 2mm, # detector width\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The struct `sg` has numerous useful properties;\n",
+ "type `?SinoGeom` to see the full list.\n",
+ "\n",
+ "For example,\n",
+ "to access the angular samples in degrees\n",
+ "type `sg.ad`"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg.ad"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following function visualizes the sampling pattern."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with an arc detector (3rd generation CT)\n",
+ "\n",
+ "For a fan-beam geometry,\n",
+ "the arguments are the same as for `SinoPar`\n",
+ "with the addition of specifying:\n",
+ "* `dsd` distance from source to detector\n",
+ "* `dod` distance from origin (isocenter) to detector\n",
+ "* `dfs` distance from focal point of detector to source\n",
+ " (0 for a 3rd gen arc detector, and `Inf` for a flat detector)\n",
+ "* `source_offset` for misaligned systems\n",
+ " where the ray from the source to the detector center\n",
+ " does not intersect the isocenter.\n",
+ " Not fully supported; submit an issue if you need this feature.\n",
+ "\n",
+ "Here is an example that corresponds to a GE Lightspeed CT system.\n",
+ "These numbers are published in\n",
+ "[IEEE T-MI Oct. 2006, p.1272-1283](http://doi.org/10.1109/TMI.2006.882141)."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb=888, na=984,\n",
+ " d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a smaller example for plotting the rays."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)\n",
+ "sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for arc detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with a flat detector\n",
+ "\n",
+ "This geometry is the same as the arc detector\n",
+ "except that `dfs=Inf`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanFlat( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for flat detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Mojette sampling\n",
+ "This is a specialized sampling geometry\n",
+ "that is currently incompletely supported."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "SinoMoj()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.7.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.7",
+ "display_name": "Julia 1.7.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.1.0/generated/examples/02-sino-geom/index.html b/v0.1.0/generated/examples/02-sino-geom/index.html
new file mode 100644
index 0000000..78297a8
--- /dev/null
+++ b/v0.1.0/generated/examples/02-sino-geom/index.html
@@ -0,0 +1,6029 @@
+
+2D sinogram geometry · Sinograms.jl This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 02-sino-geom.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb
, and opened in binder here: 02-sino-geom.ipynb
.
Packages needed here.
using Unitful: mm, °
+using UnitfulRecipes
+using Plots # must precede 'using Sinograms' for sino_plot_rays to work
+using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan
+using Sinograms: sino_plot_rays
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined for all $r$ and $ϕ$ but practical systems record $p(r,ϕ)$ only for certain finite sets of samples of those values.
The simplest form of sinogram sampling is equally spaced samples in both $r$ and $ϕ$ . This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of $r$ and $ϕ$ are sampled.
In this package, SinoPar
is the type that describes a parallel-beam sinogram geometry.
The built-in defaults provide helpful reminders about the usage.
SinoPar()
SinoPar{Float32, Float32} :
+ nb::Int64 128
+ na::Int64 200
+ d::Float32 1.0
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.0
+ strip_width::Float32 1.0
+
This package supports units via the Unitful.jl and using units is recommended (but not required).
Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.
orbit
and orbit_start
must both be unitless (degrees) or have the same units (e.g., degrees or radians).detector spacing d
and strip_width
must both be unitless or have the same units (e.g., mm). The projection angles $ϕ$ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit
. sg = SinoPar( ;
+ nb = 64, # number of radial samples ("bins")
+ na = 30, # number of angular samples
+ d = 2mm, # detector spacing
+ offset = 0.25, # quarter detector offset (unitless)
+ orbit = 180, # angular range (in degrees)
+ orbit_start = 0, # starting angle (in degrees)
+ strip_width = 2mm, # detector width
+)
SinoPar{Unitful.Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ na::Int64 30
+ d::Unit{Float32} 2.0f0 mm
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.25
+ strip_width::Unit{Float32} 2.0f0 mm
+
The struct sg
has numerous useful properties; type ?SinoGeom
to see the full list.
For example, to access the angular samples in degrees type sg.ad
sg.ad
30-element LinRange{Float32, Int64}:
+ 0.0,6.0,12.0,18.0,24.0,30.0,36.0,42.0,…,144.0,150.0,156.0,162.0,168.0,174.0
The following function visualizes the sampling pattern.
sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title="Parallel")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
For a fan-beam geometry, the arguments are the same as for SinoPar
with the addition of specifying:
dsd
distance from source to detectordod
distance from origin (isocenter) to detectordfs
distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf
for a flat detector)source_offset
for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 .
sg = SinoFanArc( ; nb=888, na=984,
+ d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 888
+ na::Int64 984
+ d::Unit{Float64} 1.0239 mm
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ offset::Float32 1.25
+ strip_width::Unit{Float64} 1.0239 mm
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 949.075 mm
+ dod::Unit{Float64} 408.075 mm
+ dfs::Unit{Float64} 0.0 mm
+
Here is a smaller example for plotting the rays.
sg = SinoFanArc( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
+sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for arc detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This geometry is the same as the arc detector except that dfs=Inf
.
sg = SinoFanFlat( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
SinoFanFlat{Unitful.Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ na::Int64 30
+ d::Unit{Float32} 20.0f0 mm
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.25
+ strip_width::Unit{Float32} 20.0f0 mm
+ source_offset::Unit{Float32} 0.0f0 mm
+ dsd::Unit{Float32} 900.0f0 mm
+ dod::Unit{Float32} 400.0f0 mm
+ dfs::Unit{Float32} Inf32 mm
+
Here is its sampling plot
sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for flat detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This is a specialized sampling geometry that is currently incompletely supported.
SinoMoj()
SinoMoj{Float32, Float32} :
+ nb::Int64 128
+ na::Int64 200
+ d::Float32 1.0
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.0
+ strip_width::Float32 1.0
+
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.22 on Saturday 30 July 2022 . Using Julia version 1.7.3.
diff --git a/v0.1.0/index.html b/v0.1.0/index.html
new file mode 100644
index 0000000..184cde6
--- /dev/null
+++ b/v0.1.0/index.html
@@ -0,0 +1,2 @@
+
+Home · Sinograms.jl Sinograms.jl
is a Julia language package with tools for tomographic image reconstruction, including
describing ray geometries (parallel beam, fan beam, etc.) ✅ performing filtered back-projection (FBP) image reconstruction ✅ system models for iterative reconstruction (WIP) See the examples.
See also:
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.22 on Saturday 30 July 2022 . Using Julia version 1.7.3.
diff --git a/v0.1.0/methods/index.html b/v0.1.0/methods/index.html
new file mode 100644
index 0000000..4d14284
--- /dev/null
+++ b/v0.1.0/methods/index.html
@@ -0,0 +1,46 @@
+
+Methods · Sinograms.jl SinoFan(Val(:ge1))
Sinogram geometry for GE lightspeed system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
source SinoFanArc : 2D fan-beam sinogram geometry for arc detector
julia> SinoFanArc()
+SinoFanArc{Float32, Float32} :
+ nb::Int64 128
+ na::Int64 200
+ d::Float32 1.0
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.0
+ strip_width::Float32 1.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ dfs::Float32 0.0
source SinoFanArc( ; nb, na, d=1, orbit=360, orbit_start=0, offset=0, strip_width=d,
+ source_offset = 0, dsd= 4 * nb * d, dod = nb * d, dfs = 0, down=0)
Constructor with named keywords.
orbit
and orbit_start
must both be unitless (degrees) or have same units.
d
, strip_width
, source_offset
, dsd
, dod
, dfs
must all be unitless or have the same units.
nb::Int = 128
# of radial bins
na::Int = 2 * floor(Int, nb * π/2 / 2)
# of projection angles
source SinoFanFlat : 2D fan-beam sinogram geometry for flat detector
julia> SinoFanFlat()
+SinoFanFlat{Float32, Float32} :
+ nb::Int64 128
+ na::Int64 200
+ d::Float32 1.0
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.0
+ strip_width::Float32 1.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ dfs::Float32 Inf
source SinoFanFlat( ; nb, na, d=1, orbit=360, orbit_start=0, offset=0, strip_width=d,
+ source_offset = 0, dsd= 4 * nb * d, dod = nb * d, dfs = Inf, down=0)
Constructor with named keywords.
orbit
and orbit_start
must both be unitless (degrees) or have same units.
d
, strip_width
, source_offset
, dsd
, dod
, dfs
must all be unitless or have the same units.
nb::Int = 128
# of radial bins
na::Int = 2 * floor(Int, nb * π/2 / 2)
# of projection angles
source SinoGeom
Abstract type for representing 2D sinogram ray geometries.
Basic methods:
dims
(nb, na)sino_s
[nb] s sample locationssino_w
(nb-1)/2 + offset
('middle' sample position)rays
(rgrid, ϕgrid)
[nb na] parallel-beam coordinatesones
ones(Float32, nb, na)
zeros
zeros(Float32, nb, na)
downsample
oversample
angles
(na) in degreesDerived values (available by getproperty
), i.e., sg.?
.dim
dimensions: (nb,na)
.ds|dr
radial sample spacing (NaN
for :moj
).s
[nb] s sample locations.w
(nb-1)/2 + offset
('middle' sample position).ad
source angles [degrees].ar
source angles [radians].ones
ones(Float32, nb,na)
.zeros
zeros(Float32, nb,na)
.rfov
radial fov.xds
[nb] center of detector elements (beta=0).yds
[nb] ''.plot_grid(scatter)
plot sg.grid
using Plots.scatter
For mojette:
For fan beam:
.gamma
[nb] gamma sample values [radians]
.gamma_max
half of fan angle [radians]
.dso
dsd - dod, Inf for parallel beam
dsd dis_src_det
distance from source to detector
dso dis_src_iso
distance from source to isocenter
dod dis_iso_det
distance from isocenter to detector
dfs dis_foc_src
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors)
Methods
.down(down)
reduce sampling by integer factor.shape(sino)
reshape sinograms into array [nb na :].unitv(;ib,ia)
unit 'vector' with single nonzero element.taufun(x,y)
projected s/ds for each (x,y) pair [numel(x) na].plot!(plot!;ig)
plot system geometry (mostly for SinoFan)source SinoMoj : 2D Mojette sinogram geometry
+where `d` means `dx` (square pixel size), and `strip_width` may be ignored.
julia> SinoMoj()
+SinoMoj{Float32, Float32} :
+ nb::Int64 128
+ na::Int64 200
+ d::Float32 1.0
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.0
+ strip_width::Float32 1.0
source SinoMoj( ; nb, na, d=1, orbit=180, orbit_start=0, offset=0, strip_width=d, down=0)
Constructor with named keywords.
orbit
and orbit_start
must both be unitless (degrees) or have same units.
d
and strip_width
must both be unitless or have the same units.
d
means dx
(square pixel size)
strip_width
may be ignored (todo).
nb::Int = 128
# of radial bins
na::Int = 2 * floor(Int, nb * π/2 / 2)
# of projection angles
source SinoPar : 2D parallel-beam sinogram geometry
julia> SinoPar()
+SinoPar{Float32, Float32} :
+ nb::Int64 128
+ na::Int64 200
+ d::Float32 1.0
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ offset::Float32 0.0
+ strip_width::Float32 1.0
source SinoPar( ; nb, na, d=1, orbit=180, orbit_start=0, offset=0, strip_width=d, down=0)
Constructor with named keywords.
orbit
and orbit_start
must both be unitless (degrees) or have same units.
d
and strip_width
must both be unitless or have the same units.
nb::Int = 128
# of radial bins
na::Int = 2 * floor(Int, nb * π/2 / 2)
# of projection angles
source Window{S,T}
Data type for FBP apodizing windows.
source WindowVect{V} <: AbstractWindowShape
A user-specified window vector, constructed via WindowVect(v::V)
, where v
is a AbstractVector
. Caution: length(v)
must be appropriate for the padded sinogram size.
source show(io::IO, ::MIME"text/plain", sg::SinoGeom)
source _reale(x ; rtol = …)
Return the real part of x
, but warn if the imaginary part is too large. By default this uses a 100× larger rtol
than isapprox
due to FFT errors.
source sg = downsample(sg, down)
Down-sample sinogram geometry (for testing with small problems).
source fbp!(image, sino ; orbit::Real = 180, kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Writes result into image
matrix.
Input
Options for SinoPar
constructor
dr
: sinogram radial spacing; default 1orbit
: angular range in degrees; default 180orbit_start
: angular range in degrees; default 0Options for ImageGeom
dx
, dy
, deltas
, offset_x
, offset_y
, offsets
rmax
maximum radius for maskOptions
kwargs
: passed to plan_fbp
Output
image::AbstractMatrix
is mutatedsource image, sino_filt = fbp(plan, sino)
Filtered back-projection (FBP) reconstruction, returning image and filtered sinogram.
in
plan::FBPplan
sino::AbstractMatrix{<:Number}
out
image::Matrix{<:Number}
reconstructed image(s)sino_filt::Matrix{<:Number}
filtered sinogram(s)source fbp(sino::AbstractMatrix ; kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Returns an image of size [nx × ny]
.
Options
nx
: default nr
ny
: default nx
kwargs
: passed to fbp!
source img = fbp_back(sg, ig, sino ; ia_skip)
2D pixel-driven backprojection for FBP.
in
sg::SinoGeom
ig::ImageGeom
sino::AbstractArray{<:Number}
sinogram(s) (line integrals), usually ramp filteredoptions
ia_skip::Int
downsample in angle to save time for quick tests (default: 1)out
img::Array{<:Number}
reconstructed image(s)source Hk = fbp_filter(sg::SinoGeom ;
+ npad=0, ds::RealU = sg.d, decon1::Bool=true, window=Window())
Compute frequency response of ramp-like filter used for 2D FBP image reconstruction. Both parallel-beam and fan-beam tomographic geometries are supported. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
options
npad::Int
# of padded samples. (default: next power of 2)decon1::Bool
deconvolve effect of linear interpolator? (default: true)window::Window
apodizer; default: Window()
out
Hk::Vector
apodized ramp filter frequency responsesource h, n = fbp_ramp(sg::SinoGeom, N::Int)
'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
sg::SinoGeom
N::Int
: # of samples (must be even)out
h::Vector{<:RealU}
: samples of band-limited ramp filtern::UnitRange{Int64}
: -(N÷2):(N÷2-1)source sino = fbp_sino_filter(sg::SinoGeom, sino, filter ; extra=0)
Apply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Both parallel-beam and fan-beam tomographic geometries are supported. todo?
in
sg::SinoGeom
sino::AbstractArray{<:Number}
[nb (L)]
sinogramsfilter::AbstractVector
(npad ≥ nb)
apodized ramp filter frequency responseoptions
extra::Int
# of extra sinogram radial samples to keep (default: 0)npad::Int
# of padded samples. (default: next power of 2)out
sino::AbstractArray
sinogram with filtered rowssource fbp_sino_weight(sg::SinoFan)
Return 1D sinogram weighting for first step of 2D fan-beam FBP.
source fbp_window(w::Window, N::Int ; T = Float32)
Create an apodizing window of length N
and fftshift
it.
source sg = oversample(sg, over::Int)
Over-sample sinogram geometry in "radial" dimension. For Mojette sampling, it means that d = dx/over
.
source parker_weight(sg::SinoGeom ; T = Float32)
Compute Parker weighting for non-360° orbits. Returns Vector{T}
of length sg.na
.
source plan = plan_fbp(sg, ig; how=:normal, window=Window())
Plan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.
To use this, you first call it with the sinogram and image geometry. The routine returns the initialized "plan". Thereafter, to to perform FBP reconstruction, call fbp
with the plan (perhaps numerous times for the same geometry).
in
sg::SinoGeom
ig::ImageGeom
# only reconstruct pixels within ig.mask
.options
how::Symbol
how to reconstruct:normal
default:mojette
use mojette rebinning and Gtomo2_tablewindow::Window
e.g. Window(Hamming(0.5))
; default Window()
= npad::Int
# of radial bins after padding; default nextpow(2, sg.nb + 1)
-T::DataType
type of sino elements (default: Float32
)
out
plan::FBPplan
initialized plansource (r, ϕ) = rays(sg::SinoGeom)
Radial r
and angular ϕ
coordinates (in radians) of all sinogram elements for the given geometry.
source reshaper(x::AbstractArray, dim:Dims)
Reshape x
to size dim
with :
only if needed
source sino_geom_gamma(sg::SinoFan)
Return gamma (fan angle) values for fan-beam geometry
source sino_geom_rfov(sg::SinoGeom)
Radial FOV.
source sino_geom_taufun(sg::SinoGeom, x, y)
Projected s/ds
, useful for footprint center and support. Returns Matrix
of size length(x) × sg.na
.
source sino_geom_unitv([T=Float32], sg:SinoGeom ; ib::Int, ia::Int)
Sinogram with a single ray
source sino_geom_xds(sg::SinoGeom)
Center x
positions of detectors (for beta = 0).
source sino_geom_yds(sg::SinoGeom)
Center y
positions of detectors (for beta = 0).
source sino_plot_rays(sg::SinoGeom ; kwargs...)
Make a scatter plot of the (r, ϕ)
sample locations for all rays. Requires Plots
.
source output = zwart_powell(r, ϕ)
Analytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r
(normalized by pixel size) and angle ϕ
(in radians).
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.22 on Saturday 30 July 2022 . Using Julia version 1.7.3.
diff --git a/v0.1.0/search/index.html b/v0.1.0/search/index.html
new file mode 100644
index 0000000..95ad146
--- /dev/null
+++ b/v0.1.0/search/index.html
@@ -0,0 +1,2 @@
+
+Search · Sinograms.jl
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.22 on Saturday 30 July 2022 . Using Julia version 1.7.3.
diff --git a/v0.1.0/search_index.js b/v0.1.0/search_index.js
new file mode 100644
index 0000000..505bbab
--- /dev/null
+++ b/v0.1.0/search_index.js
@@ -0,0 +1,3 @@
+var documenterSearchIndex = {"docs":
+[{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"EditURL = \"https://github.com/JeffFessler/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/02-sino-geom.jl\"","category":"page"},{"location":"generated/examples/02-sino-geom/#sino-geom","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated from a single Julia file: 02-sino-geom.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb, and opened in binder here: 02-sino-geom.ipynb.","category":"page"},{"location":"generated/examples/02-sino-geom/#Setup","page":"2D sinogram geometry","title":"Setup","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Packages needed here.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"using Unitful: mm, °\nusing UnitfulRecipes\nusing Plots # must precede 'using Sinograms' for sino_plot_rays to work\nusing Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\nusing Sinograms: sino_plot_rays\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/02-sino-geom/#D-Sinogram-geometries","page":"2D sinogram geometry","title":"2D Sinogram geometries","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined for all r and ϕ but practical systems record p(rϕ) only for certain finite sets of samples of those values.","category":"page"},{"location":"generated/examples/02-sino-geom/#Parallel-beam-geometry","page":"2D sinogram geometry","title":"Parallel-beam geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The simplest form of sinogram sampling is equally spaced samples in both r and ϕ. This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of r and ϕ are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In this package, SinoPar is the type that describes a parallel-beam sinogram geometry.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The built-in defaults provide helpful reminders about the usage.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"SinoPar()","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This package supports units via the Unitful.jl and using units is recommended (but not required).","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"orbit and orbit_start must both be unitless (degrees) or have the same units (e.g., degrees or radians).\ndetector spacing d and strip_width must both be unitless or have the same units (e.g., mm).\nThe projection angles ϕ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoPar( ;\n nb = 64, # number of radial samples (\"bins\")\n na = 30, # number of angular samples\n d = 2mm, # detector spacing\n offset = 0.25, # quarter detector offset (unitless)\n orbit = 180, # angular range (in degrees)\n orbit_start = 0, # starting angle (in degrees)\n strip_width = 2mm, # detector width\n)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The struct sg has numerous useful properties; type ?SinoGeom to see the full list.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For example, to access the angular samples in degrees type sg.ad","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg.ad","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following function visualizes the sampling pattern.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-an-arc-detector-(3rd-generation-CT)","page":"2D sinogram geometry","title":"Fan-beam CT with an arc detector (3rd generation CT)","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For a fan-beam geometry, the arguments are the same as for SinoPar with the addition of specifying:","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"dsd distance from source to detector\ndod distance from origin (isocenter) to detector\ndfs distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf for a flat detector)\nsource_offset for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanArc( ; nb=888, na=984,\n d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a smaller example for plotting the rays.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanArc( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)\nsino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for arc detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-a-flat-detector","page":"2D sinogram geometry","title":"Fan-beam CT with a flat detector","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This geometry is the same as the arc detector except that dfs=Inf.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanFlat( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for flat detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Mojette-sampling","page":"2D sinogram geometry","title":"Mojette sampling","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This is a specialized sampling geometry that is currently incompletely supported.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"SinoMoj()","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated using Literate.jl.","category":"page"},{"location":"methods/#Methods-list","page":"Methods","title":"Methods list","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"","category":"page"},{"location":"methods/#Methods-usage","page":"Methods","title":"Methods usage","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"Modules = [Sinograms]","category":"page"},{"location":"methods/#Sinograms.Sinograms","page":"Methods","title":"Sinograms.Sinograms","text":"Sinograms module\n\n\n\n\n\n","category":"module"},{"location":"methods/#Sinograms.SinoFan-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.SinoFan","text":"SinoFan(Val(:ge1))\n\nSinogram geometry for GE lightspeed system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanArc","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc : 2D fan-beam sinogram geometry for arc detector\n\njulia> SinoFanArc()\nSinoFanArc{Float32, Float32} :\n nb::Int64 128\n na::Int64 200\n d::Float32 1.0\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n offset::Float32 0.0\n strip_width::Float32 1.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n dfs::Float32 0.0\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc( ; nb, na, d=1, orbit=360, orbit_start=0, offset=0, strip_width=d,\n source_offset = 0, dsd= 4 * nb * d, dod = nb * d, dfs = 0, down=0)\n\nConstructor with named keywords.\n\norbit and orbit_start must both be unitless (degrees) or have same units.\nd, strip_width, source_offset, dsd, dod, dfs must all be unitless or have the same units.\nnb::Int = 128 # of radial bins\nna::Int = 2 * floor(Int, nb * π/2 / 2) # of projection angles\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanFlat","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat : 2D fan-beam sinogram geometry for flat detector\n\njulia> SinoFanFlat()\nSinoFanFlat{Float32, Float32} :\n nb::Int64 128\n na::Int64 200\n d::Float32 1.0\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n offset::Float32 0.0\n strip_width::Float32 1.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n dfs::Float32 Inf\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanFlat-Tuple{}","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat( ; nb, na, d=1, orbit=360, orbit_start=0, offset=0, strip_width=d,\n source_offset = 0, dsd= 4 * nb * d, dod = nb * d, dfs = Inf, down=0)\n\nConstructor with named keywords.\n\norbit and orbit_start must both be unitless (degrees) or have same units.\nd, strip_width, source_offset, dsd, dod, dfs must all be unitless or have the same units.\nnb::Int = 128 # of radial bins\nna::Int = 2 * floor(Int, nb * π/2 / 2) # of projection angles\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoGeom","page":"Methods","title":"Sinograms.SinoGeom","text":"SinoGeom\n\nAbstract type for representing 2D sinogram ray geometries.\n\nBasic methods:\n\ndims (nb, na)\nsino_s [nb] s sample locations\nsino_w (nb-1)/2 + offset ('middle' sample position)\nrays (rgrid, ϕgrid) [nb na] parallel-beam coordinates\nones ones(Float32, nb, na)\nzeros zeros(Float32, nb, na)\ndownsample\noversample\nangles (na) in degrees\n\nDerived values (available by getproperty), i.e., sg.?\n\n.dim dimensions: (nb,na)\n.ds|dr radial sample spacing (NaN for :moj)\n.s [nb] s sample locations\n.w (nb-1)/2 + offset ('middle' sample position)\n.ad source angles [degrees]\n.ar source angles [radians]\n.ones ones(Float32, nb,na)\n.zeros zeros(Float32, nb,na)\n.rfov radial fov\n.xds [nb] center of detector elements (beta=0)\n.yds [nb] ''\n.plot_grid(scatter) plot sg.grid using Plots.scatter\n\nFor mojette:\n\n.d_ang [na]\n\nFor fan beam:\n\n.gamma [nb] gamma sample values [radians]\n.gamma_max half of fan angle [radians]\n.dso dsd - dod, Inf for parallel beam\ndsd dis_src_det distance from source to detector\ndso dis_src_iso distance from source to isocenter\ndod dis_iso_det distance from isocenter to detector\ndfs dis_foc_src distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n\nMethods\n\n.down(down) reduce sampling by integer factor\n.shape(sino) reshape sinograms into array [nb na :]\n.unitv(;ib,ia) unit 'vector' with single nonzero element\n.taufun(x,y) projected s/ds for each (x,y) pair [numel(x) na]\n.plot!(plot!;ig)plot system geometry (mostly for SinoFan)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj : 2D Mojette sinogram geometry\nwhere `d` means `dx` (square pixel size), and `strip_width` may be ignored.\n\njulia> SinoMoj()\nSinoMoj{Float32, Float32} :\n nb::Int64 128\n na::Int64 200\n d::Float32 1.0\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n offset::Float32 0.0\n strip_width::Float32 1.0\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj-Tuple{}","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj( ; nb, na, d=1, orbit=180, orbit_start=0, offset=0, strip_width=d, down=0)\n\nConstructor with named keywords.\n\norbit and orbit_start must both be unitless (degrees) or have same units.\nd and strip_width must both be unitless or have the same units.\nd means dx (square pixel size)\nstrip_width may be ignored (todo).\nnb::Int = 128 # of radial bins\nna::Int = 2 * floor(Int, nb * π/2 / 2) # of projection angles\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoPar","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar : 2D parallel-beam sinogram geometry\n\njulia> SinoPar()\nSinoPar{Float32, Float32} :\n nb::Int64 128\n na::Int64 200\n d::Float32 1.0\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n offset::Float32 0.0\n strip_width::Float32 1.0\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoPar-Tuple{}","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar( ; nb, na, d=1, orbit=180, orbit_start=0, offset=0, strip_width=d, down=0)\n\nConstructor with named keywords.\n\norbit and orbit_start must both be unitless (degrees) or have same units.\nd and strip_width must both be unitless or have the same units.\nnb::Int = 128 # of radial bins\nna::Int = 2 * floor(Int, nb * π/2 / 2) # of projection angles\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.Window","page":"Methods","title":"Sinograms.Window","text":"Window{S,T}\n\nData type for FBP apodizing windows.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.WindowVect","page":"Methods","title":"Sinograms.WindowVect","text":"WindowVect{V} <: AbstractWindowShape\n\nA user-specified window vector, constructed via WindowVect(v::V), where v is a AbstractVector. Caution: length(v) must be appropriate for the padded sinogram size.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Base.show-Tuple{IO, MIME{Symbol(\"text/plain\")}, SinoGeom}","page":"Methods","title":"Base.show","text":"show(io::IO, ::MIME\"text/plain\", sg::SinoGeom)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._reale-Tuple{Any}","page":"Methods","title":"Sinograms._reale","text":"_reale(x ; rtol = …)\n\nReturn the real part of x, but warn if the imaginary part is too large. By default this uses a 100× larger rtol than isapprox due to FFT errors.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Union{Tuple{S}, Tuple{S, Int64}} where S<:SinoParallel","page":"Methods","title":"Sinograms.downsample","text":"sg = downsample(sg, down)\n\nDown-sample sinogram geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp!-Tuple{AbstractMatrix{<:Number}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp!","text":"fbp!(image, sino ; orbit::Real = 180, kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Writes result into image matrix.\n\nInput\n\nsino::AbstractMatrix\n\nOptions for SinoPar constructor\n\ndr : sinogram radial spacing; default 1\norbit : angular range in degrees; default 180\norbit_start : angular range in degrees; default 0\n\nOptions for ImageGeom\n\ndx, dy, deltas, offset_x, offset_y, offsets\nrmax maximum radius for mask\n\nOptions\n\nkwargs : passed to plan_fbp\n\nOutput\n\nimage::AbstractMatrix is mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Tuple{Sinograms.NormalPlan, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp","text":"image, sino_filt = fbp(plan, sino)\n\nFiltered back-projection (FBP) reconstruction, returning image and filtered sinogram.\n\nin\n\nplan::FBPplan\nsino::AbstractMatrix{<:Number}\n\nout\n\nimage::Matrix{<:Number} reconstructed image(s)\nsino_filt::Matrix{<:Number} filtered sinogram(s)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Union{Tuple{AbstractMatrix{Ts}}, Tuple{Ts}} where Ts<:Number","page":"Methods","title":"Sinograms.fbp","text":"fbp(sino::AbstractMatrix ; kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Returns an image of size [nx × ny].\n\nOptions\n\nnx : default nr\nny : default nx\nkwargs : passed to fbp!\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back","page":"Methods","title":"Sinograms.fbp_back","text":"img = fbp_back(sg, ig, sino ; ia_skip)\n\n2D pixel-driven backprojection for FBP.\n\nin\n\nsg::SinoGeom\nig::ImageGeom\nsino::AbstractArray{<:Number} sinogram(s) (line integrals), usually ramp filtered\n\noptions\n\nia_skip::Int downsample in angle to save time for quick tests (default: 1)\n\nout\n\nimg::Array{<:Number} reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_filter-Union{Tuple{}, Tuple{SinoGeom{Td}}, Tuple{Td}} where Td<:Number","page":"Methods","title":"Sinograms.fbp_filter","text":"Hk = fbp_filter(sg::SinoGeom ;\n npad=0, ds::RealU = sg.d, decon1::Bool=true, window=Window())\n\nCompute frequency response of ramp-like filter used for 2D FBP image reconstruction. Both parallel-beam and fan-beam tomographic geometries are supported. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nsg::SinoGeom\n\noptions\n\nnpad::Int # of padded samples. (default: next power of 2)\ndecon1::Bool deconvolve effect of linear interpolator? (default: true)\nwindow::Window apodizer; default: Window()\n\nout\n\nHk::Vector apodized ramp filter frequency response\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_ramp-Union{Tuple{Td}, Tuple{SinoPar{Td}, Int64}} where Td","page":"Methods","title":"Sinograms.fbp_ramp","text":"h, n = fbp_ramp(sg::SinoGeom, N::Int)\n\n'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nsg::SinoGeom\nN::Int : # of samples (must be even)\n\nout\n\nh::Vector{<:RealU} : samples of band-limited ramp filter\nn::UnitRange{Int64} : -(N÷2):(N÷2-1)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_filter-Union{Tuple{Tf}, Tuple{Ts}, Tuple{N}, Tuple{AbstractArray{Ts, N}, AbstractVector{Tf}}} where {N, Ts<:Number, Tf<:Number}","page":"Methods","title":"Sinograms.fbp_sino_filter","text":"sino = fbp_sino_filter(sg::SinoGeom, sino, filter ; extra=0)\n\nApply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Both parallel-beam and fan-beam tomographic geometries are supported. todo?\n\nin\n\nsg::SinoGeom\nsino::AbstractArray{<:Number} [nb (L)] sinograms\nfilter::AbstractVector (npad ≥ nb) apodized ramp filter frequency response\n\noptions\n\nextra::Int # of extra sinogram radial samples to keep (default: 0)\nnpad::Int # of padded samples. (default: next power of 2)\n\nout\n\nsino::AbstractArray sinogram with filtered rows\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_weight-Tuple{SinoFan}","page":"Methods","title":"Sinograms.fbp_sino_weight","text":"fbp_sino_weight(sg::SinoFan)\n\nReturn 1D sinogram weighting for first step of 2D fan-beam FBP.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_window-Tuple{Window, Int64}","page":"Methods","title":"Sinograms.fbp_window","text":"fbp_window(w::Window, N::Int ; T = Float32)\n\nCreate an apodizing window of length N and fftshift it.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.oversample-Union{Tuple{S}, Tuple{S, Int64}} where S<:SinoParallel","page":"Methods","title":"Sinograms.oversample","text":"sg = oversample(sg, over::Int)\n\nOver-sample sinogram geometry in \"radial\" dimension. For Mojette sampling, it means that d = dx/over.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.parker_weight-Tuple{SinoPar}","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(sg::SinoGeom ; T = Float32)\n\nCompute Parker weighting for non-360° orbits. Returns Vector{T} of length sg.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(sg, ig; how=:normal, window=Window())\n\nPlan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.\n\nTo use this, you first call it with the sinogram and image geometry. The routine returns the initialized \"plan\". Thereafter, to to perform FBP reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nsg::SinoGeom\nig::ImageGeom # only reconstruct pixels within ig.mask.\n\noptions\n\nhow::Symbol how to reconstruct\n:normal default\n:mojette use mojette rebinning and Gtomo2_table\nwindow::Window e.g. Window(Hamming(0.5)); default Window()\n\n= npad::Int # of radial bins after padding; default nextpow(2, sg.nb + 1) -T::DataType type of sino elements (default: Float32)\n\nout\n\nplan::FBPplan initialized plan\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.rays-Union{Tuple{SinoPar{Td, To}}, Tuple{To}, Tuple{Td}} where {Td, To}","page":"Methods","title":"Sinograms.rays","text":"(r, ϕ) = rays(sg::SinoGeom)\n\nRadial r and angular ϕ coordinates (in radians) of all sinogram elements for the given geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.reshaper-Tuple{AbstractArray, Tuple{Vararg{Int64, N}} where N}","page":"Methods","title":"Sinograms.reshaper","text":"reshaper(x::AbstractArray, dim:Dims)\n\nReshape x to size dim with : only if needed\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_gamma-Union{Tuple{SinoFanArc{Td}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms.sino_geom_gamma","text":"sino_geom_gamma(sg::SinoFan)\n\nReturn gamma (fan angle) values for fan-beam geometry\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_rfov-Tuple{SinoPar}","page":"Methods","title":"Sinograms.sino_geom_rfov","text":"sino_geom_rfov(sg::SinoGeom)\n\nRadial FOV.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_taufun-Union{Tuple{Ty}, Tuple{Tx}, Tuple{To}, Tuple{Td}, Tuple{SinoGeom{Td, To}, AbstractArray{Tx}, AbstractArray{Ty}}} where {Td<:Number, To<:Number, Tx<:Number, Ty<:Number}","page":"Methods","title":"Sinograms.sino_geom_taufun","text":"sino_geom_taufun(sg::SinoGeom, x, y)\n\nProjected s/ds, useful for footprint center and support. Returns Matrix of size length(x) × sg.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_unitv-Tuple{DataType, SinoGeom}","page":"Methods","title":"Sinograms.sino_geom_unitv","text":"sino_geom_unitv([T=Float32], sg:SinoGeom ; ib::Int, ia::Int)\n\nSinogram with a single ray\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_xds-Tuple{SinoPar}","page":"Methods","title":"Sinograms.sino_geom_xds","text":"sino_geom_xds(sg::SinoGeom)\n\nCenter x positions of detectors (for beta = 0).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_yds-Union{Tuple{SinoPar{Td}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms.sino_geom_yds","text":"sino_geom_yds(sg::SinoGeom)\n\nCenter y positions of detectors (for beta = 0).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_plot_rays-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_plot_rays","text":"sino_plot_rays(sg::SinoGeom ; kwargs...)\n\nMake a scatter plot of the (r, ϕ) sample locations for all rays. Requires Plots.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.zwart_powell-Tuple{Real, Real}","page":"Methods","title":"Sinograms.zwart_powell","text":"output = zwart_powell(r, ϕ)\n\nAnalytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r (normalized by pixel size) and angle ϕ (in radians).\n\n\n\n\n\n","category":"method"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Sinograms","category":"page"},{"location":"#Sinograms.jl-Documentation","page":"Home","title":"Sinograms.jl Documentation","text":"","category":"section"},{"location":"#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Sinograms.jl is a Julia language package with tools for tomographic image reconstruction, including","category":"page"},{"location":"","page":"Home","title":"Home","text":"describing ray geometries (parallel beam, fan beam, etc.) ✅\nperforming filtered back-projection (FBP) image reconstruction ✅\nsystem models for iterative reconstruction (WIP)","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the examples.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See also:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Michigan Image Reconstruction Toolbox (MIRT)\nJuliaImageRecon","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"EditURL = \"https://github.com/JeffFessler/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/01-tomography.jl\"","category":"page"},{"location":"generated/examples/01-tomography/#tomography","page":"Tomography","title":"Tomography","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"This page gives an overview of the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"This page was generated from a single Julia file: 01-tomography.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb, and opened in binder here: 01-tomography.ipynb.","category":"page"},{"location":"generated/examples/01-tomography/#Setup","page":"Tomography","title":"Setup","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Packages needed here.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"using Sinograms: fbp\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/01-tomography/#Tomography","page":"Tomography","title":"Tomography","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans). (See SPECTrecon.jl for a Julia package related to SPECT imaging.)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"In an X-ray CT imaging system, X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.","category":"page"},{"location":"generated/examples/01-tomography/#Radon-transform","page":"Tomography","title":"Radon transform","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The mathematical foundation for 2D X-ray CT imaging is the Radon transform, an integral transform that maps a 2D function f(xy) into the collection of line integrals through that function. Here we describe each line by its angle phi measured counter-clockwise from the y axis, and by the radial distance r of the line from the origin. The collection of integrals is called a sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"p(rphi) = int_-infty^infty\nf(r cos phi - l sin phi\nr sin phi + l cos phi) mathrmd l","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"p_1(rphi) = 2 sqrt1 - r^2 mathrm for r 1","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius r_0 centered at (x_0y_0) is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"p(rphi) = r_0 p_1\nleft( fracr - (x_0 cos phi + y_0 sin phi)r_0 ϕ right)","category":"page"},{"location":"generated/examples/01-tomography/#Sinogram-example","page":"Tomography","title":"Sinogram example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Here is a display of that Radon transform for a disk of radius 3 centered at coordinate (51). Note that maximum value is approximately 6, the length of the longest chord through a disk of radius 3.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"nr = 128\ndr = 20 / nr\nr = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\nna = 130\nϕ = (0:(na-1))/na * π # angular samples\nproj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\nproj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\nsino = proj2.(r, ϕ', 5, 1, 3)\njimsino = (sino, title) -> jim(\n r, ϕ, sino; title, aspect_ratio=:none,\n xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n clim = (0, 6),\n)\njimsino(sino, \"Sinogram for one disk\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the (xy) plane traces out a distinct sinusoid in the sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The mapping from the object f(xy) to data like the sinogram p(rphi) is called the \"forward problem.\"","category":"page"},{"location":"generated/examples/01-tomography/#Image-reconstruction","page":"Tomography","title":"Image reconstruction","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Image reconstruction is the process of solving the inverse problem of recovering an estimate hatf(xy) of the object f(xy) from a measured sinogram, i.e., from (usually noisy) samples of p(rphi).","category":"page"},{"location":"generated/examples/01-tomography/#FBP","page":"Tomography","title":"FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"A simple image reconstruction method is called the \"filtered back-projection\" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter, whose frequency response is roughly nu, where nu is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.","category":"page"},{"location":"generated/examples/01-tomography/#FBP-example","page":"Tomography","title":"FBP example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Here is an illustration of using the fbp method in this package to perform image reconstruction from the preceding sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"image = fbp(sino; dr)\n(nx,ny) = size(image)\ndx = dr # default\nx = ((-(nx-1)/2):((nx-1)/2)) * dr\ny = x\njim(x, y, image, \"FBP image\",\n xtick=[-10, 0, 2, 5, 8, 10],\n ytick=[-10, 0, -2, 1, 4, 10],\n)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The FBP reconstructed image looks pretty similar to a disk of radius 3 centered at (51) as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in r and phi.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"This is example is what is called 2D parallel-beam tomography, because for the angles phi are equally spaced and for each angle the radial samples r are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.","category":"page"},{"location":"generated/examples/01-tomography/#Noise-effects-on-FBP","page":"Tomography","title":"Noise effects on FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Simulating the effects of measurement noise in sinogram leads to even worse FBP results.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"First note that a practical imaging system has a finite field of view (FOV):","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"rmax = maximum(r)\nfovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\njim(x, y, fovmask, \"FOV mask\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Add noise to the original sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"noisy_sinogram = sino + 0.1 * randn(size(sino))\njimsino(noisy_sinogram, \"Noisy sinogram\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"Apply FBP to the noisy sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"noisy_fbp_image = fbp(noisy_sinogram; dr)\nnoisy_fbp_image .*= fovmask # apply FOV mask\njim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper.","category":"page"},{"location":"generated/examples/01-tomography/#Reproducibility","page":"Tomography","title":"Reproducibility","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"This page was generated with the following version of Julia:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"And with the following package versions","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"import Pkg; Pkg.status()","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography","title":"Tomography","text":"This page was generated using Literate.jl.","category":"page"}]
+}
diff --git a/v0.1.0/siteinfo.js b/v0.1.0/siteinfo.js
new file mode 100644
index 0000000..a7a85ce
--- /dev/null
+++ b/v0.1.0/siteinfo.js
@@ -0,0 +1 @@
+var DOCUMENTER_CURRENT_VERSION = "v0.1.0";
diff --git a/v0.2 b/v0.2
new file mode 120000
index 0000000..81fd7ba
--- /dev/null
+++ b/v0.2
@@ -0,0 +1 @@
+v0.2.0
\ No newline at end of file
diff --git a/v0.2.0/assets/documenter.js b/v0.2.0/assets/documenter.js
new file mode 100644
index 0000000..6adfbbb
--- /dev/null
+++ b/v0.2.0/assets/documenter.js
@@ -0,0 +1,331 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min',
+ 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min',
+ 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min',
+ 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min',
+ 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min',
+ 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min',
+ 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min',
+ },
+ shim: {
+ "highlight-julia": {
+ "deps": [
+ "highlight"
+ ]
+ },
+ "katex-auto-render": {
+ "deps": [
+ "katex"
+ ]
+ },
+ "headroom-jquery": {
+ "deps": [
+ "jquery",
+ "headroom"
+ ]
+ },
+ "highlight-julia-repl": {
+ "deps": [
+ "highlight"
+ ]
+ }
+}
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) {
+$(document).ready(function() {
+ renderMathInElement(
+ document.body,
+ {
+ "delimiters": [
+ {
+ "left": "$",
+ "right": "$",
+ "display": false
+ },
+ {
+ "left": "$$",
+ "right": "$$",
+ "display": true
+ },
+ {
+ "left": "\\[",
+ "right": "\\]",
+ "display": true
+ }
+ ]
+}
+
+ );
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) {
+$(document).ready(function() {
+ hljs.highlightAll();
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require([], function() {
+function addCopyButtonCallbacks() {
+ for (const el of document.getElementsByTagName("pre")) {
+ const button = document.createElement("button");
+ button.classList.add("copy-button", "fas", "fa-copy");
+ el.appendChild(button);
+
+ const success = function () {
+ button.classList.add("success", "fa-check");
+ button.classList.remove("fa-copy");
+ };
+
+ const failure = function () {
+ button.classList.add("error", "fa-times");
+ button.classList.remove("fa-copy");
+ };
+
+ button.addEventListener("click", function () {
+ copyToClipboard(el.innerText).then(success, failure);
+
+ setTimeout(function () {
+ button.classList.add("fa-copy");
+ button.classList.remove("success", "fa-check", "fa-times");
+ }, 5000);
+ });
+ }
+}
+
+function copyToClipboard(text) {
+ // clipboard API is only available in secure contexts
+ if (window.navigator && window.navigator.clipboard) {
+ return window.navigator.clipboard.writeText(text);
+ } else {
+ return new Promise(function (resolve, reject) {
+ try {
+ const el = document.createElement("textarea");
+ el.textContent = text;
+ el.style.position = "fixed";
+ el.style.opacity = 0;
+ document.body.appendChild(el);
+ el.select();
+ document.execCommand("copy");
+
+ resolve();
+ } catch (err) {
+ reject(err);
+ } finally {
+ document.body.removeChild(el);
+ }
+ });
+ }
+}
+
+if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks);
+} else {
+ addCopyButtonCallbacks();
+}
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
+
+// Manages the top navigation bar (hides it when the user starts scrolling down on the
+// mobile).
+window.Headroom = Headroom; // work around buggy module loading?
+$(document).ready(function() {
+ $('#documenter .docs-navbar').headroom({
+ "tolerance": {"up": 10, "down": 10},
+ });
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Modal settings dialog
+$(document).ready(function() {
+ var settings = $('#documenter-settings');
+ $('#documenter-settings-button').click(function(){
+ settings.toggleClass('is-active');
+ });
+ // Close the dialog if X is clicked
+ $('#documenter-settings button.delete').click(function(){
+ settings.removeClass('is-active');
+ });
+ // Close dialog if ESC is pressed
+ $(document).keyup(function(e) {
+ if (e.keyCode == 27) settings.removeClass('is-active');
+ });
+});
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Manages the showing and hiding of the sidebar.
+$(document).ready(function() {
+ var sidebar = $("#documenter > .docs-sidebar");
+ var sidebar_button = $("#documenter-sidebar-button")
+ sidebar_button.click(function(ev) {
+ ev.preventDefault();
+ sidebar.toggleClass('visible');
+ if (sidebar.hasClass('visible')) {
+ // Makes sure that the current menu item is visible in the sidebar.
+ $("#documenter .docs-menu a.is-active").focus();
+ }
+ });
+ $("#documenter > .docs-main").bind('click', function(ev) {
+ if ($(ev.target).is(sidebar_button)) {
+ return;
+ }
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ });
+})
+
+// Resizes the package name / sitename in the sidebar if it is too wide.
+// Inspired by: https://github.com/davatron5000/FitText.js
+$(document).ready(function() {
+ e = $("#documenter .docs-autofit");
+ function resize() {
+ var L = parseInt(e.css('max-width'), 10);
+ var L0 = e.width();
+ if(L0 > L) {
+ var h0 = parseInt(e.css('font-size'), 10);
+ e.css('font-size', L * h0 / L0);
+ // TODO: make sure it survives resizes?
+ }
+ }
+ // call once and then register events
+ resize();
+ $(window).resize(resize);
+ $(window).on('orientationchange', resize);
+});
+
+// Scroll the navigation bar to the currently selected menu item
+$(document).ready(function() {
+ var sidebar = $("#documenter .docs-menu").get(0);
+ var active = $("#documenter .docs-menu .is-active").get(0);
+ if(typeof active !== 'undefined') {
+ sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+function set_theme(theme) {
+ var active = null;
+ var disabled = [];
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ if(themename === null) continue; // ignore non-theme stylesheets
+ // Find the active theme
+ if(themename === theme) active = ss;
+ else disabled.push(ss);
+ }
+ if(active !== null) {
+ active.disabled = false;
+ if(active.ownerNode.getAttribute("data-theme-primary") === null) {
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ } else {
+ document.getElementsByTagName('html')[0].className = "";
+ }
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+
+ // Store the theme in localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ window.localStorage.setItem("documenter-theme", theme);
+ } else {
+ console.error("Browser does not support window.localStorage");
+ }
+}
+
+// Theme picker setup
+$(document).ready(function() {
+ // onchange callback
+ $('#documenter-themepicker').change(function themepick_callback(ev){
+ var themename = $('#documenter-themepicker option:selected').attr('value');
+ set_theme(themename);
+ });
+
+ // Make sure that the themepicker displays the correct theme when the theme is retrieved
+ // from localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ var theme = window.localStorage.getItem("documenter-theme");
+ if(theme !== null) {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = (e.value === theme);
+ })
+ } else {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = $("html").hasClass(`theme--${e.value}`);
+ })
+ }
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// update the version selector with info from the siteinfo.js and ../versions.js files
+$(document).ready(function() {
+ // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the
+ // siteinfo.js file, we just return immediately and not display the version selector.
+ if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) {
+ return;
+ }
+
+ var version_selector = $("#documenter .docs-version-selector");
+ var version_selector_select = $("#documenter .docs-version-selector select");
+
+ version_selector_select.change(function(x) {
+ target_href = version_selector_select.children("option:selected").get(0).value;
+ window.location.href = target_href;
+ });
+
+ // add the current version to the selector based on siteinfo.js, but only if the selector is empty
+ if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
+ var option = $("" + DOCUMENTER_CURRENT_VERSION + " ");
+ version_selector_select.append(option);
+ }
+
+ if (typeof DOC_VERSIONS !== 'undefined') {
+ var existing_versions = version_selector_select.children("option");
+ var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
+ DOC_VERSIONS.forEach(function(each) {
+ var version_url = documenterBaseURL + "/../" + each;
+ var existing_id = $.inArray(each, existing_versions_texts);
+ // if not already in the version selector, add it as a new option,
+ // otherwise update the old option with the URL and enable it
+ if (existing_id == -1) {
+ var option = $("" + each + " ");
+ version_selector_select.append(option);
+ } else {
+ var option = existing_versions[existing_id];
+ option.value = version_url;
+ option.disabled = false;
+ }
+ });
+ }
+
+ // only show the version selector if the selector has been populated
+ if (version_selector_select.children("option").length > 0) {
+ version_selector.toggleClass("visible");
+ }
+})
+
+})
diff --git a/v0.2.0/assets/logo.jl b/v0.2.0/assets/logo.jl
new file mode 100644
index 0000000..5aa53f6
--- /dev/null
+++ b/v0.2.0/assets/logo.jl
@@ -0,0 +1,29 @@
+using MIRT: sino_geom, ellipse_sino
+using MIRTjim: jim
+using Colors: RGB
+using FileIO: save
+
+const julia_purple = (0.584, 0.345, 0.698)
+const julia_green = (0.22, 0.596, 0.149)
+const julia_red = (0.796, 0.235, 0.2)
+colors = [ julia_purple, julia_green, julia_red, ] # from Luxor.jl
+
+sg = sino_geom(:par, nb=200, na=181, orbit=181)
+
+pars = [
+ [70 0 10 10 0 1];
+ [30 30 10 10 0 1];
+ [0 -60 10 10 0 1];
+]
+
+sino = zeros(sg.dim..., size(pars,1))
+logo = zeros(RGB{Float32}, sg.dim...)
+for ip = 1:3
+ sino[:,:,ip] = ellipse_sino(sg, pars[ip:ip,:])
+ c = RGB{Float32}(colors[ip]...)
+ logo[sino[:,:,ip] .> 0] .= c
+end
+sino = round.(Int, 255*sino/maximum(sino))
+jim(sg.r, sg.ad, sino)
+
+#save("logo.png", logo')
diff --git a/v0.2.0/assets/logo.png b/v0.2.0/assets/logo.png
new file mode 100644
index 0000000..6934bc4
Binary files /dev/null and b/v0.2.0/assets/logo.png differ
diff --git a/v0.2.0/assets/search.js b/v0.2.0/assets/search.js
new file mode 100644
index 0000000..c133f74
--- /dev/null
+++ b/v0.2.0/assets/search.js
@@ -0,0 +1,267 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min',
+ 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ }
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'lunr', 'lodash'], function($, lunr, _) {
+
+$(document).ready(function() {
+ // parseUri 1.2.2
+ // (c) Steven Levithan
+ // MIT License
+ function parseUri (str) {
+ var o = parseUri.options,
+ m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
+ uri = {},
+ i = 14;
+
+ while (i--) uri[o.key[i]] = m[i] || "";
+
+ uri[o.q.name] = {};
+ uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
+ if ($1) uri[o.q.name][$1] = $2;
+ });
+
+ return uri;
+ };
+ parseUri.options = {
+ strictMode: false,
+ key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
+ q: {
+ name: "queryKey",
+ parser: /(?:^|&)([^&=]*)=?([^&]*)/g
+ },
+ parser: {
+ strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+ loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
+ }
+ };
+
+ $("#search-form").submit(function(e) {
+ e.preventDefault()
+ })
+
+ // list below is the lunr 2.1.3 list minus the intersect with names(Base)
+ // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with)
+ // ideally we'd just filter the original list but it's not available as a variable
+ lunr.stopWordFilter = lunr.generateStopWordFilter([
+ 'a',
+ 'able',
+ 'about',
+ 'across',
+ 'after',
+ 'almost',
+ 'also',
+ 'am',
+ 'among',
+ 'an',
+ 'and',
+ 'are',
+ 'as',
+ 'at',
+ 'be',
+ 'because',
+ 'been',
+ 'but',
+ 'by',
+ 'can',
+ 'cannot',
+ 'could',
+ 'dear',
+ 'did',
+ 'does',
+ 'either',
+ 'ever',
+ 'every',
+ 'from',
+ 'got',
+ 'had',
+ 'has',
+ 'have',
+ 'he',
+ 'her',
+ 'hers',
+ 'him',
+ 'his',
+ 'how',
+ 'however',
+ 'i',
+ 'if',
+ 'into',
+ 'it',
+ 'its',
+ 'just',
+ 'least',
+ 'like',
+ 'likely',
+ 'may',
+ 'me',
+ 'might',
+ 'most',
+ 'must',
+ 'my',
+ 'neither',
+ 'no',
+ 'nor',
+ 'not',
+ 'of',
+ 'off',
+ 'often',
+ 'on',
+ 'or',
+ 'other',
+ 'our',
+ 'own',
+ 'rather',
+ 'said',
+ 'say',
+ 'says',
+ 'she',
+ 'should',
+ 'since',
+ 'so',
+ 'some',
+ 'than',
+ 'that',
+ 'the',
+ 'their',
+ 'them',
+ 'then',
+ 'there',
+ 'these',
+ 'they',
+ 'this',
+ 'tis',
+ 'to',
+ 'too',
+ 'twas',
+ 'us',
+ 'wants',
+ 'was',
+ 'we',
+ 'were',
+ 'what',
+ 'when',
+ 'who',
+ 'whom',
+ 'why',
+ 'will',
+ 'would',
+ 'yet',
+ 'you',
+ 'your'
+ ])
+
+ // add . as a separator, because otherwise "title": "Documenter.Anchors.add!"
+ // would not find anything if searching for "add!", only for the entire qualification
+ lunr.tokenizer.separator = /[\s\-\.]+/
+
+ // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names
+ lunr.trimmer = function (token) {
+ return token.update(function (s) {
+ return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '')
+ })
+ }
+
+ lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter')
+ lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer')
+
+ var index = lunr(function () {
+ this.ref('location')
+ this.field('title',{boost: 100})
+ this.field('text')
+ documenterSearchIndex['docs'].forEach(function(e) {
+ this.add(e)
+ }, this)
+ })
+ var store = {}
+
+ documenterSearchIndex['docs'].forEach(function(e) {
+ store[e.location] = {title: e.title, category: e.category, page: e.page}
+ })
+
+ $(function(){
+ searchresults = $('#documenter-search-results');
+ searchinfo = $('#documenter-search-info');
+ searchbox = $('#documenter-search-query');
+ searchform = $('.docs-search');
+ sidebar = $('.docs-sidebar');
+ function update_search(querystring) {
+ tokens = lunr.tokenizer(querystring)
+ results = index.query(function (q) {
+ tokens.forEach(function (t) {
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 100,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 10,
+ usePipeline: true,
+ editDistance: 2,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["text"],
+ boost: 1,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ })
+ })
+ searchinfo.text("Number of results: " + results.length)
+ searchresults.empty()
+ results.forEach(function(result) {
+ data = store[result.ref]
+ link = $(''+data.title+' ')
+ link.attr('href', documenterBaseURL+'/'+result.ref)
+ if (data.category != "page"){
+ cat = $('('+data.category+', '+data.page+') ')
+ } else {
+ cat = $('('+data.category+') ')
+ }
+ li = $('').append(link).append(" ").append(cat)
+ searchresults.append(li)
+ })
+ }
+
+ function update_search_box() {
+ querystring = searchbox.val()
+ update_search(querystring)
+ }
+
+ searchbox.keyup(_.debounce(update_search_box, 250))
+ searchbox.change(update_search_box)
+
+ // Disable enter-key form submission for the searchbox on the search page
+ // and just re-run search rather than refresh the whole page.
+ searchform.keypress(
+ function(event){
+ if (event.which == '13') {
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ update_search_box();
+ event.preventDefault();
+ }
+ }
+ );
+
+ search_query_uri = parseUri(window.location).queryKey["q"]
+ if(search_query_uri !== undefined) {
+ search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20'))
+ searchbox.val(search_query)
+ }
+ update_search_box();
+ })
+})
+
+})
diff --git a/v0.2.0/assets/themes/documenter-dark.css b/v0.2.0/assets/themes/documenter-dark.css
new file mode 100644
index 0000000..0bf1af7
--- /dev/null
+++ b/v0.2.0/assets/themes/documenter-dark.css
@@ -0,0 +1,7702 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child),
+html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before {
+ height: 2px;
+ width: 50%; }
+ html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ height: 50%;
+ width: 2px; }
+ html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdee0;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+html.theme--documenter-dark .image.is-square .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+html.theme--documenter-dark .image.is-1by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+html.theme--documenter-dark .image.is-5by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+html.theme--documenter-dark .image.is-4by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+html.theme--documenter-dark .image.is-3by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+html.theme--documenter-dark .image.is-5by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+html.theme--documenter-dark .image.is-16by9 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+html.theme--documenter-dark .image.is-2by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+html.theme--documenter-dark .image.is-3by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+html.theme--documenter-dark .image.is-4by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+html.theme--documenter-dark .image.is-3by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+html.theme--documenter-dark .image.is-2by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+html.theme--documenter-dark .image.is-3by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+html.theme--documenter-dark .image.is-9by16 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+html.theme--documenter-dark .image.is-1by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+html.theme--documenter-dark .image.is-1by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta,
+html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 0.4em;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 15px;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus,
+ html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus,
+ html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous,
+ html.theme--documenter-dark .is-focused.pagination-next,
+ html.theme--documenter-dark .is-focused.pagination-link,
+ html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta,
+ html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active,
+ html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active,
+ html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous,
+ html.theme--documenter-dark .is-active.pagination-next,
+ html.theme--documenter-dark .is-active.pagination-link,
+ html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta,
+ html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button {
+ outline: none; }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled],
+ html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled],
+ html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous,
+ fieldset[disabled] html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark fieldset[disabled] .pagination-next,
+ fieldset[disabled] html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark fieldset[disabled] .pagination-link,
+ fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta,
+ fieldset[disabled] html.theme--documenter-dark .file-name,
+ html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 15px !important; }
+
+.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ font-size: 0.85em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 15px !important; }
+ .is-size-7-mobile {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 15px !important; }
+ .is-size-7-tablet {
+ font-size: 0.85em !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 15px !important; }
+ .is-size-7-touch {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 15px !important; }
+ .is-size-7-desktop {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 15px !important; }
+ .is-size-7-widescreen {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 15px !important; }
+ .is-size-7-fullhd {
+ font-size: 0.85em !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: #ecf0f1 !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #cfd9db !important; }
+
+.has-background-light {
+ background-color: #ecf0f1 !important; }
+
+.has-text-dark {
+ color: #282f2f !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #111414 !important; }
+
+.has-background-dark {
+ background-color: #282f2f !important; }
+
+.has-text-primary {
+ color: #375a7f !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #28415b !important; }
+
+.has-background-primary {
+ background-color: #375a7f !important; }
+
+.has-text-link {
+ color: #1abc9c !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #148f77 !important; }
+
+.has-background-link {
+ background-color: #1abc9c !important; }
+
+.has-text-info {
+ color: #024c7d !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #012d4b !important; }
+
+.has-background-info {
+ background-color: #024c7d !important; }
+
+.has-text-success {
+ color: #008438 !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #005122 !important; }
+
+.has-background-success {
+ background-color: #008438 !important; }
+
+.has-text-warning {
+ color: #ad8100 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #7a5b00 !important; }
+
+.has-background-warning {
+ background-color: #ad8100 !important; }
+
+.has-text-danger {
+ color: #9e1b0d !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #6f1309 !important; }
+
+.has-background-danger {
+ background-color: #9e1b0d !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #282f2f !important; }
+
+.has-background-grey-darker {
+ background-color: #282f2f !important; }
+
+.has-text-grey-dark {
+ color: #343c3d !important; }
+
+.has-background-grey-dark {
+ background-color: #343c3d !important; }
+
+.has-text-grey {
+ color: #5e6d6f !important; }
+
+.has-background-grey {
+ background-color: #5e6d6f !important; }
+
+.has-text-grey-light {
+ color: #8c9b9d !important; }
+
+.has-background-grey-light {
+ background-color: #8c9b9d !important; }
+
+.has-text-grey-lighter {
+ color: #dbdee0 !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdee0 !important; }
+
+.has-text-white-ter {
+ color: #ecf0f1 !important; }
+
+.has-background-white-ter {
+ background-color: #ecf0f1 !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+html.theme--documenter-dark {
+ /* This file contain the overall layout.
+ *
+ * The main container is that is identified by id #documenter.
+ */
+ /*!
+ Theme: a11y-dark
+ Author: @ericwbailey
+ Maintainer: @ericwbailey
+
+ Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
+*/
+ /* Comment */
+ /* Red */
+ /* Orange */
+ /* Yellow */
+ /* Green */
+ /* Blue */
+ /* Purple */ }
+ html.theme--documenter-dark html {
+ background-color: #1f2424;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark article,
+ html.theme--documenter-dark aside,
+ html.theme--documenter-dark figure,
+ html.theme--documenter-dark footer,
+ html.theme--documenter-dark header,
+ html.theme--documenter-dark hgroup,
+ html.theme--documenter-dark section {
+ display: block; }
+ html.theme--documenter-dark body,
+ html.theme--documenter-dark button,
+ html.theme--documenter-dark input,
+ html.theme--documenter-dark select,
+ html.theme--documenter-dark textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+ html.theme--documenter-dark code,
+ html.theme--documenter-dark pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+ html.theme--documenter-dark body {
+ color: #fff;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+ html.theme--documenter-dark a {
+ color: #1abc9c;
+ cursor: pointer;
+ text-decoration: none; }
+ html.theme--documenter-dark a strong {
+ color: currentColor; }
+ html.theme--documenter-dark a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark code {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: #ececec;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+ html.theme--documenter-dark hr {
+ background-color: #282f2f;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+ html.theme--documenter-dark img {
+ height: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark input[type="checkbox"],
+ html.theme--documenter-dark input[type="radio"] {
+ vertical-align: baseline; }
+ html.theme--documenter-dark small {
+ font-size: 0.875em; }
+ html.theme--documenter-dark span {
+ font-style: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark strong {
+ color: #f2f2f2;
+ font-weight: 700; }
+ html.theme--documenter-dark fieldset {
+ border: none; }
+ html.theme--documenter-dark pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: #282f2f;
+ color: #fff;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+ html.theme--documenter-dark table td,
+ html.theme--documenter-dark table th {
+ vertical-align: top; }
+ html.theme--documenter-dark table td:not([align]),
+ html.theme--documenter-dark table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .box {
+ background-color: #343c3d;
+ border-radius: 8px;
+ box-shadow: none;
+ color: #fff;
+ display: block;
+ padding: 1.25rem; }
+ html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark .button {
+ background-color: #282f2f;
+ border-color: #4c5759;
+ border-width: 1px;
+ color: #375a7f;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ html.theme--documenter-dark .button strong {
+ color: inherit; }
+ html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered {
+ border-color: #8c9b9d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused {
+ border-color: #8c9b9d;
+ color: #17a689; }
+ html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active {
+ border-color: #343c3d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active {
+ background-color: #1d2122;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused {
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused {
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered {
+ background-color: #dde4e6; }
+ html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .button.is-normal {
+ font-size: 15px; }
+ html.theme--documenter-dark .button.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .button.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button {
+ background-color: #8c9b9d;
+ border-color: #dbdee0;
+ box-shadow: none;
+ opacity: 0.5; }
+ html.theme--documenter-dark .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ html.theme--documenter-dark .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ html.theme--documenter-dark .button.is-static {
+ background-color: #282f2f;
+ border-color: #5e6d6f;
+ color: #dbdee0;
+ box-shadow: none;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .buttons .button {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ html.theme--documenter-dark .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ html.theme--documenter-dark .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .buttons.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .buttons.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .container {
+ max-width: 992px; }
+ html.theme--documenter-dark .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ html.theme--documenter-dark .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ html.theme--documenter-dark .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .container {
+ max-width: 1344px; } }
+ html.theme--documenter-dark .content li + li {
+ margin-top: 0.25em; }
+ html.theme--documenter-dark .content p:not(:last-child),
+ html.theme--documenter-dark .content dl:not(:last-child),
+ html.theme--documenter-dark .content ol:not(:last-child),
+ html.theme--documenter-dark .content ul:not(:last-child),
+ html.theme--documenter-dark .content blockquote:not(:last-child),
+ html.theme--documenter-dark .content pre:not(:last-child),
+ html.theme--documenter-dark .content table:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content h1,
+ html.theme--documenter-dark .content h2,
+ html.theme--documenter-dark .content h3,
+ html.theme--documenter-dark .content h4,
+ html.theme--documenter-dark .content h5,
+ html.theme--documenter-dark .content h6 {
+ color: #f2f2f2;
+ font-weight: 600;
+ line-height: 1.125; }
+ html.theme--documenter-dark .content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .content h1:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ html.theme--documenter-dark .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+ html.theme--documenter-dark .content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ html.theme--documenter-dark .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+ html.theme--documenter-dark .content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+ html.theme--documenter-dark .content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+ html.theme--documenter-dark .content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content blockquote {
+ background-color: #282f2f;
+ border-left: 5px solid #5e6d6f;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ol:not([type]) {
+ list-style-type: decimal; }
+ html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ html.theme--documenter-dark .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ html.theme--documenter-dark .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+ html.theme--documenter-dark .content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ html.theme--documenter-dark .content ul ul ul {
+ list-style-type: square; }
+ html.theme--documenter-dark .content dd {
+ margin-left: 2em; }
+ html.theme--documenter-dark .content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ html.theme--documenter-dark .content figure:not(:first-child) {
+ margin-top: 2em; }
+ html.theme--documenter-dark .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ html.theme--documenter-dark .content figure img {
+ display: inline-block; }
+ html.theme--documenter-dark .content figure figcaption {
+ font-style: italic; }
+ html.theme--documenter-dark .content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark .content sup,
+ html.theme--documenter-dark .content sub {
+ font-size: 75%; }
+ html.theme--documenter-dark .content table {
+ width: 100%; }
+ html.theme--documenter-dark .content table td,
+ html.theme--documenter-dark .content table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .content table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .content table thead td,
+ html.theme--documenter-dark .content table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tfoot td,
+ html.theme--documenter-dark .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tbody tr:last-child td,
+ html.theme--documenter-dark .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .content .tabs li + li {
+ margin-top: 0; }
+ html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .content.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .content.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ html.theme--documenter-dark .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ html.theme--documenter-dark .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+ html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+ html.theme--documenter-dark .image.is-square .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ html.theme--documenter-dark .image.is-1by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ html.theme--documenter-dark .image.is-5by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ html.theme--documenter-dark .image.is-4by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ html.theme--documenter-dark .image.is-3by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ html.theme--documenter-dark .image.is-5by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ html.theme--documenter-dark .image.is-16by9 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ html.theme--documenter-dark .image.is-2by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ html.theme--documenter-dark .image.is-3by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ html.theme--documenter-dark .image.is-4by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ html.theme--documenter-dark .image.is-3by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ html.theme--documenter-dark .image.is-2by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ html.theme--documenter-dark .image.is-3by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ html.theme--documenter-dark .image.is-9by16 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ html.theme--documenter-dark .image.is-1by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ html.theme--documenter-dark .image.is-1by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+ html.theme--documenter-dark .notification {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification strong {
+ color: currentColor; }
+ html.theme--documenter-dark .notification code,
+ html.theme--documenter-dark .notification pre {
+ background: white; }
+ html.theme--documenter-dark .notification pre code {
+ background: transparent; }
+ html.theme--documenter-dark .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ html.theme--documenter-dark .notification .title,
+ html.theme--documenter-dark .notification .subtitle,
+ html.theme--documenter-dark .notification .content {
+ color: currentColor; }
+ html.theme--documenter-dark .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .notification.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 15px;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ html.theme--documenter-dark .progress::-webkit-progress-bar {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .progress::-webkit-progress-value {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-moz-progress-bar {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-ms-fill {
+ background-color: #dbdee0;
+ border: none; }
+ html.theme--documenter-dark .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-ms-fill {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-light::-webkit-progress-value {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-moz-progress-bar {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-ms-fill {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-link::-webkit-progress-value {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-moz-progress-bar {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-ms-fill {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-info::-webkit-progress-value {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-moz-progress-bar {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-ms-fill {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-success::-webkit-progress-value {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-moz-progress-bar {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-ms-fill {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-warning::-webkit-progress-value {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-moz-progress-bar {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-ms-fill {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-danger::-webkit-progress-value {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-moz-progress-bar {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-ms-fill {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #5e6d6f;
+ background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.85em; }
+ html.theme--documenter-dark .progress.is-medium {
+ height: 1.25rem; }
+ html.theme--documenter-dark .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+ html.theme--documenter-dark .table {
+ background-color: #343c3d;
+ color: #fff; }
+ html.theme--documenter-dark .table td,
+ html.theme--documenter-dark .table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .table td.is-white,
+ html.theme--documenter-dark .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .table td.is-black,
+ html.theme--documenter-dark .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .table td.is-light,
+ html.theme--documenter-dark .table th.is-light {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .table td.is-dark,
+ html.theme--documenter-dark .table th.is-dark {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .table td.is-primary,
+ html.theme--documenter-dark .table th.is-primary {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-link,
+ html.theme--documenter-dark .table th.is-link {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-info,
+ html.theme--documenter-dark .table th.is-info {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-success,
+ html.theme--documenter-dark .table th.is-success {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-warning,
+ html.theme--documenter-dark .table th.is-warning {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-danger,
+ html.theme--documenter-dark .table th.is-danger {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-narrow,
+ html.theme--documenter-dark .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ html.theme--documenter-dark .table td.is-selected,
+ html.theme--documenter-dark .table th.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-selected a,
+ html.theme--documenter-dark .table td.is-selected strong,
+ html.theme--documenter-dark .table th.is-selected a,
+ html.theme--documenter-dark .table th.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .table tr.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table tr.is-selected a,
+ html.theme--documenter-dark .table tr.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table tr.is-selected td,
+ html.theme--documenter-dark .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ html.theme--documenter-dark .table thead {
+ background-color: transparent; }
+ html.theme--documenter-dark .table thead td,
+ html.theme--documenter-dark .table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tfoot {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tfoot td,
+ html.theme--documenter-dark .table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tbody {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tbody tr:last-child td,
+ html.theme--documenter-dark .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .table.is-bordered td,
+ html.theme--documenter-dark .table.is-bordered th {
+ border-width: 1px; }
+ html.theme--documenter-dark .table.is-bordered tr:last-child td,
+ html.theme--documenter-dark .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .table.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: #2d3435; }
+ html.theme--documenter-dark .table.is-narrow td,
+ html.theme--documenter-dark .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+ html.theme--documenter-dark .tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .tags:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tags.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ html.theme--documenter-dark .tags.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ color: #fff;
+ display: inline-flex;
+ font-size: 0.85em;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #111414; }
+ html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+ html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+ html.theme--documenter-dark .title,
+ html.theme--documenter-dark .subtitle {
+ word-break: break-word; }
+ html.theme--documenter-dark .title em,
+ html.theme--documenter-dark .title span,
+ html.theme--documenter-dark .subtitle em,
+ html.theme--documenter-dark .subtitle span {
+ font-weight: inherit; }
+ html.theme--documenter-dark .title sub,
+ html.theme--documenter-dark .subtitle sub {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title sup,
+ html.theme--documenter-dark .subtitle sup {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink,
+ html.theme--documenter-dark .subtitle .tag,
+ html.theme--documenter-dark .subtitle .content kbd,
+ html.theme--documenter-dark .content .subtitle kbd,
+ html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+ html.theme--documenter-dark .title {
+ color: #fff;
+ font-size: 2rem;
+ font-weight: 500;
+ line-height: 1.125; }
+ html.theme--documenter-dark .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark .title + .highlight {
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .title.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .title.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .title.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .title.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .title.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .title.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .title.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .subtitle {
+ color: #8c9b9d;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ html.theme--documenter-dark .subtitle strong {
+ color: #8c9b9d;
+ font-weight: 600; }
+ html.theme--documenter-dark .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .subtitle.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .subtitle.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .subtitle.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .subtitle.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .subtitle.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .subtitle.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .subtitle.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ html.theme--documenter-dark .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark .number {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+ html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #1f2424;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ color: #dbdee0; }
+ html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #8c9b9d;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #008438; }
+ html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+ html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+ html.theme--documenter-dark .textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ html.theme--documenter-dark .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ html.theme--documenter-dark .textarea[rows] {
+ height: initial; }
+ html.theme--documenter-dark .textarea.has-fixed-size {
+ resize: none; }
+ html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input {
+ cursor: pointer; }
+ html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover {
+ color: #8c9b9d; }
+ html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox {
+ color: white;
+ cursor: not-allowed; }
+ html.theme--documenter-dark .radio + .radio {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .select:not(.is-multiple) {
+ height: 2.25em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #1abc9c;
+ right: 1.125em;
+ z-index: 4; }
+ html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ html.theme--documenter-dark .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ html.theme--documenter-dark .select select::-ms-expand {
+ display: none; }
+ html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ html.theme--documenter-dark .select select[multiple] option {
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select.is-white:not(:hover)::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered {
+ border-color: black; }
+ html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .select.is-light:not(:hover)::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered {
+ border-color: #dde4e6; }
+ html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered {
+ border-color: #1d2122; }
+ html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #2f4d6d; }
+ html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .select.is-link:not(:hover)::after {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered {
+ border-color: #17a689; }
+ html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select.is-info:not(:hover)::after {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered {
+ border-color: #023d64; }
+ html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .select.is-success:not(:hover)::after {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered {
+ border-color: #006b2d; }
+ html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .select.is-warning:not(:hover)::after {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered {
+ border-color: #946e00; }
+ html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .select.is-danger:not(:hover)::after {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered {
+ border-color: #86170b; }
+ html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .select.is-disabled::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-fullwidth select {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ html.theme--documenter-dark .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-light .file-cta {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25);
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25);
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link .file-cta {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info .file-cta {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success .file-cta {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning .file-cta {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger .file-cta {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .file.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-cta {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-name {
+ display: none; }
+ html.theme--documenter-dark .file.is-boxed .file-label {
+ flex-direction: column; }
+ html.theme--documenter-dark .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ html.theme--documenter-dark .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-cta {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 0.4em 0.4em;
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .file.is-fullwidth .file-label {
+ width: 100%; }
+ html.theme--documenter-dark .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ html.theme--documenter-dark .file.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .file.is-right .file-cta {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .file.is-right .file-name {
+ border-radius: 0.4em 0 0 0.4em;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+ html.theme--documenter-dark .file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ html.theme--documenter-dark .file-label:hover .file-cta {
+ background-color: #e5eaec;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:hover .file-name {
+ border-color: #596668; }
+ html.theme--documenter-dark .file-label:active .file-cta {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:active .file-name {
+ border-color: #535f61; }
+ html.theme--documenter-dark .file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ html.theme--documenter-dark .file-cta,
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .file-cta {
+ background-color: #ecf0f1;
+ color: #343c3d; }
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+ html.theme--documenter-dark .file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ html.theme--documenter-dark .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .label {
+ color: #282f2f;
+ display: block;
+ font-size: 15px;
+ font-weight: 700; }
+ html.theme--documenter-dark .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .label.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .label.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .help {
+ display: block;
+ font-size: 0.85em;
+ margin-top: 0.25rem; }
+ html.theme--documenter-dark .help.is-white {
+ color: white; }
+ html.theme--documenter-dark .help.is-black {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .help.is-light {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help {
+ color: #282f2f; }
+ html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink {
+ color: #375a7f; }
+ html.theme--documenter-dark .help.is-link {
+ color: #1abc9c; }
+ html.theme--documenter-dark .help.is-info {
+ color: #024c7d; }
+ html.theme--documenter-dark .help.is-success {
+ color: #008438; }
+ html.theme--documenter-dark .help.is-warning {
+ color: #ad8100; }
+ html.theme--documenter-dark .help.is-danger {
+ color: #9e1b0d; }
+ html.theme--documenter-dark .field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ html.theme--documenter-dark .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.is-grouped > .control {
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field.is-horizontal {
+ display: flex; } }
+ html.theme--documenter-dark .field-label .label {
+ font-size: inherit; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .field-label {
+ margin-bottom: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.85em;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-normal {
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+ html.theme--documenter-dark .field-body .field .field {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body .field {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .field-body > .field {
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ html.theme--documenter-dark .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 15px;
+ position: relative;
+ text-align: left; }
+ html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon {
+ color: #5e6d6f; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon {
+ color: #dbdee0;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-left .icon.is-left {
+ left: 0; }
+ html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-right .icon.is-right {
+ right: 0; }
+ html.theme--documenter-dark .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb {
+ font-size: 15px;
+ white-space: nowrap; }
+ html.theme--documenter-dark .breadcrumb a {
+ align-items: center;
+ color: #1abc9c;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ html.theme--documenter-dark .breadcrumb a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .breadcrumb li:first-child a {
+ padding-left: 0; }
+ html.theme--documenter-dark .breadcrumb li.is-active a {
+ color: #f2f2f2;
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb li + li::before {
+ color: #8c9b9d;
+ content: "\0002f"; }
+ html.theme--documenter-dark .breadcrumb ul,
+ html.theme--documenter-dark .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .breadcrumb.is-centered ol,
+ html.theme--documenter-dark .breadcrumb.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .breadcrumb.is-right ol,
+ html.theme--documenter-dark .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+ html.theme--documenter-dark .card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #fff;
+ max-width: 100%;
+ position: relative; }
+ html.theme--documenter-dark .card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+ html.theme--documenter-dark .card-header-title {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-header-title.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-image {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+ html.theme--documenter-dark .card-footer {
+ background-color: transparent;
+ border-top: 1px solid #5e6d6f;
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-footer-item:not(:last-child) {
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ html.theme--documenter-dark .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+ html.theme--documenter-dark .dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .dropdown-content {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .dropdown-item {
+ color: #fff;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+ html.theme--documenter-dark a.dropdown-item,
+ html.theme--documenter-dark button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ html.theme--documenter-dark a.dropdown-item:hover,
+ html.theme--documenter-dark button.dropdown-item:hover {
+ background-color: #282f2f;
+ color: #0a0a0a; }
+ html.theme--documenter-dark a.dropdown-item.is-active,
+ html.theme--documenter-dark button.dropdown-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .dropdown-divider {
+ background-color: #5e6d6f;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+ html.theme--documenter-dark .level {
+ align-items: center;
+ justify-content: space-between; }
+ html.theme--documenter-dark .level code {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .level img {
+ display: inline-block;
+ vertical-align: top; }
+ html.theme--documenter-dark .level.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left,
+ html.theme--documenter-dark .level.is-mobile .level-right {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level {
+ display: flex; }
+ html.theme--documenter-dark .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+ html.theme--documenter-dark .level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ html.theme--documenter-dark .level-item .title,
+ html.theme--documenter-dark .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ html.theme--documenter-dark .level-left,
+ html.theme--documenter-dark .level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .level-left .level-item.is-flexible,
+ html.theme--documenter-dark .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left .level-item:not(:last-child),
+ html.theme--documenter-dark .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left {
+ display: flex; } }
+ html.theme--documenter-dark .level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-right {
+ display: flex; } }
+ html.theme--documenter-dark .list {
+ background-color: white;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .list-item:not(a) {
+ color: #fff; }
+ html.theme--documenter-dark .list-item:first-child {
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:last-child {
+ border-bottom-left-radius: 0.4em;
+ border-bottom-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:not(:last-child) {
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .list-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark a.list-item {
+ background-color: #282f2f;
+ cursor: pointer; }
+ html.theme--documenter-dark .media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ html.theme--documenter-dark .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .media .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ html.theme--documenter-dark .media .media .content:not(:last-child),
+ html.theme--documenter-dark .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .media .media .media {
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .media .media .media + .media {
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark .media + .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ html.theme--documenter-dark .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+ html.theme--documenter-dark .media-left,
+ html.theme--documenter-dark .media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .media-left {
+ margin-right: 1rem; }
+ html.theme--documenter-dark .media-right {
+ margin-left: 1rem; }
+ html.theme--documenter-dark .media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .media-content {
+ overflow-x: auto; } }
+ html.theme--documenter-dark .menu {
+ font-size: 15px; }
+ html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .menu.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .menu.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .menu-list {
+ line-height: 1.25; }
+ html.theme--documenter-dark .menu-list a {
+ border-radius: 3px;
+ color: #fff;
+ display: block;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .menu-list a:hover {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .menu-list a.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .menu-list li ul {
+ border-left: 1px solid #5e6d6f;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .menu-label {
+ color: white;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .message {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .message strong {
+ color: currentColor; }
+ html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .message.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .message.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .message.is-white {
+ background-color: white; }
+ html.theme--documenter-dark .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ html.theme--documenter-dark .message.is-black {
+ background-color: #fafafa; }
+ html.theme--documenter-dark .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ html.theme--documenter-dark .message.is-light {
+ background-color: #f9fafb; }
+ html.theme--documenter-dark .message.is-light .message-header {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .message.is-light .message-body {
+ border-color: #ecf0f1;
+ color: #505050; }
+ html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message {
+ background-color: #f9fafa; }
+ html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body {
+ border-color: #282f2f;
+ color: #212526; }
+ html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink {
+ background-color: #f8fafc; }
+ html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #375a7f;
+ color: #2b4159; }
+ html.theme--documenter-dark .message.is-link {
+ background-color: #f6fefc; }
+ html.theme--documenter-dark .message.is-link .message-header {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-link .message-body {
+ border-color: #1abc9c;
+ color: #0b2f28; }
+ html.theme--documenter-dark .message.is-info {
+ background-color: #f5fbff; }
+ html.theme--documenter-dark .message.is-info .message-header {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-info .message-body {
+ border-color: #024c7d;
+ color: #033659; }
+ html.theme--documenter-dark .message.is-success {
+ background-color: #f5fff9; }
+ html.theme--documenter-dark .message.is-success .message-header {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-success .message-body {
+ border-color: #008438;
+ color: #023518; }
+ html.theme--documenter-dark .message.is-warning {
+ background-color: #fffcf5; }
+ html.theme--documenter-dark .message.is-warning .message-header {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-warning .message-body {
+ border-color: #ad8100;
+ color: #3d2e03; }
+ html.theme--documenter-dark .message.is-danger {
+ background-color: #fef6f6; }
+ html.theme--documenter-dark .message.is-danger .message-header {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-danger .message-body {
+ border-color: #9e1b0d;
+ color: #7a170c; }
+ html.theme--documenter-dark .message-header {
+ align-items: center;
+ background-color: #fff;
+ border-radius: 0.4em 0.4em 0 0;
+ color: rgba(0, 0, 0, 0.7);
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ html.theme--documenter-dark .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ html.theme--documenter-dark .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .message-body {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #fff;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .message-body code,
+ html.theme--documenter-dark .message-body pre {
+ background-color: white; }
+ html.theme--documenter-dark .message-body pre code {
+ background-color: transparent; }
+ html.theme--documenter-dark .modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ html.theme--documenter-dark .modal.is-active {
+ display: flex; }
+ html.theme--documenter-dark .modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+ html.theme--documenter-dark .modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+ html.theme--documenter-dark .modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+ html.theme--documenter-dark .modal-card-head,
+ html.theme--documenter-dark .modal-card-foot {
+ align-items: center;
+ background-color: #282f2f;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+ html.theme--documenter-dark .modal-card-head {
+ border-bottom: 1px solid #5e6d6f;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px; }
+ html.theme--documenter-dark .modal-card-title {
+ color: #f2f2f2;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+ html.theme--documenter-dark .modal-card-foot {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+ html.theme--documenter-dark .navbar {
+ background-color: #375a7f;
+ min-height: 4rem;
+ position: relative;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ html.theme--documenter-dark .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ html.theme--documenter-dark .navbar.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-burger {
+ color: #282f2f; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ecf0f1;
+ color: #282f2f; } }
+ html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger {
+ color: #ecf0f1; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #282f2f;
+ color: #ecf0f1; } }
+ html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #375a7f;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #024c7d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #008438;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ad8100;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #9e1b0d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 4rem;
+ width: 100%; }
+ html.theme--documenter-dark .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-top {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top,
+ html.theme--documenter-dark body.has-navbar-fixed-top {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark .navbar-brand,
+ html.theme--documenter-dark .navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+ html.theme--documenter-dark .navbar-burger {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ height: 4rem;
+ position: relative;
+ width: 4rem;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ html.theme--documenter-dark .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ html.theme--documenter-dark .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+ html.theme--documenter-dark .navbar-menu {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ color: #fff;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .navbar-item .icon:only-child,
+ html.theme--documenter-dark .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+ html.theme--documenter-dark a.navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ cursor: pointer; }
+ html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link:focus,
+ html.theme--documenter-dark .navbar-link:focus-within,
+ html.theme--documenter-dark .navbar-link:hover,
+ html.theme--documenter-dark .navbar-link.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-item img {
+ max-height: 1.75rem; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ padding: 0; }
+ html.theme--documenter-dark .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 4rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #1abc9c;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #1abc9c;
+ padding-bottom: calc(0.5rem - 3px); }
+ html.theme--documenter-dark .navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after {
+ border-color: #fff;
+ margin-top: -0.375em;
+ right: 1.125em; }
+ html.theme--documenter-dark .navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+ html.theme--documenter-dark .navbar-divider {
+ background-color: rgba(0, 0, 0, 0.2);
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar > .container {
+ display: block; }
+ html.theme--documenter-dark .navbar-brand .navbar-item,
+ html.theme--documenter-dark .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-link::after {
+ display: none; }
+ html.theme--documenter-dark .navbar-menu {
+ background-color: #375a7f;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark .navbar-menu.is-active {
+ display: block; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ top: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 4rem);
+ overflow: auto; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-top-touch {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 4rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar,
+ html.theme--documenter-dark .navbar-menu,
+ html.theme--documenter-dark .navbar-start,
+ html.theme--documenter-dark .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .navbar {
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ html.theme--documenter-dark .navbar.is-spaced .navbar-start,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ html.theme--documenter-dark .navbar.is-spaced a.navbar-item,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-link {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-burger {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-item {
+ display: flex; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ align-items: stretch; }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 8px 8px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ html.theme--documenter-dark .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ html.theme--documenter-dark .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-dropdown {
+ background-color: #375a7f;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed {
+ border-radius: 8px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ html.theme--documenter-dark .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .navbar-divider {
+ display: block; }
+ html.theme--documenter-dark .navbar > .container .navbar-brand,
+ html.theme--documenter-dark .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ html.theme--documenter-dark .navbar > .container .navbar-menu,
+ html.theme--documenter-dark .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-top-desktop {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-top,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-top {
+ padding-top: 6rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 6rem; }
+ html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link.is-active {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),
+ html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: transparent; } }
+ html.theme--documenter-dark .hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 4rem); }
+ html.theme--documenter-dark .pagination {
+ font-size: 15px;
+ margin: -0.25rem; }
+ html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .pagination.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .pagination.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ html.theme--documenter-dark .pagination.is-rounded .pagination-next,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination,
+ html.theme--documenter-dark .pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link {
+ border-color: #5e6d6f;
+ color: #1abc9c;
+ min-width: 2.25em; }
+ html.theme--documenter-dark .pagination-previous:hover,
+ html.theme--documenter-dark .pagination-next:hover,
+ html.theme--documenter-dark .pagination-link:hover {
+ border-color: #8c9b9d;
+ color: #1dd2af; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled] {
+ background-color: #dbdee0;
+ border-color: #dbdee0;
+ box-shadow: none;
+ color: #5e6d6f;
+ opacity: 0.5; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .pagination-link.is-current {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .pagination-ellipsis {
+ color: #8c9b9d;
+ pointer-events: none; }
+ html.theme--documenter-dark .pagination-list {
+ flex-wrap: wrap; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .pagination {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ html.theme--documenter-dark .pagination-previous {
+ order: 2; }
+ html.theme--documenter-dark .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination {
+ justify-content: space-between; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination.is-right .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-right .pagination-next {
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+ html.theme--documenter-dark .panel {
+ font-size: 15px; }
+ html.theme--documenter-dark .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs,
+ html.theme--documenter-dark .panel-block {
+ border-bottom: 1px solid #5e6d6f;
+ border-left: 1px solid #5e6d6f;
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child,
+ html.theme--documenter-dark .panel-block:first-child {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading {
+ background-color: #282f2f;
+ border-radius: 0.4em 0.4em 0 0;
+ color: #f2f2f2;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-bottom: 1px solid #5e6d6f;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #343c3d;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-list a {
+ color: #fff; }
+ html.theme--documenter-dark .panel-list a:hover {
+ color: #1abc9c; }
+ html.theme--documenter-dark .panel-block {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ html.theme--documenter-dark .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .panel-block.is-active {
+ border-left-color: #1abc9c;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.panel-block,
+ html.theme--documenter-dark label.panel-block {
+ cursor: pointer; }
+ html.theme--documenter-dark a.panel-block:hover,
+ html.theme--documenter-dark label.panel-block:hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: white;
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+ html.theme--documenter-dark .tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 15px;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tabs a {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ html.theme--documenter-dark .tabs a:hover {
+ border-bottom-color: #f2f2f2;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .tabs li {
+ display: block; }
+ html.theme--documenter-dark .tabs li.is-active a {
+ border-bottom-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .tabs ul {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tabs ul.is-left {
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .tabs.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .tabs.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .tabs.is-boxed a:hover {
+ background-color: #282f2f;
+ border-bottom-color: #5e6d6f; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #5e6d6f;
+ border-bottom-color: transparent !important; }
+ html.theme--documenter-dark .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .tabs.is-toggle a {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ html.theme--documenter-dark .tabs.is-toggle a:hover {
+ background-color: #282f2f;
+ border-color: #8c9b9d;
+ z-index: 2; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .tabs.is-toggle li:first-child a {
+ border-radius: 0.4em 0 0 0.4em; }
+ html.theme--documenter-dark .tabs.is-toggle li:last-child a {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .tabs.is-toggle li.is-active a {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff;
+ z-index: 1; }
+ html.theme--documenter-dark .tabs.is-toggle ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tabs.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tabs.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .column.is-narrow-mobile {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .column.is-narrow-touch {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-touch {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .column.is-narrow-desktop {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .column.is-narrow-widescreen {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .column.is-narrow-fullhd {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+ html.theme--documenter-dark .columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .columns:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ html.theme--documenter-dark .columns.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ html.theme--documenter-dark .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ html.theme--documenter-dark .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .columns.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .columns.is-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-desktop {
+ display: flex; } }
+ html.theme--documenter-dark .columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ html.theme--documenter-dark .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ html.theme--documenter-dark .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+ html.theme--documenter-dark .tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ html.theme--documenter-dark .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .tile.is-child {
+ margin: 0 !important; }
+ html.theme--documenter-dark .tile.is-parent {
+ padding: 0.75rem; }
+ html.theme--documenter-dark .tile.is-vertical {
+ flex-direction: column; }
+ html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .tile:not(.is-child) {
+ display: flex; }
+ html.theme--documenter-dark .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+ html.theme--documenter-dark .hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ html.theme--documenter-dark .hero .navbar {
+ background: none; }
+ html.theme--documenter-dark .hero .tabs ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-white strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-white .title {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-white .navbar-menu {
+ background-color: white; } }
+ html.theme--documenter-dark .hero.is-white .navbar-item,
+ html.theme--documenter-dark .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-white .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ html.theme--documenter-dark .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-black strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-black .title {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ html.theme--documenter-dark .hero.is-black .navbar-item,
+ html.theme--documenter-dark .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-black .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ html.theme--documenter-dark .hero.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-light strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-light .title {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .subtitle {
+ color: rgba(40, 47, 47, 0.9); }
+ html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-light .subtitle strong {
+ color: #282f2f; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-light .navbar-menu {
+ background-color: #ecf0f1; } }
+ html.theme--documenter-dark .hero.is-light .navbar-item,
+ html.theme--documenter-dark .hero.is-light .navbar-link {
+ color: rgba(40, 47, 47, 0.7); }
+ html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-light .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-light .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs a {
+ color: #282f2f;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } }
+ html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-dark strong,
+ html.theme--documenter-dark .content kbd.hero strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle {
+ color: rgba(236, 240, 241, 0.9); }
+ html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-dark .subtitle strong,
+ html.theme--documenter-dark .content kbd.hero .subtitle strong {
+ color: #ecf0f1; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu {
+ background-color: #282f2f; } }
+ html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item,
+ html.theme--documenter-dark .hero.is-dark .navbar-link,
+ html.theme--documenter-dark .content kbd.hero .navbar-link {
+ color: rgba(236, 240, 241, 0.7); }
+ html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-dark .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.hero .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.hero .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a {
+ color: #ecf0f1;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } }
+ html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-primary strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-primary .subtitle strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #375a7f; } }
+ html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ html.theme--documenter-dark .hero.is-primary .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-primary .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } }
+ html.theme--documenter-dark .hero.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-link strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-link .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-link .navbar-menu {
+ background-color: #1abc9c; } }
+ html.theme--documenter-dark .hero.is-link .navbar-item,
+ html.theme--documenter-dark .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-link .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-link .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } }
+ html.theme--documenter-dark .hero.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-info strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-info .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-info .navbar-menu {
+ background-color: #024c7d; } }
+ html.theme--documenter-dark .hero.is-info .navbar-item,
+ html.theme--documenter-dark .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-info .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-info .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } }
+ html.theme--documenter-dark .hero.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-success strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-success .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-success .navbar-menu {
+ background-color: #008438; } }
+ html.theme--documenter-dark .hero.is-success .navbar-item,
+ html.theme--documenter-dark .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-success .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-success .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } }
+ html.theme--documenter-dark .hero.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-warning strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-warning .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-warning .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-warning .navbar-menu {
+ background-color: #ad8100; } }
+ html.theme--documenter-dark .hero.is-warning .navbar-item,
+ html.theme--documenter-dark .hero.is-warning .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-warning .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-warning .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } }
+ html.theme--documenter-dark .hero.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-danger strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-danger .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-danger .navbar-menu {
+ background-color: #9e1b0d; } }
+ html.theme--documenter-dark .hero.is-danger .navbar-item,
+ html.theme--documenter-dark .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-danger .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-danger .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } }
+ html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .hero.is-halfheight {
+ min-height: 50vh; }
+ html.theme--documenter-dark .hero.is-fullheight {
+ min-height: 100vh; }
+ html.theme--documenter-dark .hero-video {
+ overflow: hidden; }
+ html.theme--documenter-dark .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ html.theme--documenter-dark .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-video {
+ display: none; } }
+ html.theme--documenter-dark .hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-buttons .button {
+ display: flex; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+ html.theme--documenter-dark .hero-head,
+ html.theme--documenter-dark .hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+ html.theme--documenter-dark .section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .section.is-medium {
+ padding: 9rem 1.5rem; }
+ html.theme--documenter-dark .section.is-large {
+ padding: 18rem 1.5rem; } }
+ html.theme--documenter-dark .footer {
+ background-color: #282f2f;
+ padding: 3rem 1.5rem 6rem; }
+ html.theme--documenter-dark hr {
+ height: 1px; }
+ html.theme--documenter-dark h6 {
+ text-transform: uppercase;
+ letter-spacing: 0.5px; }
+ html.theme--documenter-dark .hero {
+ background-color: #343c3d; }
+ html.theme--documenter-dark a {
+ transition: all 200ms ease; }
+ html.theme--documenter-dark .button {
+ transition: all 200ms ease;
+ border-width: 1px;
+ color: white; }
+ html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus {
+ box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); }
+ html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus {
+ border-color: white;
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); }
+ html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover {
+ background-color: #1d1d1d; }
+ html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus {
+ border-color: #0a0a0a;
+ box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); }
+ html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus {
+ border-color: #ecf0f1;
+ box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); }
+ html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover {
+ background-color: #3a4344; }
+ html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus {
+ border-color: #282f2f;
+ box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); }
+ html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover {
+ background-color: #436d9a; }
+ html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus {
+ border-color: #375a7f;
+ box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); }
+ html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover {
+ background-color: #1fdeb8; }
+ html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); }
+ html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover {
+ background-color: #0363a3; }
+ html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus {
+ border-color: #024c7d;
+ box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); }
+ html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover {
+ background-color: #00aa48; }
+ html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus {
+ border-color: #008438;
+ box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); }
+ html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover {
+ background-color: #d39e00; }
+ html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus {
+ border-color: #ad8100;
+ box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); }
+ html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover {
+ background-color: #c12110; }
+ html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus {
+ border-color: #9e1b0d;
+ box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); }
+ html.theme--documenter-dark .label {
+ color: #dbdee0; }
+ html.theme--documenter-dark .button,
+ html.theme--documenter-dark .control.has-icons-left .icon,
+ html.theme--documenter-dark .control.has-icons-right .icon,
+ html.theme--documenter-dark .input,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .select,
+ html.theme--documenter-dark .select select,
+ html.theme--documenter-dark .textarea {
+ height: 2.5em; }
+ html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .textarea {
+ transition: all 200ms ease;
+ box-shadow: none;
+ border-width: 1px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .select:after,
+ html.theme--documenter-dark .select select {
+ border-width: 1px; }
+ html.theme--documenter-dark .control.has-addons .button,
+ html.theme--documenter-dark .control.has-addons .input,
+ html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input,
+ html.theme--documenter-dark .control.has-addons .select {
+ margin-right: -1px; }
+ html.theme--documenter-dark .notification {
+ background-color: #343c3d; }
+ html.theme--documenter-dark .card {
+ box-shadow: none;
+ border: 1px solid #343c3d;
+ background-color: #282f2f;
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .card .card-image img {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-header {
+ box-shadow: none;
+ background-color: rgba(18, 18, 18, 0.2);
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-footer {
+ background-color: rgba(18, 18, 18, 0.2); }
+ html.theme--documenter-dark .card .card-footer,
+ html.theme--documenter-dark .card .card-footer-item {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .notification.is-white a:not(.button) {
+ color: #0a0a0a;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-black a:not(.button) {
+ color: white;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-light a:not(.button) {
+ color: #282f2f;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) {
+ color: #ecf0f1;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-link a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-info a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-success a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-warning a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-danger a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .menu-list a {
+ transition: all 300ms ease; }
+ html.theme--documenter-dark .modal-card-body {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .modal-card-foot,
+ html.theme--documenter-dark .modal-card-head {
+ border-color: #343c3d; }
+ html.theme--documenter-dark .message-header {
+ font-weight: 700;
+ background-color: #343c3d;
+ color: white; }
+ html.theme--documenter-dark .message-body {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .navbar {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent {
+ background: none; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar .navbar-menu {
+ background-color: #375a7f;
+ border-radius: 0 0 0.4em 0.4em; } }
+ html.theme--documenter-dark .hero .navbar,
+ html.theme--documenter-dark body > .navbar {
+ border-radius: 0; }
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block,
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block:first-child,
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child {
+ border-top-width: 1px; }
+ html.theme--documenter-dark .panel-heading {
+ font-weight: 700; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #17a689; }
+ html.theme--documenter-dark .panel-block:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block:hover .panel-icon {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #17a689; }
+ html.theme--documenter-dark .tabs a {
+ border-bottom-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .tabs ul {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .tabs.is-toggle li a {
+ border-width: 1px;
+ margin-bottom: 0; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited {
+ color: #f2f2f2; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+ html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+ html.theme--documenter-dark .docs-light-only {
+ display: none !important; }
+ html.theme--documenter-dark pre {
+ position: relative;
+ overflow: hidden; }
+ html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ html.theme--documenter-dark pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #fff;
+ cursor: pointer;
+ text-align: center; }
+ html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(255, 255, 255, 0.1);
+ color: #1abc9c; }
+ html.theme--documenter-dark pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ html.theme--documenter-dark pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ html.theme--documenter-dark pre:hover .copy-button {
+ opacity: 1; }
+ html.theme--documenter-dark .admonition {
+ background-color: #282f2f;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .admonition strong {
+ color: currentColor; }
+ html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .admonition.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .admonition.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .admonition.is-default {
+ background-color: #282f2f;
+ border-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-default > .admonition-header {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-info {
+ background-color: #282f2f;
+ border-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-info > .admonition-header {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-success {
+ background-color: #282f2f;
+ border-color: #008438; }
+ html.theme--documenter-dark .admonition.is-success > .admonition-header {
+ background-color: #008438; }
+ html.theme--documenter-dark .admonition.is-warning {
+ background-color: #282f2f;
+ border-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-warning > .admonition-header {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-danger {
+ background-color: #282f2f;
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-danger > .admonition-header {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-compat {
+ background-color: #282f2f;
+ border-color: #137886; }
+ html.theme--documenter-dark .admonition.is-compat > .admonition-header {
+ background-color: #137886; }
+ html.theme--documenter-dark .admonition-header {
+ background-color: #5e6d6f;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+ html.theme--documenter-dark .admonition-body {
+ color: #fff;
+ padding: 0.5rem 0.75rem; }
+ html.theme--documenter-dark .admonition-body pre {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .admonition-body code {
+ background-color: rgba(255, 255, 255, 0.05); }
+ html.theme--documenter-dark .docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #5e6d6f;
+ box-shadow: none;
+ max-width: 100%; }
+ html.theme--documenter-dark .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: #282f2f;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > header code {
+ background-color: transparent; }
+ html.theme--documenter-dark .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ html.theme--documenter-dark .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ html.theme--documenter-dark .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > section:last-child {
+ border-bottom: none; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+ html.theme--documenter-dark .documenter-example-output {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #282f2f;
+ border-bottom: 3px solid #9e1b0d;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ html.theme--documenter-dark .outdated-warning-overlay a {
+ color: #1abc9c; }
+ html.theme--documenter-dark .outdated-warning-overlay a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .content pre {
+ border: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .content code {
+ font-weight: inherit; }
+ html.theme--documenter-dark .content a code {
+ color: #1abc9c; }
+ html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+ html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+ html.theme--documenter-dark pre, html.theme--documenter-dark code {
+ font-variant-ligatures: no-contextual; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .hljs {
+ background: initial !important; }
+ html.theme--documenter-dark .katex .katex-mathml {
+ top: 0;
+ right: 0; }
+ html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display {
+ margin: 0.5em 0 !important; }
+ html.theme--documenter-dark html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+ html.theme--documenter-dark li.no-marker {
+ list-style: none; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ html.theme--documenter-dark #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ width: 100%; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ background-color: #1f2424;
+ border-bottom: 1px solid #5e6d6f;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #171717;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #5e6d6f;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #fff;
+ background-color: #282f2f;
+ border-right: 1px solid #5e6d6f;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 15px;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #171717; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #5e6d6f;
+ display: none;
+ padding: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #5e6d6f;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 14.25px;
+ margin-left: 1em;
+ border-left: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 11.25px;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #fff;
+ background: #282f2f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #fff;
+ background-color: #32393a; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #5e6d6f;
+ border-bottom: 1px solid #5e6d6f;
+ background-color: #1f2424; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: #1f2424;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #32393a;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 12.75px;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+ html.theme--documenter-dark {
+ background-color: #1f2424;
+ font-size: 16px;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark .ansi span.sgr1 {
+ font-weight: bolder; }
+ html.theme--documenter-dark .ansi span.sgr2 {
+ font-weight: lighter; }
+ html.theme--documenter-dark .ansi span.sgr3 {
+ font-style: italic; }
+ html.theme--documenter-dark .ansi span.sgr4 {
+ text-decoration: underline; }
+ html.theme--documenter-dark .ansi span.sgr7 {
+ color: #1f2424;
+ background-color: #fff; }
+ html.theme--documenter-dark .ansi span.sgr8 {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr8 span {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr9 {
+ text-decoration: line-through; }
+ html.theme--documenter-dark .ansi span.sgr30 {
+ color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr31 {
+ color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr32 {
+ color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr33 {
+ color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr34 {
+ color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr35 {
+ color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr36 {
+ color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr37 {
+ color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr40 {
+ background-color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr41 {
+ background-color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr42 {
+ background-color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr43 {
+ background-color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr44 {
+ background-color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr45 {
+ background-color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr46 {
+ background-color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr47 {
+ background-color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr90 {
+ color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr91 {
+ color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr92 {
+ color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr93 {
+ color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr94 {
+ color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr95 {
+ color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr96 {
+ color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr97 {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .ansi span.sgr100 {
+ background-color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr101 {
+ background-color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr102 {
+ background-color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr103 {
+ background-color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr104 {
+ background-color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr105 {
+ background-color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr106 {
+ background-color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr107 {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark code.language-julia-repl > span.hljs-meta {
+ color: #4fb43a;
+ font-weight: bolder; }
+ html.theme--documenter-dark .hljs {
+ background: #2b2b2b;
+ color: #f8f8f2; }
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-quote {
+ color: #d4d0ab; }
+ html.theme--documenter-dark .hljs-variable,
+ html.theme--documenter-dark .hljs-template-variable,
+ html.theme--documenter-dark .hljs-tag,
+ html.theme--documenter-dark .hljs-name,
+ html.theme--documenter-dark .hljs-selector-id,
+ html.theme--documenter-dark .hljs-selector-class,
+ html.theme--documenter-dark .hljs-regexp,
+ html.theme--documenter-dark .hljs-deletion {
+ color: #ffa07a; }
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-link {
+ color: #f5ab35; }
+ html.theme--documenter-dark .hljs-attribute {
+ color: #ffd700; }
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-addition {
+ color: #abe338; }
+ html.theme--documenter-dark .hljs-title,
+ html.theme--documenter-dark .hljs-section {
+ color: #00e0e0; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ color: #dcc6e0; }
+ html.theme--documenter-dark .hljs-emphasis {
+ font-style: italic; }
+ html.theme--documenter-dark .hljs-strong {
+ font-weight: bold; }
+ @media screen and (-ms-high-contrast: active) {
+ html.theme--documenter-dark .hljs-addition,
+ html.theme--documenter-dark .hljs-attribute,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-link,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-quote {
+ color: highlight; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ font-weight: bold; } }
+ html.theme--documenter-dark .hljs-subst {
+ color: #f8f8f2; }
diff --git a/v0.2.0/assets/themes/documenter-light.css b/v0.2.0/assets/themes/documenter-light.css
new file mode 100644
index 0000000..9595d5b
--- /dev/null
+++ b/v0.2.0/assets/themes/documenter-light.css
@@ -0,0 +1,7738 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+.tabs, .pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child),
+.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.modal-close, .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ .modal-close::before, .delete::before, .modal-close::after, .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .modal-close::before, .delete::before {
+ height: 2px;
+ width: 50%; }
+ .modal-close::after, .delete::after {
+ height: 50%;
+ width: 2px; }
+ .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ .modal-close:active, .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ .is-medium.modal-close, .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ .is-large.modal-close, .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdbdb;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+.image.is-square .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+.image.is-1by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+.image.is-5by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+.image.is-4by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+.image.is-3by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+.image.is-5by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+.image.is-16by9 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+.image.is-2by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+.image.is-3by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+.image.is-4by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+.image.is-3by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+.image.is-2by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+.image.is-3by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+.image.is-9by16 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+.image.is-1by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+.image.is-1by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .file-cta,
+.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus,
+ .pagination-ellipsis:focus, .file-cta:focus,
+ .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous,
+ .is-focused.pagination-next,
+ .is-focused.pagination-link,
+ .is-focused.pagination-ellipsis, .is-focused.file-cta,
+ .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active,
+ .pagination-ellipsis:active, .file-cta:active,
+ .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous,
+ .is-active.pagination-next,
+ .is-active.pagination-link,
+ .is-active.pagination-ellipsis, .is-active.file-cta,
+ .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button {
+ outline: none; }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled],
+ .pagination-ellipsis[disabled], .file-cta[disabled],
+ .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous,
+ fieldset[disabled] .pagination-next,
+ fieldset[disabled] .pagination-link,
+ fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta,
+ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+html {
+ background-color: white;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section {
+ display: block; }
+
+body,
+button,
+input,
+select,
+textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+
+code,
+pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+
+body {
+ color: #222222;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+
+a {
+ color: #2e63b8;
+ cursor: pointer;
+ text-decoration: none; }
+ a strong {
+ color: currentColor; }
+ a:hover {
+ color: #363636; }
+
+code {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #000000;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+
+hr {
+ background-color: whitesmoke;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+
+img {
+ height: auto;
+ max-width: 100%; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ vertical-align: baseline; }
+
+small {
+ font-size: 0.875em; }
+
+span {
+ font-style: inherit;
+ font-weight: inherit; }
+
+strong {
+ color: #222222;
+ font-weight: 700; }
+
+fieldset {
+ border: none; }
+
+pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: whitesmoke;
+ color: #222222;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+
+table td,
+table th {
+ vertical-align: top; }
+ table td:not([align]),
+ table th:not([align]) {
+ text-align: left; }
+
+table th {
+ color: #222222; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 1rem !important; }
+
+.is-size-7, .docstring > section > a.docs-sourcelink {
+ font-size: 0.75rem !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 1rem !important; }
+ .is-size-7-mobile {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 1rem !important; }
+ .is-size-7-tablet {
+ font-size: 0.75rem !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 1rem !important; }
+ .is-size-7-touch {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 1rem !important; }
+ .is-size-7-desktop {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 1rem !important; }
+ .is-size-7-widescreen {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 1rem !important; }
+ .is-size-7-fullhd {
+ font-size: 0.75rem !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: whitesmoke !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #dbdbdb !important; }
+
+.has-background-light {
+ background-color: whitesmoke !important; }
+
+.has-text-dark {
+ color: #363636 !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #1c1c1c !important; }
+
+.has-background-dark {
+ background-color: #363636 !important; }
+
+.has-text-primary {
+ color: #4eb5de !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #27a1d2 !important; }
+
+.has-background-primary {
+ background-color: #4eb5de !important; }
+
+.has-text-link {
+ color: #2e63b8 !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #244d8f !important; }
+
+.has-background-link {
+ background-color: #2e63b8 !important; }
+
+.has-text-info {
+ color: #209cee !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #1081cb !important; }
+
+.has-background-info {
+ background-color: #209cee !important; }
+
+.has-text-success {
+ color: #22c35b !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #1a9847 !important; }
+
+.has-background-success {
+ background-color: #22c35b !important; }
+
+.has-text-warning {
+ color: #ffdd57 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #ffd324 !important; }
+
+.has-background-warning {
+ background-color: #ffdd57 !important; }
+
+.has-text-danger {
+ color: #da0b00 !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #a70800 !important; }
+
+.has-background-danger {
+ background-color: #da0b00 !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #363636 !important; }
+
+.has-background-grey-darker {
+ background-color: #363636 !important; }
+
+.has-text-grey-dark {
+ color: #4a4a4a !important; }
+
+.has-background-grey-dark {
+ background-color: #4a4a4a !important; }
+
+.has-text-grey {
+ color: #6b6b6b !important; }
+
+.has-background-grey {
+ background-color: #6b6b6b !important; }
+
+.has-text-grey-light {
+ color: #b5b5b5 !important; }
+
+.has-background-grey-light {
+ background-color: #b5b5b5 !important; }
+
+.has-text-grey-lighter {
+ color: #dbdbdb !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdbdb !important; }
+
+.has-text-white-ter {
+ color: whitesmoke !important; }
+
+.has-background-white-ter {
+ background-color: whitesmoke !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+.box {
+ background-color: white;
+ border-radius: 6px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ display: block;
+ padding: 1.25rem; }
+
+a.box:hover, a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; }
+
+a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; }
+
+.button {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-width: 1px;
+ color: #363636;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ .button strong {
+ color: inherit; }
+ .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ .button:hover, .button.is-hovered {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .button:focus, .button.is-focused {
+ border-color: #3c5dcd;
+ color: #363636; }
+ .button:focus:not(:active), .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button:active, .button.is-active {
+ border-color: #4a4a4a;
+ color: #363636; }
+ .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #222222;
+ text-decoration: underline; }
+ .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused {
+ background-color: whitesmoke;
+ color: #222222; }
+ .button.is-text:active, .button.is-text.is-active {
+ background-color: #e8e8e8;
+ color: #222222; }
+ .button.is-text[disabled], fieldset[disabled] .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:hover, .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus, .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .button.is-white:active, .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white[disabled], fieldset[disabled] .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:hover, .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus, .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .button.is-black:active, .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .button.is-black[disabled], fieldset[disabled] .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:hover, .button.is-light.is-hovered {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus, .button.is-light.is-focused {
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .button.is-light:active, .button.is-light.is-active {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light[disabled], fieldset[disabled] .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-light.is-inverted {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered {
+ background-color: #292929; }
+ .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark, .content kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused {
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-dark.is-inverted, .content kbd.button.is-inverted {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered {
+ background-color: #e8e8e8; }
+ .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-loading::after, .content kbd.button.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined, .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-primary, .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ color: #4eb5de; }
+ .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:hover, .button.is-link.is-hovered {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus, .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button.is-link:active, .button.is-link.is-active {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link[disabled], fieldset[disabled] .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ color: #2e63b8; }
+ .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:hover, .button.is-info.is-hovered {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus, .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .button.is-info:active, .button.is-info.is-active {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info[disabled], fieldset[disabled] .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ color: #209cee; }
+ .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:hover, .button.is-success.is-hovered {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus, .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .button.is-success:active, .button.is-success.is-active {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success[disabled], fieldset[disabled] .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ color: #22c35b; }
+ .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:hover, .button.is-warning.is-hovered {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus, .button.is-warning.is-focused {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .button.is-warning:active, .button.is-warning.is-active {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning[disabled], fieldset[disabled] .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered {
+ background-color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ color: #ffdd57; }
+ .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:hover, .button.is-danger.is-hovered {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus, .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .button.is-danger:active, .button.is-danger.is-active {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger[disabled], fieldset[disabled] .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ color: #da0b00; }
+ .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-small, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .button.is-normal {
+ font-size: 1rem; }
+ .button.is-medium {
+ font-size: 1.25rem; }
+ .button.is-large {
+ font-size: 1.5rem; }
+ .button[disabled], fieldset[disabled] .button {
+ background-color: white;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ opacity: 0.5; }
+ .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ .button.is-static {
+ background-color: whitesmoke;
+ border-color: #dbdbdb;
+ color: #6b6b6b;
+ box-shadow: none;
+ pointer-events: none; }
+ .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .buttons .button {
+ margin-bottom: 0.5rem; }
+ .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .buttons.is-centered {
+ justify-content: center; }
+ .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ .buttons.is-right {
+ justify-content: flex-end; }
+ .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+
+.container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ .container {
+ max-width: 992px; }
+ .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ .container {
+ max-width: 1344px; } }
+.content li + li {
+ margin-top: 0.25em; }
+
+.content p:not(:last-child),
+.content dl:not(:last-child),
+.content ol:not(:last-child),
+.content ul:not(:last-child),
+.content blockquote:not(:last-child),
+.content pre:not(:last-child),
+.content table:not(:last-child) {
+ margin-bottom: 1em; }
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ color: #222222;
+ font-weight: 600;
+ line-height: 1.125; }
+
+.content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ .content h1:not(:first-child) {
+ margin-top: 1em; }
+
+.content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+
+.content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+
+.content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+
+.content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+
+.content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+
+.content blockquote {
+ background-color: whitesmoke;
+ border-left: 5px solid #dbdbdb;
+ padding: 1.25em 1.5em; }
+
+.content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ol:not([type]) {
+ list-style-type: decimal; }
+ .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+
+.content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ .content ul ul ul {
+ list-style-type: square; }
+
+.content dd {
+ margin-left: 2em; }
+
+.content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ .content figure:not(:first-child) {
+ margin-top: 2em; }
+ .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ .content figure img {
+ display: inline-block; }
+ .content figure figcaption {
+ font-style: italic; }
+
+.content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+
+.content sup,
+.content sub {
+ font-size: 75%; }
+
+.content table {
+ width: 100%; }
+ .content table td,
+ .content table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .content table th {
+ color: #222222; }
+ .content table th:not([align]) {
+ text-align: left; }
+ .content table thead td,
+ .content table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .content table tfoot td,
+ .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .content table tbody tr:last-child td,
+ .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+
+.content .tabs li + li {
+ margin-top: 0; }
+
+.content.is-small, #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.75rem; }
+
+.content.is-medium {
+ font-size: 1.25rem; }
+
+.content.is-large {
+ font-size: 1.5rem; }
+
+.icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+
+.image, #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ .image img, #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+ .image.is-square .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ .image.is-1by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ .image.is-5by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ .image.is-4by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ .image.is-3by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ .image.is-5by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ .image.is-16by9 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ .image.is-2by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ .image.is-3by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ .image.is-4by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ .image.is-3by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ .image.is-2by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ .image.is-3by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ .image.is-9by16 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ .image.is-1by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ .image.is-1by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+
+.notification {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .notification strong {
+ color: currentColor; }
+ .notification code,
+ .notification pre {
+ background: white; }
+ .notification pre code {
+ background: transparent; }
+ .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ .notification .title,
+ .notification .subtitle,
+ .notification .content {
+ color: currentColor; }
+ .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .notification.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .notification.is-dark, .content kbd.notification {
+ background-color: #363636;
+ color: whitesmoke; }
+ .notification.is-primary, .docstring > section > a.notification.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .notification.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .notification.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .notification.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .notification.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .notification.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+
+.progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 1rem;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ .progress::-webkit-progress-bar {
+ background-color: #dbdbdb; }
+ .progress::-webkit-progress-value {
+ background-color: #222222; }
+ .progress::-moz-progress-bar {
+ background-color: #222222; }
+ .progress::-ms-fill {
+ background-color: #222222;
+ border: none; }
+ .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ .progress.is-white::-ms-fill {
+ background-color: white; }
+ .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }
+ .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }
+ .progress.is-light::-webkit-progress-value {
+ background-color: whitesmoke; }
+ .progress.is-light::-moz-progress-bar {
+ background-color: whitesmoke; }
+ .progress.is-light::-ms-fill {
+ background-color: whitesmoke; }
+ .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }
+ .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value {
+ background-color: #363636; }
+ .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar {
+ background-color: #363636; }
+ .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill {
+ background-color: #363636; }
+ .progress.is-dark:indeterminate, .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }
+ .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #4eb5de; }
+ .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #4eb5de; }
+ .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #4eb5de; }
+ .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); }
+ .progress.is-link::-webkit-progress-value {
+ background-color: #2e63b8; }
+ .progress.is-link::-moz-progress-bar {
+ background-color: #2e63b8; }
+ .progress.is-link::-ms-fill {
+ background-color: #2e63b8; }
+ .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); }
+ .progress.is-info::-webkit-progress-value {
+ background-color: #209cee; }
+ .progress.is-info::-moz-progress-bar {
+ background-color: #209cee; }
+ .progress.is-info::-ms-fill {
+ background-color: #209cee; }
+ .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); }
+ .progress.is-success::-webkit-progress-value {
+ background-color: #22c35b; }
+ .progress.is-success::-moz-progress-bar {
+ background-color: #22c35b; }
+ .progress.is-success::-ms-fill {
+ background-color: #22c35b; }
+ .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); }
+ .progress.is-warning::-webkit-progress-value {
+ background-color: #ffdd57; }
+ .progress.is-warning::-moz-progress-bar {
+ background-color: #ffdd57; }
+ .progress.is-warning::-ms-fill {
+ background-color: #ffdd57; }
+ .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }
+ .progress.is-danger::-webkit-progress-value {
+ background-color: #da0b00; }
+ .progress.is-danger::-moz-progress-bar {
+ background-color: #da0b00; }
+ .progress.is-danger::-ms-fill {
+ background-color: #da0b00; }
+ .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); }
+ .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #dbdbdb;
+ background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.75rem; }
+ .progress.is-medium {
+ height: 1.25rem; }
+ .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+
+.table {
+ background-color: white;
+ color: #363636; }
+ .table td,
+ .table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .table td.is-white,
+ .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .table td.is-black,
+ .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .table td.is-light,
+ .table th.is-light {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .table td.is-dark,
+ .table th.is-dark {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .table td.is-primary,
+ .table th.is-primary {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .table td.is-link,
+ .table th.is-link {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .table td.is-info,
+ .table th.is-info {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .table td.is-success,
+ .table th.is-success {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .table td.is-warning,
+ .table th.is-warning {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .table td.is-danger,
+ .table th.is-danger {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .table td.is-narrow,
+ .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ .table td.is-selected,
+ .table th.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table td.is-selected a,
+ .table td.is-selected strong,
+ .table th.is-selected a,
+ .table th.is-selected strong {
+ color: currentColor; }
+ .table th {
+ color: #222222; }
+ .table th:not([align]) {
+ text-align: left; }
+ .table tr.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table tr.is-selected a,
+ .table tr.is-selected strong {
+ color: currentColor; }
+ .table tr.is-selected td,
+ .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ .table thead {
+ background-color: transparent; }
+ .table thead td,
+ .table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .table tfoot {
+ background-color: transparent; }
+ .table tfoot td,
+ .table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .table tbody {
+ background-color: transparent; }
+ .table tbody tr:last-child td,
+ .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ .table.is-bordered td,
+ .table.is-bordered th {
+ border-width: 1px; }
+ .table.is-bordered tr:last-child td,
+ .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ .table.is-fullwidth {
+ width: 100%; }
+ .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: whitesmoke; }
+ .table.is-narrow td,
+ .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #fafafa; }
+
+.table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+
+.tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ .tags:last-child {
+ margin-bottom: -0.5rem; }
+ .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 1rem; }
+ .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ .tags.is-centered {
+ justify-content: center; }
+ .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ .tags.is-right {
+ justify-content: flex-end; }
+ .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 4px;
+ color: #222222;
+ display: inline-flex;
+ font-size: 0.75rem;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: whitesmoke;
+ color: #363636; }
+ .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) {
+ background-color: #363636;
+ color: whitesmoke; }
+ .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #4eb5de;
+ color: #fff; }
+ .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #2e63b8;
+ color: #fff; }
+ .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #209cee;
+ color: #fff; }
+ .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #22c35b;
+ color: #fff; }
+ .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #da0b00;
+ color: #fff; }
+ .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.75rem; }
+ .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 1rem; }
+ .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #e8e8e8; }
+ .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #dbdbdb; }
+ .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+
+a.tag:hover, .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+
+.title,
+.subtitle {
+ word-break: break-word; }
+ .title em,
+ .title span,
+ .subtitle em,
+ .subtitle span {
+ font-weight: inherit; }
+ .title sub,
+ .subtitle sub {
+ font-size: 0.75em; }
+ .title sup,
+ .subtitle sup {
+ font-size: 0.75em; }
+ .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink,
+ .subtitle .tag,
+ .subtitle .content kbd,
+ .content .subtitle kbd,
+ .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+
+.title {
+ color: #363636;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: 1.125; }
+ .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ .title + .highlight {
+ margin-top: -0.75rem; }
+ .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ .title.is-1 {
+ font-size: 3rem; }
+ .title.is-2 {
+ font-size: 2.5rem; }
+ .title.is-3 {
+ font-size: 2rem; }
+ .title.is-4 {
+ font-size: 1.5rem; }
+ .title.is-5 {
+ font-size: 1.25rem; }
+ .title.is-6 {
+ font-size: 1rem; }
+ .title.is-7 {
+ font-size: 0.75rem; }
+
+.subtitle {
+ color: #4a4a4a;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ .subtitle strong {
+ color: #363636;
+ font-weight: 600; }
+ .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ .subtitle.is-1 {
+ font-size: 3rem; }
+ .subtitle.is-2 {
+ font-size: 2.5rem; }
+ .subtitle.is-3 {
+ font-size: 2rem; }
+ .subtitle.is-4 {
+ font-size: 1.5rem; }
+ .subtitle.is-5 {
+ font-size: 1.25rem; }
+ .subtitle.is-6 {
+ font-size: 1rem; }
+ .subtitle.is-7 {
+ font-size: 0.75rem; }
+
+.heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+
+.highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+
+.number {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+
+.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ color: #363636; }
+ .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #b5b5b5; }
+ .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #2e63b8;
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: #6b6b6b; }
+ .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+
+.textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: whitesmoke; }
+ .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input {
+ border-color: #363636; }
+ .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink {
+ border-color: #4eb5de; }
+ .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #2e63b8; }
+ .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #209cee; }
+ .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #22c35b; }
+ .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ffdd57; }
+ .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #da0b00; }
+ .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+
+.input.is-rounded, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+
+.textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ .textarea[rows] {
+ height: initial; }
+ .textarea.has-fixed-size {
+ resize: none; }
+
+.radio, .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ .radio input, .checkbox input {
+ cursor: pointer; }
+ .radio:hover, .checkbox:hover {
+ color: #363636; }
+ .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox {
+ color: #6b6b6b;
+ cursor: not-allowed; }
+
+.radio + .radio {
+ margin-left: 0.5em; }
+
+.select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ .select:not(.is-multiple) {
+ height: 2.25em; }
+ .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #2e63b8;
+ right: 1.125em;
+ z-index: 4; }
+ .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ .select select::-ms-expand {
+ display: none; }
+ .select select[disabled]:hover, fieldset[disabled] .select select:hover {
+ border-color: whitesmoke; }
+ .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ .select select[multiple] option {
+ padding: 0.5em 1em; }
+ .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #363636; }
+ .select.is-white:not(:hover)::after {
+ border-color: white; }
+ .select.is-white select {
+ border-color: white; }
+ .select.is-white select:hover, .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ .select.is-black select {
+ border-color: #0a0a0a; }
+ .select.is-black select:hover, .select.is-black select.is-hovered {
+ border-color: black; }
+ .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .select.is-light:not(:hover)::after {
+ border-color: whitesmoke; }
+ .select.is-light select {
+ border-color: whitesmoke; }
+ .select.is-light select:hover, .select.is-light select.is-hovered {
+ border-color: #e8e8e8; }
+ .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after {
+ border-color: #363636; }
+ .select.is-dark select, .content kbd.select select {
+ border-color: #363636; }
+ .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered {
+ border-color: #292929; }
+ .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #4eb5de; }
+ .select.is-primary select, .docstring > section > a.select.docs-sourcelink select {
+ border-color: #4eb5de; }
+ .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #39acda; }
+ .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .select.is-link:not(:hover)::after {
+ border-color: #2e63b8; }
+ .select.is-link select {
+ border-color: #2e63b8; }
+ .select.is-link select:hover, .select.is-link select.is-hovered {
+ border-color: #2958a4; }
+ .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select.is-info:not(:hover)::after {
+ border-color: #209cee; }
+ .select.is-info select {
+ border-color: #209cee; }
+ .select.is-info select:hover, .select.is-info select.is-hovered {
+ border-color: #1190e3; }
+ .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .select.is-success:not(:hover)::after {
+ border-color: #22c35b; }
+ .select.is-success select {
+ border-color: #22c35b; }
+ .select.is-success select:hover, .select.is-success select.is-hovered {
+ border-color: #1ead51; }
+ .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .select.is-warning:not(:hover)::after {
+ border-color: #ffdd57; }
+ .select.is-warning select {
+ border-color: #ffdd57; }
+ .select.is-warning select:hover, .select.is-warning select.is-hovered {
+ border-color: #ffd83e; }
+ .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .select.is-danger:not(:hover)::after {
+ border-color: #da0b00; }
+ .select.is-danger select {
+ border-color: #da0b00; }
+ .select.is-danger select:hover, .select.is-danger select.is-hovered {
+ border-color: #c10a00; }
+ .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .select.is-small, #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .select.is-medium {
+ font-size: 1.25rem; }
+ .select.is-large {
+ font-size: 1.5rem; }
+ .select.is-disabled::after {
+ border-color: #6b6b6b; }
+ .select.is-fullwidth {
+ width: 100%; }
+ .select.is-fullwidth select {
+ width: 100%; }
+ .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ .file.is-white:active .file-cta, .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ .file.is-black:active .file-cta, .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .file.is-light .file-cta {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
+ color: #363636; }
+ .file.is-light:active .file-cta, .file.is-light.is-active .file-cta {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-dark .file-cta, .content kbd.file .file-cta {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
+ color: whitesmoke; }
+ .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25);
+ color: #fff; }
+ .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link .file-cta {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25);
+ color: #fff; }
+ .file.is-link:active .file-cta, .file.is-link.is-active .file-cta {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info .file-cta {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25);
+ color: #fff; }
+ .file.is-info:active .file-cta, .file.is-info.is-active .file-cta {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success .file-cta {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25);
+ color: #fff; }
+ .file.is-success:active .file-cta, .file.is-success.is-active .file-cta {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-warning .file-cta {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-danger .file-cta {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25);
+ color: #fff; }
+ .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-small, #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.75rem; }
+ .file.is-medium {
+ font-size: 1.25rem; }
+ .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ .file.is-large {
+ font-size: 1.5rem; }
+ .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .file.has-name.is-empty .file-cta {
+ border-radius: 4px; }
+ .file.has-name.is-empty .file-name {
+ display: none; }
+ .file.is-boxed .file-label {
+ flex-direction: column; }
+ .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ .file.is-boxed.has-name .file-cta {
+ border-radius: 4px 4px 0 0; }
+ .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 4px 4px;
+ border-width: 0 1px 1px; }
+ .file.is-centered {
+ justify-content: center; }
+ .file.is-fullwidth .file-label {
+ width: 100%; }
+ .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ .file.is-right {
+ justify-content: flex-end; }
+ .file.is-right .file-cta {
+ border-radius: 0 4px 4px 0; }
+ .file.is-right .file-name {
+ border-radius: 4px 0 0 4px;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+
+.file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ .file-label:hover .file-cta {
+ background-color: #eeeeee;
+ color: #363636; }
+ .file-label:hover .file-name {
+ border-color: #d5d5d5; }
+ .file-label:active .file-cta {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .file-label:active .file-name {
+ border-color: #cfcfcf; }
+
+.file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+
+.file-cta,
+.file-name {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+
+.file-cta {
+ background-color: whitesmoke;
+ color: #4a4a4a; }
+
+.file-name {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+
+.file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ .file-icon .fa {
+ font-size: 14px; }
+
+.label {
+ color: #363636;
+ display: block;
+ font-size: 1rem;
+ font-weight: 700; }
+ .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ .label.is-small, #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.75rem; }
+ .label.is-medium {
+ font-size: 1.25rem; }
+ .label.is-large {
+ font-size: 1.5rem; }
+
+.help {
+ display: block;
+ font-size: 0.75rem;
+ margin-top: 0.25rem; }
+ .help.is-white {
+ color: white; }
+ .help.is-black {
+ color: #0a0a0a; }
+ .help.is-light {
+ color: whitesmoke; }
+ .help.is-dark, .content kbd.help {
+ color: #363636; }
+ .help.is-primary, .docstring > section > a.help.docs-sourcelink {
+ color: #4eb5de; }
+ .help.is-link {
+ color: #2e63b8; }
+ .help.is-info {
+ color: #209cee; }
+ .help.is-success {
+ color: #22c35b; }
+ .help.is-warning {
+ color: #ffdd57; }
+ .help.is-danger {
+ color: #da0b00; }
+
+.field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+
+.field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ .field.has-addons .control:first-child:not(:only-child) .button,
+ .field.has-addons .control:first-child:not(:only-child) .input,
+ .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .field.has-addons .control:last-child:not(:only-child) .button,
+ .field.has-addons .control:last-child:not(:only-child) .input,
+ .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ .field.has-addons .control .input.is-hovered:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):hover,
+ .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):focus,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ .field.has-addons .control .input.is-focused:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):active,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ .field.has-addons .control .input.is-active:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):focus,
+ .field.has-addons .control .select select.is-focused:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):active,
+ .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):focus:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):active:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ .field.has-addons .control .input.is-active:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):focus:hover,
+ .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):active:hover,
+ .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+
+.field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ .field.is-grouped > .control {
+ flex-shrink: 0; }
+ .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field.is-horizontal {
+ display: flex; } }
+
+.field-label .label {
+ font-size: inherit; }
+
+@media screen and (max-width: 768px) {
+ .field-label {
+ margin-bottom: 0.5rem; } }
+
+@media screen and (min-width: 769px), print {
+ .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.75rem;
+ padding-top: 0.375em; }
+ .field-label.is-normal {
+ padding-top: 0.375em; }
+ .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+
+.field-body .field .field {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ .field-body .field {
+ margin-bottom: 0; }
+ .field-body > .field {
+ flex-shrink: 1; }
+ .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+
+.control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 1rem;
+ position: relative;
+ text-align: left; }
+ .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ .control.has-icons-right .select:focus ~ .icon {
+ color: #6b6b6b; }
+ .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.75rem; }
+ .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ .control.has-icons-left .icon, .control.has-icons-right .icon {
+ color: #dbdbdb;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ .control.has-icons-left .icon.is-left {
+ left: 0; }
+ .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ .control.has-icons-right .icon.is-right {
+ right: 0; }
+ .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.breadcrumb {
+ font-size: 1rem;
+ white-space: nowrap; }
+ .breadcrumb a {
+ align-items: center;
+ color: #2e63b8;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ .breadcrumb a:hover {
+ color: #363636; }
+ .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ .breadcrumb li:first-child a {
+ padding-left: 0; }
+ .breadcrumb li.is-active a {
+ color: #222222;
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb li + li::before {
+ color: #b5b5b5;
+ content: "\0002f"; }
+ .breadcrumb ul,
+ .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ .breadcrumb.is-centered ol,
+ .breadcrumb.is-centered ul {
+ justify-content: center; }
+ .breadcrumb.is-right ol,
+ .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.75rem; }
+ .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+
+.card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ max-width: 100%;
+ position: relative; }
+
+.card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+
+.card-header-title {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ .card-header-title.is-centered {
+ justify-content: center; }
+
+.card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+
+.card-image {
+ display: block;
+ position: relative; }
+
+.card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+
+.card-footer {
+ background-color: transparent;
+ border-top: 1px solid #dbdbdb;
+ align-items: stretch;
+ display: flex; }
+
+.card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ .card-footer-item:not(:last-child) {
+ border-right: 1px solid #dbdbdb; }
+
+.card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+
+.dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+
+.dropdown-content {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+
+.dropdown-item {
+ color: #4a4a4a;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+
+a.dropdown-item,
+button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ a.dropdown-item:hover,
+ button.dropdown-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ a.dropdown-item.is-active,
+ button.dropdown-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+.dropdown-divider {
+ background-color: #dbdbdb;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+
+.level {
+ align-items: center;
+ justify-content: space-between; }
+ .level code {
+ border-radius: 4px; }
+ .level img {
+ display: inline-block;
+ vertical-align: top; }
+ .level.is-mobile {
+ display: flex; }
+ .level.is-mobile .level-left,
+ .level.is-mobile .level-right {
+ display: flex; }
+ .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level {
+ display: flex; }
+ .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+.level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ .level-item .title,
+ .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+.level-left,
+.level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .level-left .level-item.is-flexible,
+ .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level-left .level-item:not(:last-child),
+ .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+.level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .level-left {
+ display: flex; } }
+.level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ .level-right {
+ display: flex; } }
+.list {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+
+.list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ .list-item:not(a) {
+ color: #222222; }
+ .list-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px; }
+ .list-item:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px; }
+ .list-item:not(:last-child) {
+ border-bottom: 1px solid #dbdbdb; }
+ .list-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+a.list-item {
+ background-color: whitesmoke;
+ cursor: pointer; }
+
+.media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .media .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ .media .media .content:not(:last-child),
+ .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ .media .media .media {
+ padding-top: 0.5rem; }
+ .media .media .media + .media {
+ margin-top: 0.5rem; }
+ .media + .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+
+.media-left,
+.media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.media-left {
+ margin-right: 1rem; }
+
+.media-right {
+ margin-left: 1rem; }
+
+.media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+
+@media screen and (max-width: 768px) {
+ .media-content {
+ overflow-x: auto; } }
+
+.menu {
+ font-size: 1rem; }
+ .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.75rem; }
+ .menu.is-medium {
+ font-size: 1.25rem; }
+ .menu.is-large {
+ font-size: 1.5rem; }
+
+.menu-list {
+ line-height: 1.25; }
+ .menu-list a {
+ border-radius: 2px;
+ color: #222222;
+ display: block;
+ padding: 0.5em 0.75em; }
+ .menu-list a:hover {
+ background-color: whitesmoke;
+ color: #222222; }
+ .menu-list a.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+ .menu-list li ul {
+ border-left: 1px solid #dbdbdb;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+
+.menu-label {
+ color: #6b6b6b;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+
+.message {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .message strong {
+ color: currentColor; }
+ .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .message.is-small, #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.75rem; }
+ .message.is-medium {
+ font-size: 1.25rem; }
+ .message.is-large {
+ font-size: 1.5rem; }
+ .message.is-white {
+ background-color: white; }
+ .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ .message.is-black {
+ background-color: #fafafa; }
+ .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ .message.is-light {
+ background-color: #fafafa; }
+ .message.is-light .message-header {
+ background-color: whitesmoke;
+ color: #363636; }
+ .message.is-light .message-body {
+ border-color: whitesmoke;
+ color: #505050; }
+ .message.is-dark, .content kbd.message {
+ background-color: #fafafa; }
+ .message.is-dark .message-header, .content kbd.message .message-header {
+ background-color: #363636;
+ color: whitesmoke; }
+ .message.is-dark .message-body, .content kbd.message .message-body {
+ border-color: #363636;
+ color: #2a2a2a; }
+ .message.is-primary, .docstring > section > a.message.docs-sourcelink {
+ background-color: #f6fbfd; }
+ .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #4eb5de;
+ color: #fff; }
+ .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #4eb5de;
+ color: #1f556a; }
+ .message.is-link {
+ background-color: #f7f9fd; }
+ .message.is-link .message-header {
+ background-color: #2e63b8;
+ color: #fff; }
+ .message.is-link .message-body {
+ border-color: #2e63b8;
+ color: #264981; }
+ .message.is-info {
+ background-color: #f6fbfe; }
+ .message.is-info .message-header {
+ background-color: #209cee;
+ color: #fff; }
+ .message.is-info .message-body {
+ border-color: #209cee;
+ color: #12537d; }
+ .message.is-success {
+ background-color: #f6fdf9; }
+ .message.is-success .message-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .message.is-success .message-body {
+ border-color: #22c35b;
+ color: #0f361d; }
+ .message.is-warning {
+ background-color: #fffdf5; }
+ .message.is-warning .message-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .message.is-warning .message-body {
+ border-color: #ffdd57;
+ color: #3c3108; }
+ .message.is-danger {
+ background-color: #fff5f5; }
+ .message.is-danger .message-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .message.is-danger .message-body {
+ border-color: #da0b00;
+ color: #9b0c04; }
+
+.message-header {
+ align-items: center;
+ background-color: #222222;
+ border-radius: 4px 4px 0 0;
+ color: #fff;
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.message-body {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #222222;
+ padding: 1.25em 1.5em; }
+ .message-body code,
+ .message-body pre {
+ background-color: white; }
+ .message-body pre code {
+ background-color: transparent; }
+
+.modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ .modal.is-active {
+ display: flex; }
+
+.modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+
+.modal-content,
+.modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ .modal-content,
+ .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+.modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+
+.modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+
+.modal-card-head,
+.modal-card-foot {
+ align-items: center;
+ background-color: whitesmoke;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+
+.modal-card-head {
+ border-bottom: 1px solid #dbdbdb;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.modal-card-title {
+ color: #222222;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+
+.modal-card-foot {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid #dbdbdb; }
+ .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+
+.modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+
+.navbar {
+ background-color: white;
+ min-height: 3.25rem;
+ position: relative;
+ z-index: 30; }
+ .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > .navbar-item,
+ .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-white .navbar-brand .navbar-link:focus,
+ .navbar.is-white .navbar-brand .navbar-link:hover,
+ .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-white .navbar-start > .navbar-item,
+ .navbar.is-white .navbar-start .navbar-link,
+ .navbar.is-white .navbar-end > .navbar-item,
+ .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ .navbar.is-white .navbar-start .navbar-link:focus,
+ .navbar.is-white .navbar-start .navbar-link:hover,
+ .navbar.is-white .navbar-start .navbar-link.is-active,
+ .navbar.is-white .navbar-end > a.navbar-item:focus,
+ .navbar.is-white .navbar-end > a.navbar-item:hover,
+ .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ .navbar.is-white .navbar-end .navbar-link:focus,
+ .navbar.is-white .navbar-end .navbar-link:hover,
+ .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start .navbar-link::after,
+ .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .navbar.is-black .navbar-brand > .navbar-item,
+ .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-black .navbar-brand .navbar-link:focus,
+ .navbar.is-black .navbar-brand .navbar-link:hover,
+ .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-black .navbar-start > .navbar-item,
+ .navbar.is-black .navbar-start .navbar-link,
+ .navbar.is-black .navbar-end > .navbar-item,
+ .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ .navbar.is-black .navbar-start .navbar-link:focus,
+ .navbar.is-black .navbar-start .navbar-link:hover,
+ .navbar.is-black .navbar-start .navbar-link.is-active,
+ .navbar.is-black .navbar-end > a.navbar-item:focus,
+ .navbar.is-black .navbar-end > a.navbar-item:hover,
+ .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ .navbar.is-black .navbar-end .navbar-link:focus,
+ .navbar.is-black .navbar-end .navbar-link:hover,
+ .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-start .navbar-link::after,
+ .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ .navbar.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .navbar.is-light .navbar-brand > .navbar-item,
+ .navbar.is-light .navbar-brand .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-light .navbar-brand .navbar-link:focus,
+ .navbar.is-light .navbar-brand .navbar-link:hover,
+ .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-burger {
+ color: #363636; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-light .navbar-start > .navbar-item,
+ .navbar.is-light .navbar-start .navbar-link,
+ .navbar.is-light .navbar-end > .navbar-item,
+ .navbar.is-light .navbar-end .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ .navbar.is-light .navbar-start .navbar-link:focus,
+ .navbar.is-light .navbar-start .navbar-link:hover,
+ .navbar.is-light .navbar-start .navbar-link.is-active,
+ .navbar.is-light .navbar-end > a.navbar-item:focus,
+ .navbar.is-light .navbar-end > a.navbar-item:hover,
+ .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ .navbar.is-light .navbar-end .navbar-link:focus,
+ .navbar.is-light .navbar-end .navbar-link:hover,
+ .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-start .navbar-link::after,
+ .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #363636; } }
+ .navbar.is-dark, .content kbd.navbar {
+ background-color: #363636;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item,
+ .navbar.is-dark .navbar-brand .navbar-link,
+ .content kbd.navbar .navbar-brand .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-brand .navbar-link:focus,
+ .content kbd.navbar .navbar-brand .navbar-link:focus,
+ .navbar.is-dark .navbar-brand .navbar-link:hover,
+ .content kbd.navbar .navbar-brand .navbar-link:hover,
+ .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger {
+ color: whitesmoke; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item,
+ .navbar.is-dark .navbar-start .navbar-link,
+ .content kbd.navbar .navbar-start .navbar-link,
+ .navbar.is-dark .navbar-end > .navbar-item,
+ .content kbd.navbar .navbar-end > .navbar-item,
+ .navbar.is-dark .navbar-end .navbar-link,
+ .content kbd.navbar .navbar-end .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-start .navbar-link:focus,
+ .content kbd.navbar .navbar-start .navbar-link:focus,
+ .navbar.is-dark .navbar-start .navbar-link:hover,
+ .content kbd.navbar .navbar-start .navbar-link:hover,
+ .navbar.is-dark .navbar-start .navbar-link.is-active,
+ .content kbd.navbar .navbar-start .navbar-link.is-active,
+ .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-end .navbar-link:focus,
+ .content kbd.navbar .navbar-end .navbar-link:focus,
+ .navbar.is-dark .navbar-end .navbar-link:hover,
+ .content kbd.navbar .navbar-end .navbar-link:hover,
+ .navbar.is-dark .navbar-end .navbar-link.is-active,
+ .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after,
+ .navbar.is-dark .navbar-end .navbar-link::after,
+ .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #363636;
+ color: whitesmoke; } }
+ .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ .navbar.is-primary .navbar-brand .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-brand .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ .navbar.is-primary .navbar-brand .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ .navbar.is-primary .navbar-start .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ .navbar.is-primary .navbar-end > .navbar-item,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ .navbar.is-primary .navbar-end .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-start .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ .navbar.is-primary .navbar-start .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ .navbar.is-primary .navbar-start .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-end .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ .navbar.is-primary .navbar-end .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ .navbar.is-primary .navbar-end .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ .navbar.is-primary .navbar-end .navbar-link::after,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #4eb5de;
+ color: #fff; } }
+ .navbar.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .navbar.is-link .navbar-brand > .navbar-item,
+ .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-link .navbar-brand .navbar-link:focus,
+ .navbar.is-link .navbar-brand .navbar-link:hover,
+ .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-link .navbar-start > .navbar-item,
+ .navbar.is-link .navbar-start .navbar-link,
+ .navbar.is-link .navbar-end > .navbar-item,
+ .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ .navbar.is-link .navbar-start .navbar-link:focus,
+ .navbar.is-link .navbar-start .navbar-link:hover,
+ .navbar.is-link .navbar-start .navbar-link.is-active,
+ .navbar.is-link .navbar-end > a.navbar-item:focus,
+ .navbar.is-link .navbar-end > a.navbar-item:hover,
+ .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ .navbar.is-link .navbar-end .navbar-link:focus,
+ .navbar.is-link .navbar-end .navbar-link:hover,
+ .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-start .navbar-link::after,
+ .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; } }
+ .navbar.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .navbar.is-info .navbar-brand > .navbar-item,
+ .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-info .navbar-brand .navbar-link:focus,
+ .navbar.is-info .navbar-brand .navbar-link:hover,
+ .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-info .navbar-start > .navbar-item,
+ .navbar.is-info .navbar-start .navbar-link,
+ .navbar.is-info .navbar-end > .navbar-item,
+ .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ .navbar.is-info .navbar-start .navbar-link:focus,
+ .navbar.is-info .navbar-start .navbar-link:hover,
+ .navbar.is-info .navbar-start .navbar-link.is-active,
+ .navbar.is-info .navbar-end > a.navbar-item:focus,
+ .navbar.is-info .navbar-end > a.navbar-item:hover,
+ .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ .navbar.is-info .navbar-end .navbar-link:focus,
+ .navbar.is-info .navbar-end .navbar-link:hover,
+ .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-start .navbar-link::after,
+ .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #209cee;
+ color: #fff; } }
+ .navbar.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .navbar.is-success .navbar-brand > .navbar-item,
+ .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-success .navbar-brand .navbar-link:focus,
+ .navbar.is-success .navbar-brand .navbar-link:hover,
+ .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-success .navbar-start > .navbar-item,
+ .navbar.is-success .navbar-start .navbar-link,
+ .navbar.is-success .navbar-end > .navbar-item,
+ .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ .navbar.is-success .navbar-start .navbar-link:focus,
+ .navbar.is-success .navbar-start .navbar-link:hover,
+ .navbar.is-success .navbar-start .navbar-link.is-active,
+ .navbar.is-success .navbar-end > a.navbar-item:focus,
+ .navbar.is-success .navbar-end > a.navbar-item:hover,
+ .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ .navbar.is-success .navbar-end .navbar-link:focus,
+ .navbar.is-success .navbar-end .navbar-link:hover,
+ .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-start .navbar-link::after,
+ .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #22c35b;
+ color: #fff; } }
+ .navbar.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > .navbar-item,
+ .navbar.is-warning .navbar-brand .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-brand .navbar-link:focus,
+ .navbar.is-warning .navbar-brand .navbar-link:hover,
+ .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-burger {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-warning .navbar-start > .navbar-item,
+ .navbar.is-warning .navbar-start .navbar-link,
+ .navbar.is-warning .navbar-end > .navbar-item,
+ .navbar.is-warning .navbar-end .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-start .navbar-link:focus,
+ .navbar.is-warning .navbar-start .navbar-link:hover,
+ .navbar.is-warning .navbar-start .navbar-link.is-active,
+ .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-end .navbar-link:focus,
+ .navbar.is-warning .navbar-end .navbar-link:hover,
+ .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start .navbar-link::after,
+ .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); } }
+ .navbar.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > .navbar-item,
+ .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-brand .navbar-link:focus,
+ .navbar.is-danger .navbar-brand .navbar-link:hover,
+ .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-danger .navbar-start > .navbar-item,
+ .navbar.is-danger .navbar-start .navbar-link,
+ .navbar.is-danger .navbar-end > .navbar-item,
+ .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-start .navbar-link:focus,
+ .navbar.is-danger .navbar-start .navbar-link:hover,
+ .navbar.is-danger .navbar-start .navbar-link.is-active,
+ .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-end .navbar-link:focus,
+ .navbar.is-danger .navbar-end .navbar-link:hover,
+ .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-start .navbar-link::after,
+ .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #da0b00;
+ color: #fff; } }
+ .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+ width: 100%; }
+ .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 whitesmoke; }
+ .navbar.is-fixed-bottom, .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom {
+ bottom: 0; }
+ .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 whitesmoke; }
+ .navbar.is-fixed-top {
+ top: 0; }
+
+html.has-navbar-fixed-top,
+body.has-navbar-fixed-top {
+ padding-top: 3.25rem; }
+
+html.has-navbar-fixed-bottom,
+body.has-navbar-fixed-bottom {
+ padding-bottom: 3.25rem; }
+
+.navbar-brand,
+.navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 3.25rem; }
+
+.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+
+.navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+.navbar-burger {
+ color: #4a4a4a;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto; }
+ .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+
+.navbar-menu {
+ display: none; }
+
+.navbar-item,
+.navbar-link {
+ color: #4a4a4a;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .navbar-item .icon:only-child,
+ .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+
+a.navbar-item,
+.navbar-link {
+ cursor: pointer; }
+ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
+ .navbar-link:focus,
+ .navbar-link:focus-within,
+ .navbar-link:hover,
+ .navbar-link.is-active {
+ background-color: #fafafa;
+ color: #2e63b8; }
+
+.navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .navbar-item img {
+ max-height: 1.75rem; }
+ .navbar-item.has-dropdown {
+ padding: 0; }
+ .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 3.25rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ .navbar-item.is-tab:focus, .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #2e63b8; }
+ .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #2e63b8;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #2e63b8;
+ padding-bottom: calc(0.5rem - 3px); }
+
+.navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+
+.navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ .navbar-link:not(.is-arrowless)::after {
+ border-color: #2e63b8;
+ margin-top: -0.375em;
+ right: 1.125em; }
+
+.navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+
+.navbar-divider {
+ background-color: whitesmoke;
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+
+@media screen and (max-width: 1055px) {
+ .navbar > .container {
+ display: block; }
+ .navbar-brand .navbar-item,
+ .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ .navbar-link::after {
+ display: none; }
+ .navbar-menu {
+ background-color: white;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ .navbar-menu.is-active {
+ display: block; }
+ .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-touch {
+ top: 0; }
+ .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto; }
+ html.has-navbar-fixed-top-touch,
+ body.has-navbar-fixed-top-touch {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-touch,
+ body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 3.25rem; } }
+
+@media screen and (min-width: 1056px) {
+ .navbar,
+ .navbar-menu,
+ .navbar-start,
+ .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ .navbar {
+ min-height: 3.25rem; }
+ .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ .navbar.is-spaced .navbar-start,
+ .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ .navbar.is-spaced a.navbar-item,
+ .navbar.is-spaced .navbar-link {
+ border-radius: 4px; }
+ .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active,
+ .navbar.is-transparent .navbar-link:focus,
+ .navbar.is-transparent .navbar-link:hover,
+ .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar-burger {
+ display: none; }
+ .navbar-item,
+ .navbar-link {
+ align-items: center;
+ display: flex; }
+ .navbar-item {
+ display: flex; }
+ .navbar-item.has-dropdown {
+ align-items: stretch; }
+ .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 2px solid #dbdbdb;
+ border-radius: 6px 6px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ .navbar-dropdown {
+ background-color: white;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid #dbdbdb;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed {
+ border-radius: 6px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ .navbar-divider {
+ display: block; }
+ .navbar > .container .navbar-brand,
+ .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ .navbar > .container .navbar-menu,
+ .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.has-navbar-fixed-top-desktop,
+ body.has-navbar-fixed-top-desktop {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-desktop,
+ body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 3.25rem; }
+ html.has-spaced-navbar-fixed-top,
+ body.has-spaced-navbar-fixed-top {
+ padding-top: 5.25rem; }
+ html.has-spaced-navbar-fixed-bottom,
+ body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 5.25rem; }
+ a.navbar-item.is-active,
+ .navbar-link.is-active {
+ color: #0a0a0a; }
+ a.navbar-item.is-active:not(:focus):not(:hover),
+ .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #fafafa; } }
+
+.hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 3.25rem); }
+
+.pagination {
+ font-size: 1rem;
+ margin: -0.25rem; }
+ .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.75rem; }
+ .pagination.is-medium {
+ font-size: 1.25rem; }
+ .pagination.is-large {
+ font-size: 1.5rem; }
+ .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ .pagination.is-rounded .pagination-next,
+ #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+
+.pagination,
+.pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link {
+ border-color: #dbdbdb;
+ color: #363636;
+ min-width: 2.25em; }
+ .pagination-previous:hover,
+ .pagination-next:hover,
+ .pagination-link:hover {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus {
+ border-color: #3c5dcd; }
+ .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled] {
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ color: #6b6b6b;
+ opacity: 0.5; }
+
+.pagination-previous,
+.pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+
+.pagination-link.is-current {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+
+.pagination-ellipsis {
+ color: #b5b5b5;
+ pointer-events: none; }
+
+.pagination-list {
+ flex-wrap: wrap; }
+
+@media screen and (max-width: 768px) {
+ .pagination {
+ flex-wrap: wrap; }
+ .pagination-previous,
+ .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+
+@media screen and (min-width: 769px), print {
+ .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ .pagination-previous {
+ order: 2; }
+ .pagination-next {
+ order: 3; }
+ .pagination {
+ justify-content: space-between; }
+ .pagination.is-centered .pagination-previous {
+ order: 1; }
+ .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ .pagination.is-centered .pagination-next {
+ order: 3; }
+ .pagination.is-right .pagination-previous {
+ order: 1; }
+ .pagination.is-right .pagination-next {
+ order: 2; }
+ .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+
+.panel {
+ font-size: 1rem; }
+ .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.panel-heading,
+.panel-tabs,
+.panel-block {
+ border-bottom: 1px solid #dbdbdb;
+ border-left: 1px solid #dbdbdb;
+ border-right: 1px solid #dbdbdb; }
+ .panel-heading:first-child,
+ .panel-tabs:first-child,
+ .panel-block:first-child {
+ border-top: 1px solid #dbdbdb; }
+
+.panel-heading {
+ background-color: whitesmoke;
+ border-radius: 4px 4px 0 0;
+ color: #222222;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+
+.panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ .panel-tabs a {
+ border-bottom: 1px solid #dbdbdb;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ .panel-tabs a.is-active {
+ border-bottom-color: #4a4a4a;
+ color: #363636; }
+
+.panel-list a {
+ color: #222222; }
+ .panel-list a:hover {
+ color: #2e63b8; }
+
+.panel-block {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ .panel-block.is-active {
+ border-left-color: #2e63b8;
+ color: #363636; }
+ .panel-block.is-active .panel-icon {
+ color: #2e63b8; }
+
+a.panel-block,
+label.panel-block {
+ cursor: pointer; }
+ a.panel-block:hover,
+ label.panel-block:hover {
+ background-color: whitesmoke; }
+
+.panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: #6b6b6b;
+ margin-right: 0.75em; }
+ .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+
+.tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 1rem;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ .tabs a {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #222222;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ .tabs a:hover {
+ border-bottom-color: #222222;
+ color: #222222; }
+ .tabs li {
+ display: block; }
+ .tabs li.is-active a {
+ border-bottom-color: #2e63b8;
+ color: #2e63b8; }
+ .tabs ul {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ .tabs ul.is-left {
+ padding-right: 0.75em; }
+ .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ .tabs.is-centered ul {
+ justify-content: center; }
+ .tabs.is-right ul {
+ justify-content: flex-end; }
+ .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .tabs.is-boxed a:hover {
+ background-color: whitesmoke;
+ border-bottom-color: #dbdbdb; }
+ .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-bottom-color: transparent !important; }
+ .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .tabs.is-toggle a {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ .tabs.is-toggle a:hover {
+ background-color: whitesmoke;
+ border-color: #b5b5b5;
+ z-index: 2; }
+ .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ .tabs.is-toggle li:first-child a {
+ border-radius: 4px 0 0 4px; }
+ .tabs.is-toggle li:last-child a {
+ border-radius: 0 4px 4px 0; }
+ .tabs.is-toggle li.is-active a {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff;
+ z-index: 1; }
+ .tabs.is-toggle ul {
+ border-bottom: none; }
+ .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.75rem; }
+ .tabs.is-medium {
+ font-size: 1.25rem; }
+ .tabs.is-large {
+ font-size: 1.5rem; }
+
+.column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ .column.is-narrow-mobile {
+ flex: none; }
+ .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ .column.is-narrow, .column.is-narrow-tablet {
+ flex: none; }
+ .column.is-full, .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters, .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds, .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half, .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third, .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter, .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth, .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths, .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths, .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths, .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ .column.is-offset-half, .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ .column.is-offset-one-third, .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ .column.is-0, .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0, .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ .column.is-1, .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1, .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ .column.is-2, .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2, .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ .column.is-3, .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3, .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ .column.is-4, .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4, .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ .column.is-5, .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5, .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ .column.is-6, .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6, .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ .column.is-7, .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7, .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ .column.is-8, .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8, .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ .column.is-9, .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9, .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ .column.is-10, .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10, .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ .column.is-11, .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11, .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ .column.is-12, .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12, .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ .column.is-narrow-touch {
+ flex: none; }
+ .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-touch {
+ margin-left: 50%; }
+ .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-touch {
+ margin-left: 0%; }
+ .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-touch {
+ margin-left: 25%; }
+ .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-touch {
+ margin-left: 50%; }
+ .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-touch {
+ margin-left: 75%; }
+ .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ .column.is-narrow-desktop {
+ flex: none; }
+ .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ .column.is-narrow-widescreen {
+ flex: none; }
+ .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ .column.is-narrow-fullhd {
+ flex: none; }
+ .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+.columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .columns:last-child {
+ margin-bottom: -0.75rem; }
+ .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ .columns.is-centered {
+ justify-content: center; }
+ .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ .columns.is-mobile {
+ display: flex; }
+ .columns.is-multiline {
+ flex-wrap: wrap; }
+ .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-desktop {
+ display: flex; } }
+.columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+.tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .tile.is-child {
+ margin: 0 !important; }
+ .tile.is-parent {
+ padding: 0.75rem; }
+ .tile.is-vertical {
+ flex-direction: column; }
+ .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ .tile:not(.is-child) {
+ display: flex; }
+ .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+.hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ .hero .navbar {
+ background: none; }
+ .hero .tabs ul {
+ border-bottom: none; }
+ .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-white strong {
+ color: inherit; }
+ .hero.is-white .title {
+ color: #0a0a0a; }
+ .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ .hero.is-white .subtitle a:not(.button),
+ .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-white .navbar-menu {
+ background-color: white; } }
+ .hero.is-white .navbar-item,
+ .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active,
+ .hero.is-white .navbar-link:hover,
+ .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-black strong {
+ color: inherit; }
+ .hero.is-black .title {
+ color: white; }
+ .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-black .subtitle a:not(.button),
+ .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ .hero.is-black .navbar-item,
+ .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active,
+ .hero.is-black .navbar-link:hover,
+ .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ .hero.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-light strong {
+ color: inherit; }
+ .hero.is-light .title {
+ color: #363636; }
+ .hero.is-light .subtitle {
+ color: rgba(54, 54, 54, 0.9); }
+ .hero.is-light .subtitle a:not(.button),
+ .hero.is-light .subtitle strong {
+ color: #363636; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-light .navbar-menu {
+ background-color: whitesmoke; } }
+ .hero.is-light .navbar-item,
+ .hero.is-light .navbar-link {
+ color: rgba(54, 54, 54, 0.7); }
+ .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active,
+ .hero.is-light .navbar-link:hover,
+ .hero.is-light .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .hero.is-light .tabs a {
+ color: #363636;
+ opacity: 0.9; }
+ .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a {
+ color: #363636; }
+ .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }
+ .hero.is-dark, .content kbd.hero {
+ background-color: #363636;
+ color: whitesmoke; }
+ .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-dark strong,
+ .content kbd.hero strong {
+ color: inherit; }
+ .hero.is-dark .title, .content kbd.hero .title {
+ color: whitesmoke; }
+ .hero.is-dark .subtitle, .content kbd.hero .subtitle {
+ color: rgba(245, 245, 245, 0.9); }
+ .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button),
+ .hero.is-dark .subtitle strong,
+ .content kbd.hero .subtitle strong {
+ color: whitesmoke; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu {
+ background-color: #363636; } }
+ .hero.is-dark .navbar-item, .content kbd.hero .navbar-item,
+ .hero.is-dark .navbar-link,
+ .content kbd.hero .navbar-link {
+ color: rgba(245, 245, 245, 0.7); }
+ .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active,
+ .hero.is-dark .navbar-link:hover,
+ .content kbd.hero .navbar-link:hover,
+ .hero.is-dark .navbar-link.is-active,
+ .content kbd.hero .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .hero.is-dark .tabs a, .content kbd.hero .tabs a {
+ color: whitesmoke;
+ opacity: 0.9; }
+ .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a {
+ color: whitesmoke; }
+ .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .hero.is-dark.is-bold, .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }
+ .hero.is-primary, .docstring > section > a.hero.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-primary strong,
+ .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ .hero.is-primary .subtitle strong,
+ .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #4eb5de; } }
+ .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ .hero.is-primary .navbar-link,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ .hero.is-primary .navbar-link:hover,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ .hero.is-primary .navbar-link.is-active,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #4eb5de; }
+ .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } }
+ .hero.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-link strong {
+ color: inherit; }
+ .hero.is-link .title {
+ color: #fff; }
+ .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-link .subtitle a:not(.button),
+ .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-link .navbar-menu {
+ background-color: #2e63b8; } }
+ .hero.is-link .navbar-item,
+ .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active,
+ .hero.is-link .navbar-link:hover,
+ .hero.is-link .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #2e63b8; }
+ .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } }
+ .hero.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-info strong {
+ color: inherit; }
+ .hero.is-info .title {
+ color: #fff; }
+ .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-info .subtitle a:not(.button),
+ .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-info .navbar-menu {
+ background-color: #209cee; } }
+ .hero.is-info .navbar-item,
+ .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active,
+ .hero.is-info .navbar-link:hover,
+ .hero.is-info .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #209cee; }
+ .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } }
+ .hero.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-success strong {
+ color: inherit; }
+ .hero.is-success .title {
+ color: #fff; }
+ .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-success .subtitle a:not(.button),
+ .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-success .navbar-menu {
+ background-color: #22c35b; } }
+ .hero.is-success .navbar-item,
+ .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active,
+ .hero.is-success .navbar-link:hover,
+ .hero.is-success .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #22c35b; }
+ .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } }
+ .hero.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-warning strong {
+ color: inherit; }
+ .hero.is-warning .title {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .subtitle {
+ color: rgba(0, 0, 0, 0.9); }
+ .hero.is-warning .subtitle a:not(.button),
+ .hero.is-warning .subtitle strong {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (max-width: 1055px) {
+ .hero.is-warning .navbar-menu {
+ background-color: #ffdd57; } }
+ .hero.is-warning .navbar-item,
+ .hero.is-warning .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active,
+ .hero.is-warning .navbar-link:hover,
+ .hero.is-warning .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9; }
+ .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } }
+ .hero.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-danger strong {
+ color: inherit; }
+ .hero.is-danger .title {
+ color: #fff; }
+ .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-danger .subtitle a:not(.button),
+ .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-danger .navbar-menu {
+ background-color: #da0b00; } }
+ .hero.is-danger .navbar-item,
+ .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active,
+ .hero.is-danger .navbar-link:hover,
+ .hero.is-danger .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #da0b00; }
+ .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } }
+ .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .hero.is-halfheight {
+ min-height: 50vh; }
+ .hero.is-fullheight {
+ min-height: 100vh; }
+
+.hero-video {
+ overflow: hidden; }
+ .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ .hero-video {
+ display: none; } }
+.hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .hero-buttons .button {
+ display: flex; }
+ .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+.hero-head,
+.hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+
+.section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ .section.is-medium {
+ padding: 9rem 1.5rem; }
+ .section.is-large {
+ padding: 18rem 1.5rem; } }
+.footer {
+ background-color: #fafafa;
+ padding: 3rem 1.5rem 6rem; }
+
+h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited {
+ color: #222222; }
+
+h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+
+h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+
+.docs-dark-only {
+ display: none !important; }
+
+pre {
+ position: relative;
+ overflow: hidden; }
+ pre code, pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ pre code:first-of-type, pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ pre code:last-of-type, pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #222222;
+ cursor: pointer;
+ text-align: center; }
+ pre .copy-button:focus, pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(34, 34, 34, 0.1);
+ color: #2e63b8; }
+ pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ pre:hover .copy-button {
+ opacity: 1; }
+
+.admonition {
+ background-color: #b5b5b5;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #363636;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .admonition strong {
+ color: currentColor; }
+ .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.75rem; }
+ .admonition.is-medium {
+ font-size: 1.25rem; }
+ .admonition.is-large {
+ font-size: 1.5rem; }
+ .admonition.is-default {
+ background-color: #b5b5b5;
+ border-color: #363636; }
+ .admonition.is-default > .admonition-header {
+ background-color: #363636;
+ color: #fff; }
+ .admonition.is-default > .admonition-body {
+ color: #fff; }
+ .admonition.is-info {
+ background-color: #def0fc;
+ border-color: #209cee; }
+ .admonition.is-info > .admonition-header {
+ background-color: #209cee;
+ color: #fff; }
+ .admonition.is-info > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-success {
+ background-color: #bdf4d1;
+ border-color: #22c35b; }
+ .admonition.is-success > .admonition-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .admonition.is-success > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning {
+ background-color: #fff3c5;
+ border-color: #ffdd57; }
+ .admonition.is-warning > .admonition-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-danger {
+ background-color: #ffaba7;
+ border-color: #da0b00; }
+ .admonition.is-danger > .admonition-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .admonition.is-danger > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-compat {
+ background-color: #bdeff5;
+ border-color: #1db5c9; }
+ .admonition.is-compat > .admonition-header {
+ background-color: #1db5c9;
+ color: #fff; }
+ .admonition.is-compat > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+
+.admonition-header {
+ color: #fff;
+ background-color: #363636;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+
+.admonition-body {
+ color: #222222;
+ padding: 0.5rem 0.75rem; }
+ .admonition-body pre {
+ background-color: whitesmoke; }
+ .admonition-body code {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #dbdbdb;
+ box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1);
+ max-width: 100%; }
+ .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: whitesmoke;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > header code {
+ background-color: transparent; }
+ .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > section:last-child {
+ border-bottom: none; }
+ .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+
+.documenter-example-output {
+ background-color: white; }
+
+.outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #ffaba7;
+ color: rgba(0, 0, 0, 0.7);
+ border-bottom: 3px solid #da0b00;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ .outdated-warning-overlay a {
+ color: #2e63b8; }
+ .outdated-warning-overlay a:hover {
+ color: #363636; }
+
+.content pre {
+ border: 1px solid #dbdbdb; }
+
+.content code {
+ font-weight: inherit; }
+
+.content a code {
+ color: #2e63b8; }
+
+.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code {
+ color: #222222; }
+
+.content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+
+.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+
+pre, code {
+ font-variant-ligatures: no-contextual; }
+
+.breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover {
+ color: #222222; }
+
+.hljs {
+ background: initial !important; }
+
+.katex .katex-mathml {
+ top: 0;
+ right: 0; }
+
+.katex-display, mjx-container, .MathJax_Display {
+ margin: 0.5em 0 !important; }
+
+html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+
+li.no-marker {
+ list-style: none; }
+
+/* This file contain the overall layout.
+ *
+ * The main container is
that is identified by id #documenter.
+ */
+#documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+@media screen and (min-width: 1056px) {
+ #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+
+@media screen and (max-width: 1055px) {
+ #documenter .docs-main {
+ width: 100%; }
+ #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-main > header, #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+
+#documenter .docs-main header.docs-navbar {
+ background-color: white;
+ border-bottom: 1px solid #dbdbdb;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #bbb;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+#documenter .docs-main section.footnotes {
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+
+#documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #dbdbdb;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+
+#documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #0a0a0a;
+ background-color: whitesmoke;
+ border-right: 1px solid #dbdbdb;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 1rem;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #bbb; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #0a0a0a; }
+ #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #dbdbdb;
+ display: none;
+ padding: 0.5rem; }
+ #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #dbdbdb;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 0.95rem;
+ margin-left: 1em;
+ border-left: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 0.75rem;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #0a0a0a;
+ background: whitesmoke; }
+ #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #0a0a0a;
+ background-color: #ebebeb; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #dbdbdb;
+ border-bottom: 1px solid #dbdbdb;
+ background-color: white; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: white;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #ebebeb;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 0.85rem;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+#documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+
+#documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+
+.ansi span.sgr1 {
+ font-weight: bolder; }
+
+.ansi span.sgr2 {
+ font-weight: lighter; }
+
+.ansi span.sgr3 {
+ font-style: italic; }
+
+.ansi span.sgr4 {
+ text-decoration: underline; }
+
+.ansi span.sgr7 {
+ color: white;
+ background-color: #222222; }
+
+.ansi span.sgr8 {
+ color: transparent; }
+ .ansi span.sgr8 span {
+ color: transparent; }
+
+.ansi span.sgr9 {
+ text-decoration: line-through; }
+
+.ansi span.sgr30 {
+ color: #242424; }
+
+.ansi span.sgr31 {
+ color: #a7201f; }
+
+.ansi span.sgr32 {
+ color: #066f00; }
+
+.ansi span.sgr33 {
+ color: #856b00; }
+
+.ansi span.sgr34 {
+ color: #2149b0; }
+
+.ansi span.sgr35 {
+ color: #7d4498; }
+
+.ansi span.sgr36 {
+ color: #007989; }
+
+.ansi span.sgr37 {
+ color: gray; }
+
+.ansi span.sgr40 {
+ background-color: #242424; }
+
+.ansi span.sgr41 {
+ background-color: #a7201f; }
+
+.ansi span.sgr42 {
+ background-color: #066f00; }
+
+.ansi span.sgr43 {
+ background-color: #856b00; }
+
+.ansi span.sgr44 {
+ background-color: #2149b0; }
+
+.ansi span.sgr45 {
+ background-color: #7d4498; }
+
+.ansi span.sgr46 {
+ background-color: #007989; }
+
+.ansi span.sgr47 {
+ background-color: gray; }
+
+.ansi span.sgr90 {
+ color: #616161; }
+
+.ansi span.sgr91 {
+ color: #cb3c33; }
+
+.ansi span.sgr92 {
+ color: #0e8300; }
+
+.ansi span.sgr93 {
+ color: #a98800; }
+
+.ansi span.sgr94 {
+ color: #3c5dcd; }
+
+.ansi span.sgr95 {
+ color: #9256af; }
+
+.ansi span.sgr96 {
+ color: #008fa3; }
+
+.ansi span.sgr97 {
+ color: whitesmoke; }
+
+.ansi span.sgr100 {
+ background-color: #616161; }
+
+.ansi span.sgr101 {
+ background-color: #cb3c33; }
+
+.ansi span.sgr102 {
+ background-color: #0e8300; }
+
+.ansi span.sgr103 {
+ background-color: #a98800; }
+
+.ansi span.sgr104 {
+ background-color: #3c5dcd; }
+
+.ansi span.sgr105 {
+ background-color: #9256af; }
+
+.ansi span.sgr106 {
+ background-color: #008fa3; }
+
+.ansi span.sgr107 {
+ background-color: whitesmoke; }
+
+code.language-julia-repl > span.hljs-meta {
+ color: #066f00;
+ font-weight: bolder; }
+
+/*!
+ Theme: Default
+ Description: Original highlight.js style
+ Author: (c) Ivan Sagalaev
+ Maintainer: @highlightjs/core-team
+ Website: https://highlightjs.org/
+ License: see project LICENSE
+ Touched: 2021
+*/
+/*
+This is left on purpose making default.css the single file that can be lifted
+as-is from the repository directly without the need for a build step
+
+Typically this "required" baseline CSS is added by `makestuff.js` during build.
+*/
+pre code.hljs {
+ display: block;
+ overflow-x: auto; }
+
+code.hljs {
+ padding: 3px 5px; }
+
+/* end baseline CSS */
+.hljs {
+ background: #F0F0F0;
+ color: #444; }
+
+/* Base color: saturation 0; */
+.hljs-subst {
+ /* default */ }
+
+/* purposely ignored */
+.hljs-comment {
+ color: #888888; }
+
+.hljs-tag,
+.hljs-punctuation {
+ color: #444a; }
+
+.hljs-tag .hljs-name,
+.hljs-tag .hljs-attr {
+ color: #444; }
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta .hljs-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold; }
+
+/* User color: hue: 0 */
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000; }
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold; }
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-operator,
+.hljs-selector-pseudo {
+ color: #BC6060; }
+
+/* Language color: hue: 90; */
+.hljs-literal {
+ color: #78A960; }
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #397300; }
+
+/* Meta color: hue: 200 */
+.hljs-meta {
+ color: #1f7199; }
+
+.hljs-meta .hljs-string {
+ color: #4d99bf; }
+
+/* Misc effects */
+.hljs-emphasis {
+ font-style: italic; }
+
+.hljs-strong {
+ font-weight: bold; }
diff --git a/v0.2.0/assets/themeswap.js b/v0.2.0/assets/themeswap.js
new file mode 100644
index 0000000..c58e993
--- /dev/null
+++ b/v0.2.0/assets/themeswap.js
@@ -0,0 +1,66 @@
+// Small function to quickly swap out themes. Gets put into the tag..
+function set_theme_from_local_storage() {
+ // Intialize the theme to null, which means default
+ var theme = null;
+ // If the browser supports the localstorage and is not disabled then try to get the
+ // documenter theme
+ if(window.localStorage != null) {
+ // Get the user-picked theme from localStorage. May be `null`, which means the default
+ // theme.
+ theme = window.localStorage.getItem("documenter-theme");
+ }
+ // Check if the browser supports user color preference
+ var darkPreference = false;
+ // Check if the users preference is for dark color scheme
+ if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) {
+ darkPreference = true;
+ }
+ // Initialize a few variables for the loop:
+ //
+ // - active: will contain the index of the theme that should be active. Note that there
+ // is no guarantee that localStorage contains sane values. If `active` stays `null`
+ // we either could not find the theme or it is the default (primary) theme anyway.
+ // Either way, we then need to stick to the primary theme.
+ //
+ // - disabled: style sheets that should be disabled (i.e. all the theme style sheets
+ // that are not the currently active theme)
+ var active = null; var disabled = []; var darkTheme = null;
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ // The tag of each style sheet is expected to have a data-theme-name attribute
+ // which must contain the name of the theme. The names in localStorage much match this.
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ // attribute not set => non-theme stylesheet => ignore
+ if(themename === null) continue;
+ // To distinguish the default (primary) theme, it needs to have the data-theme-primary
+ // attribute set.
+ var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
+ // Check if the theme is primary dark theme
+ var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null);
+ // If ss is for dark theme then set the value of darkTheme to the name of the theme
+ if(isDarkTheme) darkTheme = themename;
+ // If we find a matching theme (and it's not the default), we'll set active to non-null
+ if(themename === theme) active = i;
+ // Store the style sheets of inactive themes so that we could disable them
+ if(themename !== theme) disabled.push(ss);
+ }
+ if(active !== null) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+ else if(darkTheme !== null && darkPreference === true) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + darkTheme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) {
+ ss.disabled = true;
+ }
+ });
+ }
+}
+set_theme_from_local_storage();
diff --git a/v0.2.0/assets/warner.js b/v0.2.0/assets/warner.js
new file mode 100644
index 0000000..5531c88
--- /dev/null
+++ b/v0.2.0/assets/warner.js
@@ -0,0 +1,49 @@
+function maybeAddWarning () {
+ // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
+ // in siteinfo.js.
+ // If either of these are undefined something went horribly wrong, so we abort.
+ if (
+ window.DOCUMENTER_NEWEST === undefined ||
+ window.DOCUMENTER_CURRENT_VERSION === undefined ||
+ window.DOCUMENTER_STABLE === undefined
+ ) {
+ return
+ };
+
+ // Current version is not a version number, so we can't tell if it's the newest version. Abort.
+ if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
+ return
+ };
+
+ // Current version is newest version, so no need to add a warning.
+ if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
+ return
+ };
+
+ // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
+ if (document.body.querySelector('meta[name="robots"]') === null) {
+ const meta = document.createElement('meta');
+ meta.name = 'robots';
+ meta.content = 'noindex';
+
+ document.getElementsByTagName('head')[0].appendChild(meta);
+ };
+
+ const div = document.createElement('div');
+ div.classList.add('outdated-warning-overlay');
+ const closer = document.createElement('button');
+ closer.classList.add('outdated-warning-closer', 'delete');
+ closer.addEventListener('click', function () {
+ document.body.removeChild(div);
+ });
+ const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE;
+ div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
+ div.appendChild(closer);
+ document.body.appendChild(div);
+};
+
+if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', maybeAddWarning);
+} else {
+ maybeAddWarning();
+};
diff --git a/v0.2.0/generated/examples/01-tomography.ipynb b/v0.2.0/generated/examples/01-tomography.ipynb
new file mode 100644
index 0000000..0cb487e
--- /dev/null
+++ b/v0.2.0/generated/examples/01-tomography.ipynb
@@ -0,0 +1,416 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Tomography overview"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page gives an overview of the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[01-tomography.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/01-tomography.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: fbp\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Tomography\n",
+ "\n",
+ "[Tomography](https://en.wikipedia.org/wiki/Tomography)\n",
+ "is the process of imaging cross sections of an object\n",
+ "without actually slicing the object.\n",
+ "There are many forms of tomography;\n",
+ "the description here\n",
+ "focuses on\n",
+ "[X-ray computed tomography (CT scans)](https://en.wikipedia.org/wiki/CT_scan).\n",
+ "(See\n",
+ "[SPECTrecon.jl](https://github.com/JeffFessler/SPECTrecon.jl)\n",
+ "for a Julia package related to\n",
+ "[SPECT](https://en.wikipedia.org/wiki/Single-photon_emission_computed_tomography)\n",
+ "imaging.)\n",
+ "\n",
+ "In an\n",
+ "[X-ray CT imaging system](http://en.wikipedia.org/wiki/File:Ct-internals.jpg),\n",
+ "X-rays emitted from an X-ray source\n",
+ "are transmitted through an object\n",
+ "(e.g., a patient in medical CT)\n",
+ "towards a detector array.\n",
+ "The source and detector\n",
+ "[rotate rapidly](https://www.youtube.com/watch?v=2CWpZKuy-NE)\n",
+ "around the object.\n",
+ "The signal intensities recorded by the detector\n",
+ "are related\n",
+ "to the sizes and densities\n",
+ "of the object materials\n",
+ "between the source and each detector element.\n",
+ "\n",
+ "\n",
+ "## Radon transform\n",
+ "\n",
+ "The mathematical foundation\n",
+ "for 2D X-ray CT imaging\n",
+ "is the\n",
+ "[Radon transform](https://en.wikipedia.org/wiki/Radon_transform),\n",
+ "an\n",
+ "[integral transform](https://en.wikipedia.org/wiki/Integral_transform)\n",
+ "that maps a 2D function\n",
+ "$f(x,y)$\n",
+ "into the collection of line integrals\n",
+ "through that function.\n",
+ "Here we describe each line\n",
+ "by its angle $\\phi$\n",
+ "measured counter-clockwise from the $y$ axis,\n",
+ "and by the radial distance $r$ of the line from the origin.\n",
+ "The collection of integrals\n",
+ "is called a sinogram.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$ is defined by\n",
+ "$$\n",
+ "p(r,\\phi) = \\int_{-\\infty}^{\\infty}\n",
+ "f(r \\cos \\phi - l \\sin \\phi,\n",
+ "r \\sin \\phi + l \\cos \\phi) \\, \\mathrm{d} l.\n",
+ "$$\n",
+ "\n",
+ "The Radon transform of the object that is 1 inside the unit disk\n",
+ "and 0 elsewhere is given by\n",
+ "$$\n",
+ "p_1(r,\\phi) = 2 \\sqrt{1 - r^2}, \\ \\mathrm{ for } \\ |r| < 1.\n",
+ "$$\n",
+ "\n",
+ "By the Radon transform's translation and scaling properties,\n",
+ "the Radon transform\n",
+ "of a disk of radius $r_0$\n",
+ "centered at $(x_0,y_0)$\n",
+ "is given by\n",
+ "$$\n",
+ "p(r,\\phi) = r_0 \\, p_1\n",
+ "\\left( \\frac{r - (x_0 \\cos \\phi + y_0 \\sin \\phi)}{r_0}, ϕ \\right).\n",
+ "$$\n",
+ "\n",
+ "## Sinogram example\n",
+ "\n",
+ "Here is a display of that Radon transform\n",
+ "for a disk of radius $3$\n",
+ "centered at coordinate $(5,1)$.\n",
+ "Note that maximum value is approximately $6$,\n",
+ "the length of the longest chord\n",
+ "through a disk of radius $3$."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "nr = 128\n",
+ "dr = 20 / nr\n",
+ "r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\n",
+ "na = 130\n",
+ "ϕ = (0:(na-1))/na * π # angular samples\n",
+ "proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\n",
+ "proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\n",
+ "sino = proj2.(r, ϕ', 5, 1, 3)\n",
+ "jimsino = (sino, title) -> jim(\n",
+ " r, ϕ, sino; title, aspect_ratio=:none,\n",
+ " xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n",
+ " yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n",
+ " clim = (0, 6),\n",
+ ")\n",
+ "jimsino(sino, \"Sinogram for one disk\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As this figure illustrates,\n",
+ "the Radon transform of a unit disk\n",
+ "has a somewhat sinusoidal shape.\n",
+ "Indeed every point in the $(x,y)$ plane\n",
+ "traces out a distinct sinusoid\n",
+ "in the sinogram.\n",
+ "\n",
+ "The mapping from the object $f(x,y)$\n",
+ "to data like the sinogram $p(r,\\phi)$\n",
+ "is called the \"forward problem.\"\n",
+ "\n",
+ "\n",
+ "## Image reconstruction\n",
+ "\n",
+ "[Image reconstruction](http://en.wikipedia.org/wiki/Image_reconstruction)\n",
+ "is the process of solving the\n",
+ "[inverse problem](https://en.wikipedia.org/wiki/Inverse_problem)\n",
+ "of recovering an estimate $\\hat{f}(x,y)$\n",
+ "of the object $f(x,y)$\n",
+ "from a measured sinogram,\n",
+ "i.e.,\n",
+ "from (usually noisy) samples of $p(r,\\phi)$.\n",
+ "\n",
+ "\n",
+ "## FBP\n",
+ "\n",
+ "A simple image reconstruction method\n",
+ "is called the\n",
+ "\"filtered back-projection\" (FBP) approach.\n",
+ "It works by filtering each row of the sinogram\n",
+ "with a filter,\n",
+ "called the\n",
+ "[ramp filter](https://en.wikipedia.org/wiki/Radon_transform#Radon_inversion_formula),\n",
+ "whose frequency response\n",
+ "is roughly $|\\nu|$,\n",
+ "where $\\nu$ is the spatial frequency variable\n",
+ "(units cycles / m),\n",
+ "followed by a\n",
+ "[back-projection](https://en.wikipedia.org/wiki/Radon_transform#Dual_transform)\n",
+ "step that is the\n",
+ "[adjoint](https://en.wikipedia.org/wiki/Hermitian_adjoint)\n",
+ "of the Radon transform.\n",
+ "\n",
+ "\n",
+ "### FBP example\n",
+ "\n",
+ "Here is an illustration\n",
+ "of using the `fbp` method\n",
+ "in this package\n",
+ "to perform image reconstruction\n",
+ "from the preceding sinogram."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "image = fbp(sino; dr)\n",
+ "(nx,ny) = size(image)\n",
+ "dx = dr # default\n",
+ "x = ((-(nx-1)/2):((nx-1)/2)) * dr\n",
+ "y = x\n",
+ "jim(x, y, image, \"FBP image\",\n",
+ " xtick=[-10, 0, 2, 5, 8, 10],\n",
+ " ytick=[-10, 0, -2, 1, 4, 10],\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The FBP reconstructed image\n",
+ "looks pretty similar\n",
+ "to a disk of radius $3$\n",
+ "centered at $(5,1)$\n",
+ "as expected.\n",
+ "However,\n",
+ "there are quite a few ripples;\n",
+ "these are\n",
+ "[aliasing](https://en.wikipedia.org/wiki/Aliasing)\n",
+ "artifacts\n",
+ "due to the finite sampling\n",
+ "in $r$ and $\\phi$.\n",
+ "\n",
+ "This is example is what is called\n",
+ "2D parallel-beam tomography,\n",
+ "because for the angles $\\phi$ are equally spaced\n",
+ "and for each angle\n",
+ "the radial samples $r$ are also equally spaced.\n",
+ "This package includes\n",
+ "FBP reconstruction methods\n",
+ "for several other sinogram geometries,\n",
+ "including the well-known fan beam geometries\n",
+ "and the specialized Mojette geometry.\n",
+ "\n",
+ "\n",
+ "## Noise effects on FBP\n",
+ "\n",
+ "Simulating the effects of measurement noise in sinogram\n",
+ "leads to even worse FBP results.\n",
+ "\n",
+ "First note that a practical imaging system\n",
+ "has a finite field of view (FOV):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rmax = maximum(r)\n",
+ "fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\n",
+ "jim(x, y, fovmask, \"FOV mask\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Add noise to the original sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_sinogram = sino + 0.1 * randn(size(sino))\n",
+ "jimsino(noisy_sinogram, \"Noisy sinogram\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Apply FBP to the noisy sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_fbp_image = fbp(noisy_sinogram; dr)\n",
+ "noisy_fbp_image .*= fovmask # apply FOV mask\n",
+ "jim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The methods in this package\n",
+ "(WIP)\n",
+ "and related methods in the\n",
+ "[JuliaImageRecon](https://github.com/JuliaImageRecon)\n",
+ "suite\n",
+ "are designed\n",
+ "to provide better reconstructions\n",
+ "than the simple FBP method.\n",
+ "In particular,\n",
+ "model-based image reconstruction (MBIR) methods\n",
+ "and methods that use suitable machine-learning approaches\n",
+ "can improve image quality significantly.\n",
+ "See this\n",
+ "[2020 survey paper](http://doi.org/10.1109/JPROC.2019.2936204)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Reproducibility"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page was generated with the following version of Julia:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "And with the following package versions"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "import Pkg; Pkg.status()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.2.0/generated/examples/01-tomography/index.html b/v0.2.0/generated/examples/01-tomography/index.html
new file mode 100644
index 0000000..544dd81
--- /dev/null
+++ b/v0.2.0/generated/examples/01-tomography/index.html
@@ -0,0 +1,4031 @@
+
+Tomography overview · Sinograms.jl This page gives an overview of the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 01-tomography.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb
, and opened in binder here: 01-tomography.ipynb
.
Packages needed here.
using Sinograms: fbp
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans) . (See SPECTrecon.jl for a Julia package related to SPECT imaging.)
In an X-ray CT imaging system , X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.
The mathematical foundation for 2D X-ray CT imaging is the Radon transform , an integral transform that maps a 2D function $f(x,y)$ into the collection of line integrals through that function. Here we describe each line by its angle $\phi$ measured counter-clockwise from the $y$ axis, and by the radial distance $r$ of the line from the origin. The collection of integrals is called a sinogram.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined by
\[p(r,\phi) = \int_{-\infty}^{\infty}
+f(r \cos \phi - l \sin \phi,
+r \sin \phi + l \cos \phi) \, \mathrm{d} l.\]
The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by
\[p_1(r,\phi) = 2 \sqrt{1 - r^2}, \ \mathrm{ for } \ |r| < 1.\]
By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius $r_0$ centered at $(x_0,y_0)$ is given by
\[p(r,\phi) = r_0 \, p_1
+\left( \frac{r - (x_0 \cos \phi + y_0 \sin \phi)}{r_0}, ϕ \right).\]
Here is a display of that Radon transform for a disk of radius $3$ centered at coordinate $(5,1)$ . Note that maximum value is approximately $6$ , the length of the longest chord through a disk of radius $3$ .
nr = 128
+dr = 20 / nr
+r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations
+na = 130
+ϕ = (0:(na-1))/na * π # angular samples
+proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.
+proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)
+sino = proj2.(r, ϕ', 5, 1, 3)
+jimsino = (sino, title) -> jim(
+ r, ϕ, sino; title, aspect_ratio=:none,
+ xlabel = "r", ylabel = "ϕ", ylims=(0,π), yticks=([0, π], ["0", "π"]),
+ yflip=false, xticks = [-10, 0, 2, 5, 8, 10],
+ clim = (0, 6),
+)
+jimsino(sino, "Sinogram for one disk")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the $(x,y)$ plane traces out a distinct sinusoid in the sinogram.
The mapping from the object $f(x,y)$ to data like the sinogram $p(r,\phi)$ is called the "forward problem."
Image reconstruction is the process of solving the inverse problem of recovering an estimate $\hat{f}(x,y)$ of the object $f(x,y)$ from a measured sinogram, i.e., from (usually noisy) samples of $p(r,\phi)$ .
A simple image reconstruction method is called the "filtered back-projection" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter , whose frequency response is roughly $|\nu|$ , where $\nu$ is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.
Here is an illustration of using the fbp
method in this package to perform image reconstruction from the preceding sinogram.
image = fbp(sino; dr)
+(nx,ny) = size(image)
+dx = dr # default
+x = ((-(nx-1)/2):((nx-1)/2)) * dr
+y = x
+jim(x, y, image, "FBP image",
+ xtick=[-10, 0, 2, 5, 8, 10],
+ ytick=[-10, 0, -2, 1, 4, 10],
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The FBP reconstructed image looks pretty similar to a disk of radius $3$ centered at $(5,1)$ as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in $r$ and $\phi$ .
This is example is what is called 2D parallel-beam tomography, because for the angles $\phi$ are equally spaced and for each angle the radial samples $r$ are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.
Simulating the effects of measurement noise in sinogram leads to even worse FBP results.
First note that a practical imaging system has a finite field of view (FOV):
rmax = maximum(r)
+fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax
+jim(x, y, fovmask, "FOV mask")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Add noise to the original sinogram:
noisy_sinogram = sino + 0.1 * randn(size(sino))
+jimsino(noisy_sinogram, "Noisy sinogram")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Apply FBP to the noisy sinogram:
noisy_fbp_image = fbp(noisy_sinogram; dr)
+noisy_fbp_image .*= fovmask # apply FOV mask
+jim(x, y, noisy_fbp_image, "Noisy FBP image"; clim=(0,1))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper .
This page was generated with the following version of Julia:
io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\n')
10-element Vector{SubString{String}}:
+ "Julia Version 1.8.3"
+ "Commit 0434deb161e (2022-11-14 20:14 UTC)"
+ "Platform Info:"
+ " OS: Linux (x86_64-linux-gnu)"
+ " CPU: 2 × Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz"
+ " WORD_SIZE: 64"
+ " LIBM: libopenlibm"
+ " LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)"
+ " Threads: 1 on 2 virtual cores"
+ ""
And with the following package versions
import Pkg; Pkg.status()
Status `~/work/Sinograms.jl/Sinograms.jl/docs/Project.toml`
+ [39de3d68] AxisArrays v0.4.6
+ [e30172f5] Documenter v0.27.23
+ [9ee76f2b] ImageGeoms v0.10.0
+ [71a99df6] ImagePhantoms v0.7.2
+ [98b081ad] Literate v2.14.0
+ [170b2178] MIRTjim v0.21.1
+ [6fe1bfb0] OffsetArrays v1.12.8
+ [91a5bcdd] Plots v1.38.0
+ [02a14def] Sinograms v0.2.0 `~/work/Sinograms.jl/Sinograms.jl`
+ [1986cc42] Unitful v1.12.2
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/generated/examples/02-sino-geom.ipynb b/v0.2.0/generated/examples/02-sino-geom.ipynb
new file mode 100644
index 0000000..4852b49
--- /dev/null
+++ b/v0.2.0/generated/examples/02-sino-geom.ipynb
@@ -0,0 +1,407 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 2D sinogram geometry"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page describes the 2D sinogram geometries\n",
+ "available in the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[02-sino-geom.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/02-sino-geom.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Unitful: mm, °\n",
+ "using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\n",
+ "using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\n",
+ "using Sinograms: sino_plot_rays, rays\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 2D Sinogram geometries\n",
+ "\n",
+ "To perform 2D image reconstruction\n",
+ "from a 2D sinogram,\n",
+ "one must first describe\n",
+ "how the rays in the sinogram are sampled.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$\n",
+ "is defined for all $r$ and $ϕ$\n",
+ "but practical systems\n",
+ "record $p(r,ϕ)$\n",
+ "only for certain finite sets of samples\n",
+ "of those values.\n",
+ "\n",
+ "\n",
+ "## Parallel-beam geometry\n",
+ "\n",
+ "The simplest form of sinogram sampling\n",
+ "is equally spaced samples\n",
+ "in both $r$ and $ϕ$.\n",
+ "This sampling is called a parallel-beam geometry.\n",
+ "(Very few practical systems have this sampling pattern,\n",
+ "but it is an easy place to start.)\n",
+ "Both FBP and iterative reconstruction methods\n",
+ "need to know which values\n",
+ "of $r$ and $ϕ$\n",
+ "are sampled.\n",
+ "\n",
+ "In this package,\n",
+ "`SinoPar`\n",
+ "is the type that describes\n",
+ "a parallel-beam sinogram geometry.\n",
+ "\n",
+ "The built-in defaults provide helpful reminders about the usage."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "SinoPar()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This package supports units via the\n",
+ "[Unitful.jl](https://github.com/PainterQubits/Unitful.jl)\n",
+ "and using units is recommended\n",
+ "(but not required).\n",
+ "\n",
+ "Here is an example of how to specify\n",
+ "a parallel-beam geometry.\n",
+ "Everything is a named keyword argument with sensible default values.\n",
+ "\n",
+ "* `orbit` and `orbit_start` must both be unitless (degrees)\n",
+ " or have the same units (e.g., degrees or radians).\n",
+ "* detector spacing `d` (can be unitless or have units e.g., mm).\n",
+ "* The projection angles $ϕ$ are equally space and given by\n",
+ " `orbit_start + (0:(nb-1))/nb * orbit`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoPar( ;\n",
+ " nb = 64, # number of radial samples (\"bins\")\n",
+ " na = 30, # number of angular samples\n",
+ " d = 2mm, # detector spacing\n",
+ " offset = 0.25, # quarter detector offset (unitless)\n",
+ " orbit = 180, # angular range (in degrees)\n",
+ " orbit_start = 0, # starting angle (in degrees)\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The struct `sg` has numerous useful properties;\n",
+ "type `?SinoGeom` to see the full list.\n",
+ "\n",
+ "For example,\n",
+ "to access the angular samples in degrees\n",
+ "type `sg.ad`"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg.ad"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following function visualizes the sampling pattern."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with an arc detector (3rd generation CT)\n",
+ "\n",
+ "For a fan-beam geometry,\n",
+ "the arguments are the same as for `SinoPar`\n",
+ "with the addition of specifying:\n",
+ "* `dsd` distance from source to detector\n",
+ "* `dod` distance from origin (isocenter) to detector\n",
+ "* `dfs` distance from focal point of detector to source\n",
+ " (0 for a 3rd gen arc detector, and `Inf` for a flat detector)\n",
+ "* `source_offset` for misaligned systems\n",
+ " where the ray from the source to the detector center\n",
+ " does not intersect the isocenter.\n",
+ " Not fully supported; submit an issue if you need this feature.\n",
+ "\n",
+ "Here is an example that corresponds to a GE Lightspeed CT system.\n",
+ "These numbers are published in\n",
+ "[IEEE T-MI Oct. 2006, p.1272-1283](http://doi.org/10.1109/TMI.2006.882141)."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb=888, na=984,\n",
+ " d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a smaller example for plotting the rays."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)\n",
+ "sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for arc detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with a flat detector\n",
+ "\n",
+ "This geometry is the same as the arc detector\n",
+ "except that `dfs=Inf`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanFlat( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for flat detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Mojette sampling\n",
+ "This is a specialized sampling geometry\n",
+ "that is currently incompletely supported."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoMoj( ; nb=60, na=30)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true,\n",
+ " title=\"Mojette sampling\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a diagram that illustrates how the radial spacing\n",
+ "is a function of the projection view angle for the Mojette geometry.\n",
+ "The key aspect here\n",
+ "is that in each image row\n",
+ "the line intersection lengths are identical."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\n",
+ "default(label=\"\")\n",
+ "for y in -2:2\n",
+ " plot!([-3, 3], [y, y], color=:black)\n",
+ "end\n",
+ "for x in -3:3\n",
+ " plot!([x, x], [-2, 2], color=:black)\n",
+ "end\n",
+ "plot_ray!(r, ϕ) = plot!(\n",
+ " r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n",
+ " r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n",
+ " color = :blue,\n",
+ ")\n",
+ "ia = 4 # pick an angle\n",
+ "i = rays(sg) # iterator\n",
+ "rs = [i[1] for i in i] # radial samples\n",
+ "ϕs = [i[2] for i in i] # projection angle\n",
+ "r = rs[:,ia]\n",
+ "r = r[abs.(r) .< 3]\n",
+ "ϕ = ϕs[1,ia]\n",
+ "plot_ray!.(r, ϕ)\n",
+ "plot!(aspect_ratio=1, title = \"Mojette line integrals\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.2.0/generated/examples/02-sino-geom/index.html b/v0.2.0/generated/examples/02-sino-geom/index.html
new file mode 100644
index 0000000..ff3e364
--- /dev/null
+++ b/v0.2.0/generated/examples/02-sino-geom/index.html
@@ -0,0 +1,8064 @@
+
+2D sinogram geometry · Sinograms.jl This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 02-sino-geom.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb
, and opened in binder here: 02-sino-geom.ipynb
.
Packages needed here.
using Unitful: mm, °
+using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work
+using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan
+using Sinograms: sino_plot_rays, rays
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined for all $r$ and $ϕ$ but practical systems record $p(r,ϕ)$ only for certain finite sets of samples of those values.
The simplest form of sinogram sampling is equally spaced samples in both $r$ and $ϕ$ . This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of $r$ and $ϕ$ are sampled.
In this package, SinoPar
is the type that describes a parallel-beam sinogram geometry.
The built-in defaults provide helpful reminders about the usage.
SinoPar()
SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
This package supports units via the Unitful.jl and using units is recommended (but not required).
Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.
orbit
and orbit_start
must both be unitless (degrees) or have the same units (e.g., degrees or radians).detector spacing d
(can be unitless or have units e.g., mm). The projection angles $ϕ$ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit
. sg = SinoPar( ;
+ nb = 64, # number of radial samples ("bins")
+ na = 30, # number of angular samples
+ d = 2mm, # detector spacing
+ offset = 0.25, # quarter detector offset (unitless)
+ orbit = 180, # angular range (in degrees)
+ orbit_start = 0, # starting angle (in degrees)
+)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
The struct sg
has numerous useful properties; type ?SinoGeom
to see the full list.
For example, to access the angular samples in degrees type sg.ad
sg.ad
30-element LinRange{Float32, Int64}:
+ 0.0,6.0,12.0,18.0,24.0,30.0,36.0,42.0,…,144.0,150.0,156.0,162.0,168.0,174.0
The following function visualizes the sampling pattern.
sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title="Parallel")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
For a fan-beam geometry, the arguments are the same as for SinoPar
with the addition of specifying:
dsd
distance from source to detectordod
distance from origin (isocenter) to detectordfs
distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf
for a flat detector)source_offset
for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 .
sg = SinoFanArc( ; nb=888, na=984,
+ d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 888
+ d::Unit{Float64} 1.0239 mm
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 949.075 mm
+ dod::Unit{Float64} 408.075 mm
+
Here is a smaller example for plotting the rays.
sg = SinoFanArc( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
+sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for arc detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This geometry is the same as the arc detector except that dfs=Inf
.
sg = SinoFanFlat( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
SinoFanFlat{Unitful.Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Float32} 20.0f0 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float32} 0.0f0 mm
+ dsd::Unit{Float32} 900.0f0 mm
+ dod::Unit{Float32} 400.0f0 mm
+
Here is its sampling plot
sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for flat detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This is a specialized sampling geometry that is currently incompletely supported.
sg = SinoMoj( ; nb=60, na=30)
SinoMoj{Float32, Float32} :
+ nb::Int64 60
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Here is its sampling plot
sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true,
+ title="Mojette sampling")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.
plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel="x", ylabel="x")
+default(label="")
+for y in -2:2
+ plot!([-3, 3], [y, y], color=:black)
+end
+for x in -3:3
+ plot!([x, x], [-2, 2], color=:black)
+end
+plot_ray!(r, ϕ) = plot!(
+ r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),
+ r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),
+ color = :blue,
+)
+ia = 4 # pick an angle
+i = rays(sg) # iterator
+rs = [i[1] for i in i] # radial samples
+ϕs = [i[2] for i in i] # projection angle
+r = rs[:,ia]
+r = r[abs.(r) .< 3]
+ϕ = ϕs[1,ia]
+plot_ray!.(r, ϕ)
+plot!(aspect_ratio=1, title = "Mojette line integrals")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/generated/examples/03-parallel-beam.ipynb b/v0.2.0/generated/examples/03-parallel-beam.ipynb
new file mode 100644
index 0000000..53998ed
--- /dev/null
+++ b/v0.2.0/generated/examples/03-parallel-beam.ipynb
@@ -0,0 +1,227 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Parallel-beam tomography"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page describes parallel-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[03-parallel-beam.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/03-parallel-beam.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: SinoPar, rays, plan_fbp, fbp\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using Unitful: mm\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Parallel-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a parallel-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoPar` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoPar( ; nb = 130, d = 2mm, na = 100)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Radon transform of Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(sg.r, sg.ad, sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n",
+ "\n",
+ "# Image reconstruction via FBP"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig)\n",
+ "fbp_image, sino_filt = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.2.0/generated/examples/03-parallel-beam/index.html b/v0.2.0/generated/examples/03-parallel-beam/index.html
new file mode 100644
index 0000000..864e8e4
--- /dev/null
+++ b/v0.2.0/generated/examples/03-parallel-beam/index.html
@@ -0,0 +1,1732 @@
+
+Parallel-beam tomography · Sinograms.jl This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 03-parallel-beam.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb
, and opened in binder here: 03-parallel-beam.ipynb
.
Packages needed here.
using Sinograms: SinoPar, rays, plan_fbp, fbp
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using Unitful: mm
+using MIRTjim: jim, prompt
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoPar
to define the sinogram geometry.
sg = SinoPar( ; nb = 130, d = 2mm, na = 100)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Radon transform of Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(sg.r, sg.ad, sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+# Image reconstruction via FBP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(sg, ig)
+fbp_image, sino_filt = fbp(plan, sino)
(Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; … ; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1], Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[-0.0015748246357816513 mm^-1 -0.0015635085674446261 mm^-1 … -0.0016433727253032078 mm^-1 -0.0015647972217180664 mm^-1; -0.001992363353600021 mm^-1 -0.0020000871407296113 mm^-1 … -0.001937357016483808 mm^-1 -0.002000841904071267 mm^-1; … ; -0.0019936103683833293 mm^-1 -0.00199482216102555 mm^-1 … -0.0019261542159365814 mm^-1 -0.0019937154309865846 mm^-1; -0.0015757082153285858 mm^-1 -0.0015797806083165283 mm^-1 … -0.0016696749554478531 mm^-1 -0.0015786837209923138 mm^-1])
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/generated/examples/04-fan-arc.ipynb b/v0.2.0/generated/examples/04-fan-arc.ipynb
new file mode 100644
index 0000000..cd28ff7
--- /dev/null
+++ b/v0.2.0/generated/examples/04-fan-arc.ipynb
@@ -0,0 +1,262 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: arc detector"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[04-fan-arc.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/04-fan-arc.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(sg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Flat fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(sg.r, sg.ad, sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig)\n",
+ "fbp_image, sino_filt = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.2.0/generated/examples/04-fan-arc/index.html b/v0.2.0/generated/examples/04-fan-arc/index.html
new file mode 100644
index 0000000..3352b1e
--- /dev/null
+++ b/v0.2.0/generated/examples/04-fan-arc/index.html
@@ -0,0 +1,2317 @@
+
+Fan-beam tomography: arc detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 04-fan-arc.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb
, and opened in binder here: 04-fan-arc.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry.
sg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(sg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Flat fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(sg.r, sg.ad, sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(sg, ig)
+fbp_image, sino_filt = fbp(plan, sino)
(Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; … ; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1], Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[-0.0007313885176535096 mm^-1 -0.0007814353348598431 mm^-1 … -0.0008173493547605462 mm^-1 -0.0008112403688158127 mm^-1; -0.0008533622838870716 mm^-1 -0.0007443297558876643 mm^-1 … -0.0008789842778269125 mm^-1 -0.0008181256201771 mm^-1; … ; -0.0008540323281755035 mm^-1 -0.0008184652133019422 mm^-1 … -0.0007871493144538536 mm^-1 -0.0007446914606056398 mm^-1; -0.0007316186447113919 mm^-1 -0.000811776278415278 mm^-1 … -0.0007068408307478746 mm^-1 -0.0007819503377775825 mm^-1])
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/generated/examples/05-fan-flat.ipynb b/v0.2.0/generated/examples/05-fan-flat.ipynb
new file mode 100644
index 0000000..776e730
--- /dev/null
+++ b/v0.2.0/generated/examples/05-fan-flat.ipynb
@@ -0,0 +1,258 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: flat detector"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with a \"flat\" detector,\n",
+ "i.e., one row of a flat-panel detector\n",
+ "as used in many cone-beam CT (CBCT) systems.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[05-fan-flat.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/05-fan-flat.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanFlat` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(sg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(sg.r, sg.ad, sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig; window = Window(Hamming(), 1.0))\n",
+ "fbp_image, sino_filt = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.2.0/generated/examples/05-fan-flat/index.html b/v0.2.0/generated/examples/05-fan-flat/index.html
new file mode 100644
index 0000000..d980efb
--- /dev/null
+++ b/v0.2.0/generated/examples/05-fan-flat/index.html
@@ -0,0 +1,2174 @@
+
+Fan-beam tomography: flat detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with a "flat" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.
This page was generated from a single Julia file: 05-fan-flat.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb
, and opened in binder here: 05-fan-flat.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.2 cm, 0.2 cm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanFlat
to define the sinogram geometry.
sg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)
SinoFanFlat{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 0.3 cm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 50.0 cm
+ dod::Unit{Float64} 14.0 cm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(sg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 0.0 cm), (11.776000000000002 cm, 8.694 cm), (1.5707963267948966,), 0.2 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -0.23184000000000002 cm), (11.1872 cm, 8.346240000000002 cm), (1.5707963267948966,), -0.098 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((2.8160000000000003 cm, 0.0 cm), (3.968 cm, 1.3860000000000001 cm), (1.2566370614359172,), -0.002 cm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-2.8160000000000003 cm, 0.0 cm), (5.248 cm, 2.0160000000000005 cm), (1.8849555921538759,), -0.002 cm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 4.41 cm), (3.2 cm, 2.6460000000000004 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-1.024 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -7.623 cm), (0.2944 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.768 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(sg.r, sg.ad, sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(sg, ig; window = Window(Hamming(), 1.0))
+fbp_image, sino_filt = fbp(plan, sino)
(Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}[0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1; 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1; … ; 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1; 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1], Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}[-0.00779920135716001 cm^-1 -0.007344824638926745 cm^-1 … -0.007997647127907018 cm^-1 -0.00823892374861358 cm^-1; -0.00821757211954537 cm^-1 -0.00831391170338682 cm^-1 … -0.008922165083935065 cm^-1 -0.008102064439389144 cm^-1; … ; -0.008220698320226707 cm^-1 -0.008108689609582793 cm^-1 … -0.007630197456383537 cm^-1 -0.008320571763857306 cm^-1; -0.007805480598737907 cm^-1 -0.008241711054948786 cm^-1 … -0.007824024936216626 cm^-1 -0.007347569400354616 cm^-1])
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for flat case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/generated/examples/07-fdk.ipynb b/v0.2.0/generated/examples/07-fdk.ipynb
new file mode 100644
index 0000000..b77f4a7
--- /dev/null
+++ b/v0.2.0/generated/examples/07-fdk.ipynb
@@ -0,0 +1,322 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# CBCT FDK"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page describes image reconstruction\n",
+ "for cone-beam computed tomography (CBCT)\n",
+ "with both arc and flat detectors\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[07-fdk.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/07-fdk.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: CtFanArc, CtFanFlat # CtPar\n",
+ "using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\n",
+ "using ImageGeoms: ImageGeom, MaskCircle, fovs\n",
+ "using ImagePhantoms: ellipsoid_parameters, ellipsoid\n",
+ "using ImagePhantoms: radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this example.jl file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### CBCT projections of 3D Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "CBCT projections\n",
+ "of the 3D Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipsoid parameters for 3D Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\n",
+ "ob = ellipsoid(params)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow grayscale window is needed to see the soft tissue structures"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.95, 1.05) .* μ"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "oversample = 3\n",
+ "true_image = phantom(axes(ig)..., ob, oversample)\n",
+ "jim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Define the system geometry\n",
+ "(for some explanation use `?CtGeom`):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\n",
+ "cg = CtFanArc( ; p...)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV\n",
+ "(this is more interesting when interacting via other Plot backends):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ct_geom_plot3(cg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "CBCT projections\n",
+ "using `Sinogram.rays` and `ImagePhantoms.radon`:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "proj_arc = radon(rays(cg), ob)\n",
+ "jim(cg.s, cg.t, proj_arc ;\n",
+ " title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "There is no \"inverse crime\" here\n",
+ "because we compute the projection views\n",
+ "using the analytical phantom geometry,\n",
+ "but then reconstruct\n",
+ "on a discrete grid.\n",
+ "\n",
+ "## Image reconstruction via FBP / FDK\n",
+ "\n",
+ "We start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_arc = fdk(plan, proj_arc)\n",
+ "jim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_arc = fdk_arc - true_image\n",
+ "jim(axes(ig), err_arc, \"Error image (arc)\"; clim = (-1,1) .* (0.05μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Repeat with flat detector geometry"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "cg = CtFanFlat( ; p...)\n",
+ "proj_flat = radon(rays(cg), ob)\n",
+ "jim(cg.s, cg.t, proj_flat ;\n",
+ " title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n",
+ "\n",
+ "plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_flat = fdk(plan, proj_flat)\n",
+ "jim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_flat = fdk_flat - true_image\n",
+ "jim(axes(ig), err_flat, \"Error image (flat)\"; clim = (-1,1) .* (0.05μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As expected for CBCT,\n",
+ "the largest errors are in the end slices."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.2.0/generated/examples/07-fdk/index.html b/v0.2.0/generated/examples/07-fdk/index.html
new file mode 100644
index 0000000..425da38
--- /dev/null
+++ b/v0.2.0/generated/examples/07-fdk/index.html
@@ -0,0 +1,20061 @@
+
+CBCT FDK · Sinograms.jl This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 07-fdk.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb
, and opened in binder here: 07-fdk.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: CtFanArc, CtFanFlat # CtPar
+using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3
+using ImageGeoms: ImageGeom, MaskCircle, fovs
+using ImagePhantoms: ellipsoid_parameters, ellipsoid
+using ImagePhantoms: radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)
ImageGeoms.ImageGeom{3, NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitArray{3}}
+ dims::NTuple{3,Int64} (64, 62, 30)
+ deltas::NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.4 cm, 0.4 cm, 0.8 cm)
+ offsets::NTuple{3,Float32} (0.0f0, 0.0f0, 0.0f0)
+ mask: 64×62×30 BitArray{3} {84840 of 119040}
+
Ellipsoid parameters for 3D Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))
+ob = ellipsoid(params)
12-element Vector{ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}}:
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 0.0 cm, 0.0 cm), (8.831999999999999 cm, 11.408000000000001 cm, 10.8 cm), (0.0, 0.0, 0.0), 0.2 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -0.22816 cm, 0.0 cm), (8.478720000000001 cm, 10.8376 cm, 10.56 cm), (0.0, 0.0, 0.0), -0.098 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-2.8160000000000003 cm, 0.0 cm, -3.0 cm), (5.248 cm, 1.9840000000000002 cm, 2.52 cm), (-1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (-0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((2.8160000000000003 cm, 0.0 cm, -3.0 cm), (3.968 cm, 1.364 cm, 2.64 cm), (1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 4.34 cm, -3.0 cm), (2.688 cm, 3.1 cm, 4.199999999999999 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-1.024 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -7.502 cm, -3.0 cm), (0.2944 cm, 0.2852 cm, 0.276 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (-1.5707963267948966, 0.0, 0.0), 0.001 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -1.302 cm, 0.75 cm), (0.7168000000000001 cm, 0.49600000000000005 cm, 1.2000000000000002 cm), (-1.5707963267948966, 0.0, 0.0), 0.002 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, 7.5 cm), (0.7168000000000001 cm, 0.6944 cm, 1.2000000000000002 cm), (0.0, 0.0, 0.0), -0.002 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
A narrow grayscale window is needed to see the soft tissue structures
clim = (0.95, 1.05) .* μ
(0.095 cm^-1, 0.10500000000000001 cm^-1)
Here is the ideal phantom image:
oversample = 3
+true_image = phantom(axes(ig)..., ob, oversample)
+jim(axes(ig), true_image, "True 3D Shepp-Logan phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Define the system geometry (for some explanation use ?CtGeom
):
p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)
+cg = CtFanArc( ; p...)
CtFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32, CtSourceCircle} :
+ ns::Int64 130
+ nt::Int64 80
+ ds::Unit{Float64} 0.3 cm
+ dt::Unit{Float64} 0.4 cm
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 50
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 200.0 cm
+ dod::Unit{Float64} 40.0 cm
+ src::CtSourceCircle CtSourceCircle()
+
Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):
ct_geom_plot3(cg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
CBCT projections using Sinogram.rays
and ImagePhantoms.radon
:
proj_arc = radon(rays(cg), ob)
+jim(cg.s, cg.t, proj_arc ;
+ title="Shepp-Logan projections (arc)", xlabel="s", ylabel="t")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+There is no "inverse crime" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.
We start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))
+fdk_arc = fdk(plan, proj_arc)
+jim(axes(ig), fdk_arc, "FDK image (arc)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_arc = fdk_arc - true_image
+jim(axes(ig), err_arc, "Error image (arc)"; clim = (-1,1) .* (0.05μ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+cg = CtFanFlat( ; p...)
+proj_flat = radon(rays(cg), ob)
+jim(cg.s, cg.t, proj_flat ;
+ title="Shepp-Logan projections (flat)", xlabel="s", ylabel="t")
+
+plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))
+fdk_flat = fdk(plan, proj_flat)
+jim(axes(ig), fdk_flat, "FDK image (flat)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_flat = fdk_flat - true_image
+jim(axes(ig), err_flat, "Error image (flat)"; clim = (-1,1) .* (0.05μ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As expected for CBCT, the largest errors are in the end slices.
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/index.html b/v0.2.0/index.html
new file mode 100644
index 0000000..9b72a45
--- /dev/null
+++ b/v0.2.0/index.html
@@ -0,0 +1,2 @@
+
+Home · Sinograms.jl Sinograms.jl
is a Julia language package with tools for tomographic image reconstruction, including
describing ray geometries (parallel beam, fan beam, etc.) ✅ performing filtered back-projection (FBP) image reconstruction ✅ system models for iterative reconstruction (WIP) See the examples.
See also:
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/methods/index.html b/v0.2.0/methods/index.html
new file mode 100644
index 0000000..e6b28a8
--- /dev/null
+++ b/v0.2.0/methods/index.html
@@ -0,0 +1,122 @@
+
+Methods · Sinograms.jl CtFanArc 3D CBCT geometry for arc detector
source CtFanArc(::Val{:ge1} ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> CtFanArc(Val(:ge1))
+CtFanArc{Float64, Float32, CtSourceCircle} :
+ ns::Int64 888
+ nt::Int64 64
+ ds::Float64 1.0239
+ dt::Float64 1.0964
+ offset_s::Float32 1.25
+ offset_t::Float32 0.0
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float64 0.0
+ dsd::Float64 949.075
+ dod::Float64 408.075
+ src::CtSourceCircle CtSourceCircle()
source CtFanArc( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtFanArc()
+CtFanArc{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtFanFlat 3D CTCT geometry for flat detector
source CtFanFlat( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtFanFlat()
+CtFanFlat{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtGeom{Td,To,Ts}
Abstract type for representing ray geometries for 3D CT imaging.
The projection view coordinates are (s,t)
where s
denotes the transaxial sampling and t
denotes the axial direction (along z
).
Common fields
ns
size of each projection viewnt
ds
detector pixel spacingdt
offset_s
unitless detector center offset (usually 0 or 0.25)offset_t
unitless, usually 0na
# of projection views, aka nϕ or nβorbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.src::CtSource
describes the X-ray CT source trajectory. Primary support for CtSourceCircle()
.Additional fields for CtFan
types:
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
ds
, dt
, source_offset
, dsd
, dod
must all be unitless or have the same units.Derived values (available by getproperty
), i.e., st.?
.dim
dimensions: (ns,nt,na)
.s (ns) s
sample locations.t (nt) t
sample locations.ws = (ns-1)/2 + offset_s
"middle" sample position.wt = (nt-1)/2 + offset_t
.ad (na)
source angles [degrees].ar (na)
source angles [radians].rad (ns)
radial distance of each ray from origin.rfov
max radius within FOV.zfov
axial FOVFor fan beam:
dso = dsd - dod
distance from source to origin (Inf for parallel beam)dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors).gamma (ns)
gamma sample values radians
.gamma_s
gamma values given s values.gamma_max
half of fan angle radians
, if offset_s=0.gamma_max_abs
half of fan angle radians
- recommended.cone_angle
(half) cone angle on axis (s=0): +/- angleBasic methods
dims (ns, nt, na)
ones = ones(Float32, ns,nt,na)
zeros = zeros(Float32, ns,nt,na)
rays
iterator of (u,v,ϕ,θ)
samplesdownsample(st, down)
reduce sampling by integer factoroversample(st, over)
ct_geom_plot!
plot system geometryMethods
.shape(proj)
reshape proj
.plot2(ig)
plot the 2D geometry of the image.plot3(ig)
plot the 3D geometry of the cone beam setup.unitv(is,it,ia)
unit vector with single nonzero elementNotes
Use sino_geom()
instead for 2D geometries.
source CtPar
3D parallel-beam projection geometry
source CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtPar()
+CtPar{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 60
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ src::CtSourceCircle CtSourceCircle()
source CtSource
Abstract type for representing X-ray CT source trajectories.
source CtSourceCircle
Type for representing circular X-ray CT source trajectory.
source CtSourceHelix
Type for representing helical X-ray CT source trajectories having constant pitch.
Fields
pitch
helix pitch (unitless fraction of zFOV, default 0)source_z0
initial z position of x-ray source (default 0) It should have same units as detector pixels etc.source CtSourceHelix( ; pitch = 0, source_z0 = 0)
Constructor with named keywords
source FBPNormalPlan{S,I,H,P}
Struct type for storing "normal" FBP plan.
source FBPplan
Abstract type for FBP plans.
source FDKplan{C,I,H,P}
Struct type for storing FDK plan.
source RayGeom{Td,To}
Parent type for SinoGeom
and CtGeom
source SinoFanArc 2D fan-beam sinogram geometry for arc detector
source SinoFan(Val(:ge1) ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
nb::Int = 888
# of detector channelsd::RealU = 1.0239
channel spacingoffset::Real = 1.25
for "quarter-detector" offsetna::Int = 984
# of anglesorbit::Union{Symbol,Real} = 360
use :short
for short scandsd::RealU = 949.075
dod::RealU = 408.075
out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> SinoFanArc(Val(:ge1))
+SinoFanArc{Float64, Float32} :
+ nb::Int64 888
+ d::Float64 1.0239
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float64 0.0
+ dsd::Float64 949.075
+ dod::Float64 408.075
source SinoFanArc( ; nb d offset na orbit orbit_start
+ source_offset, dsd = 4 * nb * d, dod = nb * d)
Constructor with named keywords. See ?SinoGeom
for documentation.
d
, source_offset
, dsd
, dod
must all have the same units.julia> SinoFanArc()
+SinoFanArc{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoFanFlat
2D fan-beam sinogram geometry for flat detector
source SinoFanFlat( ; nb d offset na orbit orbit_start
+ source_offset, dsd= 4 * nb * d, dod = nb * d)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoFanFlat()
+SinoFanFlat{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoGeom{Td,To}
Abstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.
Common fields
nb
# of "radial" samples, aka nr
or ns
d
aka dr
or ds
, "radial" sample spacingoffset
unitless sample offset (usually 0 or 0.25)na
# of angular samples, aka nϕ
or nβ
default: 2 * floor(Int, nb * π/2 / 2)
orbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.Additional fields for SinoFan
types
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
d
, source_offset
, dsd
, dod
must all have the same units.Derived values (available by getproperty
), i.e., st.?
.ds|dr
radial sample spacing (NaN
for :moj
).s (nb) s
sample locations.w = (nb-1)/2 + offset
"middle" sample position.ad (na)
source angles degrees
.ar (na)
source angles radians
.rfov
radial FOV.xds (nb)
center of detector elements (beta=0).yds (nb)
""For mojette:
.d_ang (na)
angle-dependent radial spacingFor fan beam:
dso = dsd - dod
distance from source to origin (Inf for parallel beam)dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors).gamma (nb)
gamma sample values radians
.gamma_max
half of fan angle radians
, if offset=0Basic methods
dims (nb, na)
sino_s (nb) s
sample locationssino_w = (nb-1)/2 + offset
('middle' sample position)rays
iterator of (r, ϕ)
parallel-beam coordinate tuples of size (nb, na)
ones = ones(Float32, nb, na)
zeros = zeros(Float32, nb, na)
downsample(st, down)
oversample(st, over)
angles
(na) in degreessino_geom_plot!
plot system geometryMethods
.shape(sino)
reshape sinograms into array (nb,na,:)
.unitv(;ib,ia)
unit 'vector' with single nonzero element.taufun(x,y)
projected s/ds for each (x,y) pair (numel(x),na)
Notes
Use ct_geom()
instead for 3D axial or helical cone-beam CT. source SinoMoj
2D Mojette sinogram geometry where d
means dx
(square pixel size)
source SinoMoj( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoMoj()
+SinoMoj{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source SinoPar
2D parallel-beam sinogram geometry
source SinoPar( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoPar()
+SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source Window{S,T}
Data type for FBP apodizing windows, with given window shape::S
and cutoff::T
.
julia> Window(Hamming(), 0.8)
+Window{Hamming, Float64}(Hamming(), 0.8)
source WindowVect{V} <: AbstractWindowShape
A user-specified window vector, constructed via WindowVect(v::V)
, where v
is a AbstractVector
. Caution: length(v)
must be appropriate for the padded sinogram size.
source show(io::IO, ::MIME"text/plain", st::RayGeom)
source _geom_gamma(st::RayGeom)
Return gamma (γ: fan angle) values for fan-beam geometry.
source _geom_rfov(st::RayGeom)
Radial FOV.
source _geom_unitv([T=Float32], st:RayGeom [, pos::Tuple])
Projection views with a single non-zero ray value at position pos
(default: middle).
source _geom_xds(st::RayGeom)
Center x
positions of detectors (for beta = 0), for central row of detector.
source _geom_yds(st::RayGeom)
Center y
positions of detectors (for beta = 0), for central row of detector.
source _reale(x ; rtol = …)
Return the real part of x
, but warn if the imaginary part is too large. By default this uses a 100× larger rtol
than isapprox
due to FFT errors.
source _show(io::IO, ::MIME"text/plain", st::Any)
Informative way to show fields of a struct (composite type).
source u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)
Convert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)
Convert from cone-beam flat panel coordinages to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source cbct_back(proj, cg, ig)
Cone-beam backprojector for feldkamp.jl
in
proj
(ns,nt,na) cone-beam projection viewscg::CtGeom
ig::ImageGeom
out
img
(nx,ny,nz) back-projection resultsource cbct_back_fan!(...)
This should work even for non-uniformly spaced source angles (for a circular source trajectory).
source ct_geom_plot2!(st::CtGeom [, ig::ImageGeom])
Plot central 2D portion of the CBCT geometry.
source ct_geom_plot3(st::CtFan [, ig::ImageGeom])
3D CBCT geometry plot
source downsample(ct, down::Int)
+downsample(ct, down::NTuple{3,Int})
Down-sample CT geometry (for testing with small problems).
source downsample(st, down)
Down-sample sinogram geometry (for testing with small problems).
source fbp!(image, sino ; orbit::Real = 180, kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Writes result into image
matrix.
Input
Options for SinoPar
constructor
dr
: sinogram radial spacing; default 1orbit
: angular range in degrees; default 180orbit_start
: angular range in degrees; default 0Options for ImageGeom
dx
, dy
, deltas
, offset_x
, offset_y
, offsets
rmax
maximum radius for maskOptions
kwargs
: passed to plan_fbp
Output
image::AbstractMatrix
is mutatedsource image, sino_filt = fbp(plan, sino)
Filtered back-projection (FBP) reconstruction, returning image and filtered sinogram.
in
plan::FBPplan
sino::AbstractMatrix{<:Number}
out
image::Matrix{<:Number}
reconstructed image(s)sino_filt::Matrix{<:Number}
filtered sinogram(s)source fbp(sino::AbstractMatrix ; kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Returns an image of size [nx × ny]
.
Options
nx
: default nr
ny
: default nx
kwargs
: passed to fbp!
source img = fbp_back(sg, ig, sino ; ia_skip)
2D pixel-driven backprojection for FBP.
in
sg::SinoGeom
ig::ImageGeom
sino::AbstractArray{<:Number}
sinogram(s) (line integrals), usually ramp filteredoptions
ia_skip::Int
downsample in angle to save time for quick tests (default: 1)out
img::Array{<:Number}
reconstructed image(s)source fbp_back_fan!(image, sino, sinβ, cosβ,
+ dsd, dso, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd,dso,source_offset::RealU
geometryis_arc::Bool
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_fan(sino, betas,
+ dsd, dso, dfs, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredbetas::Vector{<:Real}
(na)
in radiansdsd,dso,source_offset::RealU
geometryis_arc::Bool
arc or flat?ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::DataType
usually same as eltype(sino)
out
source fbp_back_fan_xy(sino, sinβ, cosβ,
+ dsd_ds, dso_ds, source_offset_ds, is_arc,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd_ds,dso_ds,source_offset_ds::Real
geometry, normalizedwb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::DataType
typically same as eltype(sino)
out
Returns a scalar of type T
. source fbp_back_par!(image, sino, sinϕ, cosϕ,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_par(sino, angles,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredangles::Vector{<:Real}
(na)
in radiansds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::DataType
usually same as eltype(sino)
out
source fbp_back_par_xy(sino, sinϕ, cosϕ,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
wb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::DataType
typically same as eltype(sino)
out
Returns a scalar of type T
. source Hk = fbp_filter(st::Union{SinoGeom,CtGeom} ;
+ npad=0, ds::RealU = st.d, decon1::Bool=true, window=Window())
Compute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
st::Union{SinoGeom,CtGeom}
options
npad::Int
# of padded samples. (default: next power of 2)ds::Td
detector sample spacing (default from st
)decon1::Bool
deconvolve effect of linear interpolator? (default: true)window::Window
apodizer; default: Window()
out
Hk::Vector
apodized ramp filter frequency responsesource h, n = fbp_ramp(sg::SinoGeom, N::Int)
'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
sg::SinoGeom
N::Int
: # of samples (must be even)out
h::Vector{<:RealU}
: samples of band-limited ramp filtern::UnitRange{Int64}
: -(N÷2):(N÷2-1)source sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)
Apply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.
in
sino::AbstractArray{<:Number}
[nb (L)]
sinogramsfilter::AbstractVector
(npad ≥ nb)
apodized ramp filter frequency responseoptions
extra::Int
# of extra sinogram radial samples to keep (default: 0)npad::Int
# of padded samples. (default: next power of 2)out
sino::AbstractArray
sinogram with filtered rowssource fbp_sino_weight(sg::SinoFan)
Return 1D sinogram weighting for first step of 2D fan-beam FBP.
source fbp_window(w::Window, N::Int ; T = Float32)
Create an apodizing window of length N
and fftshift
it.
julia> fbp_window(Window(Hamming()), 4)
+4-element Vector{Float32}:
+ 1.0
+ 0.54
+ 0.0
+ 0.54
source image = fdk(plan, proj)
Reconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.
in
plan::FDKplan
proj
(ns,nt,na) projection viewsout
image
(nx,ny,nz) reconstructed imageReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.
source footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)
Unitless maximum footprint size (in detector pixels).
source oversample(st, over::Int)
Over-sample CT geometry in "radial" dimension.
source oversample(st, over::Int)
Over-sample sinogram geometry in "radial" dimension. For Mojette sampling, it means that d = dx/over
.
source parker_weight(sg::SinoGeom ; T = Float32)
Compute Parker weighting for non-360° orbits. Returns Vector{T}
of length sg.na
.
source plan = plan_fbp(cg, ig; window=Window(), ...)
Plan FDK 3D CBCT image reconstruction, with either flat or arc detector.
To use this, you first call it with the CT geometry and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FDK reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
cg::CtGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.options
window::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, cg.ns + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)-T::DataType
type of sino elements (default Float32
)
out
plan::FDKplan
initialized plansource plan = plan_fbp(sg, ig; how=:normal, window=Window())
Plan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.
To use this, you first call it with the sinogram and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FBP reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
sg::SinoGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.options
how::Symbol
how to reconstruct:normal
default:mojette
use mojette rebinning and Gtomo2_tablewindow::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, sg.nb + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)-T::DataType
type of sino elements (default Float32
)
out
plan::FBPplan
initialized plansource i = rays(st::CtGeom)
Return parallel-beam coordinates of all rays for this CT geometry. Return type of i
is a ProductIterator
that makes tuples of the form (u, v, ϕ, θ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source = rays(sg::SinoGeom)
Radial r
and angular ϕ
coordinates (in radians) of all sinogram elements for the given geometry. Return type of i
is a ProductIterator
that makes tuples of the form (r, ϕ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source reshaper(x::AbstractArray, dim:Dims)
Reshape x
to size dim
with :
only if needed
source sino_geom_plot!(sg, ig)
Picture of the source position / detector geometry.
source sino_geom_plot!(sg)
Picture of the source position / detector geometry.
source sino_geom_tau(st::Union{SinoGeom,CtGeom}, x, y)
Projected s/ds
, useful for footprint center and support. Returns Matrix
of size length(x) × st.na
.
source sino_plot_rays(sg::SinoGeom ; kwargs...)
Make a scatter plot of the (r, ϕ)
sample locations for all rays. Requires Plots
.
source to_radians(angles::AbstractArray{Unitful.Quantity})
Convert Unitful
quantity array to radians.
source to_radians(angles::AbstractArray{<:AbstractFloat})
When Unitful package not loaded, assume angles
are in degrees and convert to radians.
source output = zwart_powell(r, ϕ)
Analytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r
(normalized by pixel size) and angle ϕ
(in radians).
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/search/index.html b/v0.2.0/search/index.html
new file mode 100644
index 0000000..ed88093
--- /dev/null
+++ b/v0.2.0/search/index.html
@@ -0,0 +1,2 @@
+
+Search · Sinograms.jl
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Tuesday 20 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.2.0/search_index.js b/v0.2.0/search_index.js
new file mode 100644
index 0000000..f6c978f
--- /dev/null
+++ b/v0.2.0/search_index.js
@@ -0,0 +1,3 @@
+var documenterSearchIndex = {"docs":
+[{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/07-fdk.jl\"","category":"page"},{"location":"generated/examples/07-fdk/#fdk","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated from a single Julia file: 07-fdk.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb, and opened in binder here: 07-fdk.ipynb.","category":"page"},{"location":"generated/examples/07-fdk/#Setup","page":"CBCT FDK","title":"Setup","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Packages needed here.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: CtFanArc, CtFanFlat # CtPar\nusing Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\nusing ImageGeoms: ImageGeom, MaskCircle, fovs\nusing ImagePhantoms: ellipsoid_parameters, ellipsoid\nusing ImagePhantoms: radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/07-fdk/#CBCT-projections-of-3D-Shepp-Logan-phantom","page":"CBCT FDK","title":"CBCT projections of 3D Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Ellipsoid parameters for 3D Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nparams = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\nob = ellipsoid(params)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"A narrow grayscale window is needed to see the soft tissue structures","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"clim = (0.95, 1.05) .* μ","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Here is the ideal phantom image:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"oversample = 3\ntrue_image = phantom(axes(ig)..., ob, oversample)\njim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Define the system geometry (for some explanation use ?CtGeom):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\ncg = CtFanArc( ; p...)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ct_geom_plot3(cg, ig)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"prompt()","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"CBCT projections using Sinogram.rays and ImagePhantoms.radon:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"proj_arc = radon(rays(cg), ob)\njim(cg.s, cg.t, proj_arc ;\n title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"There is no \"inverse crime\" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.","category":"page"},{"location":"generated/examples/07-fdk/#Image-reconstruction-via-FBP-/-FDK","page":"CBCT FDK","title":"Image reconstruction via FBP / FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"We start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\nfdk_arc = fdk(plan, proj_arc)\njim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_arc = fdk_arc - true_image\njim(axes(ig), err_arc, \"Error image (arc)\"; clim = (-1,1) .* (0.05μ))","category":"page"},{"location":"generated/examples/07-fdk/#Repeat-with-flat-detector-geometry","page":"CBCT FDK","title":"Repeat with flat detector geometry","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"cg = CtFanFlat( ; p...)\nproj_flat = radon(rays(cg), ob)\njim(cg.s, cg.t, proj_flat ;\n title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n\nplan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\nfdk_flat = fdk(plan, proj_flat)\njim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_flat = fdk_flat - true_image\njim(axes(ig), err_flat, \"Error image (flat)\"; clim = (-1,1) .* (0.05μ))","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"As expected for CBCT, the largest errors are in the end slices.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/02-sino-geom.jl\"","category":"page"},{"location":"generated/examples/02-sino-geom/#sino-geom","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated from a single Julia file: 02-sino-geom.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb, and opened in binder here: 02-sino-geom.ipynb.","category":"page"},{"location":"generated/examples/02-sino-geom/#Setup","page":"2D sinogram geometry","title":"Setup","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Packages needed here.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"using Unitful: mm, °\nusing Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\nusing Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\nusing Sinograms: sino_plot_rays, rays\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/02-sino-geom/#D-Sinogram-geometries","page":"2D sinogram geometry","title":"2D Sinogram geometries","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined for all r and ϕ but practical systems record p(rϕ) only for certain finite sets of samples of those values.","category":"page"},{"location":"generated/examples/02-sino-geom/#Parallel-beam-geometry","page":"2D sinogram geometry","title":"Parallel-beam geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The simplest form of sinogram sampling is equally spaced samples in both r and ϕ. This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of r and ϕ are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In this package, SinoPar is the type that describes a parallel-beam sinogram geometry.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The built-in defaults provide helpful reminders about the usage.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"SinoPar()","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This package supports units via the Unitful.jl and using units is recommended (but not required).","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"orbit and orbit_start must both be unitless (degrees) or have the same units (e.g., degrees or radians).\ndetector spacing d (can be unitless or have units e.g., mm).\nThe projection angles ϕ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoPar( ;\n nb = 64, # number of radial samples (\"bins\")\n na = 30, # number of angular samples\n d = 2mm, # detector spacing\n offset = 0.25, # quarter detector offset (unitless)\n orbit = 180, # angular range (in degrees)\n orbit_start = 0, # starting angle (in degrees)\n)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The struct sg has numerous useful properties; type ?SinoGeom to see the full list.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For example, to access the angular samples in degrees type sg.ad","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg.ad","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following function visualizes the sampling pattern.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-an-arc-detector-(3rd-generation-CT)","page":"2D sinogram geometry","title":"Fan-beam CT with an arc detector (3rd generation CT)","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For a fan-beam geometry, the arguments are the same as for SinoPar with the addition of specifying:","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"dsd distance from source to detector\ndod distance from origin (isocenter) to detector\ndfs distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf for a flat detector)\nsource_offset for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanArc( ; nb=888, na=984,\n d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a smaller example for plotting the rays.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanArc( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)\nsino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for arc detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-a-flat-detector","page":"2D sinogram geometry","title":"Fan-beam CT with a flat detector","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This geometry is the same as the arc detector except that dfs=Inf.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanFlat( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for flat detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Mojette-sampling","page":"2D sinogram geometry","title":"Mojette sampling","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This is a specialized sampling geometry that is currently incompletely supported.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoMoj( ; nb=60, na=30)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true,\n title=\"Mojette sampling\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\ndefault(label=\"\")\nfor y in -2:2\n plot!([-3, 3], [y, y], color=:black)\nend\nfor x in -3:3\n plot!([x, x], [-2, 2], color=:black)\nend\nplot_ray!(r, ϕ) = plot!(\n r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n color = :blue,\n)\nia = 4 # pick an angle\ni = rays(sg) # iterator\nrs = [i[1] for i in i] # radial samples\nϕs = [i[2] for i in i] # projection angle\nr = rs[:,ia]\nr = r[abs.(r) .< 3]\nϕ = ϕs[1,ia]\nplot_ray!.(r, ϕ)\nplot!(aspect_ratio=1, title = \"Mojette line integrals\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/03-parallel-beam.jl\"","category":"page"},{"location":"generated/examples/03-parallel-beam/#parallel-beam","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated from a single Julia file: 03-parallel-beam.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb, and opened in binder here: 03-parallel-beam.ipynb.","category":"page"},{"location":"generated/examples/03-parallel-beam/#Setup","page":"Parallel-beam tomography","title":"Setup","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Packages needed here.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"using Sinograms: SinoPar, rays, plan_fbp, fbp\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing Unitful: mm\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/03-parallel-beam/#Parallel-beam-sinogram-of-Shepp-Logan-phantom","page":"Parallel-beam tomography","title":"Parallel-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use SinoPar to define the sinogram geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sg = SinoPar( ; nb = 130, d = 2mm, na = 100)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Radon transform of Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sino = radon(rays(sg), ob)\njim(sg.r, sg.ad, sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n\n# Image reconstruction via FBP","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"plan = plan_fbp(sg, ig)\nfbp_image, sino_filt = fbp(plan, sino)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated using Literate.jl.","category":"page"},{"location":"methods/#Methods-list","page":"Methods","title":"Methods list","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"","category":"page"},{"location":"methods/#Methods-usage","page":"Methods","title":"Methods usage","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"Modules = [Sinograms]","category":"page"},{"location":"methods/#Sinograms.Sinograms","page":"Methods","title":"Sinograms.Sinograms","text":"Sinograms module\n\n\n\n\n\n","category":"module"},{"location":"methods/#Sinograms.CtFanArc","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc 3D CBCT geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc(::Val{:ge1} ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\n\nout\n\nCtFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> CtFanArc(Val(:ge1))\nCtFanArc{Float64, Float32, CtSourceCircle} :\n ns::Int64 888\n nt::Int64 64\n ds::Float64 1.0239\n dt::Float64 1.0964\n offset_s::Float32 1.25\n offset_t::Float32 0.0\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float64 0.0\n dsd::Float64 949.075\n dod::Float64 408.075\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanArc-Tuple{}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtFanArc()\nCtFanArc{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanFlat","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat 3D CTCT geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanFlat-Tuple{}","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtFanFlat()\nCtFanFlat{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtGeom","page":"Methods","title":"Sinograms.CtGeom","text":"CtGeom{Td,To,Ts}\n\nAbstract type for representing ray geometries for 3D CT imaging.\n\nThe projection view coordinates are (s,t) where s denotes the transaxial sampling and t denotes the axial direction (along z).\n\nCommon fields\n\nns size of each projection view\nnt\nds detector pixel spacing\ndt\noffset_s unitless detector center offset (usually 0 or 0.25)\noffset_t unitless, usually 0\nna # of projection views, aka nϕ or nβ\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\nsrc::CtSource describes the X-ray CT source trajectory. Primary support for CtSourceCircle().\n\nAdditional fields for CtFan types:\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nds, dt, source_offset, dsd, dod must all be unitless or have the same units.\n\nDerived values (available by getproperty), i.e., st.?\n\n.dim dimensions: (ns,nt,na)\n.s (ns) s sample locations\n.t (nt) t sample locations\n.ws = (ns-1)/2 + offset_s \"middle\" sample position\n.wt = (nt-1)/2 + offset_t\n.ad (na) source angles [degrees]\n.ar (na) source angles [radians]\n.rad (ns) radial distance of each ray from origin\n.rfov max radius within FOV\n.zfov axial FOV\n\nFor fan beam:\n\ndso = dsd - dod distance from source to origin (Inf for parallel beam)\ndfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n.gamma (ns) gamma sample values radians\n.gamma_s gamma values given s values\n.gamma_max half of fan angle radians, if offset_s=0\n.gamma_max_abs half of fan angle radians - recommended\n.cone_angle (half) cone angle on axis (s=0): +/- angle\n\nBasic methods\n\ndims (ns, nt, na)\nones = ones(Float32, ns,nt,na)\nzeros = zeros(Float32, ns,nt,na)\nrays iterator of (u,v,ϕ,θ) samples\ndownsample(st, down) reduce sampling by integer factor\noversample(st, over)\nct_geom_plot! plot system geometry\n\nMethods\n\n.shape(proj) reshape proj\n.plot2(ig) plot the 2D geometry of the image\n.plot3(ig) plot the 3D geometry of the cone beam setup\n.unitv(is,it,ia) unit vector with single nonzero element\n\nNotes\n\nUse sino_geom() instead for 2D geometries.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar","page":"Methods","title":"Sinograms.CtPar","text":"CtPar\n\n3D parallel-beam projection geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar-Tuple{}","page":"Methods","title":"Sinograms.CtPar","text":"CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtPar()\nCtPar{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 60\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtSource","page":"Methods","title":"Sinograms.CtSource","text":"CtSource\n\nAbstract type for representing X-ray CT source trajectories.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceCircle","page":"Methods","title":"Sinograms.CtSourceCircle","text":"CtSourceCircle\n\nType for representing circular X-ray CT source trajectory.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix\n\nType for representing helical X-ray CT source trajectories having constant pitch.\n\nFields\n\npitch helix pitch (unitless fraction of zFOV, default 0)\nsource_z0 initial z position of x-ray source (default 0) It should have same units as detector pixels etc.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix-Tuple{}","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix( ; pitch = 0, source_z0 = 0)\n\nConstructor with named keywords\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.FBPNormalPlan","page":"Methods","title":"Sinograms.FBPNormalPlan","text":"FBPNormalPlan{S,I,H,P}\n\nStruct type for storing \"normal\" FBP plan.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FBPplan","page":"Methods","title":"Sinograms.FBPplan","text":"FBPplan\n\nAbstract type for FBP plans.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FDKplan","page":"Methods","title":"Sinograms.FDKplan","text":"FDKplan{C,I,H,P}\n\nStruct type for storing FDK plan.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.RayGeom","page":"Methods","title":"Sinograms.RayGeom","text":"RayGeom{Td,To}\n\nParent type for SinoGeom and CtGeom\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc 2D fan-beam sinogram geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFan(Val(:ge1) ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\nnb::Int = 888 # of detector channels\nd::RealU = 1.0239 channel spacing\noffset::Real = 1.25 for \"quarter-detector\" offset\nna::Int = 984 # of angles\norbit::Union{Symbol,Real} = 360 use :short for short scan\ndsd::RealU = 949.075\ndod::RealU = 408.075\n\nout\n\nSinoFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> SinoFanArc(Val(:ge1))\nSinoFanArc{Float64, Float32} :\n nb::Int64 888\n d::Float64 1.0239\n offset::Float32 1.25\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float64 0.0\n dsd::Float64 949.075\n dod::Float64 408.075\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc( ; nb d offset na orbit orbit_start\n source_offset, dsd = 4 * nb * d, dod = nb * d)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\nd, source_offset, dsd, dod must all have the same units.\n\njulia> SinoFanArc()\nSinoFanArc{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanFlat","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat\n\n2D fan-beam sinogram geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanFlat-Tuple{}","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat( ; nb d offset na orbit orbit_start\n source_offset, dsd= 4 * nb * d, dod = nb * d)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoFanFlat()\nSinoFanFlat{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoGeom","page":"Methods","title":"Sinograms.SinoGeom","text":"SinoGeom{Td,To}\n\nAbstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.\n\nCommon fields\n\nnb # of \"radial\" samples, aka nr or ns\nd aka dr or ds, \"radial\" sample spacing\noffset unitless sample offset (usually 0 or 0.25)\nna # of angular samples, aka nϕ or nβ default: 2 * floor(Int, nb * π/2 / 2)\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\n\nAdditional fields for SinoFan types\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nd, source_offset, dsd, dod must all have the same units.\n\nDerived values (available by getproperty), i.e., st.?\n\n.ds|dr radial sample spacing (NaN for :moj)\n.s (nb) s sample locations\n.w = (nb-1)/2 + offset \"middle\" sample position\n.ad (na) source angles degrees\n.ar (na) source angles radians\n.rfov radial FOV\n.xds (nb) center of detector elements (beta=0)\n.yds (nb) \"\"\n\nFor mojette:\n\n.d_ang (na) angle-dependent radial spacing\n\nFor fan beam:\n\ndso = dsd - dod distance from source to origin (Inf for parallel beam)\ndfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n.gamma (nb) gamma sample values radians\n.gamma_max half of fan angle radians, if offset=0\n\nBasic methods\n\ndims (nb, na)\nsino_s (nb) s sample locations\nsino_w = (nb-1)/2 + offset ('middle' sample position)\nrays iterator of (r, ϕ) parallel-beam coordinate tuples of size (nb, na)\nones = ones(Float32, nb, na)\nzeros = zeros(Float32, nb, na)\ndownsample(st, down)\noversample(st, over)\nangles (na) in degrees\nsino_geom_plot! plot system geometry\n\nMethods\n\n.shape(sino) reshape sinograms into array (nb,na,:)\n.unitv(;ib,ia) unit 'vector' with single nonzero element\n.taufun(x,y) projected s/ds for each (x,y) pair (numel(x),na)\n\nNotes\n\nUse ct_geom() instead for 3D axial or helical cone-beam CT.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj\n\n2D Mojette sinogram geometry where d means dx (square pixel size)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj-Tuple{}","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoMoj()\nSinoMoj{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoPar","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar\n\n2D parallel-beam sinogram geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoPar-Tuple{}","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoPar()\nSinoPar{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.Window","page":"Methods","title":"Sinograms.Window","text":"Window{S,T}\n\nData type for FBP apodizing windows, with given window shape::S and cutoff::T.\n\njulia> Window(Hamming(), 0.8)\nWindow{Hamming, Float64}(Hamming(), 0.8)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.WindowVect","page":"Methods","title":"Sinograms.WindowVect","text":"WindowVect{V} <: AbstractWindowShape\n\nA user-specified window vector, constructed via WindowVect(v::V), where v is a AbstractVector. Caution: length(v) must be appropriate for the padded sinogram size.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Base.show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Sinograms.RayGeom}","page":"Methods","title":"Base.show","text":"show(io::IO, ::MIME\"text/plain\", st::RayGeom)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_gamma-Union{Tuple{Union{CtFanArc{Td}, SinoFanArc{Td}}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms._geom_gamma","text":"_geom_gamma(st::RayGeom)\n\nReturn gamma (γ: fan angle) values for fan-beam geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_rfov-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._geom_rfov","text":"_geom_rfov(st::RayGeom)\n\nRadial FOV.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_unitv","page":"Methods","title":"Sinograms._geom_unitv","text":"_geom_unitv([T=Float32], st:RayGeom [, pos::Tuple])\n\nProjection views with a single non-zero ray value at position pos (default: middle).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms._geom_xds-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._geom_xds","text":"_geom_xds(st::RayGeom)\n\nCenter x positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_yds-Union{Tuple{Union{CtPar{Td}, SinoPar{Td}}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms._geom_yds","text":"_geom_yds(st::RayGeom)\n\nCenter y positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._reale-Tuple{Any}","page":"Methods","title":"Sinograms._reale","text":"_reale(x ; rtol = …)\n\nReturn the real part of x, but warn if the imaginary part is too large. By default this uses a 100× larger rtol than isapprox due to FFT errors.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Any}","page":"Methods","title":"Sinograms._show","text":"_show(io::IO, ::MIME\"text/plain\", st::Any)\n\nInformative way to show fields of a struct (composite type).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_arc_to_par-Union{Tuple{Ts}, Tuple{Ts, Number, Number, Number, Number}} where Ts<:Number","page":"Methods","title":"Sinograms.cb_arc_to_par","text":"u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_flat_to_par-NTuple{5, Number}","page":"Methods","title":"Sinograms.cb_flat_to_par","text":"u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam flat panel coordinages to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back-Union{Tuple{To}, Tuple{Td}, Tuple{Ts}, Tuple{AbstractArray{Ts, 3}, CtFan{Td, To}, ImageGeoms.ImageGeom{3, S, M} where {S<:Tuple{Number, Number, Number}, M<:AbstractArray{Bool, 3}}}} where {Ts<:Number, Td, To}","page":"Methods","title":"Sinograms.cbct_back","text":"cbct_back(proj, cg, ig)\n\nCone-beam backprojector for feldkamp.jl\n\nin\n\nproj (ns,nt,na) cone-beam projection views\ncg::CtGeom\nig::ImageGeom\n\nout\n\nimg (nx,ny,nz) back-projection result\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back_fan!-Union{Tuple{Toffset}, Tuple{To}, Tuple{T}, Tuple{Array{T, 3}, AbstractArray{<:Number, 3}, AbstractVector{To}, Number, Number, Number, Number, Toffset, Toffset, Bool, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractArray{Bool, 3}}} where {T<:Number, To<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.cbct_back_fan!","text":"cbct_back_fan!(...)\n\nThis should work even for non-uniformly spaced source angles (for a circular source trajectory).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot2!-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot2!","text":"ct_geom_plot2!(st::CtGeom [, ig::ImageGeom])\n\nPlot central 2D portion of the CBCT geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot3-Tuple{CtFan, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot3","text":"ct_geom_plot3(st::CtFan [, ig::ImageGeom])\n\n3D CBCT geometry plot\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Tuple{CtGeom, Int64}","page":"Methods","title":"Sinograms.downsample","text":"downsample(ct, down::Int)\ndownsample(ct, down::NTuple{3,Int})\n\nDown-sample CT geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.downsample","text":"downsample(st, down)\n\nDown-sample sinogram geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp!-Tuple{AbstractMatrix{<:Number}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp!","text":"fbp!(image, sino ; orbit::Real = 180, kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Writes result into image matrix.\n\nInput\n\nsino::AbstractMatrix\n\nOptions for SinoPar constructor\n\ndr : sinogram radial spacing; default 1\norbit : angular range in degrees; default 180\norbit_start : angular range in degrees; default 0\n\nOptions for ImageGeom\n\ndx, dy, deltas, offset_x, offset_y, offsets\nrmax maximum radius for mask\n\nOptions\n\nkwargs : passed to plan_fbp\n\nOutput\n\nimage::AbstractMatrix is mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Tuple{Sinograms.FBPNormalPlan{<:SinoPar}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp","text":"image, sino_filt = fbp(plan, sino)\n\nFiltered back-projection (FBP) reconstruction, returning image and filtered sinogram.\n\nin\n\nplan::FBPplan\nsino::AbstractMatrix{<:Number}\n\nout\n\nimage::Matrix{<:Number} reconstructed image(s)\nsino_filt::Matrix{<:Number} filtered sinogram(s)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Union{Tuple{AbstractMatrix{Ts}}, Tuple{Td}, Tuple{Ts}} where {Ts<:Number, Td<:Number}","page":"Methods","title":"Sinograms.fbp","text":"fbp(sino::AbstractMatrix ; kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Returns an image of size [nx × ny].\n\nOptions\n\nnx : default nr\nny : default nx\nkwargs : passed to fbp!\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back","page":"Methods","title":"Sinograms.fbp_back","text":"img = fbp_back(sg, ig, sino ; ia_skip)\n\n2D pixel-driven backprojection for FBP.\n\nin\n\nsg::SinoGeom\nig::ImageGeom\nsino::AbstractArray{<:Number} sinogram(s) (line integrals), usually ramp filtered\n\noptions\n\nia_skip::Int downsample in angle to save time for quick tests (default: 1)\n\nout\n\nimg::Array{<:Number} reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_back_fan!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Number, Number, Bool, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan!","text":"fbp_back_fan!(image, sino, sinβ, cosβ,\n dsd, dso, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Number, Number, Number, Bool, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_fan","text":"fbp_back_fan(sino, betas,\n dsd, dso, dfs, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nbetas::Vector{<:Real} (na) in radians\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool arc or flat?\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::DataType usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Real, Real, Real, Bool, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan_xy","text":"fbp_back_fan_xy(sino, sinβ, cosβ,\n dsd_ds, dso_ds, source_offset_ds, is_arc,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd_ds,dso_ds,source_offset_ds::Real geometry, normalized\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::DataType typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_par!","text":"fbp_back_par!(image, sino, sinϕ, cosϕ,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_par","text":"fbp_back_par(sino, angles,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nangles::Vector{<:Real} (na) in radians\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::DataType usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_par_xy","text":"fbp_back_par_xy(sino, sinϕ, cosϕ,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::DataType typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_filter-Union{Tuple{}, Tuple{Union{CtGeom{Td}, SinoGeom{Td}}}, Tuple{Td}} where Td<:Number","page":"Methods","title":"Sinograms.fbp_filter","text":"Hk = fbp_filter(st::Union{SinoGeom,CtGeom} ;\n npad=0, ds::RealU = st.d, decon1::Bool=true, window=Window())\n\nCompute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nst::Union{SinoGeom,CtGeom}\n\noptions\n\nnpad::Int # of padded samples. (default: next power of 2)\nds::Td detector sample spacing (default from st)\ndecon1::Bool deconvolve effect of linear interpolator? (default: true)\nwindow::Window apodizer; default: Window()\n\nout\n\nHk::Vector apodized ramp filter frequency response\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_ramp-Union{Tuple{Td}, Tuple{SinoPar{Td}, Int64}} where Td","page":"Methods","title":"Sinograms.fbp_ramp","text":"h, n = fbp_ramp(sg::SinoGeom, N::Int)\n\n'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nsg::SinoGeom\nN::Int : # of samples (must be even)\n\nout\n\nh::Vector{<:RealU} : samples of band-limited ramp filter\nn::UnitRange{Int64} : -(N÷2):(N÷2-1)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_filter-Union{Tuple{Tf}, Tuple{Ts}, Tuple{N}, Tuple{AbstractArray{Ts, N}, AbstractVector{Tf}}} where {N, Ts<:Number, Tf<:Number}","page":"Methods","title":"Sinograms.fbp_sino_filter","text":"sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)\n\nApply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.\n\nin\n\nsino::AbstractArray{<:Number} [nb (L)] sinograms\nfilter::AbstractVector (npad ≥ nb) apodized ramp filter frequency response\n\noptions\n\nextra::Int # of extra sinogram radial samples to keep (default: 0)\nnpad::Int # of padded samples. (default: next power of 2)\n\nout\n\nsino::AbstractArray sinogram with filtered rows\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_weight-Tuple{SinoFan}","page":"Methods","title":"Sinograms.fbp_sino_weight","text":"fbp_sino_weight(sg::SinoFan)\n\nReturn 1D sinogram weighting for first step of 2D fan-beam FBP.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_window-Tuple{Window, Int64}","page":"Methods","title":"Sinograms.fbp_window","text":"fbp_window(w::Window, N::Int ; T = Float32)\n\nCreate an apodizing window of length N and fftshift it.\n\njulia> fbp_window(Window(Hamming()), 4)\n4-element Vector{Float32}:\n 1.0\n 0.54\n 0.0\n 0.54\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fdk-Tuple{FDKplan, AbstractArray{<:Number, 3}}","page":"Methods","title":"Sinograms.fdk","text":"image = fdk(plan, proj)\n\nReconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.\n\nin\n\nplan::FDKplan\nproj (ns,nt,na) projection views\n\nout\n\nimage (nx,ny,nz) reconstructed image\n\nReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.footprint_size","page":"Methods","title":"Sinograms.footprint_size","text":"footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)\n\nUnitless maximum footprint size (in detector pixels).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:CtParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(st, over::Int)\n\nOver-sample CT geometry in \"radial\" dimension.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(st, over::Int)\n\nOver-sample sinogram geometry in \"radial\" dimension. For Mojette sampling, it means that d = dx/over.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.parker_weight-Tuple{SinoPar}","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(sg::SinoGeom ; T = Float32)\n\nCompute Parker weighting for non-360° orbits. Returns Vector{T} of length sg.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(cg, ig; window=Window(), ...)\n\nPlan FDK 3D CBCT image reconstruction, with either flat or arc detector.\n\nTo use this, you first call it with the CT geometry and image geometry. The routine returns the initialized plan. Thereafter, to to perform FDK reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\ncg::CtGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noptions\n\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, cg.ns + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\n\n-T::DataType type of sino elements (default Float32)\n\nout\n\nplan::FDKplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(sg, ig; how=:normal, window=Window())\n\nPlan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.\n\nTo use this, you first call it with the sinogram and image geometry. The routine returns the initialized plan. Thereafter, to to perform FBP reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nsg::SinoGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noptions\n\nhow::Symbol how to reconstruct\n:normal default\n:mojette use mojette rebinning and Gtomo2_table\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, sg.nb + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\n\n-T::DataType type of sino elements (default Float32)\n\nout\n\nplan::FBPplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Union{Tuple{CtPar{Td, To}}, Tuple{To}, Tuple{Td}} where {Td, To}","page":"Methods","title":"Sinograms.rays","text":"i = rays(st::CtGeom)\n\nReturn parallel-beam coordinates of all rays for this CT geometry. Return type of i is a ProductIterator that makes tuples of the form (u, v, ϕ, θ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Union{Tuple{SinoPar{Td, To}}, Tuple{To}, Tuple{Td}} where {Td, To}","page":"Methods","title":"Sinograms.rays","text":" = rays(sg::SinoGeom)\n\nRadial r and angular ϕ coordinates (in radians) of all sinogram elements for the given geometry. Return type of i is a ProductIterator that makes tuples of the form (r, ϕ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.reshaper-Tuple{AbstractArray, Tuple{Vararg{Int64, N}} where N}","page":"Methods","title":"Sinograms.reshaper","text":"reshaper(x::AbstractArray, dim:Dims)\n\nReshape x to size dim with : only if needed\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(sg, ig)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(sg)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_tau-Union{Tuple{Ty}, Tuple{Tx}, Tuple{To}, Tuple{Td}, Tuple{Union{SinoGeom{Td, To}, CtGeom{Td, To}}, AbstractArray{Tx}, AbstractArray{Ty}}} where {Td<:Number, To<:Number, Tx<:Number, Ty<:Number}","page":"Methods","title":"Sinograms.sino_geom_tau","text":"sino_geom_tau(st::Union{SinoGeom,CtGeom}, x, y)\n\nProjected s/ds, useful for footprint center and support. Returns Matrix of size length(x) × st.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_plot_rays-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_plot_rays","text":"sino_plot_rays(sg::SinoGeom ; kwargs...)\n\nMake a scatter plot of the (r, ϕ) sample locations for all rays. Requires Plots.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{<:Unitful.Quantity{T}}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{Unitful.Quantity})\n\nConvert Unitful quantity array to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{<:AbstractFloat})\n\nWhen Unitful package not loaded, assume angles are in degrees and convert to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.zwart_powell-Tuple{Real, Real}","page":"Methods","title":"Sinograms.zwart_powell","text":"output = zwart_powell(r, ϕ)\n\nAnalytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r (normalized by pixel size) and angle ϕ (in radians).\n\n\n\n\n\n","category":"method"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/05-fan-flat.jl\"","category":"page"},{"location":"generated/examples/05-fan-flat/#fan-flat","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page focuses on fan-beam with a \"flat\" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated from a single Julia file: 05-fan-flat.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb, and opened in binder here: 05-fan-flat.ipynb.","category":"page"},{"location":"generated/examples/05-fan-flat/#Setup","page":"Fan-beam tomography: flat detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/05-fan-flat/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: flat detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use SinoFanFlat to define the sinogram geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"sg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(sg, ig)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"prompt()","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"sino = radon(rays(sg), ob)\njim(sg.r, sg.ad, sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/05-fan-flat/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: flat detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"plan = plan_fbp(sg, ig; window = Window(Hamming(), 1.0))\nfbp_image, sino_filt = fbp(plan, sino)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/04-fan-arc.jl\"","category":"page"},{"location":"generated/examples/04-fan-arc/#fan-arc","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated from a single Julia file: 04-fan-arc.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb, and opened in binder here: 04-fan-arc.ipynb.","category":"page"},{"location":"generated/examples/04-fan-arc/#Setup","page":"Fan-beam tomography: arc detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/04-fan-arc/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: arc detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use SinoFanArc to define the sinogram geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"sg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(sg, ig)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"prompt()","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Flat fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"sino = radon(rays(sg), ob)\njim(sg.r, sg.ad, sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/04-fan-arc/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: arc detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"plan = plan_fbp(sg, ig)\nfbp_image, sino_filt = fbp(plan, sino)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Sinograms","category":"page"},{"location":"#Sinograms.jl-Documentation","page":"Home","title":"Sinograms.jl Documentation","text":"","category":"section"},{"location":"#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Sinograms.jl is a Julia language package with tools for tomographic image reconstruction, including","category":"page"},{"location":"","page":"Home","title":"Home","text":"describing ray geometries (parallel beam, fan beam, etc.) ✅\nperforming filtered back-projection (FBP) image reconstruction ✅\nsystem models for iterative reconstruction (WIP)","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the examples.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See also:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Michigan Image Reconstruction Toolbox (MIRT)\nJuliaImageRecon","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/01-tomography.jl\"","category":"page"},{"location":"generated/examples/01-tomography/#tomography","page":"Tomography overview","title":"Tomography overview","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page gives an overview of the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated from a single Julia file: 01-tomography.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb, and opened in binder here: 01-tomography.ipynb.","category":"page"},{"location":"generated/examples/01-tomography/#Setup","page":"Tomography overview","title":"Setup","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Packages needed here.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"using Sinograms: fbp\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The following line is helpful when running this example.jl file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/01-tomography/#Tomography","page":"Tomography overview","title":"Tomography","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans). (See SPECTrecon.jl for a Julia package related to SPECT imaging.)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In an X-ray CT imaging system, X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.","category":"page"},{"location":"generated/examples/01-tomography/#Radon-transform","page":"Tomography overview","title":"Radon transform","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mathematical foundation for 2D X-ray CT imaging is the Radon transform, an integral transform that maps a 2D function f(xy) into the collection of line integrals through that function. Here we describe each line by its angle phi measured counter-clockwise from the y axis, and by the radial distance r of the line from the origin. The collection of integrals is called a sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = int_-infty^infty\nf(r cos phi - l sin phi\nr sin phi + l cos phi) mathrmd l","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p_1(rphi) = 2 sqrt1 - r^2 mathrm for r 1","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius r_0 centered at (x_0y_0) is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = r_0 p_1\nleft( fracr - (x_0 cos phi + y_0 sin phi)r_0 ϕ right)","category":"page"},{"location":"generated/examples/01-tomography/#Sinogram-example","page":"Tomography overview","title":"Sinogram example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is a display of that Radon transform for a disk of radius 3 centered at coordinate (51). Note that maximum value is approximately 6, the length of the longest chord through a disk of radius 3.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"nr = 128\ndr = 20 / nr\nr = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\nna = 130\nϕ = (0:(na-1))/na * π # angular samples\nproj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\nproj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\nsino = proj2.(r, ϕ', 5, 1, 3)\njimsino = (sino, title) -> jim(\n r, ϕ, sino; title, aspect_ratio=:none,\n xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n clim = (0, 6),\n)\njimsino(sino, \"Sinogram for one disk\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the (xy) plane traces out a distinct sinusoid in the sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mapping from the object f(xy) to data like the sinogram p(rphi) is called the \"forward problem.\"","category":"page"},{"location":"generated/examples/01-tomography/#Image-reconstruction","page":"Tomography overview","title":"Image reconstruction","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Image reconstruction is the process of solving the inverse problem of recovering an estimate hatf(xy) of the object f(xy) from a measured sinogram, i.e., from (usually noisy) samples of p(rphi).","category":"page"},{"location":"generated/examples/01-tomography/#FBP","page":"Tomography overview","title":"FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"A simple image reconstruction method is called the \"filtered back-projection\" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter, whose frequency response is roughly nu, where nu is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.","category":"page"},{"location":"generated/examples/01-tomography/#FBP-example","page":"Tomography overview","title":"FBP example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is an illustration of using the fbp method in this package to perform image reconstruction from the preceding sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"image = fbp(sino; dr)\n(nx,ny) = size(image)\ndx = dr # default\nx = ((-(nx-1)/2):((nx-1)/2)) * dr\ny = x\njim(x, y, image, \"FBP image\",\n xtick=[-10, 0, 2, 5, 8, 10],\n ytick=[-10, 0, -2, 1, 4, 10],\n)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The FBP reconstructed image looks pretty similar to a disk of radius 3 centered at (51) as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in r and phi.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This is example is what is called 2D parallel-beam tomography, because for the angles phi are equally spaced and for each angle the radial samples r are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.","category":"page"},{"location":"generated/examples/01-tomography/#Noise-effects-on-FBP","page":"Tomography overview","title":"Noise effects on FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Simulating the effects of measurement noise in sinogram leads to even worse FBP results.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"First note that a practical imaging system has a finite field of view (FOV):","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"rmax = maximum(r)\nfovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\njim(x, y, fovmask, \"FOV mask\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Add noise to the original sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_sinogram = sino + 0.1 * randn(size(sino))\njimsino(noisy_sinogram, \"Noisy sinogram\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Apply FBP to the noisy sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_fbp_image = fbp(noisy_sinogram; dr)\nnoisy_fbp_image .*= fovmask # apply FOV mask\njim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper.","category":"page"},{"location":"generated/examples/01-tomography/#Reproducibility","page":"Tomography overview","title":"Reproducibility","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated with the following version of Julia:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"And with the following package versions","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"import Pkg; Pkg.status()","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated using Literate.jl.","category":"page"}]
+}
diff --git a/v0.2.0/siteinfo.js b/v0.2.0/siteinfo.js
new file mode 100644
index 0000000..057c824
--- /dev/null
+++ b/v0.2.0/siteinfo.js
@@ -0,0 +1 @@
+var DOCUMENTER_CURRENT_VERSION = "v0.2.0";
diff --git a/v0.3 b/v0.3
new file mode 120000
index 0000000..d4dfa56
--- /dev/null
+++ b/v0.3
@@ -0,0 +1 @@
+v0.3.0
\ No newline at end of file
diff --git a/v0.3.0/assets/documenter.js b/v0.3.0/assets/documenter.js
new file mode 100644
index 0000000..6adfbbb
--- /dev/null
+++ b/v0.3.0/assets/documenter.js
@@ -0,0 +1,331 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min',
+ 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min',
+ 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min',
+ 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min',
+ 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min',
+ 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min',
+ 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min',
+ },
+ shim: {
+ "highlight-julia": {
+ "deps": [
+ "highlight"
+ ]
+ },
+ "katex-auto-render": {
+ "deps": [
+ "katex"
+ ]
+ },
+ "headroom-jquery": {
+ "deps": [
+ "jquery",
+ "headroom"
+ ]
+ },
+ "highlight-julia-repl": {
+ "deps": [
+ "highlight"
+ ]
+ }
+}
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) {
+$(document).ready(function() {
+ renderMathInElement(
+ document.body,
+ {
+ "delimiters": [
+ {
+ "left": "$",
+ "right": "$",
+ "display": false
+ },
+ {
+ "left": "$$",
+ "right": "$$",
+ "display": true
+ },
+ {
+ "left": "\\[",
+ "right": "\\]",
+ "display": true
+ }
+ ]
+}
+
+ );
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) {
+$(document).ready(function() {
+ hljs.highlightAll();
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require([], function() {
+function addCopyButtonCallbacks() {
+ for (const el of document.getElementsByTagName("pre")) {
+ const button = document.createElement("button");
+ button.classList.add("copy-button", "fas", "fa-copy");
+ el.appendChild(button);
+
+ const success = function () {
+ button.classList.add("success", "fa-check");
+ button.classList.remove("fa-copy");
+ };
+
+ const failure = function () {
+ button.classList.add("error", "fa-times");
+ button.classList.remove("fa-copy");
+ };
+
+ button.addEventListener("click", function () {
+ copyToClipboard(el.innerText).then(success, failure);
+
+ setTimeout(function () {
+ button.classList.add("fa-copy");
+ button.classList.remove("success", "fa-check", "fa-times");
+ }, 5000);
+ });
+ }
+}
+
+function copyToClipboard(text) {
+ // clipboard API is only available in secure contexts
+ if (window.navigator && window.navigator.clipboard) {
+ return window.navigator.clipboard.writeText(text);
+ } else {
+ return new Promise(function (resolve, reject) {
+ try {
+ const el = document.createElement("textarea");
+ el.textContent = text;
+ el.style.position = "fixed";
+ el.style.opacity = 0;
+ document.body.appendChild(el);
+ el.select();
+ document.execCommand("copy");
+
+ resolve();
+ } catch (err) {
+ reject(err);
+ } finally {
+ document.body.removeChild(el);
+ }
+ });
+ }
+}
+
+if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks);
+} else {
+ addCopyButtonCallbacks();
+}
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
+
+// Manages the top navigation bar (hides it when the user starts scrolling down on the
+// mobile).
+window.Headroom = Headroom; // work around buggy module loading?
+$(document).ready(function() {
+ $('#documenter .docs-navbar').headroom({
+ "tolerance": {"up": 10, "down": 10},
+ });
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Modal settings dialog
+$(document).ready(function() {
+ var settings = $('#documenter-settings');
+ $('#documenter-settings-button').click(function(){
+ settings.toggleClass('is-active');
+ });
+ // Close the dialog if X is clicked
+ $('#documenter-settings button.delete').click(function(){
+ settings.removeClass('is-active');
+ });
+ // Close dialog if ESC is pressed
+ $(document).keyup(function(e) {
+ if (e.keyCode == 27) settings.removeClass('is-active');
+ });
+});
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Manages the showing and hiding of the sidebar.
+$(document).ready(function() {
+ var sidebar = $("#documenter > .docs-sidebar");
+ var sidebar_button = $("#documenter-sidebar-button")
+ sidebar_button.click(function(ev) {
+ ev.preventDefault();
+ sidebar.toggleClass('visible');
+ if (sidebar.hasClass('visible')) {
+ // Makes sure that the current menu item is visible in the sidebar.
+ $("#documenter .docs-menu a.is-active").focus();
+ }
+ });
+ $("#documenter > .docs-main").bind('click', function(ev) {
+ if ($(ev.target).is(sidebar_button)) {
+ return;
+ }
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ });
+})
+
+// Resizes the package name / sitename in the sidebar if it is too wide.
+// Inspired by: https://github.com/davatron5000/FitText.js
+$(document).ready(function() {
+ e = $("#documenter .docs-autofit");
+ function resize() {
+ var L = parseInt(e.css('max-width'), 10);
+ var L0 = e.width();
+ if(L0 > L) {
+ var h0 = parseInt(e.css('font-size'), 10);
+ e.css('font-size', L * h0 / L0);
+ // TODO: make sure it survives resizes?
+ }
+ }
+ // call once and then register events
+ resize();
+ $(window).resize(resize);
+ $(window).on('orientationchange', resize);
+});
+
+// Scroll the navigation bar to the currently selected menu item
+$(document).ready(function() {
+ var sidebar = $("#documenter .docs-menu").get(0);
+ var active = $("#documenter .docs-menu .is-active").get(0);
+ if(typeof active !== 'undefined') {
+ sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+function set_theme(theme) {
+ var active = null;
+ var disabled = [];
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ if(themename === null) continue; // ignore non-theme stylesheets
+ // Find the active theme
+ if(themename === theme) active = ss;
+ else disabled.push(ss);
+ }
+ if(active !== null) {
+ active.disabled = false;
+ if(active.ownerNode.getAttribute("data-theme-primary") === null) {
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ } else {
+ document.getElementsByTagName('html')[0].className = "";
+ }
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+
+ // Store the theme in localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ window.localStorage.setItem("documenter-theme", theme);
+ } else {
+ console.error("Browser does not support window.localStorage");
+ }
+}
+
+// Theme picker setup
+$(document).ready(function() {
+ // onchange callback
+ $('#documenter-themepicker').change(function themepick_callback(ev){
+ var themename = $('#documenter-themepicker option:selected').attr('value');
+ set_theme(themename);
+ });
+
+ // Make sure that the themepicker displays the correct theme when the theme is retrieved
+ // from localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ var theme = window.localStorage.getItem("documenter-theme");
+ if(theme !== null) {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = (e.value === theme);
+ })
+ } else {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = $("html").hasClass(`theme--${e.value}`);
+ })
+ }
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// update the version selector with info from the siteinfo.js and ../versions.js files
+$(document).ready(function() {
+ // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the
+ // siteinfo.js file, we just return immediately and not display the version selector.
+ if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) {
+ return;
+ }
+
+ var version_selector = $("#documenter .docs-version-selector");
+ var version_selector_select = $("#documenter .docs-version-selector select");
+
+ version_selector_select.change(function(x) {
+ target_href = version_selector_select.children("option:selected").get(0).value;
+ window.location.href = target_href;
+ });
+
+ // add the current version to the selector based on siteinfo.js, but only if the selector is empty
+ if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
+ var option = $("" + DOCUMENTER_CURRENT_VERSION + " ");
+ version_selector_select.append(option);
+ }
+
+ if (typeof DOC_VERSIONS !== 'undefined') {
+ var existing_versions = version_selector_select.children("option");
+ var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
+ DOC_VERSIONS.forEach(function(each) {
+ var version_url = documenterBaseURL + "/../" + each;
+ var existing_id = $.inArray(each, existing_versions_texts);
+ // if not already in the version selector, add it as a new option,
+ // otherwise update the old option with the URL and enable it
+ if (existing_id == -1) {
+ var option = $("" + each + " ");
+ version_selector_select.append(option);
+ } else {
+ var option = existing_versions[existing_id];
+ option.value = version_url;
+ option.disabled = false;
+ }
+ });
+ }
+
+ // only show the version selector if the selector has been populated
+ if (version_selector_select.children("option").length > 0) {
+ version_selector.toggleClass("visible");
+ }
+})
+
+})
diff --git a/v0.3.0/assets/logo.jl b/v0.3.0/assets/logo.jl
new file mode 100644
index 0000000..5aa53f6
--- /dev/null
+++ b/v0.3.0/assets/logo.jl
@@ -0,0 +1,29 @@
+using MIRT: sino_geom, ellipse_sino
+using MIRTjim: jim
+using Colors: RGB
+using FileIO: save
+
+const julia_purple = (0.584, 0.345, 0.698)
+const julia_green = (0.22, 0.596, 0.149)
+const julia_red = (0.796, 0.235, 0.2)
+colors = [ julia_purple, julia_green, julia_red, ] # from Luxor.jl
+
+sg = sino_geom(:par, nb=200, na=181, orbit=181)
+
+pars = [
+ [70 0 10 10 0 1];
+ [30 30 10 10 0 1];
+ [0 -60 10 10 0 1];
+]
+
+sino = zeros(sg.dim..., size(pars,1))
+logo = zeros(RGB{Float32}, sg.dim...)
+for ip = 1:3
+ sino[:,:,ip] = ellipse_sino(sg, pars[ip:ip,:])
+ c = RGB{Float32}(colors[ip]...)
+ logo[sino[:,:,ip] .> 0] .= c
+end
+sino = round.(Int, 255*sino/maximum(sino))
+jim(sg.r, sg.ad, sino)
+
+#save("logo.png", logo')
diff --git a/v0.3.0/assets/logo.png b/v0.3.0/assets/logo.png
new file mode 100644
index 0000000..6934bc4
Binary files /dev/null and b/v0.3.0/assets/logo.png differ
diff --git a/v0.3.0/assets/search.js b/v0.3.0/assets/search.js
new file mode 100644
index 0000000..c133f74
--- /dev/null
+++ b/v0.3.0/assets/search.js
@@ -0,0 +1,267 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min',
+ 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ }
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'lunr', 'lodash'], function($, lunr, _) {
+
+$(document).ready(function() {
+ // parseUri 1.2.2
+ // (c) Steven Levithan
+ // MIT License
+ function parseUri (str) {
+ var o = parseUri.options,
+ m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
+ uri = {},
+ i = 14;
+
+ while (i--) uri[o.key[i]] = m[i] || "";
+
+ uri[o.q.name] = {};
+ uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
+ if ($1) uri[o.q.name][$1] = $2;
+ });
+
+ return uri;
+ };
+ parseUri.options = {
+ strictMode: false,
+ key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
+ q: {
+ name: "queryKey",
+ parser: /(?:^|&)([^&=]*)=?([^&]*)/g
+ },
+ parser: {
+ strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+ loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
+ }
+ };
+
+ $("#search-form").submit(function(e) {
+ e.preventDefault()
+ })
+
+ // list below is the lunr 2.1.3 list minus the intersect with names(Base)
+ // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with)
+ // ideally we'd just filter the original list but it's not available as a variable
+ lunr.stopWordFilter = lunr.generateStopWordFilter([
+ 'a',
+ 'able',
+ 'about',
+ 'across',
+ 'after',
+ 'almost',
+ 'also',
+ 'am',
+ 'among',
+ 'an',
+ 'and',
+ 'are',
+ 'as',
+ 'at',
+ 'be',
+ 'because',
+ 'been',
+ 'but',
+ 'by',
+ 'can',
+ 'cannot',
+ 'could',
+ 'dear',
+ 'did',
+ 'does',
+ 'either',
+ 'ever',
+ 'every',
+ 'from',
+ 'got',
+ 'had',
+ 'has',
+ 'have',
+ 'he',
+ 'her',
+ 'hers',
+ 'him',
+ 'his',
+ 'how',
+ 'however',
+ 'i',
+ 'if',
+ 'into',
+ 'it',
+ 'its',
+ 'just',
+ 'least',
+ 'like',
+ 'likely',
+ 'may',
+ 'me',
+ 'might',
+ 'most',
+ 'must',
+ 'my',
+ 'neither',
+ 'no',
+ 'nor',
+ 'not',
+ 'of',
+ 'off',
+ 'often',
+ 'on',
+ 'or',
+ 'other',
+ 'our',
+ 'own',
+ 'rather',
+ 'said',
+ 'say',
+ 'says',
+ 'she',
+ 'should',
+ 'since',
+ 'so',
+ 'some',
+ 'than',
+ 'that',
+ 'the',
+ 'their',
+ 'them',
+ 'then',
+ 'there',
+ 'these',
+ 'they',
+ 'this',
+ 'tis',
+ 'to',
+ 'too',
+ 'twas',
+ 'us',
+ 'wants',
+ 'was',
+ 'we',
+ 'were',
+ 'what',
+ 'when',
+ 'who',
+ 'whom',
+ 'why',
+ 'will',
+ 'would',
+ 'yet',
+ 'you',
+ 'your'
+ ])
+
+ // add . as a separator, because otherwise "title": "Documenter.Anchors.add!"
+ // would not find anything if searching for "add!", only for the entire qualification
+ lunr.tokenizer.separator = /[\s\-\.]+/
+
+ // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names
+ lunr.trimmer = function (token) {
+ return token.update(function (s) {
+ return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '')
+ })
+ }
+
+ lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter')
+ lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer')
+
+ var index = lunr(function () {
+ this.ref('location')
+ this.field('title',{boost: 100})
+ this.field('text')
+ documenterSearchIndex['docs'].forEach(function(e) {
+ this.add(e)
+ }, this)
+ })
+ var store = {}
+
+ documenterSearchIndex['docs'].forEach(function(e) {
+ store[e.location] = {title: e.title, category: e.category, page: e.page}
+ })
+
+ $(function(){
+ searchresults = $('#documenter-search-results');
+ searchinfo = $('#documenter-search-info');
+ searchbox = $('#documenter-search-query');
+ searchform = $('.docs-search');
+ sidebar = $('.docs-sidebar');
+ function update_search(querystring) {
+ tokens = lunr.tokenizer(querystring)
+ results = index.query(function (q) {
+ tokens.forEach(function (t) {
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 100,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 10,
+ usePipeline: true,
+ editDistance: 2,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["text"],
+ boost: 1,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ })
+ })
+ searchinfo.text("Number of results: " + results.length)
+ searchresults.empty()
+ results.forEach(function(result) {
+ data = store[result.ref]
+ link = $(''+data.title+' ')
+ link.attr('href', documenterBaseURL+'/'+result.ref)
+ if (data.category != "page"){
+ cat = $('('+data.category+', '+data.page+') ')
+ } else {
+ cat = $('('+data.category+') ')
+ }
+ li = $('').append(link).append(" ").append(cat)
+ searchresults.append(li)
+ })
+ }
+
+ function update_search_box() {
+ querystring = searchbox.val()
+ update_search(querystring)
+ }
+
+ searchbox.keyup(_.debounce(update_search_box, 250))
+ searchbox.change(update_search_box)
+
+ // Disable enter-key form submission for the searchbox on the search page
+ // and just re-run search rather than refresh the whole page.
+ searchform.keypress(
+ function(event){
+ if (event.which == '13') {
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ update_search_box();
+ event.preventDefault();
+ }
+ }
+ );
+
+ search_query_uri = parseUri(window.location).queryKey["q"]
+ if(search_query_uri !== undefined) {
+ search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20'))
+ searchbox.val(search_query)
+ }
+ update_search_box();
+ })
+})
+
+})
diff --git a/v0.3.0/assets/themes/documenter-dark.css b/v0.3.0/assets/themes/documenter-dark.css
new file mode 100644
index 0000000..0bf1af7
--- /dev/null
+++ b/v0.3.0/assets/themes/documenter-dark.css
@@ -0,0 +1,7702 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child),
+html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before {
+ height: 2px;
+ width: 50%; }
+ html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ height: 50%;
+ width: 2px; }
+ html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdee0;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+html.theme--documenter-dark .image.is-square .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+html.theme--documenter-dark .image.is-1by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+html.theme--documenter-dark .image.is-5by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+html.theme--documenter-dark .image.is-4by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+html.theme--documenter-dark .image.is-3by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+html.theme--documenter-dark .image.is-5by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+html.theme--documenter-dark .image.is-16by9 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+html.theme--documenter-dark .image.is-2by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+html.theme--documenter-dark .image.is-3by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+html.theme--documenter-dark .image.is-4by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+html.theme--documenter-dark .image.is-3by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+html.theme--documenter-dark .image.is-2by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+html.theme--documenter-dark .image.is-3by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+html.theme--documenter-dark .image.is-9by16 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+html.theme--documenter-dark .image.is-1by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+html.theme--documenter-dark .image.is-1by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta,
+html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 0.4em;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 15px;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus,
+ html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus,
+ html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous,
+ html.theme--documenter-dark .is-focused.pagination-next,
+ html.theme--documenter-dark .is-focused.pagination-link,
+ html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta,
+ html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active,
+ html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active,
+ html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous,
+ html.theme--documenter-dark .is-active.pagination-next,
+ html.theme--documenter-dark .is-active.pagination-link,
+ html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta,
+ html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button {
+ outline: none; }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled],
+ html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled],
+ html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous,
+ fieldset[disabled] html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark fieldset[disabled] .pagination-next,
+ fieldset[disabled] html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark fieldset[disabled] .pagination-link,
+ fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta,
+ fieldset[disabled] html.theme--documenter-dark .file-name,
+ html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 15px !important; }
+
+.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ font-size: 0.85em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 15px !important; }
+ .is-size-7-mobile {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 15px !important; }
+ .is-size-7-tablet {
+ font-size: 0.85em !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 15px !important; }
+ .is-size-7-touch {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 15px !important; }
+ .is-size-7-desktop {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 15px !important; }
+ .is-size-7-widescreen {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 15px !important; }
+ .is-size-7-fullhd {
+ font-size: 0.85em !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: #ecf0f1 !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #cfd9db !important; }
+
+.has-background-light {
+ background-color: #ecf0f1 !important; }
+
+.has-text-dark {
+ color: #282f2f !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #111414 !important; }
+
+.has-background-dark {
+ background-color: #282f2f !important; }
+
+.has-text-primary {
+ color: #375a7f !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #28415b !important; }
+
+.has-background-primary {
+ background-color: #375a7f !important; }
+
+.has-text-link {
+ color: #1abc9c !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #148f77 !important; }
+
+.has-background-link {
+ background-color: #1abc9c !important; }
+
+.has-text-info {
+ color: #024c7d !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #012d4b !important; }
+
+.has-background-info {
+ background-color: #024c7d !important; }
+
+.has-text-success {
+ color: #008438 !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #005122 !important; }
+
+.has-background-success {
+ background-color: #008438 !important; }
+
+.has-text-warning {
+ color: #ad8100 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #7a5b00 !important; }
+
+.has-background-warning {
+ background-color: #ad8100 !important; }
+
+.has-text-danger {
+ color: #9e1b0d !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #6f1309 !important; }
+
+.has-background-danger {
+ background-color: #9e1b0d !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #282f2f !important; }
+
+.has-background-grey-darker {
+ background-color: #282f2f !important; }
+
+.has-text-grey-dark {
+ color: #343c3d !important; }
+
+.has-background-grey-dark {
+ background-color: #343c3d !important; }
+
+.has-text-grey {
+ color: #5e6d6f !important; }
+
+.has-background-grey {
+ background-color: #5e6d6f !important; }
+
+.has-text-grey-light {
+ color: #8c9b9d !important; }
+
+.has-background-grey-light {
+ background-color: #8c9b9d !important; }
+
+.has-text-grey-lighter {
+ color: #dbdee0 !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdee0 !important; }
+
+.has-text-white-ter {
+ color: #ecf0f1 !important; }
+
+.has-background-white-ter {
+ background-color: #ecf0f1 !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+html.theme--documenter-dark {
+ /* This file contain the overall layout.
+ *
+ * The main container is that is identified by id #documenter.
+ */
+ /*!
+ Theme: a11y-dark
+ Author: @ericwbailey
+ Maintainer: @ericwbailey
+
+ Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
+*/
+ /* Comment */
+ /* Red */
+ /* Orange */
+ /* Yellow */
+ /* Green */
+ /* Blue */
+ /* Purple */ }
+ html.theme--documenter-dark html {
+ background-color: #1f2424;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark article,
+ html.theme--documenter-dark aside,
+ html.theme--documenter-dark figure,
+ html.theme--documenter-dark footer,
+ html.theme--documenter-dark header,
+ html.theme--documenter-dark hgroup,
+ html.theme--documenter-dark section {
+ display: block; }
+ html.theme--documenter-dark body,
+ html.theme--documenter-dark button,
+ html.theme--documenter-dark input,
+ html.theme--documenter-dark select,
+ html.theme--documenter-dark textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+ html.theme--documenter-dark code,
+ html.theme--documenter-dark pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+ html.theme--documenter-dark body {
+ color: #fff;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+ html.theme--documenter-dark a {
+ color: #1abc9c;
+ cursor: pointer;
+ text-decoration: none; }
+ html.theme--documenter-dark a strong {
+ color: currentColor; }
+ html.theme--documenter-dark a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark code {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: #ececec;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+ html.theme--documenter-dark hr {
+ background-color: #282f2f;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+ html.theme--documenter-dark img {
+ height: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark input[type="checkbox"],
+ html.theme--documenter-dark input[type="radio"] {
+ vertical-align: baseline; }
+ html.theme--documenter-dark small {
+ font-size: 0.875em; }
+ html.theme--documenter-dark span {
+ font-style: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark strong {
+ color: #f2f2f2;
+ font-weight: 700; }
+ html.theme--documenter-dark fieldset {
+ border: none; }
+ html.theme--documenter-dark pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: #282f2f;
+ color: #fff;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+ html.theme--documenter-dark table td,
+ html.theme--documenter-dark table th {
+ vertical-align: top; }
+ html.theme--documenter-dark table td:not([align]),
+ html.theme--documenter-dark table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .box {
+ background-color: #343c3d;
+ border-radius: 8px;
+ box-shadow: none;
+ color: #fff;
+ display: block;
+ padding: 1.25rem; }
+ html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark .button {
+ background-color: #282f2f;
+ border-color: #4c5759;
+ border-width: 1px;
+ color: #375a7f;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ html.theme--documenter-dark .button strong {
+ color: inherit; }
+ html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered {
+ border-color: #8c9b9d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused {
+ border-color: #8c9b9d;
+ color: #17a689; }
+ html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active {
+ border-color: #343c3d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active {
+ background-color: #1d2122;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused {
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused {
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered {
+ background-color: #dde4e6; }
+ html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .button.is-normal {
+ font-size: 15px; }
+ html.theme--documenter-dark .button.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .button.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button {
+ background-color: #8c9b9d;
+ border-color: #dbdee0;
+ box-shadow: none;
+ opacity: 0.5; }
+ html.theme--documenter-dark .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ html.theme--documenter-dark .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ html.theme--documenter-dark .button.is-static {
+ background-color: #282f2f;
+ border-color: #5e6d6f;
+ color: #dbdee0;
+ box-shadow: none;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .buttons .button {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ html.theme--documenter-dark .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ html.theme--documenter-dark .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .buttons.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .buttons.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .container {
+ max-width: 992px; }
+ html.theme--documenter-dark .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ html.theme--documenter-dark .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ html.theme--documenter-dark .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .container {
+ max-width: 1344px; } }
+ html.theme--documenter-dark .content li + li {
+ margin-top: 0.25em; }
+ html.theme--documenter-dark .content p:not(:last-child),
+ html.theme--documenter-dark .content dl:not(:last-child),
+ html.theme--documenter-dark .content ol:not(:last-child),
+ html.theme--documenter-dark .content ul:not(:last-child),
+ html.theme--documenter-dark .content blockquote:not(:last-child),
+ html.theme--documenter-dark .content pre:not(:last-child),
+ html.theme--documenter-dark .content table:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content h1,
+ html.theme--documenter-dark .content h2,
+ html.theme--documenter-dark .content h3,
+ html.theme--documenter-dark .content h4,
+ html.theme--documenter-dark .content h5,
+ html.theme--documenter-dark .content h6 {
+ color: #f2f2f2;
+ font-weight: 600;
+ line-height: 1.125; }
+ html.theme--documenter-dark .content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .content h1:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ html.theme--documenter-dark .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+ html.theme--documenter-dark .content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ html.theme--documenter-dark .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+ html.theme--documenter-dark .content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+ html.theme--documenter-dark .content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+ html.theme--documenter-dark .content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content blockquote {
+ background-color: #282f2f;
+ border-left: 5px solid #5e6d6f;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ol:not([type]) {
+ list-style-type: decimal; }
+ html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ html.theme--documenter-dark .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ html.theme--documenter-dark .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+ html.theme--documenter-dark .content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ html.theme--documenter-dark .content ul ul ul {
+ list-style-type: square; }
+ html.theme--documenter-dark .content dd {
+ margin-left: 2em; }
+ html.theme--documenter-dark .content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ html.theme--documenter-dark .content figure:not(:first-child) {
+ margin-top: 2em; }
+ html.theme--documenter-dark .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ html.theme--documenter-dark .content figure img {
+ display: inline-block; }
+ html.theme--documenter-dark .content figure figcaption {
+ font-style: italic; }
+ html.theme--documenter-dark .content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark .content sup,
+ html.theme--documenter-dark .content sub {
+ font-size: 75%; }
+ html.theme--documenter-dark .content table {
+ width: 100%; }
+ html.theme--documenter-dark .content table td,
+ html.theme--documenter-dark .content table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .content table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .content table thead td,
+ html.theme--documenter-dark .content table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tfoot td,
+ html.theme--documenter-dark .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tbody tr:last-child td,
+ html.theme--documenter-dark .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .content .tabs li + li {
+ margin-top: 0; }
+ html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .content.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .content.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ html.theme--documenter-dark .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ html.theme--documenter-dark .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+ html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+ html.theme--documenter-dark .image.is-square .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ html.theme--documenter-dark .image.is-1by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ html.theme--documenter-dark .image.is-5by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ html.theme--documenter-dark .image.is-4by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ html.theme--documenter-dark .image.is-3by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ html.theme--documenter-dark .image.is-5by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ html.theme--documenter-dark .image.is-16by9 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ html.theme--documenter-dark .image.is-2by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ html.theme--documenter-dark .image.is-3by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ html.theme--documenter-dark .image.is-4by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ html.theme--documenter-dark .image.is-3by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ html.theme--documenter-dark .image.is-2by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ html.theme--documenter-dark .image.is-3by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ html.theme--documenter-dark .image.is-9by16 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ html.theme--documenter-dark .image.is-1by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ html.theme--documenter-dark .image.is-1by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+ html.theme--documenter-dark .notification {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification strong {
+ color: currentColor; }
+ html.theme--documenter-dark .notification code,
+ html.theme--documenter-dark .notification pre {
+ background: white; }
+ html.theme--documenter-dark .notification pre code {
+ background: transparent; }
+ html.theme--documenter-dark .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ html.theme--documenter-dark .notification .title,
+ html.theme--documenter-dark .notification .subtitle,
+ html.theme--documenter-dark .notification .content {
+ color: currentColor; }
+ html.theme--documenter-dark .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .notification.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 15px;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ html.theme--documenter-dark .progress::-webkit-progress-bar {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .progress::-webkit-progress-value {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-moz-progress-bar {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-ms-fill {
+ background-color: #dbdee0;
+ border: none; }
+ html.theme--documenter-dark .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-ms-fill {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-light::-webkit-progress-value {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-moz-progress-bar {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-ms-fill {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-link::-webkit-progress-value {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-moz-progress-bar {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-ms-fill {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-info::-webkit-progress-value {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-moz-progress-bar {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-ms-fill {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-success::-webkit-progress-value {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-moz-progress-bar {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-ms-fill {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-warning::-webkit-progress-value {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-moz-progress-bar {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-ms-fill {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-danger::-webkit-progress-value {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-moz-progress-bar {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-ms-fill {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #5e6d6f;
+ background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.85em; }
+ html.theme--documenter-dark .progress.is-medium {
+ height: 1.25rem; }
+ html.theme--documenter-dark .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+ html.theme--documenter-dark .table {
+ background-color: #343c3d;
+ color: #fff; }
+ html.theme--documenter-dark .table td,
+ html.theme--documenter-dark .table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .table td.is-white,
+ html.theme--documenter-dark .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .table td.is-black,
+ html.theme--documenter-dark .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .table td.is-light,
+ html.theme--documenter-dark .table th.is-light {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .table td.is-dark,
+ html.theme--documenter-dark .table th.is-dark {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .table td.is-primary,
+ html.theme--documenter-dark .table th.is-primary {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-link,
+ html.theme--documenter-dark .table th.is-link {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-info,
+ html.theme--documenter-dark .table th.is-info {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-success,
+ html.theme--documenter-dark .table th.is-success {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-warning,
+ html.theme--documenter-dark .table th.is-warning {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-danger,
+ html.theme--documenter-dark .table th.is-danger {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-narrow,
+ html.theme--documenter-dark .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ html.theme--documenter-dark .table td.is-selected,
+ html.theme--documenter-dark .table th.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-selected a,
+ html.theme--documenter-dark .table td.is-selected strong,
+ html.theme--documenter-dark .table th.is-selected a,
+ html.theme--documenter-dark .table th.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .table tr.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table tr.is-selected a,
+ html.theme--documenter-dark .table tr.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table tr.is-selected td,
+ html.theme--documenter-dark .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ html.theme--documenter-dark .table thead {
+ background-color: transparent; }
+ html.theme--documenter-dark .table thead td,
+ html.theme--documenter-dark .table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tfoot {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tfoot td,
+ html.theme--documenter-dark .table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tbody {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tbody tr:last-child td,
+ html.theme--documenter-dark .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .table.is-bordered td,
+ html.theme--documenter-dark .table.is-bordered th {
+ border-width: 1px; }
+ html.theme--documenter-dark .table.is-bordered tr:last-child td,
+ html.theme--documenter-dark .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .table.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: #2d3435; }
+ html.theme--documenter-dark .table.is-narrow td,
+ html.theme--documenter-dark .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+ html.theme--documenter-dark .tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .tags:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tags.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ html.theme--documenter-dark .tags.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ color: #fff;
+ display: inline-flex;
+ font-size: 0.85em;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #111414; }
+ html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+ html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+ html.theme--documenter-dark .title,
+ html.theme--documenter-dark .subtitle {
+ word-break: break-word; }
+ html.theme--documenter-dark .title em,
+ html.theme--documenter-dark .title span,
+ html.theme--documenter-dark .subtitle em,
+ html.theme--documenter-dark .subtitle span {
+ font-weight: inherit; }
+ html.theme--documenter-dark .title sub,
+ html.theme--documenter-dark .subtitle sub {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title sup,
+ html.theme--documenter-dark .subtitle sup {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink,
+ html.theme--documenter-dark .subtitle .tag,
+ html.theme--documenter-dark .subtitle .content kbd,
+ html.theme--documenter-dark .content .subtitle kbd,
+ html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+ html.theme--documenter-dark .title {
+ color: #fff;
+ font-size: 2rem;
+ font-weight: 500;
+ line-height: 1.125; }
+ html.theme--documenter-dark .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark .title + .highlight {
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .title.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .title.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .title.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .title.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .title.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .title.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .title.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .subtitle {
+ color: #8c9b9d;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ html.theme--documenter-dark .subtitle strong {
+ color: #8c9b9d;
+ font-weight: 600; }
+ html.theme--documenter-dark .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .subtitle.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .subtitle.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .subtitle.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .subtitle.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .subtitle.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .subtitle.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .subtitle.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ html.theme--documenter-dark .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark .number {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+ html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #1f2424;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ color: #dbdee0; }
+ html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #8c9b9d;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #008438; }
+ html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+ html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+ html.theme--documenter-dark .textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ html.theme--documenter-dark .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ html.theme--documenter-dark .textarea[rows] {
+ height: initial; }
+ html.theme--documenter-dark .textarea.has-fixed-size {
+ resize: none; }
+ html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input {
+ cursor: pointer; }
+ html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover {
+ color: #8c9b9d; }
+ html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox {
+ color: white;
+ cursor: not-allowed; }
+ html.theme--documenter-dark .radio + .radio {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .select:not(.is-multiple) {
+ height: 2.25em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #1abc9c;
+ right: 1.125em;
+ z-index: 4; }
+ html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ html.theme--documenter-dark .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ html.theme--documenter-dark .select select::-ms-expand {
+ display: none; }
+ html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ html.theme--documenter-dark .select select[multiple] option {
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select.is-white:not(:hover)::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered {
+ border-color: black; }
+ html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .select.is-light:not(:hover)::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered {
+ border-color: #dde4e6; }
+ html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered {
+ border-color: #1d2122; }
+ html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #2f4d6d; }
+ html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .select.is-link:not(:hover)::after {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered {
+ border-color: #17a689; }
+ html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select.is-info:not(:hover)::after {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered {
+ border-color: #023d64; }
+ html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .select.is-success:not(:hover)::after {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered {
+ border-color: #006b2d; }
+ html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .select.is-warning:not(:hover)::after {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered {
+ border-color: #946e00; }
+ html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .select.is-danger:not(:hover)::after {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered {
+ border-color: #86170b; }
+ html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .select.is-disabled::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-fullwidth select {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ html.theme--documenter-dark .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-light .file-cta {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25);
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25);
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link .file-cta {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info .file-cta {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success .file-cta {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning .file-cta {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger .file-cta {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .file.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-cta {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-name {
+ display: none; }
+ html.theme--documenter-dark .file.is-boxed .file-label {
+ flex-direction: column; }
+ html.theme--documenter-dark .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ html.theme--documenter-dark .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-cta {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 0.4em 0.4em;
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .file.is-fullwidth .file-label {
+ width: 100%; }
+ html.theme--documenter-dark .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ html.theme--documenter-dark .file.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .file.is-right .file-cta {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .file.is-right .file-name {
+ border-radius: 0.4em 0 0 0.4em;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+ html.theme--documenter-dark .file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ html.theme--documenter-dark .file-label:hover .file-cta {
+ background-color: #e5eaec;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:hover .file-name {
+ border-color: #596668; }
+ html.theme--documenter-dark .file-label:active .file-cta {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:active .file-name {
+ border-color: #535f61; }
+ html.theme--documenter-dark .file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ html.theme--documenter-dark .file-cta,
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .file-cta {
+ background-color: #ecf0f1;
+ color: #343c3d; }
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+ html.theme--documenter-dark .file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ html.theme--documenter-dark .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .label {
+ color: #282f2f;
+ display: block;
+ font-size: 15px;
+ font-weight: 700; }
+ html.theme--documenter-dark .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .label.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .label.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .help {
+ display: block;
+ font-size: 0.85em;
+ margin-top: 0.25rem; }
+ html.theme--documenter-dark .help.is-white {
+ color: white; }
+ html.theme--documenter-dark .help.is-black {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .help.is-light {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help {
+ color: #282f2f; }
+ html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink {
+ color: #375a7f; }
+ html.theme--documenter-dark .help.is-link {
+ color: #1abc9c; }
+ html.theme--documenter-dark .help.is-info {
+ color: #024c7d; }
+ html.theme--documenter-dark .help.is-success {
+ color: #008438; }
+ html.theme--documenter-dark .help.is-warning {
+ color: #ad8100; }
+ html.theme--documenter-dark .help.is-danger {
+ color: #9e1b0d; }
+ html.theme--documenter-dark .field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ html.theme--documenter-dark .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.is-grouped > .control {
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field.is-horizontal {
+ display: flex; } }
+ html.theme--documenter-dark .field-label .label {
+ font-size: inherit; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .field-label {
+ margin-bottom: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.85em;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-normal {
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+ html.theme--documenter-dark .field-body .field .field {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body .field {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .field-body > .field {
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ html.theme--documenter-dark .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 15px;
+ position: relative;
+ text-align: left; }
+ html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon {
+ color: #5e6d6f; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon {
+ color: #dbdee0;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-left .icon.is-left {
+ left: 0; }
+ html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-right .icon.is-right {
+ right: 0; }
+ html.theme--documenter-dark .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb {
+ font-size: 15px;
+ white-space: nowrap; }
+ html.theme--documenter-dark .breadcrumb a {
+ align-items: center;
+ color: #1abc9c;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ html.theme--documenter-dark .breadcrumb a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .breadcrumb li:first-child a {
+ padding-left: 0; }
+ html.theme--documenter-dark .breadcrumb li.is-active a {
+ color: #f2f2f2;
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb li + li::before {
+ color: #8c9b9d;
+ content: "\0002f"; }
+ html.theme--documenter-dark .breadcrumb ul,
+ html.theme--documenter-dark .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .breadcrumb.is-centered ol,
+ html.theme--documenter-dark .breadcrumb.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .breadcrumb.is-right ol,
+ html.theme--documenter-dark .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+ html.theme--documenter-dark .card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #fff;
+ max-width: 100%;
+ position: relative; }
+ html.theme--documenter-dark .card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+ html.theme--documenter-dark .card-header-title {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-header-title.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-image {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+ html.theme--documenter-dark .card-footer {
+ background-color: transparent;
+ border-top: 1px solid #5e6d6f;
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-footer-item:not(:last-child) {
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ html.theme--documenter-dark .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+ html.theme--documenter-dark .dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .dropdown-content {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .dropdown-item {
+ color: #fff;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+ html.theme--documenter-dark a.dropdown-item,
+ html.theme--documenter-dark button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ html.theme--documenter-dark a.dropdown-item:hover,
+ html.theme--documenter-dark button.dropdown-item:hover {
+ background-color: #282f2f;
+ color: #0a0a0a; }
+ html.theme--documenter-dark a.dropdown-item.is-active,
+ html.theme--documenter-dark button.dropdown-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .dropdown-divider {
+ background-color: #5e6d6f;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+ html.theme--documenter-dark .level {
+ align-items: center;
+ justify-content: space-between; }
+ html.theme--documenter-dark .level code {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .level img {
+ display: inline-block;
+ vertical-align: top; }
+ html.theme--documenter-dark .level.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left,
+ html.theme--documenter-dark .level.is-mobile .level-right {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level {
+ display: flex; }
+ html.theme--documenter-dark .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+ html.theme--documenter-dark .level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ html.theme--documenter-dark .level-item .title,
+ html.theme--documenter-dark .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ html.theme--documenter-dark .level-left,
+ html.theme--documenter-dark .level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .level-left .level-item.is-flexible,
+ html.theme--documenter-dark .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left .level-item:not(:last-child),
+ html.theme--documenter-dark .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left {
+ display: flex; } }
+ html.theme--documenter-dark .level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-right {
+ display: flex; } }
+ html.theme--documenter-dark .list {
+ background-color: white;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .list-item:not(a) {
+ color: #fff; }
+ html.theme--documenter-dark .list-item:first-child {
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:last-child {
+ border-bottom-left-radius: 0.4em;
+ border-bottom-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:not(:last-child) {
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .list-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark a.list-item {
+ background-color: #282f2f;
+ cursor: pointer; }
+ html.theme--documenter-dark .media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ html.theme--documenter-dark .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .media .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ html.theme--documenter-dark .media .media .content:not(:last-child),
+ html.theme--documenter-dark .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .media .media .media {
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .media .media .media + .media {
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark .media + .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ html.theme--documenter-dark .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+ html.theme--documenter-dark .media-left,
+ html.theme--documenter-dark .media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .media-left {
+ margin-right: 1rem; }
+ html.theme--documenter-dark .media-right {
+ margin-left: 1rem; }
+ html.theme--documenter-dark .media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .media-content {
+ overflow-x: auto; } }
+ html.theme--documenter-dark .menu {
+ font-size: 15px; }
+ html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .menu.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .menu.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .menu-list {
+ line-height: 1.25; }
+ html.theme--documenter-dark .menu-list a {
+ border-radius: 3px;
+ color: #fff;
+ display: block;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .menu-list a:hover {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .menu-list a.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .menu-list li ul {
+ border-left: 1px solid #5e6d6f;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .menu-label {
+ color: white;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .message {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .message strong {
+ color: currentColor; }
+ html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .message.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .message.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .message.is-white {
+ background-color: white; }
+ html.theme--documenter-dark .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ html.theme--documenter-dark .message.is-black {
+ background-color: #fafafa; }
+ html.theme--documenter-dark .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ html.theme--documenter-dark .message.is-light {
+ background-color: #f9fafb; }
+ html.theme--documenter-dark .message.is-light .message-header {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .message.is-light .message-body {
+ border-color: #ecf0f1;
+ color: #505050; }
+ html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message {
+ background-color: #f9fafa; }
+ html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body {
+ border-color: #282f2f;
+ color: #212526; }
+ html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink {
+ background-color: #f8fafc; }
+ html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #375a7f;
+ color: #2b4159; }
+ html.theme--documenter-dark .message.is-link {
+ background-color: #f6fefc; }
+ html.theme--documenter-dark .message.is-link .message-header {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-link .message-body {
+ border-color: #1abc9c;
+ color: #0b2f28; }
+ html.theme--documenter-dark .message.is-info {
+ background-color: #f5fbff; }
+ html.theme--documenter-dark .message.is-info .message-header {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-info .message-body {
+ border-color: #024c7d;
+ color: #033659; }
+ html.theme--documenter-dark .message.is-success {
+ background-color: #f5fff9; }
+ html.theme--documenter-dark .message.is-success .message-header {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-success .message-body {
+ border-color: #008438;
+ color: #023518; }
+ html.theme--documenter-dark .message.is-warning {
+ background-color: #fffcf5; }
+ html.theme--documenter-dark .message.is-warning .message-header {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-warning .message-body {
+ border-color: #ad8100;
+ color: #3d2e03; }
+ html.theme--documenter-dark .message.is-danger {
+ background-color: #fef6f6; }
+ html.theme--documenter-dark .message.is-danger .message-header {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-danger .message-body {
+ border-color: #9e1b0d;
+ color: #7a170c; }
+ html.theme--documenter-dark .message-header {
+ align-items: center;
+ background-color: #fff;
+ border-radius: 0.4em 0.4em 0 0;
+ color: rgba(0, 0, 0, 0.7);
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ html.theme--documenter-dark .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ html.theme--documenter-dark .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .message-body {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #fff;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .message-body code,
+ html.theme--documenter-dark .message-body pre {
+ background-color: white; }
+ html.theme--documenter-dark .message-body pre code {
+ background-color: transparent; }
+ html.theme--documenter-dark .modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ html.theme--documenter-dark .modal.is-active {
+ display: flex; }
+ html.theme--documenter-dark .modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+ html.theme--documenter-dark .modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+ html.theme--documenter-dark .modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+ html.theme--documenter-dark .modal-card-head,
+ html.theme--documenter-dark .modal-card-foot {
+ align-items: center;
+ background-color: #282f2f;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+ html.theme--documenter-dark .modal-card-head {
+ border-bottom: 1px solid #5e6d6f;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px; }
+ html.theme--documenter-dark .modal-card-title {
+ color: #f2f2f2;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+ html.theme--documenter-dark .modal-card-foot {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+ html.theme--documenter-dark .navbar {
+ background-color: #375a7f;
+ min-height: 4rem;
+ position: relative;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ html.theme--documenter-dark .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ html.theme--documenter-dark .navbar.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-burger {
+ color: #282f2f; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ecf0f1;
+ color: #282f2f; } }
+ html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger {
+ color: #ecf0f1; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #282f2f;
+ color: #ecf0f1; } }
+ html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #375a7f;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #024c7d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #008438;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ad8100;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #9e1b0d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 4rem;
+ width: 100%; }
+ html.theme--documenter-dark .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-top {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top,
+ html.theme--documenter-dark body.has-navbar-fixed-top {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark .navbar-brand,
+ html.theme--documenter-dark .navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+ html.theme--documenter-dark .navbar-burger {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ height: 4rem;
+ position: relative;
+ width: 4rem;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ html.theme--documenter-dark .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ html.theme--documenter-dark .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+ html.theme--documenter-dark .navbar-menu {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ color: #fff;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .navbar-item .icon:only-child,
+ html.theme--documenter-dark .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+ html.theme--documenter-dark a.navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ cursor: pointer; }
+ html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link:focus,
+ html.theme--documenter-dark .navbar-link:focus-within,
+ html.theme--documenter-dark .navbar-link:hover,
+ html.theme--documenter-dark .navbar-link.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-item img {
+ max-height: 1.75rem; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ padding: 0; }
+ html.theme--documenter-dark .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 4rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #1abc9c;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #1abc9c;
+ padding-bottom: calc(0.5rem - 3px); }
+ html.theme--documenter-dark .navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after {
+ border-color: #fff;
+ margin-top: -0.375em;
+ right: 1.125em; }
+ html.theme--documenter-dark .navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+ html.theme--documenter-dark .navbar-divider {
+ background-color: rgba(0, 0, 0, 0.2);
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar > .container {
+ display: block; }
+ html.theme--documenter-dark .navbar-brand .navbar-item,
+ html.theme--documenter-dark .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-link::after {
+ display: none; }
+ html.theme--documenter-dark .navbar-menu {
+ background-color: #375a7f;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark .navbar-menu.is-active {
+ display: block; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ top: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 4rem);
+ overflow: auto; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-top-touch {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 4rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar,
+ html.theme--documenter-dark .navbar-menu,
+ html.theme--documenter-dark .navbar-start,
+ html.theme--documenter-dark .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .navbar {
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ html.theme--documenter-dark .navbar.is-spaced .navbar-start,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ html.theme--documenter-dark .navbar.is-spaced a.navbar-item,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-link {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-burger {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-item {
+ display: flex; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ align-items: stretch; }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 8px 8px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ html.theme--documenter-dark .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ html.theme--documenter-dark .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-dropdown {
+ background-color: #375a7f;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed {
+ border-radius: 8px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ html.theme--documenter-dark .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .navbar-divider {
+ display: block; }
+ html.theme--documenter-dark .navbar > .container .navbar-brand,
+ html.theme--documenter-dark .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ html.theme--documenter-dark .navbar > .container .navbar-menu,
+ html.theme--documenter-dark .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-top-desktop {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-top,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-top {
+ padding-top: 6rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 6rem; }
+ html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link.is-active {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),
+ html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: transparent; } }
+ html.theme--documenter-dark .hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 4rem); }
+ html.theme--documenter-dark .pagination {
+ font-size: 15px;
+ margin: -0.25rem; }
+ html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .pagination.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .pagination.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ html.theme--documenter-dark .pagination.is-rounded .pagination-next,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination,
+ html.theme--documenter-dark .pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link {
+ border-color: #5e6d6f;
+ color: #1abc9c;
+ min-width: 2.25em; }
+ html.theme--documenter-dark .pagination-previous:hover,
+ html.theme--documenter-dark .pagination-next:hover,
+ html.theme--documenter-dark .pagination-link:hover {
+ border-color: #8c9b9d;
+ color: #1dd2af; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled] {
+ background-color: #dbdee0;
+ border-color: #dbdee0;
+ box-shadow: none;
+ color: #5e6d6f;
+ opacity: 0.5; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .pagination-link.is-current {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .pagination-ellipsis {
+ color: #8c9b9d;
+ pointer-events: none; }
+ html.theme--documenter-dark .pagination-list {
+ flex-wrap: wrap; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .pagination {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ html.theme--documenter-dark .pagination-previous {
+ order: 2; }
+ html.theme--documenter-dark .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination {
+ justify-content: space-between; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination.is-right .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-right .pagination-next {
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+ html.theme--documenter-dark .panel {
+ font-size: 15px; }
+ html.theme--documenter-dark .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs,
+ html.theme--documenter-dark .panel-block {
+ border-bottom: 1px solid #5e6d6f;
+ border-left: 1px solid #5e6d6f;
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child,
+ html.theme--documenter-dark .panel-block:first-child {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading {
+ background-color: #282f2f;
+ border-radius: 0.4em 0.4em 0 0;
+ color: #f2f2f2;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-bottom: 1px solid #5e6d6f;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #343c3d;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-list a {
+ color: #fff; }
+ html.theme--documenter-dark .panel-list a:hover {
+ color: #1abc9c; }
+ html.theme--documenter-dark .panel-block {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ html.theme--documenter-dark .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .panel-block.is-active {
+ border-left-color: #1abc9c;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.panel-block,
+ html.theme--documenter-dark label.panel-block {
+ cursor: pointer; }
+ html.theme--documenter-dark a.panel-block:hover,
+ html.theme--documenter-dark label.panel-block:hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: white;
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+ html.theme--documenter-dark .tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 15px;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tabs a {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ html.theme--documenter-dark .tabs a:hover {
+ border-bottom-color: #f2f2f2;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .tabs li {
+ display: block; }
+ html.theme--documenter-dark .tabs li.is-active a {
+ border-bottom-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .tabs ul {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tabs ul.is-left {
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .tabs.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .tabs.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .tabs.is-boxed a:hover {
+ background-color: #282f2f;
+ border-bottom-color: #5e6d6f; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #5e6d6f;
+ border-bottom-color: transparent !important; }
+ html.theme--documenter-dark .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .tabs.is-toggle a {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ html.theme--documenter-dark .tabs.is-toggle a:hover {
+ background-color: #282f2f;
+ border-color: #8c9b9d;
+ z-index: 2; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .tabs.is-toggle li:first-child a {
+ border-radius: 0.4em 0 0 0.4em; }
+ html.theme--documenter-dark .tabs.is-toggle li:last-child a {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .tabs.is-toggle li.is-active a {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff;
+ z-index: 1; }
+ html.theme--documenter-dark .tabs.is-toggle ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tabs.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tabs.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .column.is-narrow-mobile {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .column.is-narrow-touch {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-touch {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .column.is-narrow-desktop {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .column.is-narrow-widescreen {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .column.is-narrow-fullhd {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+ html.theme--documenter-dark .columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .columns:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ html.theme--documenter-dark .columns.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ html.theme--documenter-dark .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ html.theme--documenter-dark .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .columns.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .columns.is-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-desktop {
+ display: flex; } }
+ html.theme--documenter-dark .columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ html.theme--documenter-dark .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ html.theme--documenter-dark .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+ html.theme--documenter-dark .tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ html.theme--documenter-dark .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .tile.is-child {
+ margin: 0 !important; }
+ html.theme--documenter-dark .tile.is-parent {
+ padding: 0.75rem; }
+ html.theme--documenter-dark .tile.is-vertical {
+ flex-direction: column; }
+ html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .tile:not(.is-child) {
+ display: flex; }
+ html.theme--documenter-dark .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+ html.theme--documenter-dark .hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ html.theme--documenter-dark .hero .navbar {
+ background: none; }
+ html.theme--documenter-dark .hero .tabs ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-white strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-white .title {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-white .navbar-menu {
+ background-color: white; } }
+ html.theme--documenter-dark .hero.is-white .navbar-item,
+ html.theme--documenter-dark .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-white .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ html.theme--documenter-dark .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-black strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-black .title {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ html.theme--documenter-dark .hero.is-black .navbar-item,
+ html.theme--documenter-dark .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-black .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ html.theme--documenter-dark .hero.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-light strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-light .title {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .subtitle {
+ color: rgba(40, 47, 47, 0.9); }
+ html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-light .subtitle strong {
+ color: #282f2f; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-light .navbar-menu {
+ background-color: #ecf0f1; } }
+ html.theme--documenter-dark .hero.is-light .navbar-item,
+ html.theme--documenter-dark .hero.is-light .navbar-link {
+ color: rgba(40, 47, 47, 0.7); }
+ html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-light .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-light .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs a {
+ color: #282f2f;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } }
+ html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-dark strong,
+ html.theme--documenter-dark .content kbd.hero strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle {
+ color: rgba(236, 240, 241, 0.9); }
+ html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-dark .subtitle strong,
+ html.theme--documenter-dark .content kbd.hero .subtitle strong {
+ color: #ecf0f1; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu {
+ background-color: #282f2f; } }
+ html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item,
+ html.theme--documenter-dark .hero.is-dark .navbar-link,
+ html.theme--documenter-dark .content kbd.hero .navbar-link {
+ color: rgba(236, 240, 241, 0.7); }
+ html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-dark .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.hero .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.hero .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a {
+ color: #ecf0f1;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } }
+ html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-primary strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-primary .subtitle strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #375a7f; } }
+ html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ html.theme--documenter-dark .hero.is-primary .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-primary .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } }
+ html.theme--documenter-dark .hero.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-link strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-link .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-link .navbar-menu {
+ background-color: #1abc9c; } }
+ html.theme--documenter-dark .hero.is-link .navbar-item,
+ html.theme--documenter-dark .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-link .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-link .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } }
+ html.theme--documenter-dark .hero.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-info strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-info .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-info .navbar-menu {
+ background-color: #024c7d; } }
+ html.theme--documenter-dark .hero.is-info .navbar-item,
+ html.theme--documenter-dark .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-info .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-info .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } }
+ html.theme--documenter-dark .hero.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-success strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-success .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-success .navbar-menu {
+ background-color: #008438; } }
+ html.theme--documenter-dark .hero.is-success .navbar-item,
+ html.theme--documenter-dark .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-success .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-success .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } }
+ html.theme--documenter-dark .hero.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-warning strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-warning .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-warning .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-warning .navbar-menu {
+ background-color: #ad8100; } }
+ html.theme--documenter-dark .hero.is-warning .navbar-item,
+ html.theme--documenter-dark .hero.is-warning .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-warning .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-warning .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } }
+ html.theme--documenter-dark .hero.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-danger strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-danger .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-danger .navbar-menu {
+ background-color: #9e1b0d; } }
+ html.theme--documenter-dark .hero.is-danger .navbar-item,
+ html.theme--documenter-dark .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-danger .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-danger .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } }
+ html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .hero.is-halfheight {
+ min-height: 50vh; }
+ html.theme--documenter-dark .hero.is-fullheight {
+ min-height: 100vh; }
+ html.theme--documenter-dark .hero-video {
+ overflow: hidden; }
+ html.theme--documenter-dark .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ html.theme--documenter-dark .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-video {
+ display: none; } }
+ html.theme--documenter-dark .hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-buttons .button {
+ display: flex; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+ html.theme--documenter-dark .hero-head,
+ html.theme--documenter-dark .hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+ html.theme--documenter-dark .section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .section.is-medium {
+ padding: 9rem 1.5rem; }
+ html.theme--documenter-dark .section.is-large {
+ padding: 18rem 1.5rem; } }
+ html.theme--documenter-dark .footer {
+ background-color: #282f2f;
+ padding: 3rem 1.5rem 6rem; }
+ html.theme--documenter-dark hr {
+ height: 1px; }
+ html.theme--documenter-dark h6 {
+ text-transform: uppercase;
+ letter-spacing: 0.5px; }
+ html.theme--documenter-dark .hero {
+ background-color: #343c3d; }
+ html.theme--documenter-dark a {
+ transition: all 200ms ease; }
+ html.theme--documenter-dark .button {
+ transition: all 200ms ease;
+ border-width: 1px;
+ color: white; }
+ html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus {
+ box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); }
+ html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus {
+ border-color: white;
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); }
+ html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover {
+ background-color: #1d1d1d; }
+ html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus {
+ border-color: #0a0a0a;
+ box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); }
+ html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus {
+ border-color: #ecf0f1;
+ box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); }
+ html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover {
+ background-color: #3a4344; }
+ html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus {
+ border-color: #282f2f;
+ box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); }
+ html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover {
+ background-color: #436d9a; }
+ html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus {
+ border-color: #375a7f;
+ box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); }
+ html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover {
+ background-color: #1fdeb8; }
+ html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); }
+ html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover {
+ background-color: #0363a3; }
+ html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus {
+ border-color: #024c7d;
+ box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); }
+ html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover {
+ background-color: #00aa48; }
+ html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus {
+ border-color: #008438;
+ box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); }
+ html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover {
+ background-color: #d39e00; }
+ html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus {
+ border-color: #ad8100;
+ box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); }
+ html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover {
+ background-color: #c12110; }
+ html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus {
+ border-color: #9e1b0d;
+ box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); }
+ html.theme--documenter-dark .label {
+ color: #dbdee0; }
+ html.theme--documenter-dark .button,
+ html.theme--documenter-dark .control.has-icons-left .icon,
+ html.theme--documenter-dark .control.has-icons-right .icon,
+ html.theme--documenter-dark .input,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .select,
+ html.theme--documenter-dark .select select,
+ html.theme--documenter-dark .textarea {
+ height: 2.5em; }
+ html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .textarea {
+ transition: all 200ms ease;
+ box-shadow: none;
+ border-width: 1px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .select:after,
+ html.theme--documenter-dark .select select {
+ border-width: 1px; }
+ html.theme--documenter-dark .control.has-addons .button,
+ html.theme--documenter-dark .control.has-addons .input,
+ html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input,
+ html.theme--documenter-dark .control.has-addons .select {
+ margin-right: -1px; }
+ html.theme--documenter-dark .notification {
+ background-color: #343c3d; }
+ html.theme--documenter-dark .card {
+ box-shadow: none;
+ border: 1px solid #343c3d;
+ background-color: #282f2f;
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .card .card-image img {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-header {
+ box-shadow: none;
+ background-color: rgba(18, 18, 18, 0.2);
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-footer {
+ background-color: rgba(18, 18, 18, 0.2); }
+ html.theme--documenter-dark .card .card-footer,
+ html.theme--documenter-dark .card .card-footer-item {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .notification.is-white a:not(.button) {
+ color: #0a0a0a;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-black a:not(.button) {
+ color: white;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-light a:not(.button) {
+ color: #282f2f;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) {
+ color: #ecf0f1;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-link a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-info a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-success a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-warning a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-danger a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .menu-list a {
+ transition: all 300ms ease; }
+ html.theme--documenter-dark .modal-card-body {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .modal-card-foot,
+ html.theme--documenter-dark .modal-card-head {
+ border-color: #343c3d; }
+ html.theme--documenter-dark .message-header {
+ font-weight: 700;
+ background-color: #343c3d;
+ color: white; }
+ html.theme--documenter-dark .message-body {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .navbar {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent {
+ background: none; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar .navbar-menu {
+ background-color: #375a7f;
+ border-radius: 0 0 0.4em 0.4em; } }
+ html.theme--documenter-dark .hero .navbar,
+ html.theme--documenter-dark body > .navbar {
+ border-radius: 0; }
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block,
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block:first-child,
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child {
+ border-top-width: 1px; }
+ html.theme--documenter-dark .panel-heading {
+ font-weight: 700; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #17a689; }
+ html.theme--documenter-dark .panel-block:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block:hover .panel-icon {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #17a689; }
+ html.theme--documenter-dark .tabs a {
+ border-bottom-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .tabs ul {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .tabs.is-toggle li a {
+ border-width: 1px;
+ margin-bottom: 0; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited {
+ color: #f2f2f2; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+ html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+ html.theme--documenter-dark .docs-light-only {
+ display: none !important; }
+ html.theme--documenter-dark pre {
+ position: relative;
+ overflow: hidden; }
+ html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ html.theme--documenter-dark pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #fff;
+ cursor: pointer;
+ text-align: center; }
+ html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(255, 255, 255, 0.1);
+ color: #1abc9c; }
+ html.theme--documenter-dark pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ html.theme--documenter-dark pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ html.theme--documenter-dark pre:hover .copy-button {
+ opacity: 1; }
+ html.theme--documenter-dark .admonition {
+ background-color: #282f2f;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .admonition strong {
+ color: currentColor; }
+ html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .admonition.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .admonition.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .admonition.is-default {
+ background-color: #282f2f;
+ border-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-default > .admonition-header {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-info {
+ background-color: #282f2f;
+ border-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-info > .admonition-header {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-success {
+ background-color: #282f2f;
+ border-color: #008438; }
+ html.theme--documenter-dark .admonition.is-success > .admonition-header {
+ background-color: #008438; }
+ html.theme--documenter-dark .admonition.is-warning {
+ background-color: #282f2f;
+ border-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-warning > .admonition-header {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-danger {
+ background-color: #282f2f;
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-danger > .admonition-header {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-compat {
+ background-color: #282f2f;
+ border-color: #137886; }
+ html.theme--documenter-dark .admonition.is-compat > .admonition-header {
+ background-color: #137886; }
+ html.theme--documenter-dark .admonition-header {
+ background-color: #5e6d6f;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+ html.theme--documenter-dark .admonition-body {
+ color: #fff;
+ padding: 0.5rem 0.75rem; }
+ html.theme--documenter-dark .admonition-body pre {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .admonition-body code {
+ background-color: rgba(255, 255, 255, 0.05); }
+ html.theme--documenter-dark .docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #5e6d6f;
+ box-shadow: none;
+ max-width: 100%; }
+ html.theme--documenter-dark .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: #282f2f;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > header code {
+ background-color: transparent; }
+ html.theme--documenter-dark .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ html.theme--documenter-dark .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ html.theme--documenter-dark .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > section:last-child {
+ border-bottom: none; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+ html.theme--documenter-dark .documenter-example-output {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #282f2f;
+ border-bottom: 3px solid #9e1b0d;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ html.theme--documenter-dark .outdated-warning-overlay a {
+ color: #1abc9c; }
+ html.theme--documenter-dark .outdated-warning-overlay a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .content pre {
+ border: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .content code {
+ font-weight: inherit; }
+ html.theme--documenter-dark .content a code {
+ color: #1abc9c; }
+ html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+ html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+ html.theme--documenter-dark pre, html.theme--documenter-dark code {
+ font-variant-ligatures: no-contextual; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .hljs {
+ background: initial !important; }
+ html.theme--documenter-dark .katex .katex-mathml {
+ top: 0;
+ right: 0; }
+ html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display {
+ margin: 0.5em 0 !important; }
+ html.theme--documenter-dark html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+ html.theme--documenter-dark li.no-marker {
+ list-style: none; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ html.theme--documenter-dark #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ width: 100%; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ background-color: #1f2424;
+ border-bottom: 1px solid #5e6d6f;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #171717;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #5e6d6f;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #fff;
+ background-color: #282f2f;
+ border-right: 1px solid #5e6d6f;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 15px;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #171717; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #5e6d6f;
+ display: none;
+ padding: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #5e6d6f;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 14.25px;
+ margin-left: 1em;
+ border-left: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 11.25px;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #fff;
+ background: #282f2f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #fff;
+ background-color: #32393a; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #5e6d6f;
+ border-bottom: 1px solid #5e6d6f;
+ background-color: #1f2424; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: #1f2424;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #32393a;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 12.75px;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+ html.theme--documenter-dark {
+ background-color: #1f2424;
+ font-size: 16px;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark .ansi span.sgr1 {
+ font-weight: bolder; }
+ html.theme--documenter-dark .ansi span.sgr2 {
+ font-weight: lighter; }
+ html.theme--documenter-dark .ansi span.sgr3 {
+ font-style: italic; }
+ html.theme--documenter-dark .ansi span.sgr4 {
+ text-decoration: underline; }
+ html.theme--documenter-dark .ansi span.sgr7 {
+ color: #1f2424;
+ background-color: #fff; }
+ html.theme--documenter-dark .ansi span.sgr8 {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr8 span {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr9 {
+ text-decoration: line-through; }
+ html.theme--documenter-dark .ansi span.sgr30 {
+ color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr31 {
+ color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr32 {
+ color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr33 {
+ color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr34 {
+ color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr35 {
+ color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr36 {
+ color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr37 {
+ color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr40 {
+ background-color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr41 {
+ background-color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr42 {
+ background-color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr43 {
+ background-color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr44 {
+ background-color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr45 {
+ background-color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr46 {
+ background-color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr47 {
+ background-color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr90 {
+ color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr91 {
+ color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr92 {
+ color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr93 {
+ color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr94 {
+ color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr95 {
+ color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr96 {
+ color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr97 {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .ansi span.sgr100 {
+ background-color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr101 {
+ background-color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr102 {
+ background-color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr103 {
+ background-color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr104 {
+ background-color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr105 {
+ background-color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr106 {
+ background-color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr107 {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark code.language-julia-repl > span.hljs-meta {
+ color: #4fb43a;
+ font-weight: bolder; }
+ html.theme--documenter-dark .hljs {
+ background: #2b2b2b;
+ color: #f8f8f2; }
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-quote {
+ color: #d4d0ab; }
+ html.theme--documenter-dark .hljs-variable,
+ html.theme--documenter-dark .hljs-template-variable,
+ html.theme--documenter-dark .hljs-tag,
+ html.theme--documenter-dark .hljs-name,
+ html.theme--documenter-dark .hljs-selector-id,
+ html.theme--documenter-dark .hljs-selector-class,
+ html.theme--documenter-dark .hljs-regexp,
+ html.theme--documenter-dark .hljs-deletion {
+ color: #ffa07a; }
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-link {
+ color: #f5ab35; }
+ html.theme--documenter-dark .hljs-attribute {
+ color: #ffd700; }
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-addition {
+ color: #abe338; }
+ html.theme--documenter-dark .hljs-title,
+ html.theme--documenter-dark .hljs-section {
+ color: #00e0e0; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ color: #dcc6e0; }
+ html.theme--documenter-dark .hljs-emphasis {
+ font-style: italic; }
+ html.theme--documenter-dark .hljs-strong {
+ font-weight: bold; }
+ @media screen and (-ms-high-contrast: active) {
+ html.theme--documenter-dark .hljs-addition,
+ html.theme--documenter-dark .hljs-attribute,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-link,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-quote {
+ color: highlight; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ font-weight: bold; } }
+ html.theme--documenter-dark .hljs-subst {
+ color: #f8f8f2; }
diff --git a/v0.3.0/assets/themes/documenter-light.css b/v0.3.0/assets/themes/documenter-light.css
new file mode 100644
index 0000000..9595d5b
--- /dev/null
+++ b/v0.3.0/assets/themes/documenter-light.css
@@ -0,0 +1,7738 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+.tabs, .pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child),
+.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.modal-close, .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ .modal-close::before, .delete::before, .modal-close::after, .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .modal-close::before, .delete::before {
+ height: 2px;
+ width: 50%; }
+ .modal-close::after, .delete::after {
+ height: 50%;
+ width: 2px; }
+ .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ .modal-close:active, .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ .is-medium.modal-close, .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ .is-large.modal-close, .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdbdb;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+.image.is-square .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+.image.is-1by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+.image.is-5by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+.image.is-4by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+.image.is-3by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+.image.is-5by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+.image.is-16by9 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+.image.is-2by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+.image.is-3by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+.image.is-4by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+.image.is-3by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+.image.is-2by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+.image.is-3by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+.image.is-9by16 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+.image.is-1by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+.image.is-1by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .file-cta,
+.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus,
+ .pagination-ellipsis:focus, .file-cta:focus,
+ .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous,
+ .is-focused.pagination-next,
+ .is-focused.pagination-link,
+ .is-focused.pagination-ellipsis, .is-focused.file-cta,
+ .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active,
+ .pagination-ellipsis:active, .file-cta:active,
+ .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous,
+ .is-active.pagination-next,
+ .is-active.pagination-link,
+ .is-active.pagination-ellipsis, .is-active.file-cta,
+ .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button {
+ outline: none; }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled],
+ .pagination-ellipsis[disabled], .file-cta[disabled],
+ .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous,
+ fieldset[disabled] .pagination-next,
+ fieldset[disabled] .pagination-link,
+ fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta,
+ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+html {
+ background-color: white;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section {
+ display: block; }
+
+body,
+button,
+input,
+select,
+textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+
+code,
+pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+
+body {
+ color: #222222;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+
+a {
+ color: #2e63b8;
+ cursor: pointer;
+ text-decoration: none; }
+ a strong {
+ color: currentColor; }
+ a:hover {
+ color: #363636; }
+
+code {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #000000;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+
+hr {
+ background-color: whitesmoke;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+
+img {
+ height: auto;
+ max-width: 100%; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ vertical-align: baseline; }
+
+small {
+ font-size: 0.875em; }
+
+span {
+ font-style: inherit;
+ font-weight: inherit; }
+
+strong {
+ color: #222222;
+ font-weight: 700; }
+
+fieldset {
+ border: none; }
+
+pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: whitesmoke;
+ color: #222222;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+
+table td,
+table th {
+ vertical-align: top; }
+ table td:not([align]),
+ table th:not([align]) {
+ text-align: left; }
+
+table th {
+ color: #222222; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 1rem !important; }
+
+.is-size-7, .docstring > section > a.docs-sourcelink {
+ font-size: 0.75rem !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 1rem !important; }
+ .is-size-7-mobile {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 1rem !important; }
+ .is-size-7-tablet {
+ font-size: 0.75rem !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 1rem !important; }
+ .is-size-7-touch {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 1rem !important; }
+ .is-size-7-desktop {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 1rem !important; }
+ .is-size-7-widescreen {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 1rem !important; }
+ .is-size-7-fullhd {
+ font-size: 0.75rem !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: whitesmoke !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #dbdbdb !important; }
+
+.has-background-light {
+ background-color: whitesmoke !important; }
+
+.has-text-dark {
+ color: #363636 !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #1c1c1c !important; }
+
+.has-background-dark {
+ background-color: #363636 !important; }
+
+.has-text-primary {
+ color: #4eb5de !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #27a1d2 !important; }
+
+.has-background-primary {
+ background-color: #4eb5de !important; }
+
+.has-text-link {
+ color: #2e63b8 !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #244d8f !important; }
+
+.has-background-link {
+ background-color: #2e63b8 !important; }
+
+.has-text-info {
+ color: #209cee !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #1081cb !important; }
+
+.has-background-info {
+ background-color: #209cee !important; }
+
+.has-text-success {
+ color: #22c35b !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #1a9847 !important; }
+
+.has-background-success {
+ background-color: #22c35b !important; }
+
+.has-text-warning {
+ color: #ffdd57 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #ffd324 !important; }
+
+.has-background-warning {
+ background-color: #ffdd57 !important; }
+
+.has-text-danger {
+ color: #da0b00 !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #a70800 !important; }
+
+.has-background-danger {
+ background-color: #da0b00 !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #363636 !important; }
+
+.has-background-grey-darker {
+ background-color: #363636 !important; }
+
+.has-text-grey-dark {
+ color: #4a4a4a !important; }
+
+.has-background-grey-dark {
+ background-color: #4a4a4a !important; }
+
+.has-text-grey {
+ color: #6b6b6b !important; }
+
+.has-background-grey {
+ background-color: #6b6b6b !important; }
+
+.has-text-grey-light {
+ color: #b5b5b5 !important; }
+
+.has-background-grey-light {
+ background-color: #b5b5b5 !important; }
+
+.has-text-grey-lighter {
+ color: #dbdbdb !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdbdb !important; }
+
+.has-text-white-ter {
+ color: whitesmoke !important; }
+
+.has-background-white-ter {
+ background-color: whitesmoke !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+.box {
+ background-color: white;
+ border-radius: 6px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ display: block;
+ padding: 1.25rem; }
+
+a.box:hover, a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; }
+
+a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; }
+
+.button {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-width: 1px;
+ color: #363636;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ .button strong {
+ color: inherit; }
+ .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ .button:hover, .button.is-hovered {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .button:focus, .button.is-focused {
+ border-color: #3c5dcd;
+ color: #363636; }
+ .button:focus:not(:active), .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button:active, .button.is-active {
+ border-color: #4a4a4a;
+ color: #363636; }
+ .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #222222;
+ text-decoration: underline; }
+ .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused {
+ background-color: whitesmoke;
+ color: #222222; }
+ .button.is-text:active, .button.is-text.is-active {
+ background-color: #e8e8e8;
+ color: #222222; }
+ .button.is-text[disabled], fieldset[disabled] .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:hover, .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus, .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .button.is-white:active, .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white[disabled], fieldset[disabled] .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:hover, .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus, .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .button.is-black:active, .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .button.is-black[disabled], fieldset[disabled] .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:hover, .button.is-light.is-hovered {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus, .button.is-light.is-focused {
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .button.is-light:active, .button.is-light.is-active {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light[disabled], fieldset[disabled] .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-light.is-inverted {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered {
+ background-color: #292929; }
+ .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark, .content kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused {
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-dark.is-inverted, .content kbd.button.is-inverted {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered {
+ background-color: #e8e8e8; }
+ .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-loading::after, .content kbd.button.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined, .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-primary, .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ color: #4eb5de; }
+ .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:hover, .button.is-link.is-hovered {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus, .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button.is-link:active, .button.is-link.is-active {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link[disabled], fieldset[disabled] .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ color: #2e63b8; }
+ .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:hover, .button.is-info.is-hovered {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus, .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .button.is-info:active, .button.is-info.is-active {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info[disabled], fieldset[disabled] .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ color: #209cee; }
+ .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:hover, .button.is-success.is-hovered {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus, .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .button.is-success:active, .button.is-success.is-active {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success[disabled], fieldset[disabled] .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ color: #22c35b; }
+ .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:hover, .button.is-warning.is-hovered {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus, .button.is-warning.is-focused {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .button.is-warning:active, .button.is-warning.is-active {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning[disabled], fieldset[disabled] .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered {
+ background-color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ color: #ffdd57; }
+ .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:hover, .button.is-danger.is-hovered {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus, .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .button.is-danger:active, .button.is-danger.is-active {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger[disabled], fieldset[disabled] .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ color: #da0b00; }
+ .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-small, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .button.is-normal {
+ font-size: 1rem; }
+ .button.is-medium {
+ font-size: 1.25rem; }
+ .button.is-large {
+ font-size: 1.5rem; }
+ .button[disabled], fieldset[disabled] .button {
+ background-color: white;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ opacity: 0.5; }
+ .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ .button.is-static {
+ background-color: whitesmoke;
+ border-color: #dbdbdb;
+ color: #6b6b6b;
+ box-shadow: none;
+ pointer-events: none; }
+ .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .buttons .button {
+ margin-bottom: 0.5rem; }
+ .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .buttons.is-centered {
+ justify-content: center; }
+ .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ .buttons.is-right {
+ justify-content: flex-end; }
+ .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+
+.container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ .container {
+ max-width: 992px; }
+ .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ .container {
+ max-width: 1344px; } }
+.content li + li {
+ margin-top: 0.25em; }
+
+.content p:not(:last-child),
+.content dl:not(:last-child),
+.content ol:not(:last-child),
+.content ul:not(:last-child),
+.content blockquote:not(:last-child),
+.content pre:not(:last-child),
+.content table:not(:last-child) {
+ margin-bottom: 1em; }
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ color: #222222;
+ font-weight: 600;
+ line-height: 1.125; }
+
+.content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ .content h1:not(:first-child) {
+ margin-top: 1em; }
+
+.content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+
+.content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+
+.content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+
+.content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+
+.content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+
+.content blockquote {
+ background-color: whitesmoke;
+ border-left: 5px solid #dbdbdb;
+ padding: 1.25em 1.5em; }
+
+.content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ol:not([type]) {
+ list-style-type: decimal; }
+ .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+
+.content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ .content ul ul ul {
+ list-style-type: square; }
+
+.content dd {
+ margin-left: 2em; }
+
+.content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ .content figure:not(:first-child) {
+ margin-top: 2em; }
+ .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ .content figure img {
+ display: inline-block; }
+ .content figure figcaption {
+ font-style: italic; }
+
+.content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+
+.content sup,
+.content sub {
+ font-size: 75%; }
+
+.content table {
+ width: 100%; }
+ .content table td,
+ .content table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .content table th {
+ color: #222222; }
+ .content table th:not([align]) {
+ text-align: left; }
+ .content table thead td,
+ .content table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .content table tfoot td,
+ .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .content table tbody tr:last-child td,
+ .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+
+.content .tabs li + li {
+ margin-top: 0; }
+
+.content.is-small, #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.75rem; }
+
+.content.is-medium {
+ font-size: 1.25rem; }
+
+.content.is-large {
+ font-size: 1.5rem; }
+
+.icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+
+.image, #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ .image img, #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+ .image.is-square .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ .image.is-1by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ .image.is-5by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ .image.is-4by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ .image.is-3by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ .image.is-5by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ .image.is-16by9 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ .image.is-2by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ .image.is-3by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ .image.is-4by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ .image.is-3by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ .image.is-2by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ .image.is-3by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ .image.is-9by16 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ .image.is-1by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ .image.is-1by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+
+.notification {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .notification strong {
+ color: currentColor; }
+ .notification code,
+ .notification pre {
+ background: white; }
+ .notification pre code {
+ background: transparent; }
+ .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ .notification .title,
+ .notification .subtitle,
+ .notification .content {
+ color: currentColor; }
+ .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .notification.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .notification.is-dark, .content kbd.notification {
+ background-color: #363636;
+ color: whitesmoke; }
+ .notification.is-primary, .docstring > section > a.notification.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .notification.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .notification.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .notification.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .notification.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .notification.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+
+.progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 1rem;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ .progress::-webkit-progress-bar {
+ background-color: #dbdbdb; }
+ .progress::-webkit-progress-value {
+ background-color: #222222; }
+ .progress::-moz-progress-bar {
+ background-color: #222222; }
+ .progress::-ms-fill {
+ background-color: #222222;
+ border: none; }
+ .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ .progress.is-white::-ms-fill {
+ background-color: white; }
+ .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }
+ .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }
+ .progress.is-light::-webkit-progress-value {
+ background-color: whitesmoke; }
+ .progress.is-light::-moz-progress-bar {
+ background-color: whitesmoke; }
+ .progress.is-light::-ms-fill {
+ background-color: whitesmoke; }
+ .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }
+ .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value {
+ background-color: #363636; }
+ .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar {
+ background-color: #363636; }
+ .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill {
+ background-color: #363636; }
+ .progress.is-dark:indeterminate, .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }
+ .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #4eb5de; }
+ .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #4eb5de; }
+ .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #4eb5de; }
+ .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); }
+ .progress.is-link::-webkit-progress-value {
+ background-color: #2e63b8; }
+ .progress.is-link::-moz-progress-bar {
+ background-color: #2e63b8; }
+ .progress.is-link::-ms-fill {
+ background-color: #2e63b8; }
+ .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); }
+ .progress.is-info::-webkit-progress-value {
+ background-color: #209cee; }
+ .progress.is-info::-moz-progress-bar {
+ background-color: #209cee; }
+ .progress.is-info::-ms-fill {
+ background-color: #209cee; }
+ .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); }
+ .progress.is-success::-webkit-progress-value {
+ background-color: #22c35b; }
+ .progress.is-success::-moz-progress-bar {
+ background-color: #22c35b; }
+ .progress.is-success::-ms-fill {
+ background-color: #22c35b; }
+ .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); }
+ .progress.is-warning::-webkit-progress-value {
+ background-color: #ffdd57; }
+ .progress.is-warning::-moz-progress-bar {
+ background-color: #ffdd57; }
+ .progress.is-warning::-ms-fill {
+ background-color: #ffdd57; }
+ .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }
+ .progress.is-danger::-webkit-progress-value {
+ background-color: #da0b00; }
+ .progress.is-danger::-moz-progress-bar {
+ background-color: #da0b00; }
+ .progress.is-danger::-ms-fill {
+ background-color: #da0b00; }
+ .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); }
+ .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #dbdbdb;
+ background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.75rem; }
+ .progress.is-medium {
+ height: 1.25rem; }
+ .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+
+.table {
+ background-color: white;
+ color: #363636; }
+ .table td,
+ .table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .table td.is-white,
+ .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .table td.is-black,
+ .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .table td.is-light,
+ .table th.is-light {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .table td.is-dark,
+ .table th.is-dark {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .table td.is-primary,
+ .table th.is-primary {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .table td.is-link,
+ .table th.is-link {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .table td.is-info,
+ .table th.is-info {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .table td.is-success,
+ .table th.is-success {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .table td.is-warning,
+ .table th.is-warning {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .table td.is-danger,
+ .table th.is-danger {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .table td.is-narrow,
+ .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ .table td.is-selected,
+ .table th.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table td.is-selected a,
+ .table td.is-selected strong,
+ .table th.is-selected a,
+ .table th.is-selected strong {
+ color: currentColor; }
+ .table th {
+ color: #222222; }
+ .table th:not([align]) {
+ text-align: left; }
+ .table tr.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table tr.is-selected a,
+ .table tr.is-selected strong {
+ color: currentColor; }
+ .table tr.is-selected td,
+ .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ .table thead {
+ background-color: transparent; }
+ .table thead td,
+ .table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .table tfoot {
+ background-color: transparent; }
+ .table tfoot td,
+ .table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .table tbody {
+ background-color: transparent; }
+ .table tbody tr:last-child td,
+ .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ .table.is-bordered td,
+ .table.is-bordered th {
+ border-width: 1px; }
+ .table.is-bordered tr:last-child td,
+ .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ .table.is-fullwidth {
+ width: 100%; }
+ .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: whitesmoke; }
+ .table.is-narrow td,
+ .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #fafafa; }
+
+.table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+
+.tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ .tags:last-child {
+ margin-bottom: -0.5rem; }
+ .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 1rem; }
+ .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ .tags.is-centered {
+ justify-content: center; }
+ .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ .tags.is-right {
+ justify-content: flex-end; }
+ .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 4px;
+ color: #222222;
+ display: inline-flex;
+ font-size: 0.75rem;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: whitesmoke;
+ color: #363636; }
+ .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) {
+ background-color: #363636;
+ color: whitesmoke; }
+ .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #4eb5de;
+ color: #fff; }
+ .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #2e63b8;
+ color: #fff; }
+ .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #209cee;
+ color: #fff; }
+ .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #22c35b;
+ color: #fff; }
+ .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #da0b00;
+ color: #fff; }
+ .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.75rem; }
+ .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 1rem; }
+ .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #e8e8e8; }
+ .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #dbdbdb; }
+ .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+
+a.tag:hover, .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+
+.title,
+.subtitle {
+ word-break: break-word; }
+ .title em,
+ .title span,
+ .subtitle em,
+ .subtitle span {
+ font-weight: inherit; }
+ .title sub,
+ .subtitle sub {
+ font-size: 0.75em; }
+ .title sup,
+ .subtitle sup {
+ font-size: 0.75em; }
+ .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink,
+ .subtitle .tag,
+ .subtitle .content kbd,
+ .content .subtitle kbd,
+ .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+
+.title {
+ color: #363636;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: 1.125; }
+ .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ .title + .highlight {
+ margin-top: -0.75rem; }
+ .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ .title.is-1 {
+ font-size: 3rem; }
+ .title.is-2 {
+ font-size: 2.5rem; }
+ .title.is-3 {
+ font-size: 2rem; }
+ .title.is-4 {
+ font-size: 1.5rem; }
+ .title.is-5 {
+ font-size: 1.25rem; }
+ .title.is-6 {
+ font-size: 1rem; }
+ .title.is-7 {
+ font-size: 0.75rem; }
+
+.subtitle {
+ color: #4a4a4a;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ .subtitle strong {
+ color: #363636;
+ font-weight: 600; }
+ .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ .subtitle.is-1 {
+ font-size: 3rem; }
+ .subtitle.is-2 {
+ font-size: 2.5rem; }
+ .subtitle.is-3 {
+ font-size: 2rem; }
+ .subtitle.is-4 {
+ font-size: 1.5rem; }
+ .subtitle.is-5 {
+ font-size: 1.25rem; }
+ .subtitle.is-6 {
+ font-size: 1rem; }
+ .subtitle.is-7 {
+ font-size: 0.75rem; }
+
+.heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+
+.highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+
+.number {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+
+.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ color: #363636; }
+ .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #b5b5b5; }
+ .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #2e63b8;
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: #6b6b6b; }
+ .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+
+.textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: whitesmoke; }
+ .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input {
+ border-color: #363636; }
+ .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink {
+ border-color: #4eb5de; }
+ .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #2e63b8; }
+ .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #209cee; }
+ .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #22c35b; }
+ .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ffdd57; }
+ .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #da0b00; }
+ .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+
+.input.is-rounded, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+
+.textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ .textarea[rows] {
+ height: initial; }
+ .textarea.has-fixed-size {
+ resize: none; }
+
+.radio, .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ .radio input, .checkbox input {
+ cursor: pointer; }
+ .radio:hover, .checkbox:hover {
+ color: #363636; }
+ .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox {
+ color: #6b6b6b;
+ cursor: not-allowed; }
+
+.radio + .radio {
+ margin-left: 0.5em; }
+
+.select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ .select:not(.is-multiple) {
+ height: 2.25em; }
+ .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #2e63b8;
+ right: 1.125em;
+ z-index: 4; }
+ .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ .select select::-ms-expand {
+ display: none; }
+ .select select[disabled]:hover, fieldset[disabled] .select select:hover {
+ border-color: whitesmoke; }
+ .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ .select select[multiple] option {
+ padding: 0.5em 1em; }
+ .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #363636; }
+ .select.is-white:not(:hover)::after {
+ border-color: white; }
+ .select.is-white select {
+ border-color: white; }
+ .select.is-white select:hover, .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ .select.is-black select {
+ border-color: #0a0a0a; }
+ .select.is-black select:hover, .select.is-black select.is-hovered {
+ border-color: black; }
+ .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .select.is-light:not(:hover)::after {
+ border-color: whitesmoke; }
+ .select.is-light select {
+ border-color: whitesmoke; }
+ .select.is-light select:hover, .select.is-light select.is-hovered {
+ border-color: #e8e8e8; }
+ .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after {
+ border-color: #363636; }
+ .select.is-dark select, .content kbd.select select {
+ border-color: #363636; }
+ .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered {
+ border-color: #292929; }
+ .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #4eb5de; }
+ .select.is-primary select, .docstring > section > a.select.docs-sourcelink select {
+ border-color: #4eb5de; }
+ .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #39acda; }
+ .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .select.is-link:not(:hover)::after {
+ border-color: #2e63b8; }
+ .select.is-link select {
+ border-color: #2e63b8; }
+ .select.is-link select:hover, .select.is-link select.is-hovered {
+ border-color: #2958a4; }
+ .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select.is-info:not(:hover)::after {
+ border-color: #209cee; }
+ .select.is-info select {
+ border-color: #209cee; }
+ .select.is-info select:hover, .select.is-info select.is-hovered {
+ border-color: #1190e3; }
+ .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .select.is-success:not(:hover)::after {
+ border-color: #22c35b; }
+ .select.is-success select {
+ border-color: #22c35b; }
+ .select.is-success select:hover, .select.is-success select.is-hovered {
+ border-color: #1ead51; }
+ .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .select.is-warning:not(:hover)::after {
+ border-color: #ffdd57; }
+ .select.is-warning select {
+ border-color: #ffdd57; }
+ .select.is-warning select:hover, .select.is-warning select.is-hovered {
+ border-color: #ffd83e; }
+ .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .select.is-danger:not(:hover)::after {
+ border-color: #da0b00; }
+ .select.is-danger select {
+ border-color: #da0b00; }
+ .select.is-danger select:hover, .select.is-danger select.is-hovered {
+ border-color: #c10a00; }
+ .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .select.is-small, #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .select.is-medium {
+ font-size: 1.25rem; }
+ .select.is-large {
+ font-size: 1.5rem; }
+ .select.is-disabled::after {
+ border-color: #6b6b6b; }
+ .select.is-fullwidth {
+ width: 100%; }
+ .select.is-fullwidth select {
+ width: 100%; }
+ .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ .file.is-white:active .file-cta, .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ .file.is-black:active .file-cta, .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .file.is-light .file-cta {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
+ color: #363636; }
+ .file.is-light:active .file-cta, .file.is-light.is-active .file-cta {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-dark .file-cta, .content kbd.file .file-cta {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
+ color: whitesmoke; }
+ .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25);
+ color: #fff; }
+ .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link .file-cta {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25);
+ color: #fff; }
+ .file.is-link:active .file-cta, .file.is-link.is-active .file-cta {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info .file-cta {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25);
+ color: #fff; }
+ .file.is-info:active .file-cta, .file.is-info.is-active .file-cta {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success .file-cta {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25);
+ color: #fff; }
+ .file.is-success:active .file-cta, .file.is-success.is-active .file-cta {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-warning .file-cta {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-danger .file-cta {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25);
+ color: #fff; }
+ .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-small, #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.75rem; }
+ .file.is-medium {
+ font-size: 1.25rem; }
+ .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ .file.is-large {
+ font-size: 1.5rem; }
+ .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .file.has-name.is-empty .file-cta {
+ border-radius: 4px; }
+ .file.has-name.is-empty .file-name {
+ display: none; }
+ .file.is-boxed .file-label {
+ flex-direction: column; }
+ .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ .file.is-boxed.has-name .file-cta {
+ border-radius: 4px 4px 0 0; }
+ .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 4px 4px;
+ border-width: 0 1px 1px; }
+ .file.is-centered {
+ justify-content: center; }
+ .file.is-fullwidth .file-label {
+ width: 100%; }
+ .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ .file.is-right {
+ justify-content: flex-end; }
+ .file.is-right .file-cta {
+ border-radius: 0 4px 4px 0; }
+ .file.is-right .file-name {
+ border-radius: 4px 0 0 4px;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+
+.file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ .file-label:hover .file-cta {
+ background-color: #eeeeee;
+ color: #363636; }
+ .file-label:hover .file-name {
+ border-color: #d5d5d5; }
+ .file-label:active .file-cta {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .file-label:active .file-name {
+ border-color: #cfcfcf; }
+
+.file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+
+.file-cta,
+.file-name {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+
+.file-cta {
+ background-color: whitesmoke;
+ color: #4a4a4a; }
+
+.file-name {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+
+.file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ .file-icon .fa {
+ font-size: 14px; }
+
+.label {
+ color: #363636;
+ display: block;
+ font-size: 1rem;
+ font-weight: 700; }
+ .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ .label.is-small, #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.75rem; }
+ .label.is-medium {
+ font-size: 1.25rem; }
+ .label.is-large {
+ font-size: 1.5rem; }
+
+.help {
+ display: block;
+ font-size: 0.75rem;
+ margin-top: 0.25rem; }
+ .help.is-white {
+ color: white; }
+ .help.is-black {
+ color: #0a0a0a; }
+ .help.is-light {
+ color: whitesmoke; }
+ .help.is-dark, .content kbd.help {
+ color: #363636; }
+ .help.is-primary, .docstring > section > a.help.docs-sourcelink {
+ color: #4eb5de; }
+ .help.is-link {
+ color: #2e63b8; }
+ .help.is-info {
+ color: #209cee; }
+ .help.is-success {
+ color: #22c35b; }
+ .help.is-warning {
+ color: #ffdd57; }
+ .help.is-danger {
+ color: #da0b00; }
+
+.field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+
+.field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ .field.has-addons .control:first-child:not(:only-child) .button,
+ .field.has-addons .control:first-child:not(:only-child) .input,
+ .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .field.has-addons .control:last-child:not(:only-child) .button,
+ .field.has-addons .control:last-child:not(:only-child) .input,
+ .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ .field.has-addons .control .input.is-hovered:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):hover,
+ .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):focus,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ .field.has-addons .control .input.is-focused:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):active,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ .field.has-addons .control .input.is-active:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):focus,
+ .field.has-addons .control .select select.is-focused:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):active,
+ .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):focus:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):active:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ .field.has-addons .control .input.is-active:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):focus:hover,
+ .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):active:hover,
+ .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+
+.field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ .field.is-grouped > .control {
+ flex-shrink: 0; }
+ .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field.is-horizontal {
+ display: flex; } }
+
+.field-label .label {
+ font-size: inherit; }
+
+@media screen and (max-width: 768px) {
+ .field-label {
+ margin-bottom: 0.5rem; } }
+
+@media screen and (min-width: 769px), print {
+ .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.75rem;
+ padding-top: 0.375em; }
+ .field-label.is-normal {
+ padding-top: 0.375em; }
+ .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+
+.field-body .field .field {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ .field-body .field {
+ margin-bottom: 0; }
+ .field-body > .field {
+ flex-shrink: 1; }
+ .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+
+.control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 1rem;
+ position: relative;
+ text-align: left; }
+ .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ .control.has-icons-right .select:focus ~ .icon {
+ color: #6b6b6b; }
+ .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.75rem; }
+ .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ .control.has-icons-left .icon, .control.has-icons-right .icon {
+ color: #dbdbdb;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ .control.has-icons-left .icon.is-left {
+ left: 0; }
+ .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ .control.has-icons-right .icon.is-right {
+ right: 0; }
+ .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.breadcrumb {
+ font-size: 1rem;
+ white-space: nowrap; }
+ .breadcrumb a {
+ align-items: center;
+ color: #2e63b8;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ .breadcrumb a:hover {
+ color: #363636; }
+ .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ .breadcrumb li:first-child a {
+ padding-left: 0; }
+ .breadcrumb li.is-active a {
+ color: #222222;
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb li + li::before {
+ color: #b5b5b5;
+ content: "\0002f"; }
+ .breadcrumb ul,
+ .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ .breadcrumb.is-centered ol,
+ .breadcrumb.is-centered ul {
+ justify-content: center; }
+ .breadcrumb.is-right ol,
+ .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.75rem; }
+ .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+
+.card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ max-width: 100%;
+ position: relative; }
+
+.card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+
+.card-header-title {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ .card-header-title.is-centered {
+ justify-content: center; }
+
+.card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+
+.card-image {
+ display: block;
+ position: relative; }
+
+.card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+
+.card-footer {
+ background-color: transparent;
+ border-top: 1px solid #dbdbdb;
+ align-items: stretch;
+ display: flex; }
+
+.card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ .card-footer-item:not(:last-child) {
+ border-right: 1px solid #dbdbdb; }
+
+.card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+
+.dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+
+.dropdown-content {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+
+.dropdown-item {
+ color: #4a4a4a;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+
+a.dropdown-item,
+button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ a.dropdown-item:hover,
+ button.dropdown-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ a.dropdown-item.is-active,
+ button.dropdown-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+.dropdown-divider {
+ background-color: #dbdbdb;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+
+.level {
+ align-items: center;
+ justify-content: space-between; }
+ .level code {
+ border-radius: 4px; }
+ .level img {
+ display: inline-block;
+ vertical-align: top; }
+ .level.is-mobile {
+ display: flex; }
+ .level.is-mobile .level-left,
+ .level.is-mobile .level-right {
+ display: flex; }
+ .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level {
+ display: flex; }
+ .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+.level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ .level-item .title,
+ .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+.level-left,
+.level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .level-left .level-item.is-flexible,
+ .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level-left .level-item:not(:last-child),
+ .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+.level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .level-left {
+ display: flex; } }
+.level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ .level-right {
+ display: flex; } }
+.list {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+
+.list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ .list-item:not(a) {
+ color: #222222; }
+ .list-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px; }
+ .list-item:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px; }
+ .list-item:not(:last-child) {
+ border-bottom: 1px solid #dbdbdb; }
+ .list-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+a.list-item {
+ background-color: whitesmoke;
+ cursor: pointer; }
+
+.media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .media .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ .media .media .content:not(:last-child),
+ .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ .media .media .media {
+ padding-top: 0.5rem; }
+ .media .media .media + .media {
+ margin-top: 0.5rem; }
+ .media + .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+
+.media-left,
+.media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.media-left {
+ margin-right: 1rem; }
+
+.media-right {
+ margin-left: 1rem; }
+
+.media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+
+@media screen and (max-width: 768px) {
+ .media-content {
+ overflow-x: auto; } }
+
+.menu {
+ font-size: 1rem; }
+ .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.75rem; }
+ .menu.is-medium {
+ font-size: 1.25rem; }
+ .menu.is-large {
+ font-size: 1.5rem; }
+
+.menu-list {
+ line-height: 1.25; }
+ .menu-list a {
+ border-radius: 2px;
+ color: #222222;
+ display: block;
+ padding: 0.5em 0.75em; }
+ .menu-list a:hover {
+ background-color: whitesmoke;
+ color: #222222; }
+ .menu-list a.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+ .menu-list li ul {
+ border-left: 1px solid #dbdbdb;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+
+.menu-label {
+ color: #6b6b6b;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+
+.message {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .message strong {
+ color: currentColor; }
+ .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .message.is-small, #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.75rem; }
+ .message.is-medium {
+ font-size: 1.25rem; }
+ .message.is-large {
+ font-size: 1.5rem; }
+ .message.is-white {
+ background-color: white; }
+ .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ .message.is-black {
+ background-color: #fafafa; }
+ .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ .message.is-light {
+ background-color: #fafafa; }
+ .message.is-light .message-header {
+ background-color: whitesmoke;
+ color: #363636; }
+ .message.is-light .message-body {
+ border-color: whitesmoke;
+ color: #505050; }
+ .message.is-dark, .content kbd.message {
+ background-color: #fafafa; }
+ .message.is-dark .message-header, .content kbd.message .message-header {
+ background-color: #363636;
+ color: whitesmoke; }
+ .message.is-dark .message-body, .content kbd.message .message-body {
+ border-color: #363636;
+ color: #2a2a2a; }
+ .message.is-primary, .docstring > section > a.message.docs-sourcelink {
+ background-color: #f6fbfd; }
+ .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #4eb5de;
+ color: #fff; }
+ .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #4eb5de;
+ color: #1f556a; }
+ .message.is-link {
+ background-color: #f7f9fd; }
+ .message.is-link .message-header {
+ background-color: #2e63b8;
+ color: #fff; }
+ .message.is-link .message-body {
+ border-color: #2e63b8;
+ color: #264981; }
+ .message.is-info {
+ background-color: #f6fbfe; }
+ .message.is-info .message-header {
+ background-color: #209cee;
+ color: #fff; }
+ .message.is-info .message-body {
+ border-color: #209cee;
+ color: #12537d; }
+ .message.is-success {
+ background-color: #f6fdf9; }
+ .message.is-success .message-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .message.is-success .message-body {
+ border-color: #22c35b;
+ color: #0f361d; }
+ .message.is-warning {
+ background-color: #fffdf5; }
+ .message.is-warning .message-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .message.is-warning .message-body {
+ border-color: #ffdd57;
+ color: #3c3108; }
+ .message.is-danger {
+ background-color: #fff5f5; }
+ .message.is-danger .message-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .message.is-danger .message-body {
+ border-color: #da0b00;
+ color: #9b0c04; }
+
+.message-header {
+ align-items: center;
+ background-color: #222222;
+ border-radius: 4px 4px 0 0;
+ color: #fff;
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.message-body {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #222222;
+ padding: 1.25em 1.5em; }
+ .message-body code,
+ .message-body pre {
+ background-color: white; }
+ .message-body pre code {
+ background-color: transparent; }
+
+.modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ .modal.is-active {
+ display: flex; }
+
+.modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+
+.modal-content,
+.modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ .modal-content,
+ .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+.modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+
+.modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+
+.modal-card-head,
+.modal-card-foot {
+ align-items: center;
+ background-color: whitesmoke;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+
+.modal-card-head {
+ border-bottom: 1px solid #dbdbdb;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.modal-card-title {
+ color: #222222;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+
+.modal-card-foot {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid #dbdbdb; }
+ .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+
+.modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+
+.navbar {
+ background-color: white;
+ min-height: 3.25rem;
+ position: relative;
+ z-index: 30; }
+ .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > .navbar-item,
+ .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-white .navbar-brand .navbar-link:focus,
+ .navbar.is-white .navbar-brand .navbar-link:hover,
+ .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-white .navbar-start > .navbar-item,
+ .navbar.is-white .navbar-start .navbar-link,
+ .navbar.is-white .navbar-end > .navbar-item,
+ .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ .navbar.is-white .navbar-start .navbar-link:focus,
+ .navbar.is-white .navbar-start .navbar-link:hover,
+ .navbar.is-white .navbar-start .navbar-link.is-active,
+ .navbar.is-white .navbar-end > a.navbar-item:focus,
+ .navbar.is-white .navbar-end > a.navbar-item:hover,
+ .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ .navbar.is-white .navbar-end .navbar-link:focus,
+ .navbar.is-white .navbar-end .navbar-link:hover,
+ .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start .navbar-link::after,
+ .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .navbar.is-black .navbar-brand > .navbar-item,
+ .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-black .navbar-brand .navbar-link:focus,
+ .navbar.is-black .navbar-brand .navbar-link:hover,
+ .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-black .navbar-start > .navbar-item,
+ .navbar.is-black .navbar-start .navbar-link,
+ .navbar.is-black .navbar-end > .navbar-item,
+ .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ .navbar.is-black .navbar-start .navbar-link:focus,
+ .navbar.is-black .navbar-start .navbar-link:hover,
+ .navbar.is-black .navbar-start .navbar-link.is-active,
+ .navbar.is-black .navbar-end > a.navbar-item:focus,
+ .navbar.is-black .navbar-end > a.navbar-item:hover,
+ .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ .navbar.is-black .navbar-end .navbar-link:focus,
+ .navbar.is-black .navbar-end .navbar-link:hover,
+ .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-start .navbar-link::after,
+ .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ .navbar.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .navbar.is-light .navbar-brand > .navbar-item,
+ .navbar.is-light .navbar-brand .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-light .navbar-brand .navbar-link:focus,
+ .navbar.is-light .navbar-brand .navbar-link:hover,
+ .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-burger {
+ color: #363636; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-light .navbar-start > .navbar-item,
+ .navbar.is-light .navbar-start .navbar-link,
+ .navbar.is-light .navbar-end > .navbar-item,
+ .navbar.is-light .navbar-end .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ .navbar.is-light .navbar-start .navbar-link:focus,
+ .navbar.is-light .navbar-start .navbar-link:hover,
+ .navbar.is-light .navbar-start .navbar-link.is-active,
+ .navbar.is-light .navbar-end > a.navbar-item:focus,
+ .navbar.is-light .navbar-end > a.navbar-item:hover,
+ .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ .navbar.is-light .navbar-end .navbar-link:focus,
+ .navbar.is-light .navbar-end .navbar-link:hover,
+ .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-start .navbar-link::after,
+ .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #363636; } }
+ .navbar.is-dark, .content kbd.navbar {
+ background-color: #363636;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item,
+ .navbar.is-dark .navbar-brand .navbar-link,
+ .content kbd.navbar .navbar-brand .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-brand .navbar-link:focus,
+ .content kbd.navbar .navbar-brand .navbar-link:focus,
+ .navbar.is-dark .navbar-brand .navbar-link:hover,
+ .content kbd.navbar .navbar-brand .navbar-link:hover,
+ .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger {
+ color: whitesmoke; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item,
+ .navbar.is-dark .navbar-start .navbar-link,
+ .content kbd.navbar .navbar-start .navbar-link,
+ .navbar.is-dark .navbar-end > .navbar-item,
+ .content kbd.navbar .navbar-end > .navbar-item,
+ .navbar.is-dark .navbar-end .navbar-link,
+ .content kbd.navbar .navbar-end .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-start .navbar-link:focus,
+ .content kbd.navbar .navbar-start .navbar-link:focus,
+ .navbar.is-dark .navbar-start .navbar-link:hover,
+ .content kbd.navbar .navbar-start .navbar-link:hover,
+ .navbar.is-dark .navbar-start .navbar-link.is-active,
+ .content kbd.navbar .navbar-start .navbar-link.is-active,
+ .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-end .navbar-link:focus,
+ .content kbd.navbar .navbar-end .navbar-link:focus,
+ .navbar.is-dark .navbar-end .navbar-link:hover,
+ .content kbd.navbar .navbar-end .navbar-link:hover,
+ .navbar.is-dark .navbar-end .navbar-link.is-active,
+ .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after,
+ .navbar.is-dark .navbar-end .navbar-link::after,
+ .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #363636;
+ color: whitesmoke; } }
+ .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ .navbar.is-primary .navbar-brand .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-brand .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ .navbar.is-primary .navbar-brand .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ .navbar.is-primary .navbar-start .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ .navbar.is-primary .navbar-end > .navbar-item,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ .navbar.is-primary .navbar-end .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-start .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ .navbar.is-primary .navbar-start .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ .navbar.is-primary .navbar-start .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-end .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ .navbar.is-primary .navbar-end .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ .navbar.is-primary .navbar-end .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ .navbar.is-primary .navbar-end .navbar-link::after,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #4eb5de;
+ color: #fff; } }
+ .navbar.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .navbar.is-link .navbar-brand > .navbar-item,
+ .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-link .navbar-brand .navbar-link:focus,
+ .navbar.is-link .navbar-brand .navbar-link:hover,
+ .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-link .navbar-start > .navbar-item,
+ .navbar.is-link .navbar-start .navbar-link,
+ .navbar.is-link .navbar-end > .navbar-item,
+ .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ .navbar.is-link .navbar-start .navbar-link:focus,
+ .navbar.is-link .navbar-start .navbar-link:hover,
+ .navbar.is-link .navbar-start .navbar-link.is-active,
+ .navbar.is-link .navbar-end > a.navbar-item:focus,
+ .navbar.is-link .navbar-end > a.navbar-item:hover,
+ .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ .navbar.is-link .navbar-end .navbar-link:focus,
+ .navbar.is-link .navbar-end .navbar-link:hover,
+ .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-start .navbar-link::after,
+ .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; } }
+ .navbar.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .navbar.is-info .navbar-brand > .navbar-item,
+ .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-info .navbar-brand .navbar-link:focus,
+ .navbar.is-info .navbar-brand .navbar-link:hover,
+ .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-info .navbar-start > .navbar-item,
+ .navbar.is-info .navbar-start .navbar-link,
+ .navbar.is-info .navbar-end > .navbar-item,
+ .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ .navbar.is-info .navbar-start .navbar-link:focus,
+ .navbar.is-info .navbar-start .navbar-link:hover,
+ .navbar.is-info .navbar-start .navbar-link.is-active,
+ .navbar.is-info .navbar-end > a.navbar-item:focus,
+ .navbar.is-info .navbar-end > a.navbar-item:hover,
+ .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ .navbar.is-info .navbar-end .navbar-link:focus,
+ .navbar.is-info .navbar-end .navbar-link:hover,
+ .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-start .navbar-link::after,
+ .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #209cee;
+ color: #fff; } }
+ .navbar.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .navbar.is-success .navbar-brand > .navbar-item,
+ .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-success .navbar-brand .navbar-link:focus,
+ .navbar.is-success .navbar-brand .navbar-link:hover,
+ .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-success .navbar-start > .navbar-item,
+ .navbar.is-success .navbar-start .navbar-link,
+ .navbar.is-success .navbar-end > .navbar-item,
+ .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ .navbar.is-success .navbar-start .navbar-link:focus,
+ .navbar.is-success .navbar-start .navbar-link:hover,
+ .navbar.is-success .navbar-start .navbar-link.is-active,
+ .navbar.is-success .navbar-end > a.navbar-item:focus,
+ .navbar.is-success .navbar-end > a.navbar-item:hover,
+ .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ .navbar.is-success .navbar-end .navbar-link:focus,
+ .navbar.is-success .navbar-end .navbar-link:hover,
+ .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-start .navbar-link::after,
+ .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #22c35b;
+ color: #fff; } }
+ .navbar.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > .navbar-item,
+ .navbar.is-warning .navbar-brand .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-brand .navbar-link:focus,
+ .navbar.is-warning .navbar-brand .navbar-link:hover,
+ .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-burger {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-warning .navbar-start > .navbar-item,
+ .navbar.is-warning .navbar-start .navbar-link,
+ .navbar.is-warning .navbar-end > .navbar-item,
+ .navbar.is-warning .navbar-end .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-start .navbar-link:focus,
+ .navbar.is-warning .navbar-start .navbar-link:hover,
+ .navbar.is-warning .navbar-start .navbar-link.is-active,
+ .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-end .navbar-link:focus,
+ .navbar.is-warning .navbar-end .navbar-link:hover,
+ .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start .navbar-link::after,
+ .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); } }
+ .navbar.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > .navbar-item,
+ .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-brand .navbar-link:focus,
+ .navbar.is-danger .navbar-brand .navbar-link:hover,
+ .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-danger .navbar-start > .navbar-item,
+ .navbar.is-danger .navbar-start .navbar-link,
+ .navbar.is-danger .navbar-end > .navbar-item,
+ .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-start .navbar-link:focus,
+ .navbar.is-danger .navbar-start .navbar-link:hover,
+ .navbar.is-danger .navbar-start .navbar-link.is-active,
+ .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-end .navbar-link:focus,
+ .navbar.is-danger .navbar-end .navbar-link:hover,
+ .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-start .navbar-link::after,
+ .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #da0b00;
+ color: #fff; } }
+ .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+ width: 100%; }
+ .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 whitesmoke; }
+ .navbar.is-fixed-bottom, .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom {
+ bottom: 0; }
+ .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 whitesmoke; }
+ .navbar.is-fixed-top {
+ top: 0; }
+
+html.has-navbar-fixed-top,
+body.has-navbar-fixed-top {
+ padding-top: 3.25rem; }
+
+html.has-navbar-fixed-bottom,
+body.has-navbar-fixed-bottom {
+ padding-bottom: 3.25rem; }
+
+.navbar-brand,
+.navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 3.25rem; }
+
+.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+
+.navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+.navbar-burger {
+ color: #4a4a4a;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto; }
+ .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+
+.navbar-menu {
+ display: none; }
+
+.navbar-item,
+.navbar-link {
+ color: #4a4a4a;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .navbar-item .icon:only-child,
+ .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+
+a.navbar-item,
+.navbar-link {
+ cursor: pointer; }
+ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
+ .navbar-link:focus,
+ .navbar-link:focus-within,
+ .navbar-link:hover,
+ .navbar-link.is-active {
+ background-color: #fafafa;
+ color: #2e63b8; }
+
+.navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .navbar-item img {
+ max-height: 1.75rem; }
+ .navbar-item.has-dropdown {
+ padding: 0; }
+ .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 3.25rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ .navbar-item.is-tab:focus, .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #2e63b8; }
+ .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #2e63b8;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #2e63b8;
+ padding-bottom: calc(0.5rem - 3px); }
+
+.navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+
+.navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ .navbar-link:not(.is-arrowless)::after {
+ border-color: #2e63b8;
+ margin-top: -0.375em;
+ right: 1.125em; }
+
+.navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+
+.navbar-divider {
+ background-color: whitesmoke;
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+
+@media screen and (max-width: 1055px) {
+ .navbar > .container {
+ display: block; }
+ .navbar-brand .navbar-item,
+ .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ .navbar-link::after {
+ display: none; }
+ .navbar-menu {
+ background-color: white;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ .navbar-menu.is-active {
+ display: block; }
+ .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-touch {
+ top: 0; }
+ .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto; }
+ html.has-navbar-fixed-top-touch,
+ body.has-navbar-fixed-top-touch {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-touch,
+ body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 3.25rem; } }
+
+@media screen and (min-width: 1056px) {
+ .navbar,
+ .navbar-menu,
+ .navbar-start,
+ .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ .navbar {
+ min-height: 3.25rem; }
+ .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ .navbar.is-spaced .navbar-start,
+ .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ .navbar.is-spaced a.navbar-item,
+ .navbar.is-spaced .navbar-link {
+ border-radius: 4px; }
+ .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active,
+ .navbar.is-transparent .navbar-link:focus,
+ .navbar.is-transparent .navbar-link:hover,
+ .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar-burger {
+ display: none; }
+ .navbar-item,
+ .navbar-link {
+ align-items: center;
+ display: flex; }
+ .navbar-item {
+ display: flex; }
+ .navbar-item.has-dropdown {
+ align-items: stretch; }
+ .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 2px solid #dbdbdb;
+ border-radius: 6px 6px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ .navbar-dropdown {
+ background-color: white;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid #dbdbdb;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed {
+ border-radius: 6px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ .navbar-divider {
+ display: block; }
+ .navbar > .container .navbar-brand,
+ .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ .navbar > .container .navbar-menu,
+ .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.has-navbar-fixed-top-desktop,
+ body.has-navbar-fixed-top-desktop {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-desktop,
+ body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 3.25rem; }
+ html.has-spaced-navbar-fixed-top,
+ body.has-spaced-navbar-fixed-top {
+ padding-top: 5.25rem; }
+ html.has-spaced-navbar-fixed-bottom,
+ body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 5.25rem; }
+ a.navbar-item.is-active,
+ .navbar-link.is-active {
+ color: #0a0a0a; }
+ a.navbar-item.is-active:not(:focus):not(:hover),
+ .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #fafafa; } }
+
+.hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 3.25rem); }
+
+.pagination {
+ font-size: 1rem;
+ margin: -0.25rem; }
+ .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.75rem; }
+ .pagination.is-medium {
+ font-size: 1.25rem; }
+ .pagination.is-large {
+ font-size: 1.5rem; }
+ .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ .pagination.is-rounded .pagination-next,
+ #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+
+.pagination,
+.pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link {
+ border-color: #dbdbdb;
+ color: #363636;
+ min-width: 2.25em; }
+ .pagination-previous:hover,
+ .pagination-next:hover,
+ .pagination-link:hover {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus {
+ border-color: #3c5dcd; }
+ .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled] {
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ color: #6b6b6b;
+ opacity: 0.5; }
+
+.pagination-previous,
+.pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+
+.pagination-link.is-current {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+
+.pagination-ellipsis {
+ color: #b5b5b5;
+ pointer-events: none; }
+
+.pagination-list {
+ flex-wrap: wrap; }
+
+@media screen and (max-width: 768px) {
+ .pagination {
+ flex-wrap: wrap; }
+ .pagination-previous,
+ .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+
+@media screen and (min-width: 769px), print {
+ .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ .pagination-previous {
+ order: 2; }
+ .pagination-next {
+ order: 3; }
+ .pagination {
+ justify-content: space-between; }
+ .pagination.is-centered .pagination-previous {
+ order: 1; }
+ .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ .pagination.is-centered .pagination-next {
+ order: 3; }
+ .pagination.is-right .pagination-previous {
+ order: 1; }
+ .pagination.is-right .pagination-next {
+ order: 2; }
+ .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+
+.panel {
+ font-size: 1rem; }
+ .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.panel-heading,
+.panel-tabs,
+.panel-block {
+ border-bottom: 1px solid #dbdbdb;
+ border-left: 1px solid #dbdbdb;
+ border-right: 1px solid #dbdbdb; }
+ .panel-heading:first-child,
+ .panel-tabs:first-child,
+ .panel-block:first-child {
+ border-top: 1px solid #dbdbdb; }
+
+.panel-heading {
+ background-color: whitesmoke;
+ border-radius: 4px 4px 0 0;
+ color: #222222;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+
+.panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ .panel-tabs a {
+ border-bottom: 1px solid #dbdbdb;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ .panel-tabs a.is-active {
+ border-bottom-color: #4a4a4a;
+ color: #363636; }
+
+.panel-list a {
+ color: #222222; }
+ .panel-list a:hover {
+ color: #2e63b8; }
+
+.panel-block {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ .panel-block.is-active {
+ border-left-color: #2e63b8;
+ color: #363636; }
+ .panel-block.is-active .panel-icon {
+ color: #2e63b8; }
+
+a.panel-block,
+label.panel-block {
+ cursor: pointer; }
+ a.panel-block:hover,
+ label.panel-block:hover {
+ background-color: whitesmoke; }
+
+.panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: #6b6b6b;
+ margin-right: 0.75em; }
+ .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+
+.tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 1rem;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ .tabs a {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #222222;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ .tabs a:hover {
+ border-bottom-color: #222222;
+ color: #222222; }
+ .tabs li {
+ display: block; }
+ .tabs li.is-active a {
+ border-bottom-color: #2e63b8;
+ color: #2e63b8; }
+ .tabs ul {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ .tabs ul.is-left {
+ padding-right: 0.75em; }
+ .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ .tabs.is-centered ul {
+ justify-content: center; }
+ .tabs.is-right ul {
+ justify-content: flex-end; }
+ .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .tabs.is-boxed a:hover {
+ background-color: whitesmoke;
+ border-bottom-color: #dbdbdb; }
+ .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-bottom-color: transparent !important; }
+ .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .tabs.is-toggle a {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ .tabs.is-toggle a:hover {
+ background-color: whitesmoke;
+ border-color: #b5b5b5;
+ z-index: 2; }
+ .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ .tabs.is-toggle li:first-child a {
+ border-radius: 4px 0 0 4px; }
+ .tabs.is-toggle li:last-child a {
+ border-radius: 0 4px 4px 0; }
+ .tabs.is-toggle li.is-active a {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff;
+ z-index: 1; }
+ .tabs.is-toggle ul {
+ border-bottom: none; }
+ .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.75rem; }
+ .tabs.is-medium {
+ font-size: 1.25rem; }
+ .tabs.is-large {
+ font-size: 1.5rem; }
+
+.column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ .column.is-narrow-mobile {
+ flex: none; }
+ .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ .column.is-narrow, .column.is-narrow-tablet {
+ flex: none; }
+ .column.is-full, .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters, .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds, .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half, .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third, .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter, .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth, .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths, .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths, .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths, .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ .column.is-offset-half, .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ .column.is-offset-one-third, .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ .column.is-0, .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0, .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ .column.is-1, .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1, .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ .column.is-2, .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2, .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ .column.is-3, .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3, .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ .column.is-4, .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4, .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ .column.is-5, .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5, .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ .column.is-6, .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6, .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ .column.is-7, .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7, .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ .column.is-8, .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8, .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ .column.is-9, .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9, .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ .column.is-10, .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10, .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ .column.is-11, .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11, .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ .column.is-12, .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12, .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ .column.is-narrow-touch {
+ flex: none; }
+ .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-touch {
+ margin-left: 50%; }
+ .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-touch {
+ margin-left: 0%; }
+ .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-touch {
+ margin-left: 25%; }
+ .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-touch {
+ margin-left: 50%; }
+ .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-touch {
+ margin-left: 75%; }
+ .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ .column.is-narrow-desktop {
+ flex: none; }
+ .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ .column.is-narrow-widescreen {
+ flex: none; }
+ .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ .column.is-narrow-fullhd {
+ flex: none; }
+ .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+.columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .columns:last-child {
+ margin-bottom: -0.75rem; }
+ .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ .columns.is-centered {
+ justify-content: center; }
+ .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ .columns.is-mobile {
+ display: flex; }
+ .columns.is-multiline {
+ flex-wrap: wrap; }
+ .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-desktop {
+ display: flex; } }
+.columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+.tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .tile.is-child {
+ margin: 0 !important; }
+ .tile.is-parent {
+ padding: 0.75rem; }
+ .tile.is-vertical {
+ flex-direction: column; }
+ .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ .tile:not(.is-child) {
+ display: flex; }
+ .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+.hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ .hero .navbar {
+ background: none; }
+ .hero .tabs ul {
+ border-bottom: none; }
+ .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-white strong {
+ color: inherit; }
+ .hero.is-white .title {
+ color: #0a0a0a; }
+ .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ .hero.is-white .subtitle a:not(.button),
+ .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-white .navbar-menu {
+ background-color: white; } }
+ .hero.is-white .navbar-item,
+ .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active,
+ .hero.is-white .navbar-link:hover,
+ .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-black strong {
+ color: inherit; }
+ .hero.is-black .title {
+ color: white; }
+ .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-black .subtitle a:not(.button),
+ .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ .hero.is-black .navbar-item,
+ .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active,
+ .hero.is-black .navbar-link:hover,
+ .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ .hero.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-light strong {
+ color: inherit; }
+ .hero.is-light .title {
+ color: #363636; }
+ .hero.is-light .subtitle {
+ color: rgba(54, 54, 54, 0.9); }
+ .hero.is-light .subtitle a:not(.button),
+ .hero.is-light .subtitle strong {
+ color: #363636; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-light .navbar-menu {
+ background-color: whitesmoke; } }
+ .hero.is-light .navbar-item,
+ .hero.is-light .navbar-link {
+ color: rgba(54, 54, 54, 0.7); }
+ .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active,
+ .hero.is-light .navbar-link:hover,
+ .hero.is-light .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .hero.is-light .tabs a {
+ color: #363636;
+ opacity: 0.9; }
+ .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a {
+ color: #363636; }
+ .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }
+ .hero.is-dark, .content kbd.hero {
+ background-color: #363636;
+ color: whitesmoke; }
+ .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-dark strong,
+ .content kbd.hero strong {
+ color: inherit; }
+ .hero.is-dark .title, .content kbd.hero .title {
+ color: whitesmoke; }
+ .hero.is-dark .subtitle, .content kbd.hero .subtitle {
+ color: rgba(245, 245, 245, 0.9); }
+ .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button),
+ .hero.is-dark .subtitle strong,
+ .content kbd.hero .subtitle strong {
+ color: whitesmoke; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu {
+ background-color: #363636; } }
+ .hero.is-dark .navbar-item, .content kbd.hero .navbar-item,
+ .hero.is-dark .navbar-link,
+ .content kbd.hero .navbar-link {
+ color: rgba(245, 245, 245, 0.7); }
+ .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active,
+ .hero.is-dark .navbar-link:hover,
+ .content kbd.hero .navbar-link:hover,
+ .hero.is-dark .navbar-link.is-active,
+ .content kbd.hero .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .hero.is-dark .tabs a, .content kbd.hero .tabs a {
+ color: whitesmoke;
+ opacity: 0.9; }
+ .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a {
+ color: whitesmoke; }
+ .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .hero.is-dark.is-bold, .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }
+ .hero.is-primary, .docstring > section > a.hero.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-primary strong,
+ .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ .hero.is-primary .subtitle strong,
+ .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #4eb5de; } }
+ .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ .hero.is-primary .navbar-link,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ .hero.is-primary .navbar-link:hover,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ .hero.is-primary .navbar-link.is-active,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #4eb5de; }
+ .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } }
+ .hero.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-link strong {
+ color: inherit; }
+ .hero.is-link .title {
+ color: #fff; }
+ .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-link .subtitle a:not(.button),
+ .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-link .navbar-menu {
+ background-color: #2e63b8; } }
+ .hero.is-link .navbar-item,
+ .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active,
+ .hero.is-link .navbar-link:hover,
+ .hero.is-link .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #2e63b8; }
+ .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } }
+ .hero.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-info strong {
+ color: inherit; }
+ .hero.is-info .title {
+ color: #fff; }
+ .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-info .subtitle a:not(.button),
+ .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-info .navbar-menu {
+ background-color: #209cee; } }
+ .hero.is-info .navbar-item,
+ .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active,
+ .hero.is-info .navbar-link:hover,
+ .hero.is-info .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #209cee; }
+ .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } }
+ .hero.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-success strong {
+ color: inherit; }
+ .hero.is-success .title {
+ color: #fff; }
+ .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-success .subtitle a:not(.button),
+ .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-success .navbar-menu {
+ background-color: #22c35b; } }
+ .hero.is-success .navbar-item,
+ .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active,
+ .hero.is-success .navbar-link:hover,
+ .hero.is-success .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #22c35b; }
+ .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } }
+ .hero.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-warning strong {
+ color: inherit; }
+ .hero.is-warning .title {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .subtitle {
+ color: rgba(0, 0, 0, 0.9); }
+ .hero.is-warning .subtitle a:not(.button),
+ .hero.is-warning .subtitle strong {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (max-width: 1055px) {
+ .hero.is-warning .navbar-menu {
+ background-color: #ffdd57; } }
+ .hero.is-warning .navbar-item,
+ .hero.is-warning .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active,
+ .hero.is-warning .navbar-link:hover,
+ .hero.is-warning .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9; }
+ .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } }
+ .hero.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-danger strong {
+ color: inherit; }
+ .hero.is-danger .title {
+ color: #fff; }
+ .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-danger .subtitle a:not(.button),
+ .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-danger .navbar-menu {
+ background-color: #da0b00; } }
+ .hero.is-danger .navbar-item,
+ .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active,
+ .hero.is-danger .navbar-link:hover,
+ .hero.is-danger .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #da0b00; }
+ .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } }
+ .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .hero.is-halfheight {
+ min-height: 50vh; }
+ .hero.is-fullheight {
+ min-height: 100vh; }
+
+.hero-video {
+ overflow: hidden; }
+ .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ .hero-video {
+ display: none; } }
+.hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .hero-buttons .button {
+ display: flex; }
+ .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+.hero-head,
+.hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+
+.section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ .section.is-medium {
+ padding: 9rem 1.5rem; }
+ .section.is-large {
+ padding: 18rem 1.5rem; } }
+.footer {
+ background-color: #fafafa;
+ padding: 3rem 1.5rem 6rem; }
+
+h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited {
+ color: #222222; }
+
+h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+
+h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+
+.docs-dark-only {
+ display: none !important; }
+
+pre {
+ position: relative;
+ overflow: hidden; }
+ pre code, pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ pre code:first-of-type, pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ pre code:last-of-type, pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #222222;
+ cursor: pointer;
+ text-align: center; }
+ pre .copy-button:focus, pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(34, 34, 34, 0.1);
+ color: #2e63b8; }
+ pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ pre:hover .copy-button {
+ opacity: 1; }
+
+.admonition {
+ background-color: #b5b5b5;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #363636;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .admonition strong {
+ color: currentColor; }
+ .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.75rem; }
+ .admonition.is-medium {
+ font-size: 1.25rem; }
+ .admonition.is-large {
+ font-size: 1.5rem; }
+ .admonition.is-default {
+ background-color: #b5b5b5;
+ border-color: #363636; }
+ .admonition.is-default > .admonition-header {
+ background-color: #363636;
+ color: #fff; }
+ .admonition.is-default > .admonition-body {
+ color: #fff; }
+ .admonition.is-info {
+ background-color: #def0fc;
+ border-color: #209cee; }
+ .admonition.is-info > .admonition-header {
+ background-color: #209cee;
+ color: #fff; }
+ .admonition.is-info > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-success {
+ background-color: #bdf4d1;
+ border-color: #22c35b; }
+ .admonition.is-success > .admonition-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .admonition.is-success > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning {
+ background-color: #fff3c5;
+ border-color: #ffdd57; }
+ .admonition.is-warning > .admonition-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-danger {
+ background-color: #ffaba7;
+ border-color: #da0b00; }
+ .admonition.is-danger > .admonition-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .admonition.is-danger > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-compat {
+ background-color: #bdeff5;
+ border-color: #1db5c9; }
+ .admonition.is-compat > .admonition-header {
+ background-color: #1db5c9;
+ color: #fff; }
+ .admonition.is-compat > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+
+.admonition-header {
+ color: #fff;
+ background-color: #363636;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+
+.admonition-body {
+ color: #222222;
+ padding: 0.5rem 0.75rem; }
+ .admonition-body pre {
+ background-color: whitesmoke; }
+ .admonition-body code {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #dbdbdb;
+ box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1);
+ max-width: 100%; }
+ .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: whitesmoke;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > header code {
+ background-color: transparent; }
+ .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > section:last-child {
+ border-bottom: none; }
+ .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+
+.documenter-example-output {
+ background-color: white; }
+
+.outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #ffaba7;
+ color: rgba(0, 0, 0, 0.7);
+ border-bottom: 3px solid #da0b00;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ .outdated-warning-overlay a {
+ color: #2e63b8; }
+ .outdated-warning-overlay a:hover {
+ color: #363636; }
+
+.content pre {
+ border: 1px solid #dbdbdb; }
+
+.content code {
+ font-weight: inherit; }
+
+.content a code {
+ color: #2e63b8; }
+
+.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code {
+ color: #222222; }
+
+.content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+
+.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+
+pre, code {
+ font-variant-ligatures: no-contextual; }
+
+.breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover {
+ color: #222222; }
+
+.hljs {
+ background: initial !important; }
+
+.katex .katex-mathml {
+ top: 0;
+ right: 0; }
+
+.katex-display, mjx-container, .MathJax_Display {
+ margin: 0.5em 0 !important; }
+
+html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+
+li.no-marker {
+ list-style: none; }
+
+/* This file contain the overall layout.
+ *
+ * The main container is
that is identified by id #documenter.
+ */
+#documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+@media screen and (min-width: 1056px) {
+ #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+
+@media screen and (max-width: 1055px) {
+ #documenter .docs-main {
+ width: 100%; }
+ #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-main > header, #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+
+#documenter .docs-main header.docs-navbar {
+ background-color: white;
+ border-bottom: 1px solid #dbdbdb;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #bbb;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+#documenter .docs-main section.footnotes {
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+
+#documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #dbdbdb;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+
+#documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #0a0a0a;
+ background-color: whitesmoke;
+ border-right: 1px solid #dbdbdb;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 1rem;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #bbb; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #0a0a0a; }
+ #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #dbdbdb;
+ display: none;
+ padding: 0.5rem; }
+ #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #dbdbdb;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 0.95rem;
+ margin-left: 1em;
+ border-left: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 0.75rem;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #0a0a0a;
+ background: whitesmoke; }
+ #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #0a0a0a;
+ background-color: #ebebeb; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #dbdbdb;
+ border-bottom: 1px solid #dbdbdb;
+ background-color: white; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: white;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #ebebeb;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 0.85rem;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+#documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+
+#documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+
+.ansi span.sgr1 {
+ font-weight: bolder; }
+
+.ansi span.sgr2 {
+ font-weight: lighter; }
+
+.ansi span.sgr3 {
+ font-style: italic; }
+
+.ansi span.sgr4 {
+ text-decoration: underline; }
+
+.ansi span.sgr7 {
+ color: white;
+ background-color: #222222; }
+
+.ansi span.sgr8 {
+ color: transparent; }
+ .ansi span.sgr8 span {
+ color: transparent; }
+
+.ansi span.sgr9 {
+ text-decoration: line-through; }
+
+.ansi span.sgr30 {
+ color: #242424; }
+
+.ansi span.sgr31 {
+ color: #a7201f; }
+
+.ansi span.sgr32 {
+ color: #066f00; }
+
+.ansi span.sgr33 {
+ color: #856b00; }
+
+.ansi span.sgr34 {
+ color: #2149b0; }
+
+.ansi span.sgr35 {
+ color: #7d4498; }
+
+.ansi span.sgr36 {
+ color: #007989; }
+
+.ansi span.sgr37 {
+ color: gray; }
+
+.ansi span.sgr40 {
+ background-color: #242424; }
+
+.ansi span.sgr41 {
+ background-color: #a7201f; }
+
+.ansi span.sgr42 {
+ background-color: #066f00; }
+
+.ansi span.sgr43 {
+ background-color: #856b00; }
+
+.ansi span.sgr44 {
+ background-color: #2149b0; }
+
+.ansi span.sgr45 {
+ background-color: #7d4498; }
+
+.ansi span.sgr46 {
+ background-color: #007989; }
+
+.ansi span.sgr47 {
+ background-color: gray; }
+
+.ansi span.sgr90 {
+ color: #616161; }
+
+.ansi span.sgr91 {
+ color: #cb3c33; }
+
+.ansi span.sgr92 {
+ color: #0e8300; }
+
+.ansi span.sgr93 {
+ color: #a98800; }
+
+.ansi span.sgr94 {
+ color: #3c5dcd; }
+
+.ansi span.sgr95 {
+ color: #9256af; }
+
+.ansi span.sgr96 {
+ color: #008fa3; }
+
+.ansi span.sgr97 {
+ color: whitesmoke; }
+
+.ansi span.sgr100 {
+ background-color: #616161; }
+
+.ansi span.sgr101 {
+ background-color: #cb3c33; }
+
+.ansi span.sgr102 {
+ background-color: #0e8300; }
+
+.ansi span.sgr103 {
+ background-color: #a98800; }
+
+.ansi span.sgr104 {
+ background-color: #3c5dcd; }
+
+.ansi span.sgr105 {
+ background-color: #9256af; }
+
+.ansi span.sgr106 {
+ background-color: #008fa3; }
+
+.ansi span.sgr107 {
+ background-color: whitesmoke; }
+
+code.language-julia-repl > span.hljs-meta {
+ color: #066f00;
+ font-weight: bolder; }
+
+/*!
+ Theme: Default
+ Description: Original highlight.js style
+ Author: (c) Ivan Sagalaev
+ Maintainer: @highlightjs/core-team
+ Website: https://highlightjs.org/
+ License: see project LICENSE
+ Touched: 2021
+*/
+/*
+This is left on purpose making default.css the single file that can be lifted
+as-is from the repository directly without the need for a build step
+
+Typically this "required" baseline CSS is added by `makestuff.js` during build.
+*/
+pre code.hljs {
+ display: block;
+ overflow-x: auto; }
+
+code.hljs {
+ padding: 3px 5px; }
+
+/* end baseline CSS */
+.hljs {
+ background: #F0F0F0;
+ color: #444; }
+
+/* Base color: saturation 0; */
+.hljs-subst {
+ /* default */ }
+
+/* purposely ignored */
+.hljs-comment {
+ color: #888888; }
+
+.hljs-tag,
+.hljs-punctuation {
+ color: #444a; }
+
+.hljs-tag .hljs-name,
+.hljs-tag .hljs-attr {
+ color: #444; }
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta .hljs-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold; }
+
+/* User color: hue: 0 */
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000; }
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold; }
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-operator,
+.hljs-selector-pseudo {
+ color: #BC6060; }
+
+/* Language color: hue: 90; */
+.hljs-literal {
+ color: #78A960; }
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #397300; }
+
+/* Meta color: hue: 200 */
+.hljs-meta {
+ color: #1f7199; }
+
+.hljs-meta .hljs-string {
+ color: #4d99bf; }
+
+/* Misc effects */
+.hljs-emphasis {
+ font-style: italic; }
+
+.hljs-strong {
+ font-weight: bold; }
diff --git a/v0.3.0/assets/themeswap.js b/v0.3.0/assets/themeswap.js
new file mode 100644
index 0000000..c58e993
--- /dev/null
+++ b/v0.3.0/assets/themeswap.js
@@ -0,0 +1,66 @@
+// Small function to quickly swap out themes. Gets put into the tag..
+function set_theme_from_local_storage() {
+ // Intialize the theme to null, which means default
+ var theme = null;
+ // If the browser supports the localstorage and is not disabled then try to get the
+ // documenter theme
+ if(window.localStorage != null) {
+ // Get the user-picked theme from localStorage. May be `null`, which means the default
+ // theme.
+ theme = window.localStorage.getItem("documenter-theme");
+ }
+ // Check if the browser supports user color preference
+ var darkPreference = false;
+ // Check if the users preference is for dark color scheme
+ if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) {
+ darkPreference = true;
+ }
+ // Initialize a few variables for the loop:
+ //
+ // - active: will contain the index of the theme that should be active. Note that there
+ // is no guarantee that localStorage contains sane values. If `active` stays `null`
+ // we either could not find the theme or it is the default (primary) theme anyway.
+ // Either way, we then need to stick to the primary theme.
+ //
+ // - disabled: style sheets that should be disabled (i.e. all the theme style sheets
+ // that are not the currently active theme)
+ var active = null; var disabled = []; var darkTheme = null;
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ // The tag of each style sheet is expected to have a data-theme-name attribute
+ // which must contain the name of the theme. The names in localStorage much match this.
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ // attribute not set => non-theme stylesheet => ignore
+ if(themename === null) continue;
+ // To distinguish the default (primary) theme, it needs to have the data-theme-primary
+ // attribute set.
+ var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
+ // Check if the theme is primary dark theme
+ var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null);
+ // If ss is for dark theme then set the value of darkTheme to the name of the theme
+ if(isDarkTheme) darkTheme = themename;
+ // If we find a matching theme (and it's not the default), we'll set active to non-null
+ if(themename === theme) active = i;
+ // Store the style sheets of inactive themes so that we could disable them
+ if(themename !== theme) disabled.push(ss);
+ }
+ if(active !== null) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+ else if(darkTheme !== null && darkPreference === true) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + darkTheme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) {
+ ss.disabled = true;
+ }
+ });
+ }
+}
+set_theme_from_local_storage();
diff --git a/v0.3.0/assets/warner.js b/v0.3.0/assets/warner.js
new file mode 100644
index 0000000..5531c88
--- /dev/null
+++ b/v0.3.0/assets/warner.js
@@ -0,0 +1,49 @@
+function maybeAddWarning () {
+ // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
+ // in siteinfo.js.
+ // If either of these are undefined something went horribly wrong, so we abort.
+ if (
+ window.DOCUMENTER_NEWEST === undefined ||
+ window.DOCUMENTER_CURRENT_VERSION === undefined ||
+ window.DOCUMENTER_STABLE === undefined
+ ) {
+ return
+ };
+
+ // Current version is not a version number, so we can't tell if it's the newest version. Abort.
+ if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
+ return
+ };
+
+ // Current version is newest version, so no need to add a warning.
+ if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
+ return
+ };
+
+ // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
+ if (document.body.querySelector('meta[name="robots"]') === null) {
+ const meta = document.createElement('meta');
+ meta.name = 'robots';
+ meta.content = 'noindex';
+
+ document.getElementsByTagName('head')[0].appendChild(meta);
+ };
+
+ const div = document.createElement('div');
+ div.classList.add('outdated-warning-overlay');
+ const closer = document.createElement('button');
+ closer.classList.add('outdated-warning-closer', 'delete');
+ closer.addEventListener('click', function () {
+ document.body.removeChild(div);
+ });
+ const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE;
+ div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
+ div.appendChild(closer);
+ document.body.appendChild(div);
+};
+
+if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', maybeAddWarning);
+} else {
+ maybeAddWarning();
+};
diff --git a/v0.3.0/generated/examples/01-tomography.ipynb b/v0.3.0/generated/examples/01-tomography.ipynb
new file mode 100644
index 0000000..34f6afa
--- /dev/null
+++ b/v0.3.0/generated/examples/01-tomography.ipynb
@@ -0,0 +1,411 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Tomography overview\n",
+ "\n",
+ "This page gives an overview of the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[01-tomography.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/01-tomography.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: fbp\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Tomography\n",
+ "\n",
+ "[Tomography](https://en.wikipedia.org/wiki/Tomography)\n",
+ "is the process of imaging cross sections of an object\n",
+ "without actually slicing the object.\n",
+ "There are many forms of tomography;\n",
+ "the description here\n",
+ "focuses on\n",
+ "[X-ray computed tomography (CT scans)](https://en.wikipedia.org/wiki/CT_scan).\n",
+ "(See\n",
+ "[SPECTrecon.jl](https://github.com/JeffFessler/SPECTrecon.jl)\n",
+ "for a Julia package related to\n",
+ "[SPECT](https://en.wikipedia.org/wiki/Single-photon_emission_computed_tomography)\n",
+ "imaging.)\n",
+ "\n",
+ "In an\n",
+ "[X-ray CT imaging system](http://en.wikipedia.org/wiki/File:Ct-internals.jpg),\n",
+ "X-rays emitted from an X-ray source\n",
+ "are transmitted through an object\n",
+ "(e.g., a patient in medical CT)\n",
+ "towards a detector array.\n",
+ "The source and detector\n",
+ "[rotate rapidly](https://www.youtube.com/watch?v=2CWpZKuy-NE)\n",
+ "around the object.\n",
+ "The signal intensities recorded by the detector\n",
+ "are related\n",
+ "to the sizes and densities\n",
+ "of the object materials\n",
+ "between the source and each detector element.\n",
+ "\n",
+ "\n",
+ "## Radon transform\n",
+ "\n",
+ "The mathematical foundation\n",
+ "for 2D X-ray CT imaging\n",
+ "is the\n",
+ "[Radon transform](https://en.wikipedia.org/wiki/Radon_transform),\n",
+ "an\n",
+ "[integral transform](https://en.wikipedia.org/wiki/Integral_transform)\n",
+ "that maps a 2D function\n",
+ "$f(x,y)$\n",
+ "into the collection of line integrals\n",
+ "through that function.\n",
+ "Here we describe each line\n",
+ "by its angle $\\phi$\n",
+ "measured counter-clockwise from the $y$ axis,\n",
+ "and by the radial distance $r$ of the line from the origin.\n",
+ "The collection of integrals\n",
+ "is called a sinogram.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$ is defined by\n",
+ "$$\n",
+ "p(r,\\phi) = \\int_{-\\infty}^{\\infty}\n",
+ "f(r \\cos \\phi - l \\sin \\phi,\n",
+ "r \\sin \\phi + l \\cos \\phi) \\, \\mathrm{d} l.\n",
+ "$$\n",
+ "\n",
+ "The Radon transform of the object that is 1 inside the unit disk\n",
+ "and 0 elsewhere is given by\n",
+ "$$\n",
+ "p_1(r,\\phi) = 2 \\sqrt{1 - r^2}, \\ \\mathrm{ for } \\ |r| < 1.\n",
+ "$$\n",
+ "\n",
+ "By the Radon transform's translation and scaling properties,\n",
+ "the Radon transform\n",
+ "of a disk of radius $r_0$\n",
+ "centered at $(x_0,y_0)$\n",
+ "is given by\n",
+ "$$\n",
+ "p(r,\\phi) = r_0 \\, p_1\n",
+ "\\left( \\frac{r - (x_0 \\cos \\phi + y_0 \\sin \\phi)}{r_0}, ϕ \\right).\n",
+ "$$\n",
+ "\n",
+ "## Sinogram example\n",
+ "\n",
+ "Here is a display of that Radon transform\n",
+ "for a disk of radius $3$\n",
+ "centered at coordinate $(5,1)$.\n",
+ "Note that maximum value is approximately $6$,\n",
+ "the length of the longest chord\n",
+ "through a disk of radius $3$."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "nr = 128\n",
+ "dr = 20 / nr\n",
+ "r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\n",
+ "na = 130\n",
+ "ϕ = (0:(na-1))/na * π # angular samples\n",
+ "proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\n",
+ "proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\n",
+ "sino = proj2.(r, ϕ', 5, 1, 3)\n",
+ "jimsino = (sino, title) -> jim(\n",
+ " r, ϕ, sino; title, aspect_ratio=:none,\n",
+ " xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n",
+ " yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n",
+ " clim = (0, 6),\n",
+ ")\n",
+ "jimsino(sino, \"Sinogram for one disk\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As this figure illustrates,\n",
+ "the Radon transform of a unit disk\n",
+ "has a somewhat sinusoidal shape.\n",
+ "Indeed every point in the $(x,y)$ plane\n",
+ "traces out a distinct sinusoid\n",
+ "in the sinogram.\n",
+ "\n",
+ "The mapping from the object $f(x,y)$\n",
+ "to data like the sinogram $p(r,\\phi)$\n",
+ "is called the \"forward problem.\"\n",
+ "\n",
+ "\n",
+ "## Image reconstruction\n",
+ "\n",
+ "[Image reconstruction](http://en.wikipedia.org/wiki/Image_reconstruction)\n",
+ "is the process of solving the\n",
+ "[inverse problem](https://en.wikipedia.org/wiki/Inverse_problem)\n",
+ "of recovering an estimate $\\hat{f}(x,y)$\n",
+ "of the object $f(x,y)$\n",
+ "from a measured sinogram,\n",
+ "i.e.,\n",
+ "from (usually noisy) samples of $p(r,\\phi)$.\n",
+ "\n",
+ "\n",
+ "## FBP\n",
+ "\n",
+ "A simple image reconstruction method\n",
+ "is called the\n",
+ "\"filtered back-projection\" (FBP) approach.\n",
+ "It works by filtering each row of the sinogram\n",
+ "with a filter,\n",
+ "called the\n",
+ "[ramp filter](https://en.wikipedia.org/wiki/Radon_transform#Radon_inversion_formula),\n",
+ "whose frequency response\n",
+ "is roughly $|\\nu|$,\n",
+ "where $\\nu$ is the spatial frequency variable\n",
+ "(units cycles / m),\n",
+ "followed by a\n",
+ "[back-projection](https://en.wikipedia.org/wiki/Radon_transform#Dual_transform)\n",
+ "step that is the\n",
+ "[adjoint](https://en.wikipedia.org/wiki/Hermitian_adjoint)\n",
+ "of the Radon transform.\n",
+ "\n",
+ "\n",
+ "### FBP example\n",
+ "\n",
+ "Here is an illustration\n",
+ "of using the `fbp` method\n",
+ "in this package\n",
+ "to perform image reconstruction\n",
+ "from the preceding sinogram."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "image = fbp(sino; dr)\n",
+ "(nx,ny) = size(image)\n",
+ "dx = dr # default\n",
+ "x = ((-(nx-1)/2):((nx-1)/2)) * dr\n",
+ "y = x\n",
+ "jim(x, y, image, \"FBP image\",\n",
+ " xtick=[-10, 0, 2, 5, 8, 10],\n",
+ " ytick=[-10, 0, -2, 1, 4, 10],\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The FBP reconstructed image\n",
+ "looks pretty similar\n",
+ "to a disk of radius $3$\n",
+ "centered at $(5,1)$\n",
+ "as expected.\n",
+ "However,\n",
+ "there are quite a few ripples;\n",
+ "these are\n",
+ "[aliasing](https://en.wikipedia.org/wiki/Aliasing)\n",
+ "artifacts\n",
+ "due to the finite sampling\n",
+ "in $r$ and $\\phi$.\n",
+ "\n",
+ "This is example is what is called\n",
+ "2D parallel-beam tomography,\n",
+ "because for the angles $\\phi$ are equally spaced\n",
+ "and for each angle\n",
+ "the radial samples $r$ are also equally spaced.\n",
+ "This package includes\n",
+ "FBP reconstruction methods\n",
+ "for several other sinogram geometries,\n",
+ "including the well-known fan beam geometries\n",
+ "and the specialized Mojette geometry.\n",
+ "\n",
+ "\n",
+ "## Noise effects on FBP\n",
+ "\n",
+ "Simulating the effects of measurement noise in sinogram\n",
+ "leads to even worse FBP results.\n",
+ "\n",
+ "First note that a practical imaging system\n",
+ "has a finite field of view (FOV):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rmax = maximum(r)\n",
+ "fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\n",
+ "jim(x, y, fovmask, \"FOV mask\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Add noise to the original sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_sinogram = sino + 0.1 * randn(size(sino))\n",
+ "jimsino(noisy_sinogram, \"Noisy sinogram\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Apply FBP to the noisy sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_fbp_image = fbp(noisy_sinogram; dr)\n",
+ "noisy_fbp_image .*= fovmask # apply FOV mask\n",
+ "jim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The methods in this package\n",
+ "(WIP)\n",
+ "and related methods in the\n",
+ "[JuliaImageRecon](https://github.com/JuliaImageRecon)\n",
+ "suite\n",
+ "are designed\n",
+ "to provide better reconstructions\n",
+ "than the simple FBP method.\n",
+ "In particular,\n",
+ "model-based image reconstruction (MBIR) methods\n",
+ "and methods that use suitable machine-learning approaches\n",
+ "can improve image quality significantly.\n",
+ "See this\n",
+ "[2020 survey paper](http://doi.org/10.1109/JPROC.2019.2936204)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Reproducibility"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page was generated with the following version of Julia:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "And with the following package versions"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "import Pkg; Pkg.status()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/01-tomography/index.html b/v0.3.0/generated/examples/01-tomography/index.html
new file mode 100644
index 0000000..184b8a2
--- /dev/null
+++ b/v0.3.0/generated/examples/01-tomography/index.html
@@ -0,0 +1,4034 @@
+
+Tomography overview · Sinograms.jl This page gives an overview of the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 01-tomography.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb
, and opened in binder here: 01-tomography.ipynb
.
Packages needed here.
using Sinograms: fbp
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans) . (See SPECTrecon.jl for a Julia package related to SPECT imaging.)
In an X-ray CT imaging system , X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.
The mathematical foundation for 2D X-ray CT imaging is the Radon transform , an integral transform that maps a 2D function $f(x,y)$ into the collection of line integrals through that function. Here we describe each line by its angle $\phi$ measured counter-clockwise from the $y$ axis, and by the radial distance $r$ of the line from the origin. The collection of integrals is called a sinogram.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined by
\[p(r,\phi) = \int_{-\infty}^{\infty}
+f(r \cos \phi - l \sin \phi,
+r \sin \phi + l \cos \phi) \, \mathrm{d} l.\]
The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by
\[p_1(r,\phi) = 2 \sqrt{1 - r^2}, \ \mathrm{ for } \ |r| < 1.\]
By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius $r_0$ centered at $(x_0,y_0)$ is given by
\[p(r,\phi) = r_0 \, p_1
+\left( \frac{r - (x_0 \cos \phi + y_0 \sin \phi)}{r_0}, ϕ \right).\]
Here is a display of that Radon transform for a disk of radius $3$ centered at coordinate $(5,1)$ . Note that maximum value is approximately $6$ , the length of the longest chord through a disk of radius $3$ .
nr = 128
+dr = 20 / nr
+r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations
+na = 130
+ϕ = (0:(na-1))/na * π # angular samples
+proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.
+proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)
+sino = proj2.(r, ϕ', 5, 1, 3)
+jimsino = (sino, title) -> jim(
+ r, ϕ, sino; title, aspect_ratio=:none,
+ xlabel = "r", ylabel = "ϕ", ylims=(0,π), yticks=([0, π], ["0", "π"]),
+ yflip=false, xticks = [-10, 0, 2, 5, 8, 10],
+ clim = (0, 6),
+)
+jimsino(sino, "Sinogram for one disk")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the $(x,y)$ plane traces out a distinct sinusoid in the sinogram.
The mapping from the object $f(x,y)$ to data like the sinogram $p(r,\phi)$ is called the "forward problem."
Image reconstruction is the process of solving the inverse problem of recovering an estimate $\hat{f}(x,y)$ of the object $f(x,y)$ from a measured sinogram, i.e., from (usually noisy) samples of $p(r,\phi)$ .
A simple image reconstruction method is called the "filtered back-projection" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter , whose frequency response is roughly $|\nu|$ , where $\nu$ is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.
Here is an illustration of using the fbp
method in this package to perform image reconstruction from the preceding sinogram.
image = fbp(sino; dr)
+(nx,ny) = size(image)
+dx = dr # default
+x = ((-(nx-1)/2):((nx-1)/2)) * dr
+y = x
+jim(x, y, image, "FBP image",
+ xtick=[-10, 0, 2, 5, 8, 10],
+ ytick=[-10, 0, -2, 1, 4, 10],
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The FBP reconstructed image looks pretty similar to a disk of radius $3$ centered at $(5,1)$ as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in $r$ and $\phi$ .
This is example is what is called 2D parallel-beam tomography, because for the angles $\phi$ are equally spaced and for each angle the radial samples $r$ are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.
Simulating the effects of measurement noise in sinogram leads to even worse FBP results.
First note that a practical imaging system has a finite field of view (FOV):
rmax = maximum(r)
+fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax
+jim(x, y, fovmask, "FOV mask")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Add noise to the original sinogram:
noisy_sinogram = sino + 0.1 * randn(size(sino))
+jimsino(noisy_sinogram, "Noisy sinogram")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Apply FBP to the noisy sinogram:
noisy_fbp_image = fbp(noisy_sinogram; dr)
+noisy_fbp_image .*= fovmask # apply FOV mask
+jim(x, y, noisy_fbp_image, "Noisy FBP image"; clim=(0,1))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper .
This page was generated with the following version of Julia:
io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\n')
10-element Vector{SubString{String}}:
+ "Julia Version 1.8.3"
+ "Commit 0434deb161e (2022-11-14 20:14 UTC)"
+ "Platform Info:"
+ " OS: Linux (x86_64-linux-gnu)"
+ " CPU: 2 × Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz"
+ " WORD_SIZE: 64"
+ " LIBM: libopenlibm"
+ " LLVM: libLLVM-13.0.1 (ORCJIT, skylake-avx512)"
+ " Threads: 1 on 2 virtual cores"
+ ""
And with the following package versions
import Pkg; Pkg.status()
Status `~/work/Sinograms.jl/Sinograms.jl/docs/Project.toml`
+ [39de3d68] AxisArrays v0.4.6
+ [e30172f5] Documenter v0.27.23
+ [9ee76f2b] ImageGeoms v0.10.0
+ [71a99df6] ImagePhantoms v0.7.2
+ [98b081ad] Literate v2.14.0
+ [170b2178] MIRTjim v0.21.1
+ [6fe1bfb0] OffsetArrays v1.12.8
+ [91a5bcdd] Plots v1.38.0
+ [02a14def] Sinograms v0.3.0 `~/work/Sinograms.jl/Sinograms.jl`
+ [1986cc42] Unitful v1.12.2
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/generated/examples/02-sino-geom.ipynb b/v0.3.0/generated/examples/02-sino-geom.ipynb
new file mode 100644
index 0000000..8d32b3d
--- /dev/null
+++ b/v0.3.0/generated/examples/02-sino-geom.ipynb
@@ -0,0 +1,402 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 2D sinogram geometry\n",
+ "\n",
+ "This page describes the 2D sinogram geometries\n",
+ "available in the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[02-sino-geom.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/02-sino-geom.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Unitful: mm, °\n",
+ "using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\n",
+ "using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\n",
+ "using Sinograms: sino_plot_rays, rays\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 2D Sinogram geometries\n",
+ "\n",
+ "To perform 2D image reconstruction\n",
+ "from a 2D sinogram,\n",
+ "one must first describe\n",
+ "how the rays in the sinogram are sampled.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$\n",
+ "is defined for all $r$ and $ϕ$\n",
+ "but practical systems\n",
+ "record $p(r,ϕ)$\n",
+ "only for certain finite sets of samples\n",
+ "of those values.\n",
+ "\n",
+ "\n",
+ "## Parallel-beam geometry\n",
+ "\n",
+ "The simplest form of sinogram sampling\n",
+ "is equally spaced samples\n",
+ "in both $r$ and $ϕ$.\n",
+ "This sampling is called a parallel-beam geometry.\n",
+ "(Very few practical systems have this sampling pattern,\n",
+ "but it is an easy place to start.)\n",
+ "Both FBP and iterative reconstruction methods\n",
+ "need to know which values\n",
+ "of $r$ and $ϕ$\n",
+ "are sampled.\n",
+ "\n",
+ "In this package,\n",
+ "`SinoPar`\n",
+ "is the type that describes\n",
+ "a parallel-beam sinogram geometry.\n",
+ "\n",
+ "The built-in defaults provide helpful reminders about the usage."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "SinoPar()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This package supports units via the\n",
+ "[Unitful.jl](https://github.com/PainterQubits/Unitful.jl)\n",
+ "and using units is recommended\n",
+ "(but not required).\n",
+ "\n",
+ "Here is an example of how to specify\n",
+ "a parallel-beam geometry.\n",
+ "Everything is a named keyword argument with sensible default values.\n",
+ "\n",
+ "* `orbit` and `orbit_start` must both be unitless (degrees)\n",
+ " or have the same units (e.g., degrees or radians).\n",
+ "* detector spacing `d` (can be unitless or have units e.g., mm).\n",
+ "* The projection angles $ϕ$ are equally space and given by\n",
+ " `orbit_start + (0:(nb-1))/nb * orbit`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoPar( ;\n",
+ " nb = 64, # number of radial samples (\"bins\")\n",
+ " na = 30, # number of angular samples\n",
+ " d = 2mm, # detector spacing\n",
+ " offset = 0.25, # quarter detector offset (unitless)\n",
+ " orbit = 180, # angular range (in degrees)\n",
+ " orbit_start = 0, # starting angle (in degrees)\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The struct `sg` has numerous useful properties;\n",
+ "type `?SinoGeom` to see the full list.\n",
+ "\n",
+ "For example,\n",
+ "to access the angular samples in degrees\n",
+ "type `sg.ad`"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg.ad"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following function visualizes the sampling pattern."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with an arc detector (3rd generation CT)\n",
+ "\n",
+ "For a fan-beam geometry,\n",
+ "the arguments are the same as for `SinoPar`\n",
+ "with the addition of specifying:\n",
+ "* `dsd` distance from source to detector\n",
+ "* `dod` distance from origin (isocenter) to detector\n",
+ "* `dfs` distance from focal point of detector to source\n",
+ " (0 for a 3rd gen arc detector, and `Inf` for a flat detector)\n",
+ "* `source_offset` for misaligned systems\n",
+ " where the ray from the source to the detector center\n",
+ " does not intersect the isocenter.\n",
+ " Not fully supported; submit an issue if you need this feature.\n",
+ "\n",
+ "Here is an example that corresponds to a GE Lightspeed CT system.\n",
+ "These numbers are published in\n",
+ "[IEEE T-MI Oct. 2006, p.1272-1283](http://doi.org/10.1109/TMI.2006.882141)."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb=888, na=984,\n",
+ " d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a smaller example for plotting the rays."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)\n",
+ "sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for arc detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with a flat detector\n",
+ "\n",
+ "This geometry is the same as the arc detector\n",
+ "except that `dfs=Inf`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanFlat( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for flat detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Mojette sampling\n",
+ "This is a specialized sampling geometry\n",
+ "that is currently incompletely supported."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoMoj( ; nb=60, na=30)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true,\n",
+ " title=\"Mojette sampling\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a diagram that illustrates how the radial spacing\n",
+ "is a function of the projection view angle for the Mojette geometry.\n",
+ "The key aspect here\n",
+ "is that in each image row\n",
+ "the line intersection lengths are identical."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\n",
+ "default(label=\"\")\n",
+ "for y in -2:2\n",
+ " plot!([-3, 3], [y, y], color=:black)\n",
+ "end\n",
+ "for x in -3:3\n",
+ " plot!([x, x], [-2, 2], color=:black)\n",
+ "end\n",
+ "plot_ray!(r, ϕ) = plot!(\n",
+ " r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n",
+ " r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n",
+ " color = :blue,\n",
+ ")\n",
+ "ia = 4 # pick an angle\n",
+ "i = rays(sg) # iterator\n",
+ "rs = [i[1] for i in i] # radial samples\n",
+ "ϕs = [i[2] for i in i] # projection angle\n",
+ "r = rs[:,ia]\n",
+ "r = r[abs.(r) .< 3]\n",
+ "ϕ = ϕs[1,ia]\n",
+ "plot_ray!.(r, ϕ)\n",
+ "plot!(aspect_ratio=1, title = \"Mojette line integrals\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/02-sino-geom/index.html b/v0.3.0/generated/examples/02-sino-geom/index.html
new file mode 100644
index 0000000..6cf4a4d
--- /dev/null
+++ b/v0.3.0/generated/examples/02-sino-geom/index.html
@@ -0,0 +1,8064 @@
+
+2D sinogram geometry · Sinograms.jl This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 02-sino-geom.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb
, and opened in binder here: 02-sino-geom.ipynb
.
Packages needed here.
using Unitful: mm, °
+using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work
+using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan
+using Sinograms: sino_plot_rays, rays
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined for all $r$ and $ϕ$ but practical systems record $p(r,ϕ)$ only for certain finite sets of samples of those values.
The simplest form of sinogram sampling is equally spaced samples in both $r$ and $ϕ$ . This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of $r$ and $ϕ$ are sampled.
In this package, SinoPar
is the type that describes a parallel-beam sinogram geometry.
The built-in defaults provide helpful reminders about the usage.
SinoPar()
SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
This package supports units via the Unitful.jl and using units is recommended (but not required).
Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.
orbit
and orbit_start
must both be unitless (degrees) or have the same units (e.g., degrees or radians).detector spacing d
(can be unitless or have units e.g., mm). The projection angles $ϕ$ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit
. sg = SinoPar( ;
+ nb = 64, # number of radial samples ("bins")
+ na = 30, # number of angular samples
+ d = 2mm, # detector spacing
+ offset = 0.25, # quarter detector offset (unitless)
+ orbit = 180, # angular range (in degrees)
+ orbit_start = 0, # starting angle (in degrees)
+)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
The struct sg
has numerous useful properties; type ?SinoGeom
to see the full list.
For example, to access the angular samples in degrees type sg.ad
sg.ad
30-element LinRange{Float32, Int64}:
+ 0.0,6.0,12.0,18.0,24.0,30.0,36.0,42.0,…,144.0,150.0,156.0,162.0,168.0,174.0
The following function visualizes the sampling pattern.
sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title="Parallel")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
For a fan-beam geometry, the arguments are the same as for SinoPar
with the addition of specifying:
dsd
distance from source to detectordod
distance from origin (isocenter) to detectordfs
distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf
for a flat detector)source_offset
for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 .
sg = SinoFanArc( ; nb=888, na=984,
+ d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 888
+ d::Unit{Float64} 1.0239 mm
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 949.075 mm
+ dod::Unit{Float64} 408.075 mm
+
Here is a smaller example for plotting the rays.
sg = SinoFanArc( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
+sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for arc detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This geometry is the same as the arc detector except that dfs=Inf
.
sg = SinoFanFlat( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
SinoFanFlat{Unitful.Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Float32} 20.0f0 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float32} 0.0f0 mm
+ dsd::Unit{Float32} 900.0f0 mm
+ dod::Unit{Float32} 400.0f0 mm
+
Here is its sampling plot
sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for flat detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This is a specialized sampling geometry that is currently incompletely supported.
sg = SinoMoj( ; nb=60, na=30)
SinoMoj{Float32, Float32} :
+ nb::Int64 60
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Here is its sampling plot
sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true,
+ title="Mojette sampling")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.
plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel="x", ylabel="x")
+default(label="")
+for y in -2:2
+ plot!([-3, 3], [y, y], color=:black)
+end
+for x in -3:3
+ plot!([x, x], [-2, 2], color=:black)
+end
+plot_ray!(r, ϕ) = plot!(
+ r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),
+ r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),
+ color = :blue,
+)
+ia = 4 # pick an angle
+i = rays(sg) # iterator
+rs = [i[1] for i in i] # radial samples
+ϕs = [i[2] for i in i] # projection angle
+r = rs[:,ia]
+r = r[abs.(r) .< 3]
+ϕ = ϕs[1,ia]
+plot_ray!.(r, ϕ)
+plot!(aspect_ratio=1, title = "Mojette line integrals")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/generated/examples/03-parallel-beam.ipynb b/v0.3.0/generated/examples/03-parallel-beam.ipynb
new file mode 100644
index 0000000..a22eb3b
--- /dev/null
+++ b/v0.3.0/generated/examples/03-parallel-beam.ipynb
@@ -0,0 +1,222 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Parallel-beam tomography\n",
+ "\n",
+ "This page describes parallel-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[03-parallel-beam.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/03-parallel-beam.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: SinoPar, rays, plan_fbp, fbp\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using Unitful: mm\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Parallel-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a parallel-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoPar` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoPar( ; nb = 130, d = 2mm, na = 100)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Radon transform of Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(axes(sg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n",
+ "\n",
+ "# Image reconstruction via FBP"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig)\n",
+ "fbp_image, sino_filt = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/03-parallel-beam/index.html b/v0.3.0/generated/examples/03-parallel-beam/index.html
new file mode 100644
index 0000000..aa4a64f
--- /dev/null
+++ b/v0.3.0/generated/examples/03-parallel-beam/index.html
@@ -0,0 +1,1732 @@
+
+Parallel-beam tomography · Sinograms.jl This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 03-parallel-beam.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb
, and opened in binder here: 03-parallel-beam.ipynb
.
Packages needed here.
using Sinograms: SinoPar, rays, plan_fbp, fbp
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using Unitful: mm
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoPar
to define the sinogram geometry.
sg = SinoPar( ; nb = 130, d = 2mm, na = 100)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Radon transform of Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(axes(sg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+# Image reconstruction via FBP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(sg, ig)
+fbp_image, sino_filt = fbp(plan, sino)
(Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; … ; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1], Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[-0.0015748246357816513 mm^-1 -0.001563508567444636 mm^-1 … -0.0016433727253031783 mm^-1 -0.0015647972217181065 mm^-1; -0.001992363353600021 mm^-1 -0.0020000871407296165 mm^-1 … -0.001937357016483834 mm^-1 -0.002000841904071256 mm^-1; … ; -0.0019936103683833293 mm^-1 -0.0019948221610255543 mm^-1 … -0.0019261542159365215 mm^-1 -0.001993715430986622 mm^-1; -0.0015757082153285858 mm^-1 -0.0015797806083165415 mm^-1 … -0.001669674955447886 mm^-1 -0.0015786837209923177 mm^-1])
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/generated/examples/04-fan-arc.ipynb b/v0.3.0/generated/examples/04-fan-arc.ipynb
new file mode 100644
index 0000000..55ef351
--- /dev/null
+++ b/v0.3.0/generated/examples/04-fan-arc.ipynb
@@ -0,0 +1,257 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: arc detector\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[04-fan-arc.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/04-fan-arc.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(sg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(axes(sg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig)\n",
+ "fbp_image, sino_filt = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/04-fan-arc/index.html b/v0.3.0/generated/examples/04-fan-arc/index.html
new file mode 100644
index 0000000..663992e
--- /dev/null
+++ b/v0.3.0/generated/examples/04-fan-arc/index.html
@@ -0,0 +1,2317 @@
+
+Fan-beam tomography: arc detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 04-fan-arc.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb
, and opened in binder here: 04-fan-arc.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry.
sg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(sg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(axes(sg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(sg, ig)
+fbp_image, sino_filt = fbp(plan, sino)
(Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; … ; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1; 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1], Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}[-0.0007313885176535161 mm^-1 -0.000781435334859832 mm^-1 … -0.0008173493547605458 mm^-1 -0.0008112403688158032 mm^-1; -0.0008533622838870681 mm^-1 -0.0007443297558876708 mm^-1 … -0.0008789842778269086 mm^-1 -0.0008181256201771067 mm^-1; … ; -0.0008540323281755139 mm^-1 -0.0008184652133019245 mm^-1 … -0.0007871493144538506 mm^-1 -0.0007446914606056433 mm^-1; -0.0007316186447113843 mm^-1 -0.0008117762784152851 mm^-1 … -0.0007068408307478785 mm^-1 -0.0007819503377775818 mm^-1])
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/generated/examples/05-fan-flat.ipynb b/v0.3.0/generated/examples/05-fan-flat.ipynb
new file mode 100644
index 0000000..0ace5fd
--- /dev/null
+++ b/v0.3.0/generated/examples/05-fan-flat.ipynb
@@ -0,0 +1,253 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: flat detector\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with a \"flat\" detector,\n",
+ "i.e., one row of a flat-panel detector\n",
+ "as used in many cone-beam CT (CBCT) systems.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[05-fan-flat.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/05-fan-flat.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanFlat` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(sg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(axes(sg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig; window = Window(Hamming(), 1.0))\n",
+ "fbp_image, sino_filt = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/05-fan-flat/index.html b/v0.3.0/generated/examples/05-fan-flat/index.html
new file mode 100644
index 0000000..12c1cd3
--- /dev/null
+++ b/v0.3.0/generated/examples/05-fan-flat/index.html
@@ -0,0 +1,2174 @@
+
+Fan-beam tomography: flat detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with a "flat" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.
This page was generated from a single Julia file: 05-fan-flat.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb
, and opened in binder here: 05-fan-flat.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.2 cm, 0.2 cm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanFlat
to define the sinogram geometry.
sg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)
SinoFanFlat{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 0.3 cm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 50.0 cm
+ dod::Unit{Float64} 14.0 cm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(sg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 0.0 cm), (11.776000000000002 cm, 8.694 cm), (1.5707963267948966,), 0.2 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -0.23184000000000002 cm), (11.1872 cm, 8.346240000000002 cm), (1.5707963267948966,), -0.098 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((2.8160000000000003 cm, 0.0 cm), (3.968 cm, 1.3860000000000001 cm), (1.2566370614359172,), -0.002 cm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-2.8160000000000003 cm, 0.0 cm), (5.248 cm, 2.0160000000000005 cm), (1.8849555921538759,), -0.002 cm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 4.41 cm), (3.2 cm, 2.6460000000000004 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-1.024 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -7.623 cm), (0.2944 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.768 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(axes(sg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(sg, ig; window = Window(Hamming(), 1.0))
+fbp_image, sino_filt = fbp(plan, sino)
(Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}[0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1; 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1; … ; 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1; 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1], Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}[-0.0077992013571600355 cm^-1 -0.007344824638926727 cm^-1 … -0.007997647127907022 cm^-1 -0.008238923748613545 cm^-1; -0.008217572119545309 cm^-1 -0.008313911703386832 cm^-1 … -0.00892216508393508 cm^-1 -0.008102064439389161 cm^-1; … ; -0.008220698320226733 cm^-1 -0.008108689609582777 cm^-1 … -0.007630197456383526 cm^-1 -0.008320571763857296 cm^-1; -0.007805480598737794 cm^-1 -0.008241711054948819 cm^-1 … -0.007824024936216662 cm^-1 -0.0073475694003545845 cm^-1])
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for flat case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/generated/examples/06-fan-short.ipynb b/v0.3.0/generated/examples/06-fan-short.ipynb
new file mode 100644
index 0000000..7c6305d
--- /dev/null
+++ b/v0.3.0/generated/examples/06-fan-short.ipynb
@@ -0,0 +1,318 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: short scan\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl)\n",
+ "for a \"short\" scan\n",
+ "where the rotation (`orbit`) is 180° plus the fan angle.\n",
+ "This case requires\n",
+ "[Parker weighting](http://doi.org/10.1118/1.595078).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[06-fan-short.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/06-fan-short.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry,\n",
+ "with the `:short` option for `orbit` to make a short scan.\n",
+ "Note that even though we specify `na = 100`\n",
+ "we end up with `na = 67` views\n",
+ "because of the `:short` option."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sg = SinoFanArc( :short, ;\n",
+ " nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV.\n",
+ "The `na=67` blue dots show the `:short` scan."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(sg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Short arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(sg), ob)\n",
+ "jim(axes(sg), sino; title=\"Shepp-Logan 'short' sinogram\",\n",
+ " xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(sg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine Parker weights:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(sg), plan.parker_weight; title = \"Parker weights\",\n",
+ " xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Finally perform FBP:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "fbp_image, sino_filt = fbp(plan, sino);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for 'short' arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the difference image.\n",
+ "Better sampling would reduce the errors."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig)..., fbp_image - true_image, \"Error image\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/06-fan-short/index.html b/v0.3.0/generated/examples/06-fan-short/index.html
new file mode 100644
index 0000000..31e57f8
--- /dev/null
+++ b/v0.3.0/generated/examples/06-fan-short/index.html
@@ -0,0 +1,3521 @@
+
+Fan-beam tomography: short scan · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
for a "short" scan where the rotation (orbit
) is 180° plus the fan angle. This case requires Parker weighting .
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 06-fan-short.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 06-fan-short.ipynb
, and opened in binder here: 06-fan-short.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry, with the :short
option for orbit
to make a short scan. Note that even though we specify na = 100
we end up with na = 67
views because of the :short
option.
sg = SinoFanArc( :short, ;
+ nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,
+)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 67
+ orbit::Float32 239.12924
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV. The na=67
blue dots show the :short
scan.
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(sg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Short arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(sg), ob)
+jim(axes(sg), sino; title="Shepp-Logan 'short' sinogram",
+ xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(sg, ig)
FBPNormalPlan{S,I,H,P} with
+ S = SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32}
+ I = ImageGeoms.ImageGeom{2, Tuple{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ H = Vector{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}} with extrema (0.0001541825009936049 mm^-1, 0.38515099184495855 mm^-1)
+ P = Matrix{Float32} (130, 67) with extrema (0.0f0, 1.3284957f0)
+
Examine Parker weights:
jim(axes(sg), plan.parker_weight; title = "Parker weights",
+ xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Finally perform FBP:
fbp_image, sino_filt = fbp(plan, sino);
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for 'short' arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image:
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is the difference image. Better sampling would reduce the errors.
jim(axes(ig)..., fbp_image - true_image, "Error image")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/generated/examples/07-fdk.ipynb b/v0.3.0/generated/examples/07-fdk.ipynb
new file mode 100644
index 0000000..6254284
--- /dev/null
+++ b/v0.3.0/generated/examples/07-fdk.ipynb
@@ -0,0 +1,317 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# CBCT FDK\n",
+ "\n",
+ "This page describes image reconstruction\n",
+ "for cone-beam computed tomography (CBCT)\n",
+ "with both arc and flat detectors\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[07-fdk.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/07-fdk.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: CtFanArc, CtFanFlat # CtPar\n",
+ "using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\n",
+ "using ImageGeoms: ImageGeom, MaskCircle, fovs\n",
+ "using ImagePhantoms: ellipsoid_parameters, ellipsoid\n",
+ "using ImagePhantoms: radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### CBCT projections of 3D Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "CBCT projections\n",
+ "of the 3D Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipsoid parameters for 3D Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\n",
+ "ob = ellipsoid(params)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow grayscale window is needed to see the soft tissue structures"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.95, 1.05) .* μ"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "oversample = 3\n",
+ "true_image = phantom(axes(ig)..., ob, oversample)\n",
+ "jim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Define the system geometry\n",
+ "(for some explanation use `?CtGeom`):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\n",
+ "cg = CtFanArc( ; p...)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV\n",
+ "(this is more interesting when interacting via other Plot backends):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ct_geom_plot3(cg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "CBCT projections\n",
+ "using `Sinogram.rays` and `ImagePhantoms.radon`:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "proj_arc = radon(rays(cg), ob)\n",
+ "jim(cg.s, cg.t, proj_arc ;\n",
+ " title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "There is no \"inverse crime\" here\n",
+ "because we compute the projection views\n",
+ "using the analytical phantom geometry,\n",
+ "but then reconstruct\n",
+ "on a discrete grid.\n",
+ "\n",
+ "## Image reconstruction via FBP / FDK\n",
+ "\n",
+ "We start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_arc = fdk(plan, proj_arc)\n",
+ "jim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_arc = fdk_arc - true_image\n",
+ "jim(axes(ig), err_arc, \"Error image (arc)\"; clim = (-1,1) .* (0.05μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Repeat with flat detector geometry"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "cg = CtFanFlat( ; p...)\n",
+ "proj_flat = radon(rays(cg), ob)\n",
+ "jim(cg.s, cg.t, proj_flat ;\n",
+ " title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n",
+ "\n",
+ "plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_flat = fdk(plan, proj_flat)\n",
+ "jim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_flat = fdk_flat - true_image\n",
+ "jim(axes(ig), err_flat, \"Error image (flat)\"; clim = (-1,1) .* (0.05μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As expected for CBCT,\n",
+ "the largest errors are in the end slices."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.3"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.3",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.3.0/generated/examples/07-fdk/index.html b/v0.3.0/generated/examples/07-fdk/index.html
new file mode 100644
index 0000000..05b2610
--- /dev/null
+++ b/v0.3.0/generated/examples/07-fdk/index.html
@@ -0,0 +1,20061 @@
+
+CBCT FDK · Sinograms.jl This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 07-fdk.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb
, and opened in binder here: 07-fdk.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: CtFanArc, CtFanFlat # CtPar
+using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3
+using ImageGeoms: ImageGeom, MaskCircle, fovs
+using ImagePhantoms: ellipsoid_parameters, ellipsoid
+using ImagePhantoms: radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)
ImageGeoms.ImageGeom{3, NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitArray{3}}
+ dims::NTuple{3,Int64} (64, 62, 30)
+ deltas::NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.4 cm, 0.4 cm, 0.8 cm)
+ offsets::NTuple{3,Float32} (0.0f0, 0.0f0, 0.0f0)
+ mask: 64×62×30 BitArray{3} {84840 of 119040}
+
Ellipsoid parameters for 3D Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))
+ob = ellipsoid(params)
12-element Vector{ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}}:
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 0.0 cm, 0.0 cm), (8.831999999999999 cm, 11.408000000000001 cm, 10.8 cm), (0.0, 0.0, 0.0), 0.2 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -0.22816 cm, 0.0 cm), (8.478720000000001 cm, 10.8376 cm, 10.56 cm), (0.0, 0.0, 0.0), -0.098 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-2.8160000000000003 cm, 0.0 cm, -3.0 cm), (5.248 cm, 1.9840000000000002 cm, 2.52 cm), (-1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (-0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((2.8160000000000003 cm, 0.0 cm, -3.0 cm), (3.968 cm, 1.364 cm, 2.64 cm), (1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 4.34 cm, -3.0 cm), (2.688 cm, 3.1 cm, 4.199999999999999 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-1.024 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -7.502 cm, -3.0 cm), (0.2944 cm, 0.2852 cm, 0.276 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (-1.5707963267948966, 0.0, 0.0), 0.001 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -1.302 cm, 0.75 cm), (0.7168000000000001 cm, 0.49600000000000005 cm, 1.2000000000000002 cm), (-1.5707963267948966, 0.0, 0.0), 0.002 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, 7.5 cm), (0.7168000000000001 cm, 0.6944 cm, 1.2000000000000002 cm), (0.0, 0.0, 0.0), -0.002 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
A narrow grayscale window is needed to see the soft tissue structures
clim = (0.95, 1.05) .* μ
(0.095 cm^-1, 0.10500000000000001 cm^-1)
Here is the ideal phantom image:
oversample = 3
+true_image = phantom(axes(ig)..., ob, oversample)
+jim(axes(ig), true_image, "True 3D Shepp-Logan phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Define the system geometry (for some explanation use ?CtGeom
):
p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)
+cg = CtFanArc( ; p...)
CtFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32, CtSourceCircle} :
+ ns::Int64 130
+ nt::Int64 80
+ ds::Unit{Float64} 0.3 cm
+ dt::Unit{Float64} 0.4 cm
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 50
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 200.0 cm
+ dod::Unit{Float64} 40.0 cm
+ src::CtSourceCircle CtSourceCircle()
+
Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):
ct_geom_plot3(cg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
CBCT projections using Sinogram.rays
and ImagePhantoms.radon
:
proj_arc = radon(rays(cg), ob)
+jim(cg.s, cg.t, proj_arc ;
+ title="Shepp-Logan projections (arc)", xlabel="s", ylabel="t")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+There is no "inverse crime" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.
We start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))
+fdk_arc = fdk(plan, proj_arc)
+jim(axes(ig), fdk_arc, "FDK image (arc)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_arc = fdk_arc - true_image
+jim(axes(ig), err_arc, "Error image (arc)"; clim = (-1,1) .* (0.05μ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+cg = CtFanFlat( ; p...)
+proj_flat = radon(rays(cg), ob)
+jim(cg.s, cg.t, proj_flat ;
+ title="Shepp-Logan projections (flat)", xlabel="s", ylabel="t")
+
+plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))
+fdk_flat = fdk(plan, proj_flat)
+jim(axes(ig), fdk_flat, "FDK image (flat)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_flat = fdk_flat - true_image
+jim(axes(ig), err_flat, "Error image (flat)"; clim = (-1,1) .* (0.05μ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As expected for CBCT, the largest errors are in the end slices.
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/index.html b/v0.3.0/index.html
new file mode 100644
index 0000000..0e523f8
--- /dev/null
+++ b/v0.3.0/index.html
@@ -0,0 +1,2 @@
+
+Home · Sinograms.jl Sinograms.jl
is a Julia language package with tools for tomographic image reconstruction, including
describing ray geometries (parallel beam, fan beam, etc.) ✅ performing filtered back-projection (FBP) image reconstruction ✅ system models for iterative reconstruction (WIP) See the examples.
See also:
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/methods/index.html b/v0.3.0/methods/index.html
new file mode 100644
index 0000000..cd48193
--- /dev/null
+++ b/v0.3.0/methods/index.html
@@ -0,0 +1,124 @@
+
+Methods · Sinograms.jl CtFanArc 3D CBCT geometry for arc detector
source CtFanArc(::Val{:ge1} ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> CtFanArc(Val(:ge1))
+CtFanArc{Float64, Float32, CtSourceCircle} :
+ ns::Int64 888
+ nt::Int64 64
+ ds::Float64 1.0239
+ dt::Float64 1.0964
+ offset_s::Float32 1.25
+ offset_t::Float32 0.0
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float64 0.0
+ dsd::Float64 949.075
+ dod::Float64 408.075
+ src::CtSourceCircle CtSourceCircle()
source CtFanArc( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtFanArc()
+CtFanArc{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtFanFlat 3D CTCT geometry for flat detector
source CtFanFlat( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtFanFlat()
+CtFanFlat{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtGeom{Td,To,Ts}
Abstract type for representing ray geometries for 3D CT imaging.
The projection view coordinates are (s,t)
where s
denotes the transaxial sampling and t
denotes the axial direction (along z
).
Common fields
ns
size of each projection viewnt
ds
detector pixel spacingdt
offset_s
unitless detector center offset (usually 0 or 0.25)offset_t
unitless, usually 0na
# of projection views, aka nϕ or nβorbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.src::CtSource
describes the X-ray CT source trajectory. Primary support for CtSourceCircle()
.Additional fields for CtFan
types:
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
ds
, dt
, source_offset
, dsd
, dod
must all be unitless or have the same units.Derived values (available by getproperty
), i.e., st.?
.dim
dimensions: (ns,nt,na)
.s (ns) s
sample locations.t (nt) t
sample locations.ws = (ns-1)/2 + offset_s
"middle" sample position.wt = (nt-1)/2 + offset_t
.ad (na)
source angles [degrees].ar (na)
source angles [radians].rad (ns)
radial distance of each ray from origin.rfov
max radius within FOV.zfov
axial FOVFor fan beam:
dso = dsd - dod
distance from source to origin (Inf for parallel beam)dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors).gamma (ns)
gamma sample values radians
.gamma_s
gamma values given s values.gamma_max
half of fan angle radians
, if offset_s=0.gamma_max_abs
half of fan angle radians
- recommended.cone_angle
(half) cone angle on axis (s=0): +/- angleBasic methods
dims (ns, nt, na)
ones = ones(Float32, ns,nt,na)
zeros = zeros(Float32, ns,nt,na)
rays
iterator of (u,v,ϕ,θ)
samplesdownsample(st, down)
reduce sampling by integer factoroversample(st, over)
ct_geom_plot!
plot system geometryMethods
.shape(proj)
reshape proj
.plot2(ig)
plot the 2D geometry of the image.plot3(ig)
plot the 3D geometry of the cone beam setup.unitv(is,it,ia)
unit vector with single nonzero elementNotes
Use sino_geom()
instead for 2D geometries.
source CtPar
3D parallel-beam projection geometry
source CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtPar()
+CtPar{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 60
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ src::CtSourceCircle CtSourceCircle()
source CtSource
Abstract type for representing X-ray CT source trajectories.
source CtSourceCircle
Type for representing circular X-ray CT source trajectory.
source CtSourceHelix
Type for representing helical X-ray CT source trajectories having constant pitch.
Fields
pitch
helix pitch (unitless fraction of zFOV, default 0)source_z0
initial z position of x-ray source (default 0) It should have same units as detector pixels etc.source CtSourceHelix( ; pitch = 0, source_z0 = 0)
Constructor with named keywords
source FBPNormalPlan{S,I,H,P}
Struct type for storing "normal" FBP plan.
source FBPplan
Abstract type for FBP plans.
source FDKplan{C,I,H,P}
Struct type for storing FDK plan.
source RayGeom{Td,To}
Parent type for SinoGeom
and CtGeom
source SinoFanArc 2D fan-beam sinogram geometry for arc detector
source SinoFan(Val(:ge1) ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
nb::Int = 888
# of detector channelsd::RealU = 1.0239
channel spacingoffset::Real = 1.25
for "quarter-detector" offsetna::Int = 984
# of anglesorbit::Union{Symbol,Real} = 360
use :short
for short scandsd::RealU = 949.075
dod::RealU = 408.075
out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> SinoFanArc(Val(:ge1))
+SinoFanArc{Float64, Float32} :
+ nb::Int64 888
+ d::Float64 1.0239
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float64 0.0
+ dsd::Float64 949.075
+ dod::Float64 408.075
source SinoFanArc( ; nb d offset na orbit orbit_start
+ source_offset, dsd = 4 * nb * d, dod = nb * d)
+SinoFanArc(:short ; nb d offset na orbit_start
+ source_offset, dsd = 4 * nb * d, dod = nb * d)
Constructor with named keywords. See ?SinoGeom
for documentation.
d
, source_offset
, dsd
, dod
must all have the same units.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well.
julia> SinoFanArc()
+SinoFanArc{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoFanFlat
2D fan-beam sinogram geometry for flat detector
source SinoFanFlat( ; nb d offset na orbit orbit_start
+ source_offset, dsd= 4 * nb * d, dod = nb * d)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoFanFlat()
+SinoFanFlat{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoGeom{Td,To}
Abstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.
Common fields
nb
# of "radial" samples, aka nr
or ns
d
aka dr
or ds
, "radial" sample spacingoffset
unitless sample offset (usually 0 or 0.25)na
# of angular samples, aka nϕ
or nβ
default: 2 * floor(Int, nb * π/2 / 2)
orbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.Additional fields for SinoFan
types
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
d
, source_offset
, dsd
, dod
must all have the same units.Derived values (available by getproperty
), i.e., st.?
.ds|dr
radial sample spacing (NaN
for :moj
).s (nb) s
sample locations.w = (nb-1)/2 + offset
"middle" sample position.ad (na)
source angles degrees
.ar (na)
source angles radians
.rfov
radial FOV.xds (nb)
center of detector elements (beta=0).yds (nb)
""For mojette:
.d_ang (na)
angle-dependent radial spacingFor fan beam:
dso = dsd - dod
distance from source to origin (Inf for parallel beam)dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors).gamma (nb)
gamma sample values radians
.gamma_max
half of fan angle radians
, if offset=0Basic methods
dims (nb, na)
sino_s (nb) s
sample locationssino_w = (nb-1)/2 + offset
('middle' sample position)rays
iterator of (r, ϕ)
parallel-beam coordinate tuples of size (nb, na)
ones = ones(Float32, nb, na)
zeros = zeros(Float32, nb, na)
downsample(st, down)
oversample(st, over)
angles
(na) in degreessino_geom_plot!
plot system geometryMethods
.shape(sino)
reshape sinograms into array (nb,na,:)
.unitv(;ib,ia)
unit 'vector' with single nonzero element.taufun(x,y)
projected s/ds for each (x,y) pair (numel(x),na)
Notes
Use ct_geom()
instead for 3D axial or helical cone-beam CT. source SinoMoj
2D Mojette sinogram geometry where d
means dx
(square pixel size)
source SinoMoj( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoMoj()
+SinoMoj{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source SinoPar
2D parallel-beam sinogram geometry
source SinoPar( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoPar()
+SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source Window{S,T}
Data type for FBP apodizing windows, with given window shape::S
and cutoff::T
.
julia> Window(Hamming(), 0.8)
+Window{Hamming, Float64}(Hamming(), 0.8)
source WindowVect{V} <: AbstractWindowShape
A user-specified window vector, constructed via WindowVect(v::V)
, where v
is a AbstractVector
. Caution: length(v)
must be appropriate for the padded sinogram size.
source show(io::IO, ::MIME"text/plain", st::RayGeom)
source _geom_gamma(st::RayGeom)
Return gamma (γ: fan angle) values for fan-beam geometry.
source _geom_rfov(st::RayGeom)
Radial FOV.
source _geom_unitv([T=Float32], st:RayGeom [, pos::Tuple])
Projection views with a single non-zero ray value at position pos
(default: middle).
source _geom_xds(st::RayGeom)
Center x
positions of detectors (for beta = 0), for central row of detector.
source _geom_yds(st::RayGeom)
Center y
positions of detectors (for beta = 0), for central row of detector.
source _reale(x ; rtol = …)
Return the real part of x
, but warn if the imaginary part is too large. By default this uses a 100× larger rtol
than isapprox
due to FFT errors.
source _show(io::IO, ::MIME"text/plain", st::Any)
Informative way to show fields of a struct (composite type).
source u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)
Convert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)
Convert from cone-beam flat panel coordinages to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source cbct_back(proj, cg, ig)
Cone-beam backprojector for feldkamp.jl
in
proj
(ns,nt,na) cone-beam projection viewscg::CtGeom
ig::ImageGeom
out
img
(nx,ny,nz) back-projection resultsource cbct_back_fan!(...)
This should work even for non-uniformly spaced source angles (for a circular source trajectory).
source ct_geom_plot2!(st::CtGeom [, ig::ImageGeom])
Plot central 2D portion of the CBCT geometry.
source ct_geom_plot3(st::CtFan [, ig::ImageGeom])
3D CBCT geometry plot
source downsample(ct, down::Int)
+downsample(ct, down::NTuple{3,Int})
Down-sample CT geometry (for testing with small problems).
source downsample(st, down)
Down-sample sinogram geometry (for testing with small problems).
source fbp!(image, sino ; orbit::Real = 180, kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Writes result into image
matrix.
Input
Options for SinoPar
constructor
dr
: sinogram radial spacing; default 1orbit
: angular range in degrees; default 180orbit_start
: angular range in degrees; default 0Options for ImageGeom
dx
, dy
, deltas
, offset_x
, offset_y
, offsets
rmax
maximum radius for maskOptions
kwargs
: passed to plan_fbp
Output
image::AbstractMatrix
is mutatedsource image, sino_filt = fbp(plan, sino)
Filtered back-projection (FBP) reconstruction, returning image and filtered sinogram.
in
plan::FBPplan
sino::AbstractMatrix{<:Number}
out
image::Matrix{<:Number}
reconstructed image(s)sino_filt::Matrix{<:Number}
filtered sinogram(s)source fbp(sino::AbstractMatrix ; kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Returns an image of size [nx × ny]
.
Options
nx
: default nr
ny
: default nx
kwargs
: passed to fbp!
source img = fbp_back(sg, ig, sino ; ia_skip)
2D pixel-driven backprojection for FBP.
in
sg::SinoGeom
ig::ImageGeom
sino::AbstractArray{<:Number}
sinogram(s) (line integrals), usually ramp filteredoptions
ia_skip::Int
downsample in angle to save time for quick tests (default: 1)out
img::Array{<:Number}
reconstructed image(s)source fbp_back_fan!(image, sino, sinβ, cosβ,
+ dsd, dso, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd,dso,source_offset::RealU
geometryis_arc::Bool
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_fan(sino, betas,
+ dsd, dso, dfs, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredbetas::Vector{<:Real}
(na)
in radiansdsd,dso,source_offset::RealU
geometryis_arc::Bool
arc or flat?ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::Type{<:Number}
usually same as eltype(sino)
out
source fbp_back_fan_xy(sino, sinβ, cosβ,
+ dsd_ds, dso_ds, source_offset_ds, is_arc,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd_ds,dso_ds,source_offset_ds::Real
geometry, normalizedwb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::Type{<:Number}
typically same as eltype(sino)
out
Returns a scalar of type T
. source fbp_back_par!(image, sino, sinϕ, cosϕ,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_par(sino, angles,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredangles::Vector{<:Real}
(na)
in radiansds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::Type{<:Number}
usually same as eltype(sino)
out
source fbp_back_par_xy(sino, sinϕ, cosϕ,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
wb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::Type{<:Number}
typically same as eltype(sino)
out
Returns a scalar of type T
. source Hk = fbp_filter(st::Union{SinoGeom,CtGeom} ;
+ npad=0, ds::RealU = st.d, decon1::Bool=true, window=Window())
Compute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
st::Union{SinoGeom,CtGeom}
options
npad::Int
# of padded samples. (default: next power of 2)ds::Td
detector sample spacing (default from st
)decon1::Bool
deconvolve effect of linear interpolator? (default: true)window::Window
apodizer; default: Window()
out
Hk::Vector
apodized ramp filter frequency responsesource h, n = fbp_ramp(sg::SinoGeom, N::Int)
'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
sg::SinoGeom
N::Int
: # of samples (must be even)out
h::Vector{<:RealU}
: samples of band-limited ramp filtern::UnitRange{Int64}
: -(N÷2):(N÷2-1)source sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)
Apply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.
in
sino::AbstractArray{<:Number}
[nb (L)]
sinogramsfilter::AbstractVector
(npad ≥ nb)
apodized ramp filter frequency responseoptions
extra::Int
# of extra sinogram radial samples to keep (default: 0)npad::Int
# of padded samples. (default: next power of 2)out
sino::AbstractArray
sinogram with filtered rowssource fbp_sino_weight(sg::SinoFan)
Return 1D sinogram weighting for first step of 2D fan-beam FBP.
source fbp_window(w::Window, N::Int ; T = Float32)
Create an apodizing window of length N
and fftshift
it.
julia> fbp_window(Window(Hamming()), 4)
+4-element Vector{Float32}:
+ 1.0
+ 0.54
+ 0.0
+ 0.54
source image = fdk(plan, proj)
Reconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.
in
plan::FDKplan
proj
(ns,nt,na) projection viewsout
image
(nx,ny,nz) reconstructed imageReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.
source footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)
Unitless maximum footprint size (in detector pixels).
source oversample(st, over::Int)
Over-sample CT geometry in "radial" dimension.
source oversample(st, over::Int)
Over-sample sinogram geometry in "radial" dimension. For Mojette sampling, it means that d = dx/over
.
source parker_weight(sg::SinoGeom ; T = Float32)
Compute Parker weighting for non-360° orbits. Returns Vector{T}
of length sg.na
for SinoPar
. Returns Matrix{T}
of size dims(sg)
for SinoFan
.
source plan = plan_fbp(cg, ig; window=Window(), ...)
Plan FDK 3D CBCT image reconstruction, with either flat or arc detector.
To use this, you first call it with the CT geometry and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FDK reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
cg::CtGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.options
window::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, cg.ns + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)-T::Type{<:Number}
type of sino elements (default Float32
)
out
plan::FDKplan
initialized plansource plan = plan_fbp(sg, ig; how=:normal, window=Window())
Plan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.
To use this, you first call it with the sinogram and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FBP reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
sg::SinoGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.options
how::Symbol
how to reconstruct:normal
default:mojette
use mojette rebinning and Gtomo2_tablewindow::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, sg.nb + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)T::Type{<:Number}
type of sino
elements (default Float32
)out
plan::FBPplan
initialized plansource i = rays(st::CtGeom)
Return parallel-beam coordinates of all rays for this CT geometry. Return type of i
is a ProductIterator
that makes tuples of the form (u, v, ϕ, θ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source = rays(sg::SinoGeom)
Radial r
and angular ϕ
coordinates (in radians) of all sinogram elements for the given geometry. Return type of i
is a ProductIterator
that makes tuples of the form (r, ϕ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source reshaper(x::AbstractArray, dim:Dims)
Reshape x
to size dim
with :
only if needed
source sino_geom_plot!(sg, ig)
Picture of the source position / detector geometry.
source sino_geom_plot!(sg)
Picture of the source position / detector geometry.
source sino_geom_tau(st::Union{SinoGeom,CtGeom}, x, y)
Projected s/ds
, useful for footprint center and support. Returns Matrix
of size length(x) × st.na
.
source sino_plot_rays(sg::SinoGeom ; kwargs...)
Make a scatter plot of the (r, ϕ)
sample locations for all rays. Requires Plots
.
source to_radians(angles::AbstractArray{Unitful.Quantity})
Convert Unitful
quantity array to radians.
source to_radians(angles::AbstractArray{<:AbstractFloat})
When Unitful package not loaded, assume angles
are in degrees and convert to radians.
source output = zwart_powell(r, ϕ)
Analytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r
(normalized by pixel size) and angle ϕ
(in radians).
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/search/index.html b/v0.3.0/search/index.html
new file mode 100644
index 0000000..d124305
--- /dev/null
+++ b/v0.3.0/search/index.html
@@ -0,0 +1,2 @@
+
+Search · Sinograms.jl
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Thursday 22 December 2022 . Using Julia version 1.8.3.
diff --git a/v0.3.0/search_index.js b/v0.3.0/search_index.js
new file mode 100644
index 0000000..10a9b86
--- /dev/null
+++ b/v0.3.0/search_index.js
@@ -0,0 +1,3 @@
+var documenterSearchIndex = {"docs":
+[{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/07-fdk.jl\"","category":"page"},{"location":"generated/examples/07-fdk/#fdk","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated from a single Julia file: 07-fdk.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb, and opened in binder here: 07-fdk.ipynb.","category":"page"},{"location":"generated/examples/07-fdk/#Setup","page":"CBCT FDK","title":"Setup","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Packages needed here.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: CtFanArc, CtFanFlat # CtPar\nusing Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\nusing ImageGeoms: ImageGeom, MaskCircle, fovs\nusing ImagePhantoms: ellipsoid_parameters, ellipsoid\nusing ImagePhantoms: radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/07-fdk/#CBCT-projections-of-3D-Shepp-Logan-phantom","page":"CBCT FDK","title":"CBCT projections of 3D Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Ellipsoid parameters for 3D Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nparams = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\nob = ellipsoid(params)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"A narrow grayscale window is needed to see the soft tissue structures","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"clim = (0.95, 1.05) .* μ","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Here is the ideal phantom image:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"oversample = 3\ntrue_image = phantom(axes(ig)..., ob, oversample)\njim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Define the system geometry (for some explanation use ?CtGeom):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\ncg = CtFanArc( ; p...)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ct_geom_plot3(cg, ig)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"prompt()","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"CBCT projections using Sinogram.rays and ImagePhantoms.radon:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"proj_arc = radon(rays(cg), ob)\njim(cg.s, cg.t, proj_arc ;\n title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"There is no \"inverse crime\" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.","category":"page"},{"location":"generated/examples/07-fdk/#Image-reconstruction-via-FBP-/-FDK","page":"CBCT FDK","title":"Image reconstruction via FBP / FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"We start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"plan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\nfdk_arc = fdk(plan, proj_arc)\njim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_arc = fdk_arc - true_image\njim(axes(ig), err_arc, \"Error image (arc)\"; clim = (-1,1) .* (0.05μ))","category":"page"},{"location":"generated/examples/07-fdk/#Repeat-with-flat-detector-geometry","page":"CBCT FDK","title":"Repeat with flat detector geometry","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"cg = CtFanFlat( ; p...)\nproj_flat = radon(rays(cg), ob)\njim(cg.s, cg.t, proj_flat ;\n title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n\nplan = plan_fbp(cg, ig; window = Window(Hamming(), 1.0))\nfdk_flat = fdk(plan, proj_flat)\njim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_flat = fdk_flat - true_image\njim(axes(ig), err_flat, \"Error image (flat)\"; clim = (-1,1) .* (0.05μ))","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"As expected for CBCT, the largest errors are in the end slices.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/02-sino-geom.jl\"","category":"page"},{"location":"generated/examples/02-sino-geom/#sino-geom","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated from a single Julia file: 02-sino-geom.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb, and opened in binder here: 02-sino-geom.ipynb.","category":"page"},{"location":"generated/examples/02-sino-geom/#Setup","page":"2D sinogram geometry","title":"Setup","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Packages needed here.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"using Unitful: mm, °\nusing Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\nusing Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\nusing Sinograms: sino_plot_rays, rays\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/02-sino-geom/#D-Sinogram-geometries","page":"2D sinogram geometry","title":"2D Sinogram geometries","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined for all r and ϕ but practical systems record p(rϕ) only for certain finite sets of samples of those values.","category":"page"},{"location":"generated/examples/02-sino-geom/#Parallel-beam-geometry","page":"2D sinogram geometry","title":"Parallel-beam geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The simplest form of sinogram sampling is equally spaced samples in both r and ϕ. This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of r and ϕ are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In this package, SinoPar is the type that describes a parallel-beam sinogram geometry.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The built-in defaults provide helpful reminders about the usage.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"SinoPar()","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This package supports units via the Unitful.jl and using units is recommended (but not required).","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"orbit and orbit_start must both be unitless (degrees) or have the same units (e.g., degrees or radians).\ndetector spacing d (can be unitless or have units e.g., mm).\nThe projection angles ϕ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoPar( ;\n nb = 64, # number of radial samples (\"bins\")\n na = 30, # number of angular samples\n d = 2mm, # detector spacing\n offset = 0.25, # quarter detector offset (unitless)\n orbit = 180, # angular range (in degrees)\n orbit_start = 0, # starting angle (in degrees)\n)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The struct sg has numerous useful properties; type ?SinoGeom to see the full list.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For example, to access the angular samples in degrees type sg.ad","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg.ad","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following function visualizes the sampling pattern.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-an-arc-detector-(3rd-generation-CT)","page":"2D sinogram geometry","title":"Fan-beam CT with an arc detector (3rd generation CT)","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For a fan-beam geometry, the arguments are the same as for SinoPar with the addition of specifying:","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"dsd distance from source to detector\ndod distance from origin (isocenter) to detector\ndfs distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf for a flat detector)\nsource_offset for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanArc( ; nb=888, na=984,\n d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a smaller example for plotting the rays.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanArc( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)\nsino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for arc detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-a-flat-detector","page":"2D sinogram geometry","title":"Fan-beam CT with a flat detector","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This geometry is the same as the arc detector except that dfs=Inf.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoFanFlat( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for flat detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Mojette-sampling","page":"2D sinogram geometry","title":"Mojette sampling","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This is a specialized sampling geometry that is currently incompletely supported.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sg = SinoMoj( ; nb=60, na=30)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(sg; ylims=(0,180), yticks=(0:90:180), widen=true,\n title=\"Mojette sampling\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\ndefault(label=\"\")\nfor y in -2:2\n plot!([-3, 3], [y, y], color=:black)\nend\nfor x in -3:3\n plot!([x, x], [-2, 2], color=:black)\nend\nplot_ray!(r, ϕ) = plot!(\n r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n color = :blue,\n)\nia = 4 # pick an angle\ni = rays(sg) # iterator\nrs = [i[1] for i in i] # radial samples\nϕs = [i[2] for i in i] # projection angle\nr = rs[:,ia]\nr = r[abs.(r) .< 3]\nϕ = ϕs[1,ia]\nplot_ray!.(r, ϕ)\nplot!(aspect_ratio=1, title = \"Mojette line integrals\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/03-parallel-beam.jl\"","category":"page"},{"location":"generated/examples/03-parallel-beam/#parallel-beam","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated from a single Julia file: 03-parallel-beam.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb, and opened in binder here: 03-parallel-beam.ipynb.","category":"page"},{"location":"generated/examples/03-parallel-beam/#Setup","page":"Parallel-beam tomography","title":"Setup","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Packages needed here.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"using Sinograms: SinoPar, rays, plan_fbp, fbp\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing Unitful: mm\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/03-parallel-beam/#Parallel-beam-sinogram-of-Shepp-Logan-phantom","page":"Parallel-beam tomography","title":"Parallel-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use SinoPar to define the sinogram geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sg = SinoPar( ; nb = 130, d = 2mm, na = 100)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Radon transform of Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sino = radon(rays(sg), ob)\njim(axes(sg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n\n# Image reconstruction via FBP","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"plan = plan_fbp(sg, ig)\nfbp_image, sino_filt = fbp(plan, sino)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated using Literate.jl.","category":"page"},{"location":"methods/#Methods-list","page":"Methods","title":"Methods list","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"","category":"page"},{"location":"methods/#Methods-usage","page":"Methods","title":"Methods usage","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"Modules = [Sinograms]","category":"page"},{"location":"methods/#Sinograms.Sinograms","page":"Methods","title":"Sinograms.Sinograms","text":"Sinograms module\n\n\n\n\n\n","category":"module"},{"location":"methods/#Sinograms.CtFanArc","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc 3D CBCT geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc(::Val{:ge1} ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\n\nout\n\nCtFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> CtFanArc(Val(:ge1))\nCtFanArc{Float64, Float32, CtSourceCircle} :\n ns::Int64 888\n nt::Int64 64\n ds::Float64 1.0239\n dt::Float64 1.0964\n offset_s::Float32 1.25\n offset_t::Float32 0.0\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float64 0.0\n dsd::Float64 949.075\n dod::Float64 408.075\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanArc-Tuple{}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtFanArc()\nCtFanArc{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanFlat","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat 3D CTCT geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanFlat-Tuple{}","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtFanFlat()\nCtFanFlat{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtGeom","page":"Methods","title":"Sinograms.CtGeom","text":"CtGeom{Td,To,Ts}\n\nAbstract type for representing ray geometries for 3D CT imaging.\n\nThe projection view coordinates are (s,t) where s denotes the transaxial sampling and t denotes the axial direction (along z).\n\nCommon fields\n\nns size of each projection view\nnt\nds detector pixel spacing\ndt\noffset_s unitless detector center offset (usually 0 or 0.25)\noffset_t unitless, usually 0\nna # of projection views, aka nϕ or nβ\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\nsrc::CtSource describes the X-ray CT source trajectory. Primary support for CtSourceCircle().\n\nAdditional fields for CtFan types:\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nds, dt, source_offset, dsd, dod must all be unitless or have the same units.\n\nDerived values (available by getproperty), i.e., st.?\n\n.dim dimensions: (ns,nt,na)\n.s (ns) s sample locations\n.t (nt) t sample locations\n.ws = (ns-1)/2 + offset_s \"middle\" sample position\n.wt = (nt-1)/2 + offset_t\n.ad (na) source angles [degrees]\n.ar (na) source angles [radians]\n.rad (ns) radial distance of each ray from origin\n.rfov max radius within FOV\n.zfov axial FOV\n\nFor fan beam:\n\ndso = dsd - dod distance from source to origin (Inf for parallel beam)\ndfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n.gamma (ns) gamma sample values radians\n.gamma_s gamma values given s values\n.gamma_max half of fan angle radians, if offset_s=0\n.gamma_max_abs half of fan angle radians - recommended\n.cone_angle (half) cone angle on axis (s=0): +/- angle\n\nBasic methods\n\ndims (ns, nt, na)\nones = ones(Float32, ns,nt,na)\nzeros = zeros(Float32, ns,nt,na)\nrays iterator of (u,v,ϕ,θ) samples\ndownsample(st, down) reduce sampling by integer factor\noversample(st, over)\nct_geom_plot! plot system geometry\n\nMethods\n\n.shape(proj) reshape proj\n.plot2(ig) plot the 2D geometry of the image\n.plot3(ig) plot the 3D geometry of the cone beam setup\n.unitv(is,it,ia) unit vector with single nonzero element\n\nNotes\n\nUse sino_geom() instead for 2D geometries.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar","page":"Methods","title":"Sinograms.CtPar","text":"CtPar\n\n3D parallel-beam projection geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar-Tuple{}","page":"Methods","title":"Sinograms.CtPar","text":"CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtPar()\nCtPar{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 60\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtSource","page":"Methods","title":"Sinograms.CtSource","text":"CtSource\n\nAbstract type for representing X-ray CT source trajectories.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceCircle","page":"Methods","title":"Sinograms.CtSourceCircle","text":"CtSourceCircle\n\nType for representing circular X-ray CT source trajectory.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix\n\nType for representing helical X-ray CT source trajectories having constant pitch.\n\nFields\n\npitch helix pitch (unitless fraction of zFOV, default 0)\nsource_z0 initial z position of x-ray source (default 0) It should have same units as detector pixels etc.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix-Tuple{}","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix( ; pitch = 0, source_z0 = 0)\n\nConstructor with named keywords\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.FBPNormalPlan","page":"Methods","title":"Sinograms.FBPNormalPlan","text":"FBPNormalPlan{S,I,H,P}\n\nStruct type for storing \"normal\" FBP plan.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FBPplan","page":"Methods","title":"Sinograms.FBPplan","text":"FBPplan\n\nAbstract type for FBP plans.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FDKplan","page":"Methods","title":"Sinograms.FDKplan","text":"FDKplan{C,I,H,P}\n\nStruct type for storing FDK plan.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.RayGeom","page":"Methods","title":"Sinograms.RayGeom","text":"RayGeom{Td,To}\n\nParent type for SinoGeom and CtGeom\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc 2D fan-beam sinogram geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFan(Val(:ge1) ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\nnb::Int = 888 # of detector channels\nd::RealU = 1.0239 channel spacing\noffset::Real = 1.25 for \"quarter-detector\" offset\nna::Int = 984 # of angles\norbit::Union{Symbol,Real} = 360 use :short for short scan\ndsd::RealU = 949.075\ndod::RealU = 408.075\n\nout\n\nSinoFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> SinoFanArc(Val(:ge1))\nSinoFanArc{Float64, Float32} :\n nb::Int64 888\n d::Float64 1.0239\n offset::Float32 1.25\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float64 0.0\n dsd::Float64 949.075\n dod::Float64 408.075\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc( ; nb d offset na orbit orbit_start\n source_offset, dsd = 4 * nb * d, dod = nb * d)\nSinoFanArc(:short ; nb d offset na orbit_start\n source_offset, dsd = 4 * nb * d, dod = nb * d)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\nd, source_offset, dsd, dod must all have the same units.\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> SinoFanArc()\nSinoFanArc{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanFlat","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat\n\n2D fan-beam sinogram geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanFlat-Tuple{}","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat( ; nb d offset na orbit orbit_start\n source_offset, dsd= 4 * nb * d, dod = nb * d)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoFanFlat()\nSinoFanFlat{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoGeom","page":"Methods","title":"Sinograms.SinoGeom","text":"SinoGeom{Td,To}\n\nAbstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.\n\nCommon fields\n\nnb # of \"radial\" samples, aka nr or ns\nd aka dr or ds, \"radial\" sample spacing\noffset unitless sample offset (usually 0 or 0.25)\nna # of angular samples, aka nϕ or nβ default: 2 * floor(Int, nb * π/2 / 2)\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\n\nAdditional fields for SinoFan types\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nd, source_offset, dsd, dod must all have the same units.\n\nDerived values (available by getproperty), i.e., st.?\n\n.ds|dr radial sample spacing (NaN for :moj)\n.s (nb) s sample locations\n.w = (nb-1)/2 + offset \"middle\" sample position\n.ad (na) source angles degrees\n.ar (na) source angles radians\n.rfov radial FOV\n.xds (nb) center of detector elements (beta=0)\n.yds (nb) \"\"\n\nFor mojette:\n\n.d_ang (na) angle-dependent radial spacing\n\nFor fan beam:\n\ndso = dsd - dod distance from source to origin (Inf for parallel beam)\ndfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n.gamma (nb) gamma sample values radians\n.gamma_max half of fan angle radians, if offset=0\n\nBasic methods\n\ndims (nb, na)\nsino_s (nb) s sample locations\nsino_w = (nb-1)/2 + offset ('middle' sample position)\nrays iterator of (r, ϕ) parallel-beam coordinate tuples of size (nb, na)\nones = ones(Float32, nb, na)\nzeros = zeros(Float32, nb, na)\ndownsample(st, down)\noversample(st, over)\nangles (na) in degrees\nsino_geom_plot! plot system geometry\n\nMethods\n\n.shape(sino) reshape sinograms into array (nb,na,:)\n.unitv(;ib,ia) unit 'vector' with single nonzero element\n.taufun(x,y) projected s/ds for each (x,y) pair (numel(x),na)\n\nNotes\n\nUse ct_geom() instead for 3D axial or helical cone-beam CT.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj\n\n2D Mojette sinogram geometry where d means dx (square pixel size)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj-Tuple{}","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoMoj()\nSinoMoj{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoPar","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar\n\n2D parallel-beam sinogram geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoPar-Tuple{}","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoPar()\nSinoPar{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.Window","page":"Methods","title":"Sinograms.Window","text":"Window{S,T}\n\nData type for FBP apodizing windows, with given window shape::S and cutoff::T.\n\njulia> Window(Hamming(), 0.8)\nWindow{Hamming, Float64}(Hamming(), 0.8)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.WindowVect","page":"Methods","title":"Sinograms.WindowVect","text":"WindowVect{V} <: AbstractWindowShape\n\nA user-specified window vector, constructed via WindowVect(v::V), where v is a AbstractVector. Caution: length(v) must be appropriate for the padded sinogram size.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Base.show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Sinograms.RayGeom}","page":"Methods","title":"Base.show","text":"show(io::IO, ::MIME\"text/plain\", st::RayGeom)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_gamma-Union{Tuple{Union{CtFanArc{Td}, SinoFanArc{Td}}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms._geom_gamma","text":"_geom_gamma(st::RayGeom)\n\nReturn gamma (γ: fan angle) values for fan-beam geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_rfov-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._geom_rfov","text":"_geom_rfov(st::RayGeom)\n\nRadial FOV.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_unitv","page":"Methods","title":"Sinograms._geom_unitv","text":"_geom_unitv([T=Float32], st:RayGeom [, pos::Tuple])\n\nProjection views with a single non-zero ray value at position pos (default: middle).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms._geom_xds-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._geom_xds","text":"_geom_xds(st::RayGeom)\n\nCenter x positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._geom_yds-Union{Tuple{Union{CtPar{Td}, SinoPar{Td}}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms._geom_yds","text":"_geom_yds(st::RayGeom)\n\nCenter y positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._reale-Tuple{Any}","page":"Methods","title":"Sinograms._reale","text":"_reale(x ; rtol = …)\n\nReturn the real part of x, but warn if the imaginary part is too large. By default this uses a 100× larger rtol than isapprox due to FFT errors.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Any}","page":"Methods","title":"Sinograms._show","text":"_show(io::IO, ::MIME\"text/plain\", st::Any)\n\nInformative way to show fields of a struct (composite type).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_arc_to_par-Union{Tuple{Ts}, Tuple{Ts, Number, Number, Number, Number}} where Ts<:Number","page":"Methods","title":"Sinograms.cb_arc_to_par","text":"u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_flat_to_par-NTuple{5, Number}","page":"Methods","title":"Sinograms.cb_flat_to_par","text":"u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam flat panel coordinages to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back-Union{Tuple{To}, Tuple{Td}, Tuple{Ts}, Tuple{AbstractArray{Ts, 3}, CtFan{Td, To}, ImageGeoms.ImageGeom{3, S, M} where {S<:Tuple{Number, Number, Number}, M<:AbstractArray{Bool, 3}}}} where {Ts<:Number, Td, To}","page":"Methods","title":"Sinograms.cbct_back","text":"cbct_back(proj, cg, ig)\n\nCone-beam backprojector for feldkamp.jl\n\nin\n\nproj (ns,nt,na) cone-beam projection views\ncg::CtGeom\nig::ImageGeom\n\nout\n\nimg (nx,ny,nz) back-projection result\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back_fan!-Union{Tuple{Toffset}, Tuple{To}, Tuple{T}, Tuple{Array{T, 3}, AbstractArray{<:Number, 3}, AbstractVector{To}, Number, Number, Number, Number, Toffset, Toffset, Bool, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractArray{Bool, 3}}} where {T<:Number, To<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.cbct_back_fan!","text":"cbct_back_fan!(...)\n\nThis should work even for non-uniformly spaced source angles (for a circular source trajectory).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot2!-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot2!","text":"ct_geom_plot2!(st::CtGeom [, ig::ImageGeom])\n\nPlot central 2D portion of the CBCT geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot3-Tuple{CtFan, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot3","text":"ct_geom_plot3(st::CtFan [, ig::ImageGeom])\n\n3D CBCT geometry plot\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Tuple{CtGeom, Int64}","page":"Methods","title":"Sinograms.downsample","text":"downsample(ct, down::Int)\ndownsample(ct, down::NTuple{3,Int})\n\nDown-sample CT geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.downsample","text":"downsample(st, down)\n\nDown-sample sinogram geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp!-Tuple{AbstractMatrix{<:Number}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp!","text":"fbp!(image, sino ; orbit::Real = 180, kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Writes result into image matrix.\n\nInput\n\nsino::AbstractMatrix\n\nOptions for SinoPar constructor\n\ndr : sinogram radial spacing; default 1\norbit : angular range in degrees; default 180\norbit_start : angular range in degrees; default 0\n\nOptions for ImageGeom\n\ndx, dy, deltas, offset_x, offset_y, offsets\nrmax maximum radius for mask\n\nOptions\n\nkwargs : passed to plan_fbp\n\nOutput\n\nimage::AbstractMatrix is mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Tuple{Sinograms.FBPNormalPlan{<:SinoPar}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp","text":"image, sino_filt = fbp(plan, sino)\n\nFiltered back-projection (FBP) reconstruction, returning image and filtered sinogram.\n\nin\n\nplan::FBPplan\nsino::AbstractMatrix{<:Number}\n\nout\n\nimage::Matrix{<:Number} reconstructed image(s)\nsino_filt::Matrix{<:Number} filtered sinogram(s)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Union{Tuple{AbstractMatrix{Ts}}, Tuple{Td}, Tuple{Ts}} where {Ts<:Number, Td<:Number}","page":"Methods","title":"Sinograms.fbp","text":"fbp(sino::AbstractMatrix ; kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Returns an image of size [nx × ny].\n\nOptions\n\nnx : default nr\nny : default nx\nkwargs : passed to fbp!\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back","page":"Methods","title":"Sinograms.fbp_back","text":"img = fbp_back(sg, ig, sino ; ia_skip)\n\n2D pixel-driven backprojection for FBP.\n\nin\n\nsg::SinoGeom\nig::ImageGeom\nsino::AbstractArray{<:Number} sinogram(s) (line integrals), usually ramp filtered\n\noptions\n\nia_skip::Int downsample in angle to save time for quick tests (default: 1)\n\nout\n\nimg::Array{<:Number} reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_back_fan!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Number, Number, Bool, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan!","text":"fbp_back_fan!(image, sino, sinβ, cosβ,\n dsd, dso, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Number, Number, Number, Bool, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_fan","text":"fbp_back_fan(sino, betas,\n dsd, dso, dfs, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nbetas::Vector{<:Real} (na) in radians\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool arc or flat?\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::Type{<:Number} usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Real, Real, Real, Bool, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan_xy","text":"fbp_back_fan_xy(sino, sinβ, cosβ,\n dsd_ds, dso_ds, source_offset_ds, is_arc,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd_ds,dso_ds,source_offset_ds::Real geometry, normalized\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::Type{<:Number} typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_par!","text":"fbp_back_par!(image, sino, sinϕ, cosϕ,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_par","text":"fbp_back_par(sino, angles,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nangles::Vector{<:Real} (na) in radians\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::Type{<:Number} usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_par_xy","text":"fbp_back_par_xy(sino, sinϕ, cosϕ,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::Type{<:Number} typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_filter-Union{Tuple{}, Tuple{Union{CtGeom{Td}, SinoGeom{Td}}}, Tuple{Td}} where Td<:Number","page":"Methods","title":"Sinograms.fbp_filter","text":"Hk = fbp_filter(st::Union{SinoGeom,CtGeom} ;\n npad=0, ds::RealU = st.d, decon1::Bool=true, window=Window())\n\nCompute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nst::Union{SinoGeom,CtGeom}\n\noptions\n\nnpad::Int # of padded samples. (default: next power of 2)\nds::Td detector sample spacing (default from st)\ndecon1::Bool deconvolve effect of linear interpolator? (default: true)\nwindow::Window apodizer; default: Window()\n\nout\n\nHk::Vector apodized ramp filter frequency response\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_ramp-Union{Tuple{Td}, Tuple{SinoPar{Td}, Int64}} where Td","page":"Methods","title":"Sinograms.fbp_ramp","text":"h, n = fbp_ramp(sg::SinoGeom, N::Int)\n\n'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nsg::SinoGeom\nN::Int : # of samples (must be even)\n\nout\n\nh::Vector{<:RealU} : samples of band-limited ramp filter\nn::UnitRange{Int64} : -(N÷2):(N÷2-1)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_filter-Union{Tuple{Tf}, Tuple{Ts}, Tuple{N}, Tuple{AbstractArray{Ts, N}, AbstractVector{Tf}}} where {N, Ts<:Number, Tf<:Number}","page":"Methods","title":"Sinograms.fbp_sino_filter","text":"sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)\n\nApply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.\n\nin\n\nsino::AbstractArray{<:Number} [nb (L)] sinograms\nfilter::AbstractVector (npad ≥ nb) apodized ramp filter frequency response\n\noptions\n\nextra::Int # of extra sinogram radial samples to keep (default: 0)\nnpad::Int # of padded samples. (default: next power of 2)\n\nout\n\nsino::AbstractArray sinogram with filtered rows\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_weight-Tuple{SinoFan}","page":"Methods","title":"Sinograms.fbp_sino_weight","text":"fbp_sino_weight(sg::SinoFan)\n\nReturn 1D sinogram weighting for first step of 2D fan-beam FBP.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_window-Tuple{Window, Int64}","page":"Methods","title":"Sinograms.fbp_window","text":"fbp_window(w::Window, N::Int ; T = Float32)\n\nCreate an apodizing window of length N and fftshift it.\n\njulia> fbp_window(Window(Hamming()), 4)\n4-element Vector{Float32}:\n 1.0\n 0.54\n 0.0\n 0.54\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fdk-Tuple{FDKplan, AbstractArray{<:Number, 3}}","page":"Methods","title":"Sinograms.fdk","text":"image = fdk(plan, proj)\n\nReconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.\n\nin\n\nplan::FDKplan\nproj (ns,nt,na) projection views\n\nout\n\nimage (nx,ny,nz) reconstructed image\n\nReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.footprint_size","page":"Methods","title":"Sinograms.footprint_size","text":"footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)\n\nUnitless maximum footprint size (in detector pixels).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:CtParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(st, over::Int)\n\nOver-sample CT geometry in \"radial\" dimension.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(st, over::Int)\n\nOver-sample sinogram geometry in \"radial\" dimension. For Mojette sampling, it means that d = dx/over.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.parker_weight-Tuple{SinoPar}","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(sg::SinoGeom ; T = Float32)\n\nCompute Parker weighting for non-360° orbits. Returns Vector{T} of length sg.na for SinoPar. Returns Matrix{T} of size dims(sg) for SinoFan.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(cg, ig; window=Window(), ...)\n\nPlan FDK 3D CBCT image reconstruction, with either flat or arc detector.\n\nTo use this, you first call it with the CT geometry and image geometry. The routine returns the initialized plan. Thereafter, to to perform FDK reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\ncg::CtGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noptions\n\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, cg.ns + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\n\n-T::Type{<:Number} type of sino elements (default Float32)\n\nout\n\nplan::FDKplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(sg, ig; how=:normal, window=Window())\n\nPlan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.\n\nTo use this, you first call it with the sinogram and image geometry. The routine returns the initialized plan. Thereafter, to to perform FBP reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nsg::SinoGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noptions\n\nhow::Symbol how to reconstruct\n:normal default\n:mojette use mojette rebinning and Gtomo2_table\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, sg.nb + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\nT::Type{<:Number} type of sino elements (default Float32)\n\nout\n\nplan::FBPplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Union{Tuple{CtPar{Td, To}}, Tuple{To}, Tuple{Td}} where {Td, To}","page":"Methods","title":"Sinograms.rays","text":"i = rays(st::CtGeom)\n\nReturn parallel-beam coordinates of all rays for this CT geometry. Return type of i is a ProductIterator that makes tuples of the form (u, v, ϕ, θ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Union{Tuple{SinoPar{Td, To}}, Tuple{To}, Tuple{Td}} where {Td, To}","page":"Methods","title":"Sinograms.rays","text":" = rays(sg::SinoGeom)\n\nRadial r and angular ϕ coordinates (in radians) of all sinogram elements for the given geometry. Return type of i is a ProductIterator that makes tuples of the form (r, ϕ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.reshaper-Tuple{AbstractArray, Tuple{Vararg{Int64, N}} where N}","page":"Methods","title":"Sinograms.reshaper","text":"reshaper(x::AbstractArray, dim:Dims)\n\nReshape x to size dim with : only if needed\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(sg, ig)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(sg)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_tau-Union{Tuple{Ty}, Tuple{Tx}, Tuple{To}, Tuple{Td}, Tuple{Union{SinoGeom{Td, To}, CtGeom{Td, To}}, AbstractArray{Tx}, AbstractArray{Ty}}} where {Td<:Number, To<:Number, Tx<:Number, Ty<:Number}","page":"Methods","title":"Sinograms.sino_geom_tau","text":"sino_geom_tau(st::Union{SinoGeom,CtGeom}, x, y)\n\nProjected s/ds, useful for footprint center and support. Returns Matrix of size length(x) × st.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_plot_rays-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_plot_rays","text":"sino_plot_rays(sg::SinoGeom ; kwargs...)\n\nMake a scatter plot of the (r, ϕ) sample locations for all rays. Requires Plots.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{<:Unitful.Quantity{T}}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{Unitful.Quantity})\n\nConvert Unitful quantity array to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{<:AbstractFloat})\n\nWhen Unitful package not loaded, assume angles are in degrees and convert to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.zwart_powell-Tuple{Real, Real}","page":"Methods","title":"Sinograms.zwart_powell","text":"output = zwart_powell(r, ϕ)\n\nAnalytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r (normalized by pixel size) and angle ϕ (in radians).\n\n\n\n\n\n","category":"method"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/05-fan-flat.jl\"","category":"page"},{"location":"generated/examples/05-fan-flat/#fan-flat","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page focuses on fan-beam with a \"flat\" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated from a single Julia file: 05-fan-flat.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb, and opened in binder here: 05-fan-flat.ipynb.","category":"page"},{"location":"generated/examples/05-fan-flat/#Setup","page":"Fan-beam tomography: flat detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/05-fan-flat/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: flat detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use SinoFanFlat to define the sinogram geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"sg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(sg, ig)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"prompt()","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"sino = radon(rays(sg), ob)\njim(axes(sg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/05-fan-flat/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: flat detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"plan = plan_fbp(sg, ig; window = Window(Hamming(), 1.0))\nfbp_image, sino_filt = fbp(plan, sino)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/04-fan-arc.jl\"","category":"page"},{"location":"generated/examples/04-fan-arc/#fan-arc","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated from a single Julia file: 04-fan-arc.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb, and opened in binder here: 04-fan-arc.ipynb.","category":"page"},{"location":"generated/examples/04-fan-arc/#Setup","page":"Fan-beam tomography: arc detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/04-fan-arc/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: arc detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use SinoFanArc to define the sinogram geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"sg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(sg, ig)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"prompt()","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"sino = radon(rays(sg), ob)\njim(axes(sg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/04-fan-arc/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: arc detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"plan = plan_fbp(sg, ig)\nfbp_image, sino_filt = fbp(plan, sino)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Sinograms","category":"page"},{"location":"#Sinograms.jl-Documentation","page":"Home","title":"Sinograms.jl Documentation","text":"","category":"section"},{"location":"#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Sinograms.jl is a Julia language package with tools for tomographic image reconstruction, including","category":"page"},{"location":"","page":"Home","title":"Home","text":"describing ray geometries (parallel beam, fan beam, etc.) ✅\nperforming filtered back-projection (FBP) image reconstruction ✅\nsystem models for iterative reconstruction (WIP)","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the examples.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See also:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Michigan Image Reconstruction Toolbox (MIRT)\nJuliaImageRecon","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/01-tomography.jl\"","category":"page"},{"location":"generated/examples/01-tomography/#tomography","page":"Tomography overview","title":"Tomography overview","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page gives an overview of the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated from a single Julia file: 01-tomography.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb, and opened in binder here: 01-tomography.ipynb.","category":"page"},{"location":"generated/examples/01-tomography/#Setup","page":"Tomography overview","title":"Setup","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Packages needed here.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"using Sinograms: fbp\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/01-tomography/#Tomography","page":"Tomography overview","title":"Tomography","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans). (See SPECTrecon.jl for a Julia package related to SPECT imaging.)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In an X-ray CT imaging system, X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.","category":"page"},{"location":"generated/examples/01-tomography/#Radon-transform","page":"Tomography overview","title":"Radon transform","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mathematical foundation for 2D X-ray CT imaging is the Radon transform, an integral transform that maps a 2D function f(xy) into the collection of line integrals through that function. Here we describe each line by its angle phi measured counter-clockwise from the y axis, and by the radial distance r of the line from the origin. The collection of integrals is called a sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = int_-infty^infty\nf(r cos phi - l sin phi\nr sin phi + l cos phi) mathrmd l","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p_1(rphi) = 2 sqrt1 - r^2 mathrm for r 1","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius r_0 centered at (x_0y_0) is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = r_0 p_1\nleft( fracr - (x_0 cos phi + y_0 sin phi)r_0 ϕ right)","category":"page"},{"location":"generated/examples/01-tomography/#Sinogram-example","page":"Tomography overview","title":"Sinogram example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is a display of that Radon transform for a disk of radius 3 centered at coordinate (51). Note that maximum value is approximately 6, the length of the longest chord through a disk of radius 3.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"nr = 128\ndr = 20 / nr\nr = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\nna = 130\nϕ = (0:(na-1))/na * π # angular samples\nproj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\nproj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\nsino = proj2.(r, ϕ', 5, 1, 3)\njimsino = (sino, title) -> jim(\n r, ϕ, sino; title, aspect_ratio=:none,\n xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n clim = (0, 6),\n)\njimsino(sino, \"Sinogram for one disk\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the (xy) plane traces out a distinct sinusoid in the sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mapping from the object f(xy) to data like the sinogram p(rphi) is called the \"forward problem.\"","category":"page"},{"location":"generated/examples/01-tomography/#Image-reconstruction","page":"Tomography overview","title":"Image reconstruction","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Image reconstruction is the process of solving the inverse problem of recovering an estimate hatf(xy) of the object f(xy) from a measured sinogram, i.e., from (usually noisy) samples of p(rphi).","category":"page"},{"location":"generated/examples/01-tomography/#FBP","page":"Tomography overview","title":"FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"A simple image reconstruction method is called the \"filtered back-projection\" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter, whose frequency response is roughly nu, where nu is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.","category":"page"},{"location":"generated/examples/01-tomography/#FBP-example","page":"Tomography overview","title":"FBP example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is an illustration of using the fbp method in this package to perform image reconstruction from the preceding sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"image = fbp(sino; dr)\n(nx,ny) = size(image)\ndx = dr # default\nx = ((-(nx-1)/2):((nx-1)/2)) * dr\ny = x\njim(x, y, image, \"FBP image\",\n xtick=[-10, 0, 2, 5, 8, 10],\n ytick=[-10, 0, -2, 1, 4, 10],\n)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The FBP reconstructed image looks pretty similar to a disk of radius 3 centered at (51) as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in r and phi.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This is example is what is called 2D parallel-beam tomography, because for the angles phi are equally spaced and for each angle the radial samples r are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.","category":"page"},{"location":"generated/examples/01-tomography/#Noise-effects-on-FBP","page":"Tomography overview","title":"Noise effects on FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Simulating the effects of measurement noise in sinogram leads to even worse FBP results.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"First note that a practical imaging system has a finite field of view (FOV):","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"rmax = maximum(r)\nfovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\njim(x, y, fovmask, \"FOV mask\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Add noise to the original sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_sinogram = sino + 0.1 * randn(size(sino))\njimsino(noisy_sinogram, \"Noisy sinogram\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Apply FBP to the noisy sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_fbp_image = fbp(noisy_sinogram; dr)\nnoisy_fbp_image .*= fovmask # apply FOV mask\njim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper.","category":"page"},{"location":"generated/examples/01-tomography/#Reproducibility","page":"Tomography overview","title":"Reproducibility","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated with the following version of Julia:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"And with the following package versions","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"import Pkg; Pkg.status()","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/06-fan-short.jl\"","category":"page"},{"location":"generated/examples/06-fan-short/#fan-short","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl for a \"short\" scan where the rotation (orbit) is 180° plus the fan angle. This case requires Parker weighting.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page was generated from a single Julia file: 06-fan-short.jl.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"The corresponding notebook can be viewed in nbviewer here: 06-fan-short.ipynb, and opened in binder here: 06-fan-short.ipynb.","category":"page"},{"location":"generated/examples/06-fan-short/#Setup","page":"Fan-beam tomography: short scan","title":"Setup","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Packages needed here.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/06-fan-short/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: short scan","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Use SinoFanArc to define the sinogram geometry, with the :short option for orbit to make a short scan. Note that even though we specify na = 100 we end up with na = 67 views because of the :short option.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"sg = SinoFanArc( :short, ;\n nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,\n)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Examine the geometry to verify the FOV. The na=67 blue dots show the :short scan.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(sg, ig)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"prompt()","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Short arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"sino = radon(rays(sg), ob)\njim(axes(sg), sino; title=\"Shepp-Logan 'short' sinogram\",\n xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/06-fan-short/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: short scan","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"plan = plan_fbp(sg, ig)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Examine Parker weights:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(sg), plan.parker_weight; title = \"Parker weights\",\n xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Finally perform FBP:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"fbp_image, sino_filt = fbp(plan, sino);\nnothing #hide","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for 'short' arc case\"; clim)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For comparison, here is the ideal phantom image:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Here is the difference image. Better sampling would reduce the errors.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(ig)..., fbp_image - true_image, \"Error image\")","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page was generated using Literate.jl.","category":"page"}]
+}
diff --git a/v0.3.0/siteinfo.js b/v0.3.0/siteinfo.js
new file mode 100644
index 0000000..bcac4fe
--- /dev/null
+++ b/v0.3.0/siteinfo.js
@@ -0,0 +1 @@
+var DOCUMENTER_CURRENT_VERSION = "v0.3.0";
diff --git a/v0.4 b/v0.4
new file mode 120000
index 0000000..be5bf2a
--- /dev/null
+++ b/v0.4
@@ -0,0 +1 @@
+v0.4.1
\ No newline at end of file
diff --git a/v0.4.0/assets/documenter.js b/v0.4.0/assets/documenter.js
new file mode 100644
index 0000000..6adfbbb
--- /dev/null
+++ b/v0.4.0/assets/documenter.js
@@ -0,0 +1,331 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min',
+ 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min',
+ 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min',
+ 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min',
+ 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min',
+ 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min',
+ 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min',
+ },
+ shim: {
+ "highlight-julia": {
+ "deps": [
+ "highlight"
+ ]
+ },
+ "katex-auto-render": {
+ "deps": [
+ "katex"
+ ]
+ },
+ "headroom-jquery": {
+ "deps": [
+ "jquery",
+ "headroom"
+ ]
+ },
+ "highlight-julia-repl": {
+ "deps": [
+ "highlight"
+ ]
+ }
+}
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) {
+$(document).ready(function() {
+ renderMathInElement(
+ document.body,
+ {
+ "delimiters": [
+ {
+ "left": "$",
+ "right": "$",
+ "display": false
+ },
+ {
+ "left": "$$",
+ "right": "$$",
+ "display": true
+ },
+ {
+ "left": "\\[",
+ "right": "\\]",
+ "display": true
+ }
+ ]
+}
+
+ );
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) {
+$(document).ready(function() {
+ hljs.highlightAll();
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require([], function() {
+function addCopyButtonCallbacks() {
+ for (const el of document.getElementsByTagName("pre")) {
+ const button = document.createElement("button");
+ button.classList.add("copy-button", "fas", "fa-copy");
+ el.appendChild(button);
+
+ const success = function () {
+ button.classList.add("success", "fa-check");
+ button.classList.remove("fa-copy");
+ };
+
+ const failure = function () {
+ button.classList.add("error", "fa-times");
+ button.classList.remove("fa-copy");
+ };
+
+ button.addEventListener("click", function () {
+ copyToClipboard(el.innerText).then(success, failure);
+
+ setTimeout(function () {
+ button.classList.add("fa-copy");
+ button.classList.remove("success", "fa-check", "fa-times");
+ }, 5000);
+ });
+ }
+}
+
+function copyToClipboard(text) {
+ // clipboard API is only available in secure contexts
+ if (window.navigator && window.navigator.clipboard) {
+ return window.navigator.clipboard.writeText(text);
+ } else {
+ return new Promise(function (resolve, reject) {
+ try {
+ const el = document.createElement("textarea");
+ el.textContent = text;
+ el.style.position = "fixed";
+ el.style.opacity = 0;
+ document.body.appendChild(el);
+ el.select();
+ document.execCommand("copy");
+
+ resolve();
+ } catch (err) {
+ reject(err);
+ } finally {
+ document.body.removeChild(el);
+ }
+ });
+ }
+}
+
+if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks);
+} else {
+ addCopyButtonCallbacks();
+}
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
+
+// Manages the top navigation bar (hides it when the user starts scrolling down on the
+// mobile).
+window.Headroom = Headroom; // work around buggy module loading?
+$(document).ready(function() {
+ $('#documenter .docs-navbar').headroom({
+ "tolerance": {"up": 10, "down": 10},
+ });
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Modal settings dialog
+$(document).ready(function() {
+ var settings = $('#documenter-settings');
+ $('#documenter-settings-button').click(function(){
+ settings.toggleClass('is-active');
+ });
+ // Close the dialog if X is clicked
+ $('#documenter-settings button.delete').click(function(){
+ settings.removeClass('is-active');
+ });
+ // Close dialog if ESC is pressed
+ $(document).keyup(function(e) {
+ if (e.keyCode == 27) settings.removeClass('is-active');
+ });
+});
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Manages the showing and hiding of the sidebar.
+$(document).ready(function() {
+ var sidebar = $("#documenter > .docs-sidebar");
+ var sidebar_button = $("#documenter-sidebar-button")
+ sidebar_button.click(function(ev) {
+ ev.preventDefault();
+ sidebar.toggleClass('visible');
+ if (sidebar.hasClass('visible')) {
+ // Makes sure that the current menu item is visible in the sidebar.
+ $("#documenter .docs-menu a.is-active").focus();
+ }
+ });
+ $("#documenter > .docs-main").bind('click', function(ev) {
+ if ($(ev.target).is(sidebar_button)) {
+ return;
+ }
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ });
+})
+
+// Resizes the package name / sitename in the sidebar if it is too wide.
+// Inspired by: https://github.com/davatron5000/FitText.js
+$(document).ready(function() {
+ e = $("#documenter .docs-autofit");
+ function resize() {
+ var L = parseInt(e.css('max-width'), 10);
+ var L0 = e.width();
+ if(L0 > L) {
+ var h0 = parseInt(e.css('font-size'), 10);
+ e.css('font-size', L * h0 / L0);
+ // TODO: make sure it survives resizes?
+ }
+ }
+ // call once and then register events
+ resize();
+ $(window).resize(resize);
+ $(window).on('orientationchange', resize);
+});
+
+// Scroll the navigation bar to the currently selected menu item
+$(document).ready(function() {
+ var sidebar = $("#documenter .docs-menu").get(0);
+ var active = $("#documenter .docs-menu .is-active").get(0);
+ if(typeof active !== 'undefined') {
+ sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+function set_theme(theme) {
+ var active = null;
+ var disabled = [];
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ if(themename === null) continue; // ignore non-theme stylesheets
+ // Find the active theme
+ if(themename === theme) active = ss;
+ else disabled.push(ss);
+ }
+ if(active !== null) {
+ active.disabled = false;
+ if(active.ownerNode.getAttribute("data-theme-primary") === null) {
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ } else {
+ document.getElementsByTagName('html')[0].className = "";
+ }
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+
+ // Store the theme in localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ window.localStorage.setItem("documenter-theme", theme);
+ } else {
+ console.error("Browser does not support window.localStorage");
+ }
+}
+
+// Theme picker setup
+$(document).ready(function() {
+ // onchange callback
+ $('#documenter-themepicker').change(function themepick_callback(ev){
+ var themename = $('#documenter-themepicker option:selected').attr('value');
+ set_theme(themename);
+ });
+
+ // Make sure that the themepicker displays the correct theme when the theme is retrieved
+ // from localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ var theme = window.localStorage.getItem("documenter-theme");
+ if(theme !== null) {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = (e.value === theme);
+ })
+ } else {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = $("html").hasClass(`theme--${e.value}`);
+ })
+ }
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// update the version selector with info from the siteinfo.js and ../versions.js files
+$(document).ready(function() {
+ // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the
+ // siteinfo.js file, we just return immediately and not display the version selector.
+ if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) {
+ return;
+ }
+
+ var version_selector = $("#documenter .docs-version-selector");
+ var version_selector_select = $("#documenter .docs-version-selector select");
+
+ version_selector_select.change(function(x) {
+ target_href = version_selector_select.children("option:selected").get(0).value;
+ window.location.href = target_href;
+ });
+
+ // add the current version to the selector based on siteinfo.js, but only if the selector is empty
+ if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
+ var option = $("" + DOCUMENTER_CURRENT_VERSION + " ");
+ version_selector_select.append(option);
+ }
+
+ if (typeof DOC_VERSIONS !== 'undefined') {
+ var existing_versions = version_selector_select.children("option");
+ var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
+ DOC_VERSIONS.forEach(function(each) {
+ var version_url = documenterBaseURL + "/../" + each;
+ var existing_id = $.inArray(each, existing_versions_texts);
+ // if not already in the version selector, add it as a new option,
+ // otherwise update the old option with the URL and enable it
+ if (existing_id == -1) {
+ var option = $("" + each + " ");
+ version_selector_select.append(option);
+ } else {
+ var option = existing_versions[existing_id];
+ option.value = version_url;
+ option.disabled = false;
+ }
+ });
+ }
+
+ // only show the version selector if the selector has been populated
+ if (version_selector_select.children("option").length > 0) {
+ version_selector.toggleClass("visible");
+ }
+})
+
+})
diff --git a/v0.4.0/assets/logo.jl b/v0.4.0/assets/logo.jl
new file mode 100644
index 0000000..501013f
--- /dev/null
+++ b/v0.4.0/assets/logo.jl
@@ -0,0 +1,34 @@
+# logo.jl
+# Make Sinograms.jl logo
+
+using Sinograms: SinoPar, dims, rays
+using ImagePhantoms: ellipse, radon
+using MIRTjim: jim
+using Colors: RGB
+using FileIO: save
+
+const julia_purple = (0.584, 0.345, 0.698)
+const julia_green = (0.22, 0.596, 0.149)
+const julia_red = (0.796, 0.235, 0.2)
+colors = [ julia_purple, julia_green, julia_red, ] # from Luxor.jl
+
+rg = SinoPar(; nb=200, na=181, orbit=181)
+
+pars = [
+ (70, 0, 10, 10, 0, 1),
+ (30, 30, 10, 10, 0, 1),
+ ( 0, -60, 10, 10, 0, 1),
+]
+oa = ellipse(pars)
+
+sino = zeros(dims(rg)..., size(pars,1))
+logo = zeros(RGB{Float32}, dims(rg)...)
+for ip in 1:3
+ sino[:,:,ip] = radon(rays(rg), [oa[ip]])
+ c = RGB{Float32}(colors[ip]...)
+ logo[sino[:,:,ip] .> 0] .= c
+end
+sino = round.(Int, 255*sino/maximum(sino))
+jim(axes(rg), sino)
+
+#save("logo.png", logo')
diff --git a/v0.4.0/assets/logo.png b/v0.4.0/assets/logo.png
new file mode 100644
index 0000000..6934bc4
Binary files /dev/null and b/v0.4.0/assets/logo.png differ
diff --git a/v0.4.0/assets/search.js b/v0.4.0/assets/search.js
new file mode 100644
index 0000000..c133f74
--- /dev/null
+++ b/v0.4.0/assets/search.js
@@ -0,0 +1,267 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min',
+ 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ }
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'lunr', 'lodash'], function($, lunr, _) {
+
+$(document).ready(function() {
+ // parseUri 1.2.2
+ // (c) Steven Levithan
+ // MIT License
+ function parseUri (str) {
+ var o = parseUri.options,
+ m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
+ uri = {},
+ i = 14;
+
+ while (i--) uri[o.key[i]] = m[i] || "";
+
+ uri[o.q.name] = {};
+ uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
+ if ($1) uri[o.q.name][$1] = $2;
+ });
+
+ return uri;
+ };
+ parseUri.options = {
+ strictMode: false,
+ key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
+ q: {
+ name: "queryKey",
+ parser: /(?:^|&)([^&=]*)=?([^&]*)/g
+ },
+ parser: {
+ strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+ loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
+ }
+ };
+
+ $("#search-form").submit(function(e) {
+ e.preventDefault()
+ })
+
+ // list below is the lunr 2.1.3 list minus the intersect with names(Base)
+ // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with)
+ // ideally we'd just filter the original list but it's not available as a variable
+ lunr.stopWordFilter = lunr.generateStopWordFilter([
+ 'a',
+ 'able',
+ 'about',
+ 'across',
+ 'after',
+ 'almost',
+ 'also',
+ 'am',
+ 'among',
+ 'an',
+ 'and',
+ 'are',
+ 'as',
+ 'at',
+ 'be',
+ 'because',
+ 'been',
+ 'but',
+ 'by',
+ 'can',
+ 'cannot',
+ 'could',
+ 'dear',
+ 'did',
+ 'does',
+ 'either',
+ 'ever',
+ 'every',
+ 'from',
+ 'got',
+ 'had',
+ 'has',
+ 'have',
+ 'he',
+ 'her',
+ 'hers',
+ 'him',
+ 'his',
+ 'how',
+ 'however',
+ 'i',
+ 'if',
+ 'into',
+ 'it',
+ 'its',
+ 'just',
+ 'least',
+ 'like',
+ 'likely',
+ 'may',
+ 'me',
+ 'might',
+ 'most',
+ 'must',
+ 'my',
+ 'neither',
+ 'no',
+ 'nor',
+ 'not',
+ 'of',
+ 'off',
+ 'often',
+ 'on',
+ 'or',
+ 'other',
+ 'our',
+ 'own',
+ 'rather',
+ 'said',
+ 'say',
+ 'says',
+ 'she',
+ 'should',
+ 'since',
+ 'so',
+ 'some',
+ 'than',
+ 'that',
+ 'the',
+ 'their',
+ 'them',
+ 'then',
+ 'there',
+ 'these',
+ 'they',
+ 'this',
+ 'tis',
+ 'to',
+ 'too',
+ 'twas',
+ 'us',
+ 'wants',
+ 'was',
+ 'we',
+ 'were',
+ 'what',
+ 'when',
+ 'who',
+ 'whom',
+ 'why',
+ 'will',
+ 'would',
+ 'yet',
+ 'you',
+ 'your'
+ ])
+
+ // add . as a separator, because otherwise "title": "Documenter.Anchors.add!"
+ // would not find anything if searching for "add!", only for the entire qualification
+ lunr.tokenizer.separator = /[\s\-\.]+/
+
+ // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names
+ lunr.trimmer = function (token) {
+ return token.update(function (s) {
+ return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '')
+ })
+ }
+
+ lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter')
+ lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer')
+
+ var index = lunr(function () {
+ this.ref('location')
+ this.field('title',{boost: 100})
+ this.field('text')
+ documenterSearchIndex['docs'].forEach(function(e) {
+ this.add(e)
+ }, this)
+ })
+ var store = {}
+
+ documenterSearchIndex['docs'].forEach(function(e) {
+ store[e.location] = {title: e.title, category: e.category, page: e.page}
+ })
+
+ $(function(){
+ searchresults = $('#documenter-search-results');
+ searchinfo = $('#documenter-search-info');
+ searchbox = $('#documenter-search-query');
+ searchform = $('.docs-search');
+ sidebar = $('.docs-sidebar');
+ function update_search(querystring) {
+ tokens = lunr.tokenizer(querystring)
+ results = index.query(function (q) {
+ tokens.forEach(function (t) {
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 100,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 10,
+ usePipeline: true,
+ editDistance: 2,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["text"],
+ boost: 1,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ })
+ })
+ searchinfo.text("Number of results: " + results.length)
+ searchresults.empty()
+ results.forEach(function(result) {
+ data = store[result.ref]
+ link = $(''+data.title+' ')
+ link.attr('href', documenterBaseURL+'/'+result.ref)
+ if (data.category != "page"){
+ cat = $('('+data.category+', '+data.page+') ')
+ } else {
+ cat = $('('+data.category+') ')
+ }
+ li = $('').append(link).append(" ").append(cat)
+ searchresults.append(li)
+ })
+ }
+
+ function update_search_box() {
+ querystring = searchbox.val()
+ update_search(querystring)
+ }
+
+ searchbox.keyup(_.debounce(update_search_box, 250))
+ searchbox.change(update_search_box)
+
+ // Disable enter-key form submission for the searchbox on the search page
+ // and just re-run search rather than refresh the whole page.
+ searchform.keypress(
+ function(event){
+ if (event.which == '13') {
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ update_search_box();
+ event.preventDefault();
+ }
+ }
+ );
+
+ search_query_uri = parseUri(window.location).queryKey["q"]
+ if(search_query_uri !== undefined) {
+ search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20'))
+ searchbox.val(search_query)
+ }
+ update_search_box();
+ })
+})
+
+})
diff --git a/v0.4.0/assets/themes/documenter-dark.css b/v0.4.0/assets/themes/documenter-dark.css
new file mode 100644
index 0000000..0bf1af7
--- /dev/null
+++ b/v0.4.0/assets/themes/documenter-dark.css
@@ -0,0 +1,7702 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child),
+html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before {
+ height: 2px;
+ width: 50%; }
+ html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ height: 50%;
+ width: 2px; }
+ html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdee0;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+html.theme--documenter-dark .image.is-square .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+html.theme--documenter-dark .image.is-1by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+html.theme--documenter-dark .image.is-5by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+html.theme--documenter-dark .image.is-4by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+html.theme--documenter-dark .image.is-3by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+html.theme--documenter-dark .image.is-5by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+html.theme--documenter-dark .image.is-16by9 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+html.theme--documenter-dark .image.is-2by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+html.theme--documenter-dark .image.is-3by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+html.theme--documenter-dark .image.is-4by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+html.theme--documenter-dark .image.is-3by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+html.theme--documenter-dark .image.is-2by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+html.theme--documenter-dark .image.is-3by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+html.theme--documenter-dark .image.is-9by16 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+html.theme--documenter-dark .image.is-1by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+html.theme--documenter-dark .image.is-1by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta,
+html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 0.4em;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 15px;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus,
+ html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus,
+ html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous,
+ html.theme--documenter-dark .is-focused.pagination-next,
+ html.theme--documenter-dark .is-focused.pagination-link,
+ html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta,
+ html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active,
+ html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active,
+ html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous,
+ html.theme--documenter-dark .is-active.pagination-next,
+ html.theme--documenter-dark .is-active.pagination-link,
+ html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta,
+ html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button {
+ outline: none; }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled],
+ html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled],
+ html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous,
+ fieldset[disabled] html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark fieldset[disabled] .pagination-next,
+ fieldset[disabled] html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark fieldset[disabled] .pagination-link,
+ fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta,
+ fieldset[disabled] html.theme--documenter-dark .file-name,
+ html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 15px !important; }
+
+.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ font-size: 0.85em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 15px !important; }
+ .is-size-7-mobile {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 15px !important; }
+ .is-size-7-tablet {
+ font-size: 0.85em !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 15px !important; }
+ .is-size-7-touch {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 15px !important; }
+ .is-size-7-desktop {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 15px !important; }
+ .is-size-7-widescreen {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 15px !important; }
+ .is-size-7-fullhd {
+ font-size: 0.85em !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: #ecf0f1 !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #cfd9db !important; }
+
+.has-background-light {
+ background-color: #ecf0f1 !important; }
+
+.has-text-dark {
+ color: #282f2f !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #111414 !important; }
+
+.has-background-dark {
+ background-color: #282f2f !important; }
+
+.has-text-primary {
+ color: #375a7f !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #28415b !important; }
+
+.has-background-primary {
+ background-color: #375a7f !important; }
+
+.has-text-link {
+ color: #1abc9c !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #148f77 !important; }
+
+.has-background-link {
+ background-color: #1abc9c !important; }
+
+.has-text-info {
+ color: #024c7d !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #012d4b !important; }
+
+.has-background-info {
+ background-color: #024c7d !important; }
+
+.has-text-success {
+ color: #008438 !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #005122 !important; }
+
+.has-background-success {
+ background-color: #008438 !important; }
+
+.has-text-warning {
+ color: #ad8100 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #7a5b00 !important; }
+
+.has-background-warning {
+ background-color: #ad8100 !important; }
+
+.has-text-danger {
+ color: #9e1b0d !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #6f1309 !important; }
+
+.has-background-danger {
+ background-color: #9e1b0d !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #282f2f !important; }
+
+.has-background-grey-darker {
+ background-color: #282f2f !important; }
+
+.has-text-grey-dark {
+ color: #343c3d !important; }
+
+.has-background-grey-dark {
+ background-color: #343c3d !important; }
+
+.has-text-grey {
+ color: #5e6d6f !important; }
+
+.has-background-grey {
+ background-color: #5e6d6f !important; }
+
+.has-text-grey-light {
+ color: #8c9b9d !important; }
+
+.has-background-grey-light {
+ background-color: #8c9b9d !important; }
+
+.has-text-grey-lighter {
+ color: #dbdee0 !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdee0 !important; }
+
+.has-text-white-ter {
+ color: #ecf0f1 !important; }
+
+.has-background-white-ter {
+ background-color: #ecf0f1 !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+html.theme--documenter-dark {
+ /* This file contain the overall layout.
+ *
+ * The main container is that is identified by id #documenter.
+ */
+ /*!
+ Theme: a11y-dark
+ Author: @ericwbailey
+ Maintainer: @ericwbailey
+
+ Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
+*/
+ /* Comment */
+ /* Red */
+ /* Orange */
+ /* Yellow */
+ /* Green */
+ /* Blue */
+ /* Purple */ }
+ html.theme--documenter-dark html {
+ background-color: #1f2424;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark article,
+ html.theme--documenter-dark aside,
+ html.theme--documenter-dark figure,
+ html.theme--documenter-dark footer,
+ html.theme--documenter-dark header,
+ html.theme--documenter-dark hgroup,
+ html.theme--documenter-dark section {
+ display: block; }
+ html.theme--documenter-dark body,
+ html.theme--documenter-dark button,
+ html.theme--documenter-dark input,
+ html.theme--documenter-dark select,
+ html.theme--documenter-dark textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+ html.theme--documenter-dark code,
+ html.theme--documenter-dark pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+ html.theme--documenter-dark body {
+ color: #fff;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+ html.theme--documenter-dark a {
+ color: #1abc9c;
+ cursor: pointer;
+ text-decoration: none; }
+ html.theme--documenter-dark a strong {
+ color: currentColor; }
+ html.theme--documenter-dark a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark code {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: #ececec;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+ html.theme--documenter-dark hr {
+ background-color: #282f2f;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+ html.theme--documenter-dark img {
+ height: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark input[type="checkbox"],
+ html.theme--documenter-dark input[type="radio"] {
+ vertical-align: baseline; }
+ html.theme--documenter-dark small {
+ font-size: 0.875em; }
+ html.theme--documenter-dark span {
+ font-style: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark strong {
+ color: #f2f2f2;
+ font-weight: 700; }
+ html.theme--documenter-dark fieldset {
+ border: none; }
+ html.theme--documenter-dark pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: #282f2f;
+ color: #fff;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+ html.theme--documenter-dark table td,
+ html.theme--documenter-dark table th {
+ vertical-align: top; }
+ html.theme--documenter-dark table td:not([align]),
+ html.theme--documenter-dark table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .box {
+ background-color: #343c3d;
+ border-radius: 8px;
+ box-shadow: none;
+ color: #fff;
+ display: block;
+ padding: 1.25rem; }
+ html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark .button {
+ background-color: #282f2f;
+ border-color: #4c5759;
+ border-width: 1px;
+ color: #375a7f;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ html.theme--documenter-dark .button strong {
+ color: inherit; }
+ html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered {
+ border-color: #8c9b9d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused {
+ border-color: #8c9b9d;
+ color: #17a689; }
+ html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active {
+ border-color: #343c3d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active {
+ background-color: #1d2122;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused {
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused {
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered {
+ background-color: #dde4e6; }
+ html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .button.is-normal {
+ font-size: 15px; }
+ html.theme--documenter-dark .button.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .button.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button {
+ background-color: #8c9b9d;
+ border-color: #dbdee0;
+ box-shadow: none;
+ opacity: 0.5; }
+ html.theme--documenter-dark .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ html.theme--documenter-dark .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ html.theme--documenter-dark .button.is-static {
+ background-color: #282f2f;
+ border-color: #5e6d6f;
+ color: #dbdee0;
+ box-shadow: none;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .buttons .button {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ html.theme--documenter-dark .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ html.theme--documenter-dark .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .buttons.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .buttons.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .container {
+ max-width: 992px; }
+ html.theme--documenter-dark .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ html.theme--documenter-dark .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ html.theme--documenter-dark .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .container {
+ max-width: 1344px; } }
+ html.theme--documenter-dark .content li + li {
+ margin-top: 0.25em; }
+ html.theme--documenter-dark .content p:not(:last-child),
+ html.theme--documenter-dark .content dl:not(:last-child),
+ html.theme--documenter-dark .content ol:not(:last-child),
+ html.theme--documenter-dark .content ul:not(:last-child),
+ html.theme--documenter-dark .content blockquote:not(:last-child),
+ html.theme--documenter-dark .content pre:not(:last-child),
+ html.theme--documenter-dark .content table:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content h1,
+ html.theme--documenter-dark .content h2,
+ html.theme--documenter-dark .content h3,
+ html.theme--documenter-dark .content h4,
+ html.theme--documenter-dark .content h5,
+ html.theme--documenter-dark .content h6 {
+ color: #f2f2f2;
+ font-weight: 600;
+ line-height: 1.125; }
+ html.theme--documenter-dark .content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .content h1:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ html.theme--documenter-dark .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+ html.theme--documenter-dark .content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ html.theme--documenter-dark .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+ html.theme--documenter-dark .content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+ html.theme--documenter-dark .content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+ html.theme--documenter-dark .content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content blockquote {
+ background-color: #282f2f;
+ border-left: 5px solid #5e6d6f;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ol:not([type]) {
+ list-style-type: decimal; }
+ html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ html.theme--documenter-dark .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ html.theme--documenter-dark .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+ html.theme--documenter-dark .content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ html.theme--documenter-dark .content ul ul ul {
+ list-style-type: square; }
+ html.theme--documenter-dark .content dd {
+ margin-left: 2em; }
+ html.theme--documenter-dark .content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ html.theme--documenter-dark .content figure:not(:first-child) {
+ margin-top: 2em; }
+ html.theme--documenter-dark .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ html.theme--documenter-dark .content figure img {
+ display: inline-block; }
+ html.theme--documenter-dark .content figure figcaption {
+ font-style: italic; }
+ html.theme--documenter-dark .content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark .content sup,
+ html.theme--documenter-dark .content sub {
+ font-size: 75%; }
+ html.theme--documenter-dark .content table {
+ width: 100%; }
+ html.theme--documenter-dark .content table td,
+ html.theme--documenter-dark .content table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .content table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .content table thead td,
+ html.theme--documenter-dark .content table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tfoot td,
+ html.theme--documenter-dark .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tbody tr:last-child td,
+ html.theme--documenter-dark .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .content .tabs li + li {
+ margin-top: 0; }
+ html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .content.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .content.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ html.theme--documenter-dark .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ html.theme--documenter-dark .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+ html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+ html.theme--documenter-dark .image.is-square .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ html.theme--documenter-dark .image.is-1by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ html.theme--documenter-dark .image.is-5by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ html.theme--documenter-dark .image.is-4by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ html.theme--documenter-dark .image.is-3by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ html.theme--documenter-dark .image.is-5by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ html.theme--documenter-dark .image.is-16by9 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ html.theme--documenter-dark .image.is-2by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ html.theme--documenter-dark .image.is-3by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ html.theme--documenter-dark .image.is-4by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ html.theme--documenter-dark .image.is-3by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ html.theme--documenter-dark .image.is-2by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ html.theme--documenter-dark .image.is-3by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ html.theme--documenter-dark .image.is-9by16 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ html.theme--documenter-dark .image.is-1by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ html.theme--documenter-dark .image.is-1by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+ html.theme--documenter-dark .notification {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification strong {
+ color: currentColor; }
+ html.theme--documenter-dark .notification code,
+ html.theme--documenter-dark .notification pre {
+ background: white; }
+ html.theme--documenter-dark .notification pre code {
+ background: transparent; }
+ html.theme--documenter-dark .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ html.theme--documenter-dark .notification .title,
+ html.theme--documenter-dark .notification .subtitle,
+ html.theme--documenter-dark .notification .content {
+ color: currentColor; }
+ html.theme--documenter-dark .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .notification.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 15px;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ html.theme--documenter-dark .progress::-webkit-progress-bar {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .progress::-webkit-progress-value {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-moz-progress-bar {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-ms-fill {
+ background-color: #dbdee0;
+ border: none; }
+ html.theme--documenter-dark .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-ms-fill {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-light::-webkit-progress-value {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-moz-progress-bar {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-ms-fill {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-link::-webkit-progress-value {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-moz-progress-bar {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-ms-fill {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-info::-webkit-progress-value {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-moz-progress-bar {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-ms-fill {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-success::-webkit-progress-value {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-moz-progress-bar {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-ms-fill {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-warning::-webkit-progress-value {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-moz-progress-bar {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-ms-fill {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-danger::-webkit-progress-value {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-moz-progress-bar {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-ms-fill {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #5e6d6f;
+ background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.85em; }
+ html.theme--documenter-dark .progress.is-medium {
+ height: 1.25rem; }
+ html.theme--documenter-dark .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+ html.theme--documenter-dark .table {
+ background-color: #343c3d;
+ color: #fff; }
+ html.theme--documenter-dark .table td,
+ html.theme--documenter-dark .table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .table td.is-white,
+ html.theme--documenter-dark .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .table td.is-black,
+ html.theme--documenter-dark .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .table td.is-light,
+ html.theme--documenter-dark .table th.is-light {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .table td.is-dark,
+ html.theme--documenter-dark .table th.is-dark {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .table td.is-primary,
+ html.theme--documenter-dark .table th.is-primary {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-link,
+ html.theme--documenter-dark .table th.is-link {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-info,
+ html.theme--documenter-dark .table th.is-info {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-success,
+ html.theme--documenter-dark .table th.is-success {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-warning,
+ html.theme--documenter-dark .table th.is-warning {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-danger,
+ html.theme--documenter-dark .table th.is-danger {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-narrow,
+ html.theme--documenter-dark .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ html.theme--documenter-dark .table td.is-selected,
+ html.theme--documenter-dark .table th.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-selected a,
+ html.theme--documenter-dark .table td.is-selected strong,
+ html.theme--documenter-dark .table th.is-selected a,
+ html.theme--documenter-dark .table th.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .table tr.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table tr.is-selected a,
+ html.theme--documenter-dark .table tr.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table tr.is-selected td,
+ html.theme--documenter-dark .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ html.theme--documenter-dark .table thead {
+ background-color: transparent; }
+ html.theme--documenter-dark .table thead td,
+ html.theme--documenter-dark .table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tfoot {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tfoot td,
+ html.theme--documenter-dark .table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tbody {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tbody tr:last-child td,
+ html.theme--documenter-dark .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .table.is-bordered td,
+ html.theme--documenter-dark .table.is-bordered th {
+ border-width: 1px; }
+ html.theme--documenter-dark .table.is-bordered tr:last-child td,
+ html.theme--documenter-dark .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .table.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: #2d3435; }
+ html.theme--documenter-dark .table.is-narrow td,
+ html.theme--documenter-dark .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+ html.theme--documenter-dark .tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .tags:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tags.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ html.theme--documenter-dark .tags.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ color: #fff;
+ display: inline-flex;
+ font-size: 0.85em;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #111414; }
+ html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+ html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+ html.theme--documenter-dark .title,
+ html.theme--documenter-dark .subtitle {
+ word-break: break-word; }
+ html.theme--documenter-dark .title em,
+ html.theme--documenter-dark .title span,
+ html.theme--documenter-dark .subtitle em,
+ html.theme--documenter-dark .subtitle span {
+ font-weight: inherit; }
+ html.theme--documenter-dark .title sub,
+ html.theme--documenter-dark .subtitle sub {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title sup,
+ html.theme--documenter-dark .subtitle sup {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink,
+ html.theme--documenter-dark .subtitle .tag,
+ html.theme--documenter-dark .subtitle .content kbd,
+ html.theme--documenter-dark .content .subtitle kbd,
+ html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+ html.theme--documenter-dark .title {
+ color: #fff;
+ font-size: 2rem;
+ font-weight: 500;
+ line-height: 1.125; }
+ html.theme--documenter-dark .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark .title + .highlight {
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .title.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .title.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .title.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .title.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .title.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .title.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .title.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .subtitle {
+ color: #8c9b9d;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ html.theme--documenter-dark .subtitle strong {
+ color: #8c9b9d;
+ font-weight: 600; }
+ html.theme--documenter-dark .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .subtitle.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .subtitle.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .subtitle.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .subtitle.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .subtitle.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .subtitle.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .subtitle.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ html.theme--documenter-dark .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark .number {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+ html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #1f2424;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ color: #dbdee0; }
+ html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #8c9b9d;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #008438; }
+ html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+ html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+ html.theme--documenter-dark .textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ html.theme--documenter-dark .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ html.theme--documenter-dark .textarea[rows] {
+ height: initial; }
+ html.theme--documenter-dark .textarea.has-fixed-size {
+ resize: none; }
+ html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input {
+ cursor: pointer; }
+ html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover {
+ color: #8c9b9d; }
+ html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox {
+ color: white;
+ cursor: not-allowed; }
+ html.theme--documenter-dark .radio + .radio {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .select:not(.is-multiple) {
+ height: 2.25em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #1abc9c;
+ right: 1.125em;
+ z-index: 4; }
+ html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ html.theme--documenter-dark .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ html.theme--documenter-dark .select select::-ms-expand {
+ display: none; }
+ html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ html.theme--documenter-dark .select select[multiple] option {
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select.is-white:not(:hover)::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered {
+ border-color: black; }
+ html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .select.is-light:not(:hover)::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered {
+ border-color: #dde4e6; }
+ html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered {
+ border-color: #1d2122; }
+ html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #2f4d6d; }
+ html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .select.is-link:not(:hover)::after {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered {
+ border-color: #17a689; }
+ html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select.is-info:not(:hover)::after {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered {
+ border-color: #023d64; }
+ html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .select.is-success:not(:hover)::after {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered {
+ border-color: #006b2d; }
+ html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .select.is-warning:not(:hover)::after {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered {
+ border-color: #946e00; }
+ html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .select.is-danger:not(:hover)::after {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered {
+ border-color: #86170b; }
+ html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .select.is-disabled::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-fullwidth select {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ html.theme--documenter-dark .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-light .file-cta {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25);
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25);
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link .file-cta {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info .file-cta {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success .file-cta {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning .file-cta {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger .file-cta {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .file.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-cta {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-name {
+ display: none; }
+ html.theme--documenter-dark .file.is-boxed .file-label {
+ flex-direction: column; }
+ html.theme--documenter-dark .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ html.theme--documenter-dark .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-cta {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 0.4em 0.4em;
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .file.is-fullwidth .file-label {
+ width: 100%; }
+ html.theme--documenter-dark .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ html.theme--documenter-dark .file.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .file.is-right .file-cta {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .file.is-right .file-name {
+ border-radius: 0.4em 0 0 0.4em;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+ html.theme--documenter-dark .file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ html.theme--documenter-dark .file-label:hover .file-cta {
+ background-color: #e5eaec;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:hover .file-name {
+ border-color: #596668; }
+ html.theme--documenter-dark .file-label:active .file-cta {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:active .file-name {
+ border-color: #535f61; }
+ html.theme--documenter-dark .file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ html.theme--documenter-dark .file-cta,
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .file-cta {
+ background-color: #ecf0f1;
+ color: #343c3d; }
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+ html.theme--documenter-dark .file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ html.theme--documenter-dark .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .label {
+ color: #282f2f;
+ display: block;
+ font-size: 15px;
+ font-weight: 700; }
+ html.theme--documenter-dark .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .label.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .label.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .help {
+ display: block;
+ font-size: 0.85em;
+ margin-top: 0.25rem; }
+ html.theme--documenter-dark .help.is-white {
+ color: white; }
+ html.theme--documenter-dark .help.is-black {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .help.is-light {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help {
+ color: #282f2f; }
+ html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink {
+ color: #375a7f; }
+ html.theme--documenter-dark .help.is-link {
+ color: #1abc9c; }
+ html.theme--documenter-dark .help.is-info {
+ color: #024c7d; }
+ html.theme--documenter-dark .help.is-success {
+ color: #008438; }
+ html.theme--documenter-dark .help.is-warning {
+ color: #ad8100; }
+ html.theme--documenter-dark .help.is-danger {
+ color: #9e1b0d; }
+ html.theme--documenter-dark .field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ html.theme--documenter-dark .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.is-grouped > .control {
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field.is-horizontal {
+ display: flex; } }
+ html.theme--documenter-dark .field-label .label {
+ font-size: inherit; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .field-label {
+ margin-bottom: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.85em;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-normal {
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+ html.theme--documenter-dark .field-body .field .field {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body .field {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .field-body > .field {
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ html.theme--documenter-dark .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 15px;
+ position: relative;
+ text-align: left; }
+ html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon {
+ color: #5e6d6f; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon {
+ color: #dbdee0;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-left .icon.is-left {
+ left: 0; }
+ html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-right .icon.is-right {
+ right: 0; }
+ html.theme--documenter-dark .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb {
+ font-size: 15px;
+ white-space: nowrap; }
+ html.theme--documenter-dark .breadcrumb a {
+ align-items: center;
+ color: #1abc9c;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ html.theme--documenter-dark .breadcrumb a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .breadcrumb li:first-child a {
+ padding-left: 0; }
+ html.theme--documenter-dark .breadcrumb li.is-active a {
+ color: #f2f2f2;
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb li + li::before {
+ color: #8c9b9d;
+ content: "\0002f"; }
+ html.theme--documenter-dark .breadcrumb ul,
+ html.theme--documenter-dark .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .breadcrumb.is-centered ol,
+ html.theme--documenter-dark .breadcrumb.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .breadcrumb.is-right ol,
+ html.theme--documenter-dark .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+ html.theme--documenter-dark .card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #fff;
+ max-width: 100%;
+ position: relative; }
+ html.theme--documenter-dark .card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+ html.theme--documenter-dark .card-header-title {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-header-title.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-image {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+ html.theme--documenter-dark .card-footer {
+ background-color: transparent;
+ border-top: 1px solid #5e6d6f;
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-footer-item:not(:last-child) {
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ html.theme--documenter-dark .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+ html.theme--documenter-dark .dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .dropdown-content {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .dropdown-item {
+ color: #fff;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+ html.theme--documenter-dark a.dropdown-item,
+ html.theme--documenter-dark button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ html.theme--documenter-dark a.dropdown-item:hover,
+ html.theme--documenter-dark button.dropdown-item:hover {
+ background-color: #282f2f;
+ color: #0a0a0a; }
+ html.theme--documenter-dark a.dropdown-item.is-active,
+ html.theme--documenter-dark button.dropdown-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .dropdown-divider {
+ background-color: #5e6d6f;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+ html.theme--documenter-dark .level {
+ align-items: center;
+ justify-content: space-between; }
+ html.theme--documenter-dark .level code {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .level img {
+ display: inline-block;
+ vertical-align: top; }
+ html.theme--documenter-dark .level.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left,
+ html.theme--documenter-dark .level.is-mobile .level-right {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level {
+ display: flex; }
+ html.theme--documenter-dark .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+ html.theme--documenter-dark .level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ html.theme--documenter-dark .level-item .title,
+ html.theme--documenter-dark .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ html.theme--documenter-dark .level-left,
+ html.theme--documenter-dark .level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .level-left .level-item.is-flexible,
+ html.theme--documenter-dark .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left .level-item:not(:last-child),
+ html.theme--documenter-dark .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left {
+ display: flex; } }
+ html.theme--documenter-dark .level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-right {
+ display: flex; } }
+ html.theme--documenter-dark .list {
+ background-color: white;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .list-item:not(a) {
+ color: #fff; }
+ html.theme--documenter-dark .list-item:first-child {
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:last-child {
+ border-bottom-left-radius: 0.4em;
+ border-bottom-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:not(:last-child) {
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .list-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark a.list-item {
+ background-color: #282f2f;
+ cursor: pointer; }
+ html.theme--documenter-dark .media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ html.theme--documenter-dark .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .media .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ html.theme--documenter-dark .media .media .content:not(:last-child),
+ html.theme--documenter-dark .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .media .media .media {
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .media .media .media + .media {
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark .media + .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ html.theme--documenter-dark .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+ html.theme--documenter-dark .media-left,
+ html.theme--documenter-dark .media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .media-left {
+ margin-right: 1rem; }
+ html.theme--documenter-dark .media-right {
+ margin-left: 1rem; }
+ html.theme--documenter-dark .media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .media-content {
+ overflow-x: auto; } }
+ html.theme--documenter-dark .menu {
+ font-size: 15px; }
+ html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .menu.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .menu.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .menu-list {
+ line-height: 1.25; }
+ html.theme--documenter-dark .menu-list a {
+ border-radius: 3px;
+ color: #fff;
+ display: block;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .menu-list a:hover {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .menu-list a.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .menu-list li ul {
+ border-left: 1px solid #5e6d6f;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .menu-label {
+ color: white;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .message {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .message strong {
+ color: currentColor; }
+ html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .message.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .message.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .message.is-white {
+ background-color: white; }
+ html.theme--documenter-dark .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ html.theme--documenter-dark .message.is-black {
+ background-color: #fafafa; }
+ html.theme--documenter-dark .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ html.theme--documenter-dark .message.is-light {
+ background-color: #f9fafb; }
+ html.theme--documenter-dark .message.is-light .message-header {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .message.is-light .message-body {
+ border-color: #ecf0f1;
+ color: #505050; }
+ html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message {
+ background-color: #f9fafa; }
+ html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body {
+ border-color: #282f2f;
+ color: #212526; }
+ html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink {
+ background-color: #f8fafc; }
+ html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #375a7f;
+ color: #2b4159; }
+ html.theme--documenter-dark .message.is-link {
+ background-color: #f6fefc; }
+ html.theme--documenter-dark .message.is-link .message-header {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-link .message-body {
+ border-color: #1abc9c;
+ color: #0b2f28; }
+ html.theme--documenter-dark .message.is-info {
+ background-color: #f5fbff; }
+ html.theme--documenter-dark .message.is-info .message-header {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-info .message-body {
+ border-color: #024c7d;
+ color: #033659; }
+ html.theme--documenter-dark .message.is-success {
+ background-color: #f5fff9; }
+ html.theme--documenter-dark .message.is-success .message-header {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-success .message-body {
+ border-color: #008438;
+ color: #023518; }
+ html.theme--documenter-dark .message.is-warning {
+ background-color: #fffcf5; }
+ html.theme--documenter-dark .message.is-warning .message-header {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-warning .message-body {
+ border-color: #ad8100;
+ color: #3d2e03; }
+ html.theme--documenter-dark .message.is-danger {
+ background-color: #fef6f6; }
+ html.theme--documenter-dark .message.is-danger .message-header {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-danger .message-body {
+ border-color: #9e1b0d;
+ color: #7a170c; }
+ html.theme--documenter-dark .message-header {
+ align-items: center;
+ background-color: #fff;
+ border-radius: 0.4em 0.4em 0 0;
+ color: rgba(0, 0, 0, 0.7);
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ html.theme--documenter-dark .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ html.theme--documenter-dark .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .message-body {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #fff;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .message-body code,
+ html.theme--documenter-dark .message-body pre {
+ background-color: white; }
+ html.theme--documenter-dark .message-body pre code {
+ background-color: transparent; }
+ html.theme--documenter-dark .modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ html.theme--documenter-dark .modal.is-active {
+ display: flex; }
+ html.theme--documenter-dark .modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+ html.theme--documenter-dark .modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+ html.theme--documenter-dark .modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+ html.theme--documenter-dark .modal-card-head,
+ html.theme--documenter-dark .modal-card-foot {
+ align-items: center;
+ background-color: #282f2f;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+ html.theme--documenter-dark .modal-card-head {
+ border-bottom: 1px solid #5e6d6f;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px; }
+ html.theme--documenter-dark .modal-card-title {
+ color: #f2f2f2;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+ html.theme--documenter-dark .modal-card-foot {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+ html.theme--documenter-dark .navbar {
+ background-color: #375a7f;
+ min-height: 4rem;
+ position: relative;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ html.theme--documenter-dark .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ html.theme--documenter-dark .navbar.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-burger {
+ color: #282f2f; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ecf0f1;
+ color: #282f2f; } }
+ html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger {
+ color: #ecf0f1; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #282f2f;
+ color: #ecf0f1; } }
+ html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #375a7f;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #024c7d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #008438;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ad8100;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #9e1b0d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 4rem;
+ width: 100%; }
+ html.theme--documenter-dark .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-top {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top,
+ html.theme--documenter-dark body.has-navbar-fixed-top {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark .navbar-brand,
+ html.theme--documenter-dark .navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+ html.theme--documenter-dark .navbar-burger {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ height: 4rem;
+ position: relative;
+ width: 4rem;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ html.theme--documenter-dark .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ html.theme--documenter-dark .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+ html.theme--documenter-dark .navbar-menu {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ color: #fff;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .navbar-item .icon:only-child,
+ html.theme--documenter-dark .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+ html.theme--documenter-dark a.navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ cursor: pointer; }
+ html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link:focus,
+ html.theme--documenter-dark .navbar-link:focus-within,
+ html.theme--documenter-dark .navbar-link:hover,
+ html.theme--documenter-dark .navbar-link.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-item img {
+ max-height: 1.75rem; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ padding: 0; }
+ html.theme--documenter-dark .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 4rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #1abc9c;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #1abc9c;
+ padding-bottom: calc(0.5rem - 3px); }
+ html.theme--documenter-dark .navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after {
+ border-color: #fff;
+ margin-top: -0.375em;
+ right: 1.125em; }
+ html.theme--documenter-dark .navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+ html.theme--documenter-dark .navbar-divider {
+ background-color: rgba(0, 0, 0, 0.2);
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar > .container {
+ display: block; }
+ html.theme--documenter-dark .navbar-brand .navbar-item,
+ html.theme--documenter-dark .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-link::after {
+ display: none; }
+ html.theme--documenter-dark .navbar-menu {
+ background-color: #375a7f;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark .navbar-menu.is-active {
+ display: block; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ top: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 4rem);
+ overflow: auto; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-top-touch {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 4rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar,
+ html.theme--documenter-dark .navbar-menu,
+ html.theme--documenter-dark .navbar-start,
+ html.theme--documenter-dark .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .navbar {
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ html.theme--documenter-dark .navbar.is-spaced .navbar-start,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ html.theme--documenter-dark .navbar.is-spaced a.navbar-item,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-link {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-burger {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-item {
+ display: flex; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ align-items: stretch; }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 8px 8px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ html.theme--documenter-dark .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ html.theme--documenter-dark .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-dropdown {
+ background-color: #375a7f;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed {
+ border-radius: 8px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ html.theme--documenter-dark .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .navbar-divider {
+ display: block; }
+ html.theme--documenter-dark .navbar > .container .navbar-brand,
+ html.theme--documenter-dark .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ html.theme--documenter-dark .navbar > .container .navbar-menu,
+ html.theme--documenter-dark .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-top-desktop {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-top,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-top {
+ padding-top: 6rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 6rem; }
+ html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link.is-active {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),
+ html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: transparent; } }
+ html.theme--documenter-dark .hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 4rem); }
+ html.theme--documenter-dark .pagination {
+ font-size: 15px;
+ margin: -0.25rem; }
+ html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .pagination.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .pagination.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ html.theme--documenter-dark .pagination.is-rounded .pagination-next,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination,
+ html.theme--documenter-dark .pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link {
+ border-color: #5e6d6f;
+ color: #1abc9c;
+ min-width: 2.25em; }
+ html.theme--documenter-dark .pagination-previous:hover,
+ html.theme--documenter-dark .pagination-next:hover,
+ html.theme--documenter-dark .pagination-link:hover {
+ border-color: #8c9b9d;
+ color: #1dd2af; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled] {
+ background-color: #dbdee0;
+ border-color: #dbdee0;
+ box-shadow: none;
+ color: #5e6d6f;
+ opacity: 0.5; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .pagination-link.is-current {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .pagination-ellipsis {
+ color: #8c9b9d;
+ pointer-events: none; }
+ html.theme--documenter-dark .pagination-list {
+ flex-wrap: wrap; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .pagination {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ html.theme--documenter-dark .pagination-previous {
+ order: 2; }
+ html.theme--documenter-dark .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination {
+ justify-content: space-between; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination.is-right .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-right .pagination-next {
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+ html.theme--documenter-dark .panel {
+ font-size: 15px; }
+ html.theme--documenter-dark .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs,
+ html.theme--documenter-dark .panel-block {
+ border-bottom: 1px solid #5e6d6f;
+ border-left: 1px solid #5e6d6f;
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child,
+ html.theme--documenter-dark .panel-block:first-child {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading {
+ background-color: #282f2f;
+ border-radius: 0.4em 0.4em 0 0;
+ color: #f2f2f2;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-bottom: 1px solid #5e6d6f;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #343c3d;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-list a {
+ color: #fff; }
+ html.theme--documenter-dark .panel-list a:hover {
+ color: #1abc9c; }
+ html.theme--documenter-dark .panel-block {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ html.theme--documenter-dark .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .panel-block.is-active {
+ border-left-color: #1abc9c;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.panel-block,
+ html.theme--documenter-dark label.panel-block {
+ cursor: pointer; }
+ html.theme--documenter-dark a.panel-block:hover,
+ html.theme--documenter-dark label.panel-block:hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: white;
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+ html.theme--documenter-dark .tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 15px;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tabs a {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ html.theme--documenter-dark .tabs a:hover {
+ border-bottom-color: #f2f2f2;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .tabs li {
+ display: block; }
+ html.theme--documenter-dark .tabs li.is-active a {
+ border-bottom-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .tabs ul {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tabs ul.is-left {
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .tabs.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .tabs.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .tabs.is-boxed a:hover {
+ background-color: #282f2f;
+ border-bottom-color: #5e6d6f; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #5e6d6f;
+ border-bottom-color: transparent !important; }
+ html.theme--documenter-dark .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .tabs.is-toggle a {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ html.theme--documenter-dark .tabs.is-toggle a:hover {
+ background-color: #282f2f;
+ border-color: #8c9b9d;
+ z-index: 2; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .tabs.is-toggle li:first-child a {
+ border-radius: 0.4em 0 0 0.4em; }
+ html.theme--documenter-dark .tabs.is-toggle li:last-child a {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .tabs.is-toggle li.is-active a {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff;
+ z-index: 1; }
+ html.theme--documenter-dark .tabs.is-toggle ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tabs.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tabs.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .column.is-narrow-mobile {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .column.is-narrow-touch {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-touch {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .column.is-narrow-desktop {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .column.is-narrow-widescreen {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .column.is-narrow-fullhd {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+ html.theme--documenter-dark .columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .columns:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ html.theme--documenter-dark .columns.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ html.theme--documenter-dark .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ html.theme--documenter-dark .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .columns.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .columns.is-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-desktop {
+ display: flex; } }
+ html.theme--documenter-dark .columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ html.theme--documenter-dark .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ html.theme--documenter-dark .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+ html.theme--documenter-dark .tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ html.theme--documenter-dark .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .tile.is-child {
+ margin: 0 !important; }
+ html.theme--documenter-dark .tile.is-parent {
+ padding: 0.75rem; }
+ html.theme--documenter-dark .tile.is-vertical {
+ flex-direction: column; }
+ html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .tile:not(.is-child) {
+ display: flex; }
+ html.theme--documenter-dark .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+ html.theme--documenter-dark .hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ html.theme--documenter-dark .hero .navbar {
+ background: none; }
+ html.theme--documenter-dark .hero .tabs ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-white strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-white .title {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-white .navbar-menu {
+ background-color: white; } }
+ html.theme--documenter-dark .hero.is-white .navbar-item,
+ html.theme--documenter-dark .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-white .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ html.theme--documenter-dark .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-black strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-black .title {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ html.theme--documenter-dark .hero.is-black .navbar-item,
+ html.theme--documenter-dark .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-black .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ html.theme--documenter-dark .hero.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-light strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-light .title {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .subtitle {
+ color: rgba(40, 47, 47, 0.9); }
+ html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-light .subtitle strong {
+ color: #282f2f; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-light .navbar-menu {
+ background-color: #ecf0f1; } }
+ html.theme--documenter-dark .hero.is-light .navbar-item,
+ html.theme--documenter-dark .hero.is-light .navbar-link {
+ color: rgba(40, 47, 47, 0.7); }
+ html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-light .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-light .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs a {
+ color: #282f2f;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } }
+ html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-dark strong,
+ html.theme--documenter-dark .content kbd.hero strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle {
+ color: rgba(236, 240, 241, 0.9); }
+ html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-dark .subtitle strong,
+ html.theme--documenter-dark .content kbd.hero .subtitle strong {
+ color: #ecf0f1; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu {
+ background-color: #282f2f; } }
+ html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item,
+ html.theme--documenter-dark .hero.is-dark .navbar-link,
+ html.theme--documenter-dark .content kbd.hero .navbar-link {
+ color: rgba(236, 240, 241, 0.7); }
+ html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-dark .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.hero .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.hero .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a {
+ color: #ecf0f1;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } }
+ html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-primary strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-primary .subtitle strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #375a7f; } }
+ html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ html.theme--documenter-dark .hero.is-primary .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-primary .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } }
+ html.theme--documenter-dark .hero.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-link strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-link .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-link .navbar-menu {
+ background-color: #1abc9c; } }
+ html.theme--documenter-dark .hero.is-link .navbar-item,
+ html.theme--documenter-dark .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-link .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-link .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } }
+ html.theme--documenter-dark .hero.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-info strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-info .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-info .navbar-menu {
+ background-color: #024c7d; } }
+ html.theme--documenter-dark .hero.is-info .navbar-item,
+ html.theme--documenter-dark .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-info .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-info .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } }
+ html.theme--documenter-dark .hero.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-success strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-success .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-success .navbar-menu {
+ background-color: #008438; } }
+ html.theme--documenter-dark .hero.is-success .navbar-item,
+ html.theme--documenter-dark .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-success .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-success .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } }
+ html.theme--documenter-dark .hero.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-warning strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-warning .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-warning .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-warning .navbar-menu {
+ background-color: #ad8100; } }
+ html.theme--documenter-dark .hero.is-warning .navbar-item,
+ html.theme--documenter-dark .hero.is-warning .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-warning .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-warning .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } }
+ html.theme--documenter-dark .hero.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-danger strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-danger .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-danger .navbar-menu {
+ background-color: #9e1b0d; } }
+ html.theme--documenter-dark .hero.is-danger .navbar-item,
+ html.theme--documenter-dark .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-danger .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-danger .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } }
+ html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .hero.is-halfheight {
+ min-height: 50vh; }
+ html.theme--documenter-dark .hero.is-fullheight {
+ min-height: 100vh; }
+ html.theme--documenter-dark .hero-video {
+ overflow: hidden; }
+ html.theme--documenter-dark .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ html.theme--documenter-dark .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-video {
+ display: none; } }
+ html.theme--documenter-dark .hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-buttons .button {
+ display: flex; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+ html.theme--documenter-dark .hero-head,
+ html.theme--documenter-dark .hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+ html.theme--documenter-dark .section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .section.is-medium {
+ padding: 9rem 1.5rem; }
+ html.theme--documenter-dark .section.is-large {
+ padding: 18rem 1.5rem; } }
+ html.theme--documenter-dark .footer {
+ background-color: #282f2f;
+ padding: 3rem 1.5rem 6rem; }
+ html.theme--documenter-dark hr {
+ height: 1px; }
+ html.theme--documenter-dark h6 {
+ text-transform: uppercase;
+ letter-spacing: 0.5px; }
+ html.theme--documenter-dark .hero {
+ background-color: #343c3d; }
+ html.theme--documenter-dark a {
+ transition: all 200ms ease; }
+ html.theme--documenter-dark .button {
+ transition: all 200ms ease;
+ border-width: 1px;
+ color: white; }
+ html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus {
+ box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); }
+ html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus {
+ border-color: white;
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); }
+ html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover {
+ background-color: #1d1d1d; }
+ html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus {
+ border-color: #0a0a0a;
+ box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); }
+ html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus {
+ border-color: #ecf0f1;
+ box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); }
+ html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover {
+ background-color: #3a4344; }
+ html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus {
+ border-color: #282f2f;
+ box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); }
+ html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover {
+ background-color: #436d9a; }
+ html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus {
+ border-color: #375a7f;
+ box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); }
+ html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover {
+ background-color: #1fdeb8; }
+ html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); }
+ html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover {
+ background-color: #0363a3; }
+ html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus {
+ border-color: #024c7d;
+ box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); }
+ html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover {
+ background-color: #00aa48; }
+ html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus {
+ border-color: #008438;
+ box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); }
+ html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover {
+ background-color: #d39e00; }
+ html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus {
+ border-color: #ad8100;
+ box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); }
+ html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover {
+ background-color: #c12110; }
+ html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus {
+ border-color: #9e1b0d;
+ box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); }
+ html.theme--documenter-dark .label {
+ color: #dbdee0; }
+ html.theme--documenter-dark .button,
+ html.theme--documenter-dark .control.has-icons-left .icon,
+ html.theme--documenter-dark .control.has-icons-right .icon,
+ html.theme--documenter-dark .input,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .select,
+ html.theme--documenter-dark .select select,
+ html.theme--documenter-dark .textarea {
+ height: 2.5em; }
+ html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .textarea {
+ transition: all 200ms ease;
+ box-shadow: none;
+ border-width: 1px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .select:after,
+ html.theme--documenter-dark .select select {
+ border-width: 1px; }
+ html.theme--documenter-dark .control.has-addons .button,
+ html.theme--documenter-dark .control.has-addons .input,
+ html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input,
+ html.theme--documenter-dark .control.has-addons .select {
+ margin-right: -1px; }
+ html.theme--documenter-dark .notification {
+ background-color: #343c3d; }
+ html.theme--documenter-dark .card {
+ box-shadow: none;
+ border: 1px solid #343c3d;
+ background-color: #282f2f;
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .card .card-image img {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-header {
+ box-shadow: none;
+ background-color: rgba(18, 18, 18, 0.2);
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-footer {
+ background-color: rgba(18, 18, 18, 0.2); }
+ html.theme--documenter-dark .card .card-footer,
+ html.theme--documenter-dark .card .card-footer-item {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .notification.is-white a:not(.button) {
+ color: #0a0a0a;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-black a:not(.button) {
+ color: white;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-light a:not(.button) {
+ color: #282f2f;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) {
+ color: #ecf0f1;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-link a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-info a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-success a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-warning a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-danger a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .menu-list a {
+ transition: all 300ms ease; }
+ html.theme--documenter-dark .modal-card-body {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .modal-card-foot,
+ html.theme--documenter-dark .modal-card-head {
+ border-color: #343c3d; }
+ html.theme--documenter-dark .message-header {
+ font-weight: 700;
+ background-color: #343c3d;
+ color: white; }
+ html.theme--documenter-dark .message-body {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .navbar {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent {
+ background: none; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar .navbar-menu {
+ background-color: #375a7f;
+ border-radius: 0 0 0.4em 0.4em; } }
+ html.theme--documenter-dark .hero .navbar,
+ html.theme--documenter-dark body > .navbar {
+ border-radius: 0; }
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block,
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block:first-child,
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child {
+ border-top-width: 1px; }
+ html.theme--documenter-dark .panel-heading {
+ font-weight: 700; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #17a689; }
+ html.theme--documenter-dark .panel-block:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block:hover .panel-icon {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #17a689; }
+ html.theme--documenter-dark .tabs a {
+ border-bottom-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .tabs ul {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .tabs.is-toggle li a {
+ border-width: 1px;
+ margin-bottom: 0; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited {
+ color: #f2f2f2; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+ html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+ html.theme--documenter-dark .docs-light-only {
+ display: none !important; }
+ html.theme--documenter-dark pre {
+ position: relative;
+ overflow: hidden; }
+ html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ html.theme--documenter-dark pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #fff;
+ cursor: pointer;
+ text-align: center; }
+ html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(255, 255, 255, 0.1);
+ color: #1abc9c; }
+ html.theme--documenter-dark pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ html.theme--documenter-dark pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ html.theme--documenter-dark pre:hover .copy-button {
+ opacity: 1; }
+ html.theme--documenter-dark .admonition {
+ background-color: #282f2f;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .admonition strong {
+ color: currentColor; }
+ html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .admonition.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .admonition.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .admonition.is-default {
+ background-color: #282f2f;
+ border-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-default > .admonition-header {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-info {
+ background-color: #282f2f;
+ border-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-info > .admonition-header {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-success {
+ background-color: #282f2f;
+ border-color: #008438; }
+ html.theme--documenter-dark .admonition.is-success > .admonition-header {
+ background-color: #008438; }
+ html.theme--documenter-dark .admonition.is-warning {
+ background-color: #282f2f;
+ border-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-warning > .admonition-header {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-danger {
+ background-color: #282f2f;
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-danger > .admonition-header {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-compat {
+ background-color: #282f2f;
+ border-color: #137886; }
+ html.theme--documenter-dark .admonition.is-compat > .admonition-header {
+ background-color: #137886; }
+ html.theme--documenter-dark .admonition-header {
+ background-color: #5e6d6f;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+ html.theme--documenter-dark .admonition-body {
+ color: #fff;
+ padding: 0.5rem 0.75rem; }
+ html.theme--documenter-dark .admonition-body pre {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .admonition-body code {
+ background-color: rgba(255, 255, 255, 0.05); }
+ html.theme--documenter-dark .docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #5e6d6f;
+ box-shadow: none;
+ max-width: 100%; }
+ html.theme--documenter-dark .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: #282f2f;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > header code {
+ background-color: transparent; }
+ html.theme--documenter-dark .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ html.theme--documenter-dark .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ html.theme--documenter-dark .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > section:last-child {
+ border-bottom: none; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+ html.theme--documenter-dark .documenter-example-output {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #282f2f;
+ border-bottom: 3px solid #9e1b0d;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ html.theme--documenter-dark .outdated-warning-overlay a {
+ color: #1abc9c; }
+ html.theme--documenter-dark .outdated-warning-overlay a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .content pre {
+ border: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .content code {
+ font-weight: inherit; }
+ html.theme--documenter-dark .content a code {
+ color: #1abc9c; }
+ html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+ html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+ html.theme--documenter-dark pre, html.theme--documenter-dark code {
+ font-variant-ligatures: no-contextual; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .hljs {
+ background: initial !important; }
+ html.theme--documenter-dark .katex .katex-mathml {
+ top: 0;
+ right: 0; }
+ html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display {
+ margin: 0.5em 0 !important; }
+ html.theme--documenter-dark html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+ html.theme--documenter-dark li.no-marker {
+ list-style: none; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ html.theme--documenter-dark #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ width: 100%; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ background-color: #1f2424;
+ border-bottom: 1px solid #5e6d6f;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #171717;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #5e6d6f;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #fff;
+ background-color: #282f2f;
+ border-right: 1px solid #5e6d6f;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 15px;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #171717; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #5e6d6f;
+ display: none;
+ padding: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #5e6d6f;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 14.25px;
+ margin-left: 1em;
+ border-left: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 11.25px;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #fff;
+ background: #282f2f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #fff;
+ background-color: #32393a; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #5e6d6f;
+ border-bottom: 1px solid #5e6d6f;
+ background-color: #1f2424; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: #1f2424;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #32393a;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 12.75px;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+ html.theme--documenter-dark {
+ background-color: #1f2424;
+ font-size: 16px;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark .ansi span.sgr1 {
+ font-weight: bolder; }
+ html.theme--documenter-dark .ansi span.sgr2 {
+ font-weight: lighter; }
+ html.theme--documenter-dark .ansi span.sgr3 {
+ font-style: italic; }
+ html.theme--documenter-dark .ansi span.sgr4 {
+ text-decoration: underline; }
+ html.theme--documenter-dark .ansi span.sgr7 {
+ color: #1f2424;
+ background-color: #fff; }
+ html.theme--documenter-dark .ansi span.sgr8 {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr8 span {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr9 {
+ text-decoration: line-through; }
+ html.theme--documenter-dark .ansi span.sgr30 {
+ color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr31 {
+ color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr32 {
+ color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr33 {
+ color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr34 {
+ color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr35 {
+ color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr36 {
+ color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr37 {
+ color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr40 {
+ background-color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr41 {
+ background-color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr42 {
+ background-color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr43 {
+ background-color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr44 {
+ background-color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr45 {
+ background-color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr46 {
+ background-color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr47 {
+ background-color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr90 {
+ color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr91 {
+ color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr92 {
+ color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr93 {
+ color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr94 {
+ color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr95 {
+ color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr96 {
+ color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr97 {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .ansi span.sgr100 {
+ background-color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr101 {
+ background-color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr102 {
+ background-color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr103 {
+ background-color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr104 {
+ background-color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr105 {
+ background-color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr106 {
+ background-color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr107 {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark code.language-julia-repl > span.hljs-meta {
+ color: #4fb43a;
+ font-weight: bolder; }
+ html.theme--documenter-dark .hljs {
+ background: #2b2b2b;
+ color: #f8f8f2; }
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-quote {
+ color: #d4d0ab; }
+ html.theme--documenter-dark .hljs-variable,
+ html.theme--documenter-dark .hljs-template-variable,
+ html.theme--documenter-dark .hljs-tag,
+ html.theme--documenter-dark .hljs-name,
+ html.theme--documenter-dark .hljs-selector-id,
+ html.theme--documenter-dark .hljs-selector-class,
+ html.theme--documenter-dark .hljs-regexp,
+ html.theme--documenter-dark .hljs-deletion {
+ color: #ffa07a; }
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-link {
+ color: #f5ab35; }
+ html.theme--documenter-dark .hljs-attribute {
+ color: #ffd700; }
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-addition {
+ color: #abe338; }
+ html.theme--documenter-dark .hljs-title,
+ html.theme--documenter-dark .hljs-section {
+ color: #00e0e0; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ color: #dcc6e0; }
+ html.theme--documenter-dark .hljs-emphasis {
+ font-style: italic; }
+ html.theme--documenter-dark .hljs-strong {
+ font-weight: bold; }
+ @media screen and (-ms-high-contrast: active) {
+ html.theme--documenter-dark .hljs-addition,
+ html.theme--documenter-dark .hljs-attribute,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-link,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-quote {
+ color: highlight; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ font-weight: bold; } }
+ html.theme--documenter-dark .hljs-subst {
+ color: #f8f8f2; }
diff --git a/v0.4.0/assets/themes/documenter-light.css b/v0.4.0/assets/themes/documenter-light.css
new file mode 100644
index 0000000..9595d5b
--- /dev/null
+++ b/v0.4.0/assets/themes/documenter-light.css
@@ -0,0 +1,7738 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+.tabs, .pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child),
+.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.modal-close, .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ .modal-close::before, .delete::before, .modal-close::after, .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .modal-close::before, .delete::before {
+ height: 2px;
+ width: 50%; }
+ .modal-close::after, .delete::after {
+ height: 50%;
+ width: 2px; }
+ .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ .modal-close:active, .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ .is-medium.modal-close, .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ .is-large.modal-close, .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdbdb;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+.image.is-square .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+.image.is-1by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+.image.is-5by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+.image.is-4by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+.image.is-3by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+.image.is-5by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+.image.is-16by9 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+.image.is-2by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+.image.is-3by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+.image.is-4by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+.image.is-3by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+.image.is-2by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+.image.is-3by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+.image.is-9by16 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+.image.is-1by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+.image.is-1by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .file-cta,
+.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus,
+ .pagination-ellipsis:focus, .file-cta:focus,
+ .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous,
+ .is-focused.pagination-next,
+ .is-focused.pagination-link,
+ .is-focused.pagination-ellipsis, .is-focused.file-cta,
+ .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active,
+ .pagination-ellipsis:active, .file-cta:active,
+ .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous,
+ .is-active.pagination-next,
+ .is-active.pagination-link,
+ .is-active.pagination-ellipsis, .is-active.file-cta,
+ .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button {
+ outline: none; }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled],
+ .pagination-ellipsis[disabled], .file-cta[disabled],
+ .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous,
+ fieldset[disabled] .pagination-next,
+ fieldset[disabled] .pagination-link,
+ fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta,
+ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+html {
+ background-color: white;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section {
+ display: block; }
+
+body,
+button,
+input,
+select,
+textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+
+code,
+pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+
+body {
+ color: #222222;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+
+a {
+ color: #2e63b8;
+ cursor: pointer;
+ text-decoration: none; }
+ a strong {
+ color: currentColor; }
+ a:hover {
+ color: #363636; }
+
+code {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #000000;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+
+hr {
+ background-color: whitesmoke;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+
+img {
+ height: auto;
+ max-width: 100%; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ vertical-align: baseline; }
+
+small {
+ font-size: 0.875em; }
+
+span {
+ font-style: inherit;
+ font-weight: inherit; }
+
+strong {
+ color: #222222;
+ font-weight: 700; }
+
+fieldset {
+ border: none; }
+
+pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: whitesmoke;
+ color: #222222;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+
+table td,
+table th {
+ vertical-align: top; }
+ table td:not([align]),
+ table th:not([align]) {
+ text-align: left; }
+
+table th {
+ color: #222222; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 1rem !important; }
+
+.is-size-7, .docstring > section > a.docs-sourcelink {
+ font-size: 0.75rem !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 1rem !important; }
+ .is-size-7-mobile {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 1rem !important; }
+ .is-size-7-tablet {
+ font-size: 0.75rem !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 1rem !important; }
+ .is-size-7-touch {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 1rem !important; }
+ .is-size-7-desktop {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 1rem !important; }
+ .is-size-7-widescreen {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 1rem !important; }
+ .is-size-7-fullhd {
+ font-size: 0.75rem !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: whitesmoke !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #dbdbdb !important; }
+
+.has-background-light {
+ background-color: whitesmoke !important; }
+
+.has-text-dark {
+ color: #363636 !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #1c1c1c !important; }
+
+.has-background-dark {
+ background-color: #363636 !important; }
+
+.has-text-primary {
+ color: #4eb5de !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #27a1d2 !important; }
+
+.has-background-primary {
+ background-color: #4eb5de !important; }
+
+.has-text-link {
+ color: #2e63b8 !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #244d8f !important; }
+
+.has-background-link {
+ background-color: #2e63b8 !important; }
+
+.has-text-info {
+ color: #209cee !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #1081cb !important; }
+
+.has-background-info {
+ background-color: #209cee !important; }
+
+.has-text-success {
+ color: #22c35b !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #1a9847 !important; }
+
+.has-background-success {
+ background-color: #22c35b !important; }
+
+.has-text-warning {
+ color: #ffdd57 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #ffd324 !important; }
+
+.has-background-warning {
+ background-color: #ffdd57 !important; }
+
+.has-text-danger {
+ color: #da0b00 !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #a70800 !important; }
+
+.has-background-danger {
+ background-color: #da0b00 !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #363636 !important; }
+
+.has-background-grey-darker {
+ background-color: #363636 !important; }
+
+.has-text-grey-dark {
+ color: #4a4a4a !important; }
+
+.has-background-grey-dark {
+ background-color: #4a4a4a !important; }
+
+.has-text-grey {
+ color: #6b6b6b !important; }
+
+.has-background-grey {
+ background-color: #6b6b6b !important; }
+
+.has-text-grey-light {
+ color: #b5b5b5 !important; }
+
+.has-background-grey-light {
+ background-color: #b5b5b5 !important; }
+
+.has-text-grey-lighter {
+ color: #dbdbdb !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdbdb !important; }
+
+.has-text-white-ter {
+ color: whitesmoke !important; }
+
+.has-background-white-ter {
+ background-color: whitesmoke !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+.box {
+ background-color: white;
+ border-radius: 6px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ display: block;
+ padding: 1.25rem; }
+
+a.box:hover, a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; }
+
+a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; }
+
+.button {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-width: 1px;
+ color: #363636;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ .button strong {
+ color: inherit; }
+ .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ .button:hover, .button.is-hovered {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .button:focus, .button.is-focused {
+ border-color: #3c5dcd;
+ color: #363636; }
+ .button:focus:not(:active), .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button:active, .button.is-active {
+ border-color: #4a4a4a;
+ color: #363636; }
+ .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #222222;
+ text-decoration: underline; }
+ .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused {
+ background-color: whitesmoke;
+ color: #222222; }
+ .button.is-text:active, .button.is-text.is-active {
+ background-color: #e8e8e8;
+ color: #222222; }
+ .button.is-text[disabled], fieldset[disabled] .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:hover, .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus, .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .button.is-white:active, .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white[disabled], fieldset[disabled] .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:hover, .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus, .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .button.is-black:active, .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .button.is-black[disabled], fieldset[disabled] .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:hover, .button.is-light.is-hovered {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus, .button.is-light.is-focused {
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .button.is-light:active, .button.is-light.is-active {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light[disabled], fieldset[disabled] .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-light.is-inverted {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered {
+ background-color: #292929; }
+ .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark, .content kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused {
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-dark.is-inverted, .content kbd.button.is-inverted {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered {
+ background-color: #e8e8e8; }
+ .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-loading::after, .content kbd.button.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined, .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-primary, .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ color: #4eb5de; }
+ .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:hover, .button.is-link.is-hovered {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus, .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button.is-link:active, .button.is-link.is-active {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link[disabled], fieldset[disabled] .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ color: #2e63b8; }
+ .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:hover, .button.is-info.is-hovered {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus, .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .button.is-info:active, .button.is-info.is-active {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info[disabled], fieldset[disabled] .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ color: #209cee; }
+ .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:hover, .button.is-success.is-hovered {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus, .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .button.is-success:active, .button.is-success.is-active {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success[disabled], fieldset[disabled] .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ color: #22c35b; }
+ .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:hover, .button.is-warning.is-hovered {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus, .button.is-warning.is-focused {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .button.is-warning:active, .button.is-warning.is-active {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning[disabled], fieldset[disabled] .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered {
+ background-color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ color: #ffdd57; }
+ .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:hover, .button.is-danger.is-hovered {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus, .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .button.is-danger:active, .button.is-danger.is-active {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger[disabled], fieldset[disabled] .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ color: #da0b00; }
+ .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-small, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .button.is-normal {
+ font-size: 1rem; }
+ .button.is-medium {
+ font-size: 1.25rem; }
+ .button.is-large {
+ font-size: 1.5rem; }
+ .button[disabled], fieldset[disabled] .button {
+ background-color: white;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ opacity: 0.5; }
+ .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ .button.is-static {
+ background-color: whitesmoke;
+ border-color: #dbdbdb;
+ color: #6b6b6b;
+ box-shadow: none;
+ pointer-events: none; }
+ .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .buttons .button {
+ margin-bottom: 0.5rem; }
+ .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .buttons.is-centered {
+ justify-content: center; }
+ .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ .buttons.is-right {
+ justify-content: flex-end; }
+ .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+
+.container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ .container {
+ max-width: 992px; }
+ .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ .container {
+ max-width: 1344px; } }
+.content li + li {
+ margin-top: 0.25em; }
+
+.content p:not(:last-child),
+.content dl:not(:last-child),
+.content ol:not(:last-child),
+.content ul:not(:last-child),
+.content blockquote:not(:last-child),
+.content pre:not(:last-child),
+.content table:not(:last-child) {
+ margin-bottom: 1em; }
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ color: #222222;
+ font-weight: 600;
+ line-height: 1.125; }
+
+.content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ .content h1:not(:first-child) {
+ margin-top: 1em; }
+
+.content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+
+.content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+
+.content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+
+.content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+
+.content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+
+.content blockquote {
+ background-color: whitesmoke;
+ border-left: 5px solid #dbdbdb;
+ padding: 1.25em 1.5em; }
+
+.content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ol:not([type]) {
+ list-style-type: decimal; }
+ .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+
+.content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ .content ul ul ul {
+ list-style-type: square; }
+
+.content dd {
+ margin-left: 2em; }
+
+.content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ .content figure:not(:first-child) {
+ margin-top: 2em; }
+ .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ .content figure img {
+ display: inline-block; }
+ .content figure figcaption {
+ font-style: italic; }
+
+.content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+
+.content sup,
+.content sub {
+ font-size: 75%; }
+
+.content table {
+ width: 100%; }
+ .content table td,
+ .content table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .content table th {
+ color: #222222; }
+ .content table th:not([align]) {
+ text-align: left; }
+ .content table thead td,
+ .content table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .content table tfoot td,
+ .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .content table tbody tr:last-child td,
+ .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+
+.content .tabs li + li {
+ margin-top: 0; }
+
+.content.is-small, #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.75rem; }
+
+.content.is-medium {
+ font-size: 1.25rem; }
+
+.content.is-large {
+ font-size: 1.5rem; }
+
+.icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+
+.image, #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ .image img, #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+ .image.is-square .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ .image.is-1by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ .image.is-5by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ .image.is-4by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ .image.is-3by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ .image.is-5by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ .image.is-16by9 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ .image.is-2by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ .image.is-3by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ .image.is-4by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ .image.is-3by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ .image.is-2by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ .image.is-3by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ .image.is-9by16 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ .image.is-1by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ .image.is-1by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+
+.notification {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .notification strong {
+ color: currentColor; }
+ .notification code,
+ .notification pre {
+ background: white; }
+ .notification pre code {
+ background: transparent; }
+ .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ .notification .title,
+ .notification .subtitle,
+ .notification .content {
+ color: currentColor; }
+ .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .notification.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .notification.is-dark, .content kbd.notification {
+ background-color: #363636;
+ color: whitesmoke; }
+ .notification.is-primary, .docstring > section > a.notification.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .notification.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .notification.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .notification.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .notification.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .notification.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+
+.progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 1rem;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ .progress::-webkit-progress-bar {
+ background-color: #dbdbdb; }
+ .progress::-webkit-progress-value {
+ background-color: #222222; }
+ .progress::-moz-progress-bar {
+ background-color: #222222; }
+ .progress::-ms-fill {
+ background-color: #222222;
+ border: none; }
+ .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ .progress.is-white::-ms-fill {
+ background-color: white; }
+ .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }
+ .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }
+ .progress.is-light::-webkit-progress-value {
+ background-color: whitesmoke; }
+ .progress.is-light::-moz-progress-bar {
+ background-color: whitesmoke; }
+ .progress.is-light::-ms-fill {
+ background-color: whitesmoke; }
+ .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }
+ .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value {
+ background-color: #363636; }
+ .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar {
+ background-color: #363636; }
+ .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill {
+ background-color: #363636; }
+ .progress.is-dark:indeterminate, .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }
+ .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #4eb5de; }
+ .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #4eb5de; }
+ .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #4eb5de; }
+ .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); }
+ .progress.is-link::-webkit-progress-value {
+ background-color: #2e63b8; }
+ .progress.is-link::-moz-progress-bar {
+ background-color: #2e63b8; }
+ .progress.is-link::-ms-fill {
+ background-color: #2e63b8; }
+ .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); }
+ .progress.is-info::-webkit-progress-value {
+ background-color: #209cee; }
+ .progress.is-info::-moz-progress-bar {
+ background-color: #209cee; }
+ .progress.is-info::-ms-fill {
+ background-color: #209cee; }
+ .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); }
+ .progress.is-success::-webkit-progress-value {
+ background-color: #22c35b; }
+ .progress.is-success::-moz-progress-bar {
+ background-color: #22c35b; }
+ .progress.is-success::-ms-fill {
+ background-color: #22c35b; }
+ .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); }
+ .progress.is-warning::-webkit-progress-value {
+ background-color: #ffdd57; }
+ .progress.is-warning::-moz-progress-bar {
+ background-color: #ffdd57; }
+ .progress.is-warning::-ms-fill {
+ background-color: #ffdd57; }
+ .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }
+ .progress.is-danger::-webkit-progress-value {
+ background-color: #da0b00; }
+ .progress.is-danger::-moz-progress-bar {
+ background-color: #da0b00; }
+ .progress.is-danger::-ms-fill {
+ background-color: #da0b00; }
+ .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); }
+ .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #dbdbdb;
+ background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.75rem; }
+ .progress.is-medium {
+ height: 1.25rem; }
+ .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+
+.table {
+ background-color: white;
+ color: #363636; }
+ .table td,
+ .table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .table td.is-white,
+ .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .table td.is-black,
+ .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .table td.is-light,
+ .table th.is-light {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .table td.is-dark,
+ .table th.is-dark {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .table td.is-primary,
+ .table th.is-primary {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .table td.is-link,
+ .table th.is-link {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .table td.is-info,
+ .table th.is-info {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .table td.is-success,
+ .table th.is-success {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .table td.is-warning,
+ .table th.is-warning {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .table td.is-danger,
+ .table th.is-danger {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .table td.is-narrow,
+ .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ .table td.is-selected,
+ .table th.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table td.is-selected a,
+ .table td.is-selected strong,
+ .table th.is-selected a,
+ .table th.is-selected strong {
+ color: currentColor; }
+ .table th {
+ color: #222222; }
+ .table th:not([align]) {
+ text-align: left; }
+ .table tr.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table tr.is-selected a,
+ .table tr.is-selected strong {
+ color: currentColor; }
+ .table tr.is-selected td,
+ .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ .table thead {
+ background-color: transparent; }
+ .table thead td,
+ .table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .table tfoot {
+ background-color: transparent; }
+ .table tfoot td,
+ .table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .table tbody {
+ background-color: transparent; }
+ .table tbody tr:last-child td,
+ .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ .table.is-bordered td,
+ .table.is-bordered th {
+ border-width: 1px; }
+ .table.is-bordered tr:last-child td,
+ .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ .table.is-fullwidth {
+ width: 100%; }
+ .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: whitesmoke; }
+ .table.is-narrow td,
+ .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #fafafa; }
+
+.table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+
+.tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ .tags:last-child {
+ margin-bottom: -0.5rem; }
+ .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 1rem; }
+ .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ .tags.is-centered {
+ justify-content: center; }
+ .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ .tags.is-right {
+ justify-content: flex-end; }
+ .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 4px;
+ color: #222222;
+ display: inline-flex;
+ font-size: 0.75rem;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: whitesmoke;
+ color: #363636; }
+ .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) {
+ background-color: #363636;
+ color: whitesmoke; }
+ .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #4eb5de;
+ color: #fff; }
+ .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #2e63b8;
+ color: #fff; }
+ .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #209cee;
+ color: #fff; }
+ .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #22c35b;
+ color: #fff; }
+ .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #da0b00;
+ color: #fff; }
+ .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.75rem; }
+ .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 1rem; }
+ .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #e8e8e8; }
+ .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #dbdbdb; }
+ .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+
+a.tag:hover, .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+
+.title,
+.subtitle {
+ word-break: break-word; }
+ .title em,
+ .title span,
+ .subtitle em,
+ .subtitle span {
+ font-weight: inherit; }
+ .title sub,
+ .subtitle sub {
+ font-size: 0.75em; }
+ .title sup,
+ .subtitle sup {
+ font-size: 0.75em; }
+ .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink,
+ .subtitle .tag,
+ .subtitle .content kbd,
+ .content .subtitle kbd,
+ .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+
+.title {
+ color: #363636;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: 1.125; }
+ .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ .title + .highlight {
+ margin-top: -0.75rem; }
+ .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ .title.is-1 {
+ font-size: 3rem; }
+ .title.is-2 {
+ font-size: 2.5rem; }
+ .title.is-3 {
+ font-size: 2rem; }
+ .title.is-4 {
+ font-size: 1.5rem; }
+ .title.is-5 {
+ font-size: 1.25rem; }
+ .title.is-6 {
+ font-size: 1rem; }
+ .title.is-7 {
+ font-size: 0.75rem; }
+
+.subtitle {
+ color: #4a4a4a;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ .subtitle strong {
+ color: #363636;
+ font-weight: 600; }
+ .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ .subtitle.is-1 {
+ font-size: 3rem; }
+ .subtitle.is-2 {
+ font-size: 2.5rem; }
+ .subtitle.is-3 {
+ font-size: 2rem; }
+ .subtitle.is-4 {
+ font-size: 1.5rem; }
+ .subtitle.is-5 {
+ font-size: 1.25rem; }
+ .subtitle.is-6 {
+ font-size: 1rem; }
+ .subtitle.is-7 {
+ font-size: 0.75rem; }
+
+.heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+
+.highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+
+.number {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+
+.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ color: #363636; }
+ .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #b5b5b5; }
+ .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #2e63b8;
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: #6b6b6b; }
+ .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+
+.textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: whitesmoke; }
+ .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input {
+ border-color: #363636; }
+ .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink {
+ border-color: #4eb5de; }
+ .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #2e63b8; }
+ .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #209cee; }
+ .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #22c35b; }
+ .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ffdd57; }
+ .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #da0b00; }
+ .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+
+.input.is-rounded, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+
+.textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ .textarea[rows] {
+ height: initial; }
+ .textarea.has-fixed-size {
+ resize: none; }
+
+.radio, .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ .radio input, .checkbox input {
+ cursor: pointer; }
+ .radio:hover, .checkbox:hover {
+ color: #363636; }
+ .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox {
+ color: #6b6b6b;
+ cursor: not-allowed; }
+
+.radio + .radio {
+ margin-left: 0.5em; }
+
+.select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ .select:not(.is-multiple) {
+ height: 2.25em; }
+ .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #2e63b8;
+ right: 1.125em;
+ z-index: 4; }
+ .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ .select select::-ms-expand {
+ display: none; }
+ .select select[disabled]:hover, fieldset[disabled] .select select:hover {
+ border-color: whitesmoke; }
+ .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ .select select[multiple] option {
+ padding: 0.5em 1em; }
+ .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #363636; }
+ .select.is-white:not(:hover)::after {
+ border-color: white; }
+ .select.is-white select {
+ border-color: white; }
+ .select.is-white select:hover, .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ .select.is-black select {
+ border-color: #0a0a0a; }
+ .select.is-black select:hover, .select.is-black select.is-hovered {
+ border-color: black; }
+ .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .select.is-light:not(:hover)::after {
+ border-color: whitesmoke; }
+ .select.is-light select {
+ border-color: whitesmoke; }
+ .select.is-light select:hover, .select.is-light select.is-hovered {
+ border-color: #e8e8e8; }
+ .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after {
+ border-color: #363636; }
+ .select.is-dark select, .content kbd.select select {
+ border-color: #363636; }
+ .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered {
+ border-color: #292929; }
+ .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #4eb5de; }
+ .select.is-primary select, .docstring > section > a.select.docs-sourcelink select {
+ border-color: #4eb5de; }
+ .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #39acda; }
+ .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .select.is-link:not(:hover)::after {
+ border-color: #2e63b8; }
+ .select.is-link select {
+ border-color: #2e63b8; }
+ .select.is-link select:hover, .select.is-link select.is-hovered {
+ border-color: #2958a4; }
+ .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select.is-info:not(:hover)::after {
+ border-color: #209cee; }
+ .select.is-info select {
+ border-color: #209cee; }
+ .select.is-info select:hover, .select.is-info select.is-hovered {
+ border-color: #1190e3; }
+ .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .select.is-success:not(:hover)::after {
+ border-color: #22c35b; }
+ .select.is-success select {
+ border-color: #22c35b; }
+ .select.is-success select:hover, .select.is-success select.is-hovered {
+ border-color: #1ead51; }
+ .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .select.is-warning:not(:hover)::after {
+ border-color: #ffdd57; }
+ .select.is-warning select {
+ border-color: #ffdd57; }
+ .select.is-warning select:hover, .select.is-warning select.is-hovered {
+ border-color: #ffd83e; }
+ .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .select.is-danger:not(:hover)::after {
+ border-color: #da0b00; }
+ .select.is-danger select {
+ border-color: #da0b00; }
+ .select.is-danger select:hover, .select.is-danger select.is-hovered {
+ border-color: #c10a00; }
+ .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .select.is-small, #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .select.is-medium {
+ font-size: 1.25rem; }
+ .select.is-large {
+ font-size: 1.5rem; }
+ .select.is-disabled::after {
+ border-color: #6b6b6b; }
+ .select.is-fullwidth {
+ width: 100%; }
+ .select.is-fullwidth select {
+ width: 100%; }
+ .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ .file.is-white:active .file-cta, .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ .file.is-black:active .file-cta, .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .file.is-light .file-cta {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
+ color: #363636; }
+ .file.is-light:active .file-cta, .file.is-light.is-active .file-cta {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-dark .file-cta, .content kbd.file .file-cta {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
+ color: whitesmoke; }
+ .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25);
+ color: #fff; }
+ .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link .file-cta {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25);
+ color: #fff; }
+ .file.is-link:active .file-cta, .file.is-link.is-active .file-cta {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info .file-cta {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25);
+ color: #fff; }
+ .file.is-info:active .file-cta, .file.is-info.is-active .file-cta {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success .file-cta {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25);
+ color: #fff; }
+ .file.is-success:active .file-cta, .file.is-success.is-active .file-cta {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-warning .file-cta {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-danger .file-cta {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25);
+ color: #fff; }
+ .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-small, #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.75rem; }
+ .file.is-medium {
+ font-size: 1.25rem; }
+ .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ .file.is-large {
+ font-size: 1.5rem; }
+ .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .file.has-name.is-empty .file-cta {
+ border-radius: 4px; }
+ .file.has-name.is-empty .file-name {
+ display: none; }
+ .file.is-boxed .file-label {
+ flex-direction: column; }
+ .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ .file.is-boxed.has-name .file-cta {
+ border-radius: 4px 4px 0 0; }
+ .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 4px 4px;
+ border-width: 0 1px 1px; }
+ .file.is-centered {
+ justify-content: center; }
+ .file.is-fullwidth .file-label {
+ width: 100%; }
+ .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ .file.is-right {
+ justify-content: flex-end; }
+ .file.is-right .file-cta {
+ border-radius: 0 4px 4px 0; }
+ .file.is-right .file-name {
+ border-radius: 4px 0 0 4px;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+
+.file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ .file-label:hover .file-cta {
+ background-color: #eeeeee;
+ color: #363636; }
+ .file-label:hover .file-name {
+ border-color: #d5d5d5; }
+ .file-label:active .file-cta {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .file-label:active .file-name {
+ border-color: #cfcfcf; }
+
+.file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+
+.file-cta,
+.file-name {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+
+.file-cta {
+ background-color: whitesmoke;
+ color: #4a4a4a; }
+
+.file-name {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+
+.file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ .file-icon .fa {
+ font-size: 14px; }
+
+.label {
+ color: #363636;
+ display: block;
+ font-size: 1rem;
+ font-weight: 700; }
+ .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ .label.is-small, #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.75rem; }
+ .label.is-medium {
+ font-size: 1.25rem; }
+ .label.is-large {
+ font-size: 1.5rem; }
+
+.help {
+ display: block;
+ font-size: 0.75rem;
+ margin-top: 0.25rem; }
+ .help.is-white {
+ color: white; }
+ .help.is-black {
+ color: #0a0a0a; }
+ .help.is-light {
+ color: whitesmoke; }
+ .help.is-dark, .content kbd.help {
+ color: #363636; }
+ .help.is-primary, .docstring > section > a.help.docs-sourcelink {
+ color: #4eb5de; }
+ .help.is-link {
+ color: #2e63b8; }
+ .help.is-info {
+ color: #209cee; }
+ .help.is-success {
+ color: #22c35b; }
+ .help.is-warning {
+ color: #ffdd57; }
+ .help.is-danger {
+ color: #da0b00; }
+
+.field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+
+.field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ .field.has-addons .control:first-child:not(:only-child) .button,
+ .field.has-addons .control:first-child:not(:only-child) .input,
+ .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .field.has-addons .control:last-child:not(:only-child) .button,
+ .field.has-addons .control:last-child:not(:only-child) .input,
+ .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ .field.has-addons .control .input.is-hovered:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):hover,
+ .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):focus,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ .field.has-addons .control .input.is-focused:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):active,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ .field.has-addons .control .input.is-active:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):focus,
+ .field.has-addons .control .select select.is-focused:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):active,
+ .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):focus:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):active:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ .field.has-addons .control .input.is-active:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):focus:hover,
+ .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):active:hover,
+ .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+
+.field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ .field.is-grouped > .control {
+ flex-shrink: 0; }
+ .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field.is-horizontal {
+ display: flex; } }
+
+.field-label .label {
+ font-size: inherit; }
+
+@media screen and (max-width: 768px) {
+ .field-label {
+ margin-bottom: 0.5rem; } }
+
+@media screen and (min-width: 769px), print {
+ .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.75rem;
+ padding-top: 0.375em; }
+ .field-label.is-normal {
+ padding-top: 0.375em; }
+ .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+
+.field-body .field .field {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ .field-body .field {
+ margin-bottom: 0; }
+ .field-body > .field {
+ flex-shrink: 1; }
+ .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+
+.control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 1rem;
+ position: relative;
+ text-align: left; }
+ .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ .control.has-icons-right .select:focus ~ .icon {
+ color: #6b6b6b; }
+ .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.75rem; }
+ .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ .control.has-icons-left .icon, .control.has-icons-right .icon {
+ color: #dbdbdb;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ .control.has-icons-left .icon.is-left {
+ left: 0; }
+ .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ .control.has-icons-right .icon.is-right {
+ right: 0; }
+ .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.breadcrumb {
+ font-size: 1rem;
+ white-space: nowrap; }
+ .breadcrumb a {
+ align-items: center;
+ color: #2e63b8;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ .breadcrumb a:hover {
+ color: #363636; }
+ .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ .breadcrumb li:first-child a {
+ padding-left: 0; }
+ .breadcrumb li.is-active a {
+ color: #222222;
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb li + li::before {
+ color: #b5b5b5;
+ content: "\0002f"; }
+ .breadcrumb ul,
+ .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ .breadcrumb.is-centered ol,
+ .breadcrumb.is-centered ul {
+ justify-content: center; }
+ .breadcrumb.is-right ol,
+ .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.75rem; }
+ .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+
+.card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ max-width: 100%;
+ position: relative; }
+
+.card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+
+.card-header-title {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ .card-header-title.is-centered {
+ justify-content: center; }
+
+.card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+
+.card-image {
+ display: block;
+ position: relative; }
+
+.card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+
+.card-footer {
+ background-color: transparent;
+ border-top: 1px solid #dbdbdb;
+ align-items: stretch;
+ display: flex; }
+
+.card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ .card-footer-item:not(:last-child) {
+ border-right: 1px solid #dbdbdb; }
+
+.card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+
+.dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+
+.dropdown-content {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+
+.dropdown-item {
+ color: #4a4a4a;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+
+a.dropdown-item,
+button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ a.dropdown-item:hover,
+ button.dropdown-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ a.dropdown-item.is-active,
+ button.dropdown-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+.dropdown-divider {
+ background-color: #dbdbdb;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+
+.level {
+ align-items: center;
+ justify-content: space-between; }
+ .level code {
+ border-radius: 4px; }
+ .level img {
+ display: inline-block;
+ vertical-align: top; }
+ .level.is-mobile {
+ display: flex; }
+ .level.is-mobile .level-left,
+ .level.is-mobile .level-right {
+ display: flex; }
+ .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level {
+ display: flex; }
+ .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+.level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ .level-item .title,
+ .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+.level-left,
+.level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .level-left .level-item.is-flexible,
+ .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level-left .level-item:not(:last-child),
+ .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+.level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .level-left {
+ display: flex; } }
+.level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ .level-right {
+ display: flex; } }
+.list {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+
+.list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ .list-item:not(a) {
+ color: #222222; }
+ .list-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px; }
+ .list-item:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px; }
+ .list-item:not(:last-child) {
+ border-bottom: 1px solid #dbdbdb; }
+ .list-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+a.list-item {
+ background-color: whitesmoke;
+ cursor: pointer; }
+
+.media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .media .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ .media .media .content:not(:last-child),
+ .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ .media .media .media {
+ padding-top: 0.5rem; }
+ .media .media .media + .media {
+ margin-top: 0.5rem; }
+ .media + .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+
+.media-left,
+.media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.media-left {
+ margin-right: 1rem; }
+
+.media-right {
+ margin-left: 1rem; }
+
+.media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+
+@media screen and (max-width: 768px) {
+ .media-content {
+ overflow-x: auto; } }
+
+.menu {
+ font-size: 1rem; }
+ .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.75rem; }
+ .menu.is-medium {
+ font-size: 1.25rem; }
+ .menu.is-large {
+ font-size: 1.5rem; }
+
+.menu-list {
+ line-height: 1.25; }
+ .menu-list a {
+ border-radius: 2px;
+ color: #222222;
+ display: block;
+ padding: 0.5em 0.75em; }
+ .menu-list a:hover {
+ background-color: whitesmoke;
+ color: #222222; }
+ .menu-list a.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+ .menu-list li ul {
+ border-left: 1px solid #dbdbdb;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+
+.menu-label {
+ color: #6b6b6b;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+
+.message {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .message strong {
+ color: currentColor; }
+ .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .message.is-small, #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.75rem; }
+ .message.is-medium {
+ font-size: 1.25rem; }
+ .message.is-large {
+ font-size: 1.5rem; }
+ .message.is-white {
+ background-color: white; }
+ .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ .message.is-black {
+ background-color: #fafafa; }
+ .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ .message.is-light {
+ background-color: #fafafa; }
+ .message.is-light .message-header {
+ background-color: whitesmoke;
+ color: #363636; }
+ .message.is-light .message-body {
+ border-color: whitesmoke;
+ color: #505050; }
+ .message.is-dark, .content kbd.message {
+ background-color: #fafafa; }
+ .message.is-dark .message-header, .content kbd.message .message-header {
+ background-color: #363636;
+ color: whitesmoke; }
+ .message.is-dark .message-body, .content kbd.message .message-body {
+ border-color: #363636;
+ color: #2a2a2a; }
+ .message.is-primary, .docstring > section > a.message.docs-sourcelink {
+ background-color: #f6fbfd; }
+ .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #4eb5de;
+ color: #fff; }
+ .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #4eb5de;
+ color: #1f556a; }
+ .message.is-link {
+ background-color: #f7f9fd; }
+ .message.is-link .message-header {
+ background-color: #2e63b8;
+ color: #fff; }
+ .message.is-link .message-body {
+ border-color: #2e63b8;
+ color: #264981; }
+ .message.is-info {
+ background-color: #f6fbfe; }
+ .message.is-info .message-header {
+ background-color: #209cee;
+ color: #fff; }
+ .message.is-info .message-body {
+ border-color: #209cee;
+ color: #12537d; }
+ .message.is-success {
+ background-color: #f6fdf9; }
+ .message.is-success .message-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .message.is-success .message-body {
+ border-color: #22c35b;
+ color: #0f361d; }
+ .message.is-warning {
+ background-color: #fffdf5; }
+ .message.is-warning .message-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .message.is-warning .message-body {
+ border-color: #ffdd57;
+ color: #3c3108; }
+ .message.is-danger {
+ background-color: #fff5f5; }
+ .message.is-danger .message-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .message.is-danger .message-body {
+ border-color: #da0b00;
+ color: #9b0c04; }
+
+.message-header {
+ align-items: center;
+ background-color: #222222;
+ border-radius: 4px 4px 0 0;
+ color: #fff;
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.message-body {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #222222;
+ padding: 1.25em 1.5em; }
+ .message-body code,
+ .message-body pre {
+ background-color: white; }
+ .message-body pre code {
+ background-color: transparent; }
+
+.modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ .modal.is-active {
+ display: flex; }
+
+.modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+
+.modal-content,
+.modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ .modal-content,
+ .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+.modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+
+.modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+
+.modal-card-head,
+.modal-card-foot {
+ align-items: center;
+ background-color: whitesmoke;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+
+.modal-card-head {
+ border-bottom: 1px solid #dbdbdb;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.modal-card-title {
+ color: #222222;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+
+.modal-card-foot {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid #dbdbdb; }
+ .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+
+.modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+
+.navbar {
+ background-color: white;
+ min-height: 3.25rem;
+ position: relative;
+ z-index: 30; }
+ .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > .navbar-item,
+ .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-white .navbar-brand .navbar-link:focus,
+ .navbar.is-white .navbar-brand .navbar-link:hover,
+ .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-white .navbar-start > .navbar-item,
+ .navbar.is-white .navbar-start .navbar-link,
+ .navbar.is-white .navbar-end > .navbar-item,
+ .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ .navbar.is-white .navbar-start .navbar-link:focus,
+ .navbar.is-white .navbar-start .navbar-link:hover,
+ .navbar.is-white .navbar-start .navbar-link.is-active,
+ .navbar.is-white .navbar-end > a.navbar-item:focus,
+ .navbar.is-white .navbar-end > a.navbar-item:hover,
+ .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ .navbar.is-white .navbar-end .navbar-link:focus,
+ .navbar.is-white .navbar-end .navbar-link:hover,
+ .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start .navbar-link::after,
+ .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .navbar.is-black .navbar-brand > .navbar-item,
+ .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-black .navbar-brand .navbar-link:focus,
+ .navbar.is-black .navbar-brand .navbar-link:hover,
+ .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-black .navbar-start > .navbar-item,
+ .navbar.is-black .navbar-start .navbar-link,
+ .navbar.is-black .navbar-end > .navbar-item,
+ .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ .navbar.is-black .navbar-start .navbar-link:focus,
+ .navbar.is-black .navbar-start .navbar-link:hover,
+ .navbar.is-black .navbar-start .navbar-link.is-active,
+ .navbar.is-black .navbar-end > a.navbar-item:focus,
+ .navbar.is-black .navbar-end > a.navbar-item:hover,
+ .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ .navbar.is-black .navbar-end .navbar-link:focus,
+ .navbar.is-black .navbar-end .navbar-link:hover,
+ .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-start .navbar-link::after,
+ .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ .navbar.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .navbar.is-light .navbar-brand > .navbar-item,
+ .navbar.is-light .navbar-brand .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-light .navbar-brand .navbar-link:focus,
+ .navbar.is-light .navbar-brand .navbar-link:hover,
+ .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-burger {
+ color: #363636; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-light .navbar-start > .navbar-item,
+ .navbar.is-light .navbar-start .navbar-link,
+ .navbar.is-light .navbar-end > .navbar-item,
+ .navbar.is-light .navbar-end .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ .navbar.is-light .navbar-start .navbar-link:focus,
+ .navbar.is-light .navbar-start .navbar-link:hover,
+ .navbar.is-light .navbar-start .navbar-link.is-active,
+ .navbar.is-light .navbar-end > a.navbar-item:focus,
+ .navbar.is-light .navbar-end > a.navbar-item:hover,
+ .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ .navbar.is-light .navbar-end .navbar-link:focus,
+ .navbar.is-light .navbar-end .navbar-link:hover,
+ .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-start .navbar-link::after,
+ .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #363636; } }
+ .navbar.is-dark, .content kbd.navbar {
+ background-color: #363636;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item,
+ .navbar.is-dark .navbar-brand .navbar-link,
+ .content kbd.navbar .navbar-brand .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-brand .navbar-link:focus,
+ .content kbd.navbar .navbar-brand .navbar-link:focus,
+ .navbar.is-dark .navbar-brand .navbar-link:hover,
+ .content kbd.navbar .navbar-brand .navbar-link:hover,
+ .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger {
+ color: whitesmoke; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item,
+ .navbar.is-dark .navbar-start .navbar-link,
+ .content kbd.navbar .navbar-start .navbar-link,
+ .navbar.is-dark .navbar-end > .navbar-item,
+ .content kbd.navbar .navbar-end > .navbar-item,
+ .navbar.is-dark .navbar-end .navbar-link,
+ .content kbd.navbar .navbar-end .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-start .navbar-link:focus,
+ .content kbd.navbar .navbar-start .navbar-link:focus,
+ .navbar.is-dark .navbar-start .navbar-link:hover,
+ .content kbd.navbar .navbar-start .navbar-link:hover,
+ .navbar.is-dark .navbar-start .navbar-link.is-active,
+ .content kbd.navbar .navbar-start .navbar-link.is-active,
+ .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-end .navbar-link:focus,
+ .content kbd.navbar .navbar-end .navbar-link:focus,
+ .navbar.is-dark .navbar-end .navbar-link:hover,
+ .content kbd.navbar .navbar-end .navbar-link:hover,
+ .navbar.is-dark .navbar-end .navbar-link.is-active,
+ .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after,
+ .navbar.is-dark .navbar-end .navbar-link::after,
+ .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #363636;
+ color: whitesmoke; } }
+ .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ .navbar.is-primary .navbar-brand .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-brand .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ .navbar.is-primary .navbar-brand .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ .navbar.is-primary .navbar-start .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ .navbar.is-primary .navbar-end > .navbar-item,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ .navbar.is-primary .navbar-end .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-start .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ .navbar.is-primary .navbar-start .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ .navbar.is-primary .navbar-start .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-end .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ .navbar.is-primary .navbar-end .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ .navbar.is-primary .navbar-end .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ .navbar.is-primary .navbar-end .navbar-link::after,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #4eb5de;
+ color: #fff; } }
+ .navbar.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .navbar.is-link .navbar-brand > .navbar-item,
+ .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-link .navbar-brand .navbar-link:focus,
+ .navbar.is-link .navbar-brand .navbar-link:hover,
+ .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-link .navbar-start > .navbar-item,
+ .navbar.is-link .navbar-start .navbar-link,
+ .navbar.is-link .navbar-end > .navbar-item,
+ .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ .navbar.is-link .navbar-start .navbar-link:focus,
+ .navbar.is-link .navbar-start .navbar-link:hover,
+ .navbar.is-link .navbar-start .navbar-link.is-active,
+ .navbar.is-link .navbar-end > a.navbar-item:focus,
+ .navbar.is-link .navbar-end > a.navbar-item:hover,
+ .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ .navbar.is-link .navbar-end .navbar-link:focus,
+ .navbar.is-link .navbar-end .navbar-link:hover,
+ .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-start .navbar-link::after,
+ .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; } }
+ .navbar.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .navbar.is-info .navbar-brand > .navbar-item,
+ .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-info .navbar-brand .navbar-link:focus,
+ .navbar.is-info .navbar-brand .navbar-link:hover,
+ .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-info .navbar-start > .navbar-item,
+ .navbar.is-info .navbar-start .navbar-link,
+ .navbar.is-info .navbar-end > .navbar-item,
+ .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ .navbar.is-info .navbar-start .navbar-link:focus,
+ .navbar.is-info .navbar-start .navbar-link:hover,
+ .navbar.is-info .navbar-start .navbar-link.is-active,
+ .navbar.is-info .navbar-end > a.navbar-item:focus,
+ .navbar.is-info .navbar-end > a.navbar-item:hover,
+ .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ .navbar.is-info .navbar-end .navbar-link:focus,
+ .navbar.is-info .navbar-end .navbar-link:hover,
+ .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-start .navbar-link::after,
+ .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #209cee;
+ color: #fff; } }
+ .navbar.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .navbar.is-success .navbar-brand > .navbar-item,
+ .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-success .navbar-brand .navbar-link:focus,
+ .navbar.is-success .navbar-brand .navbar-link:hover,
+ .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-success .navbar-start > .navbar-item,
+ .navbar.is-success .navbar-start .navbar-link,
+ .navbar.is-success .navbar-end > .navbar-item,
+ .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ .navbar.is-success .navbar-start .navbar-link:focus,
+ .navbar.is-success .navbar-start .navbar-link:hover,
+ .navbar.is-success .navbar-start .navbar-link.is-active,
+ .navbar.is-success .navbar-end > a.navbar-item:focus,
+ .navbar.is-success .navbar-end > a.navbar-item:hover,
+ .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ .navbar.is-success .navbar-end .navbar-link:focus,
+ .navbar.is-success .navbar-end .navbar-link:hover,
+ .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-start .navbar-link::after,
+ .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #22c35b;
+ color: #fff; } }
+ .navbar.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > .navbar-item,
+ .navbar.is-warning .navbar-brand .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-brand .navbar-link:focus,
+ .navbar.is-warning .navbar-brand .navbar-link:hover,
+ .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-burger {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-warning .navbar-start > .navbar-item,
+ .navbar.is-warning .navbar-start .navbar-link,
+ .navbar.is-warning .navbar-end > .navbar-item,
+ .navbar.is-warning .navbar-end .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-start .navbar-link:focus,
+ .navbar.is-warning .navbar-start .navbar-link:hover,
+ .navbar.is-warning .navbar-start .navbar-link.is-active,
+ .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-end .navbar-link:focus,
+ .navbar.is-warning .navbar-end .navbar-link:hover,
+ .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start .navbar-link::after,
+ .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); } }
+ .navbar.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > .navbar-item,
+ .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-brand .navbar-link:focus,
+ .navbar.is-danger .navbar-brand .navbar-link:hover,
+ .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-danger .navbar-start > .navbar-item,
+ .navbar.is-danger .navbar-start .navbar-link,
+ .navbar.is-danger .navbar-end > .navbar-item,
+ .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-start .navbar-link:focus,
+ .navbar.is-danger .navbar-start .navbar-link:hover,
+ .navbar.is-danger .navbar-start .navbar-link.is-active,
+ .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-end .navbar-link:focus,
+ .navbar.is-danger .navbar-end .navbar-link:hover,
+ .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-start .navbar-link::after,
+ .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #da0b00;
+ color: #fff; } }
+ .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+ width: 100%; }
+ .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 whitesmoke; }
+ .navbar.is-fixed-bottom, .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom {
+ bottom: 0; }
+ .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 whitesmoke; }
+ .navbar.is-fixed-top {
+ top: 0; }
+
+html.has-navbar-fixed-top,
+body.has-navbar-fixed-top {
+ padding-top: 3.25rem; }
+
+html.has-navbar-fixed-bottom,
+body.has-navbar-fixed-bottom {
+ padding-bottom: 3.25rem; }
+
+.navbar-brand,
+.navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 3.25rem; }
+
+.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+
+.navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+.navbar-burger {
+ color: #4a4a4a;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto; }
+ .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+
+.navbar-menu {
+ display: none; }
+
+.navbar-item,
+.navbar-link {
+ color: #4a4a4a;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .navbar-item .icon:only-child,
+ .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+
+a.navbar-item,
+.navbar-link {
+ cursor: pointer; }
+ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
+ .navbar-link:focus,
+ .navbar-link:focus-within,
+ .navbar-link:hover,
+ .navbar-link.is-active {
+ background-color: #fafafa;
+ color: #2e63b8; }
+
+.navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .navbar-item img {
+ max-height: 1.75rem; }
+ .navbar-item.has-dropdown {
+ padding: 0; }
+ .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 3.25rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ .navbar-item.is-tab:focus, .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #2e63b8; }
+ .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #2e63b8;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #2e63b8;
+ padding-bottom: calc(0.5rem - 3px); }
+
+.navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+
+.navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ .navbar-link:not(.is-arrowless)::after {
+ border-color: #2e63b8;
+ margin-top: -0.375em;
+ right: 1.125em; }
+
+.navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+
+.navbar-divider {
+ background-color: whitesmoke;
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+
+@media screen and (max-width: 1055px) {
+ .navbar > .container {
+ display: block; }
+ .navbar-brand .navbar-item,
+ .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ .navbar-link::after {
+ display: none; }
+ .navbar-menu {
+ background-color: white;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ .navbar-menu.is-active {
+ display: block; }
+ .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-touch {
+ top: 0; }
+ .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto; }
+ html.has-navbar-fixed-top-touch,
+ body.has-navbar-fixed-top-touch {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-touch,
+ body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 3.25rem; } }
+
+@media screen and (min-width: 1056px) {
+ .navbar,
+ .navbar-menu,
+ .navbar-start,
+ .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ .navbar {
+ min-height: 3.25rem; }
+ .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ .navbar.is-spaced .navbar-start,
+ .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ .navbar.is-spaced a.navbar-item,
+ .navbar.is-spaced .navbar-link {
+ border-radius: 4px; }
+ .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active,
+ .navbar.is-transparent .navbar-link:focus,
+ .navbar.is-transparent .navbar-link:hover,
+ .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar-burger {
+ display: none; }
+ .navbar-item,
+ .navbar-link {
+ align-items: center;
+ display: flex; }
+ .navbar-item {
+ display: flex; }
+ .navbar-item.has-dropdown {
+ align-items: stretch; }
+ .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 2px solid #dbdbdb;
+ border-radius: 6px 6px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ .navbar-dropdown {
+ background-color: white;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid #dbdbdb;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed {
+ border-radius: 6px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ .navbar-divider {
+ display: block; }
+ .navbar > .container .navbar-brand,
+ .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ .navbar > .container .navbar-menu,
+ .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.has-navbar-fixed-top-desktop,
+ body.has-navbar-fixed-top-desktop {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-desktop,
+ body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 3.25rem; }
+ html.has-spaced-navbar-fixed-top,
+ body.has-spaced-navbar-fixed-top {
+ padding-top: 5.25rem; }
+ html.has-spaced-navbar-fixed-bottom,
+ body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 5.25rem; }
+ a.navbar-item.is-active,
+ .navbar-link.is-active {
+ color: #0a0a0a; }
+ a.navbar-item.is-active:not(:focus):not(:hover),
+ .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #fafafa; } }
+
+.hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 3.25rem); }
+
+.pagination {
+ font-size: 1rem;
+ margin: -0.25rem; }
+ .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.75rem; }
+ .pagination.is-medium {
+ font-size: 1.25rem; }
+ .pagination.is-large {
+ font-size: 1.5rem; }
+ .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ .pagination.is-rounded .pagination-next,
+ #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+
+.pagination,
+.pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link {
+ border-color: #dbdbdb;
+ color: #363636;
+ min-width: 2.25em; }
+ .pagination-previous:hover,
+ .pagination-next:hover,
+ .pagination-link:hover {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus {
+ border-color: #3c5dcd; }
+ .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled] {
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ color: #6b6b6b;
+ opacity: 0.5; }
+
+.pagination-previous,
+.pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+
+.pagination-link.is-current {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+
+.pagination-ellipsis {
+ color: #b5b5b5;
+ pointer-events: none; }
+
+.pagination-list {
+ flex-wrap: wrap; }
+
+@media screen and (max-width: 768px) {
+ .pagination {
+ flex-wrap: wrap; }
+ .pagination-previous,
+ .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+
+@media screen and (min-width: 769px), print {
+ .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ .pagination-previous {
+ order: 2; }
+ .pagination-next {
+ order: 3; }
+ .pagination {
+ justify-content: space-between; }
+ .pagination.is-centered .pagination-previous {
+ order: 1; }
+ .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ .pagination.is-centered .pagination-next {
+ order: 3; }
+ .pagination.is-right .pagination-previous {
+ order: 1; }
+ .pagination.is-right .pagination-next {
+ order: 2; }
+ .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+
+.panel {
+ font-size: 1rem; }
+ .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.panel-heading,
+.panel-tabs,
+.panel-block {
+ border-bottom: 1px solid #dbdbdb;
+ border-left: 1px solid #dbdbdb;
+ border-right: 1px solid #dbdbdb; }
+ .panel-heading:first-child,
+ .panel-tabs:first-child,
+ .panel-block:first-child {
+ border-top: 1px solid #dbdbdb; }
+
+.panel-heading {
+ background-color: whitesmoke;
+ border-radius: 4px 4px 0 0;
+ color: #222222;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+
+.panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ .panel-tabs a {
+ border-bottom: 1px solid #dbdbdb;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ .panel-tabs a.is-active {
+ border-bottom-color: #4a4a4a;
+ color: #363636; }
+
+.panel-list a {
+ color: #222222; }
+ .panel-list a:hover {
+ color: #2e63b8; }
+
+.panel-block {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ .panel-block.is-active {
+ border-left-color: #2e63b8;
+ color: #363636; }
+ .panel-block.is-active .panel-icon {
+ color: #2e63b8; }
+
+a.panel-block,
+label.panel-block {
+ cursor: pointer; }
+ a.panel-block:hover,
+ label.panel-block:hover {
+ background-color: whitesmoke; }
+
+.panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: #6b6b6b;
+ margin-right: 0.75em; }
+ .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+
+.tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 1rem;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ .tabs a {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #222222;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ .tabs a:hover {
+ border-bottom-color: #222222;
+ color: #222222; }
+ .tabs li {
+ display: block; }
+ .tabs li.is-active a {
+ border-bottom-color: #2e63b8;
+ color: #2e63b8; }
+ .tabs ul {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ .tabs ul.is-left {
+ padding-right: 0.75em; }
+ .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ .tabs.is-centered ul {
+ justify-content: center; }
+ .tabs.is-right ul {
+ justify-content: flex-end; }
+ .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .tabs.is-boxed a:hover {
+ background-color: whitesmoke;
+ border-bottom-color: #dbdbdb; }
+ .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-bottom-color: transparent !important; }
+ .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .tabs.is-toggle a {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ .tabs.is-toggle a:hover {
+ background-color: whitesmoke;
+ border-color: #b5b5b5;
+ z-index: 2; }
+ .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ .tabs.is-toggle li:first-child a {
+ border-radius: 4px 0 0 4px; }
+ .tabs.is-toggle li:last-child a {
+ border-radius: 0 4px 4px 0; }
+ .tabs.is-toggle li.is-active a {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff;
+ z-index: 1; }
+ .tabs.is-toggle ul {
+ border-bottom: none; }
+ .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.75rem; }
+ .tabs.is-medium {
+ font-size: 1.25rem; }
+ .tabs.is-large {
+ font-size: 1.5rem; }
+
+.column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ .column.is-narrow-mobile {
+ flex: none; }
+ .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ .column.is-narrow, .column.is-narrow-tablet {
+ flex: none; }
+ .column.is-full, .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters, .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds, .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half, .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third, .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter, .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth, .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths, .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths, .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths, .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ .column.is-offset-half, .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ .column.is-offset-one-third, .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ .column.is-0, .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0, .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ .column.is-1, .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1, .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ .column.is-2, .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2, .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ .column.is-3, .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3, .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ .column.is-4, .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4, .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ .column.is-5, .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5, .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ .column.is-6, .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6, .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ .column.is-7, .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7, .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ .column.is-8, .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8, .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ .column.is-9, .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9, .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ .column.is-10, .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10, .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ .column.is-11, .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11, .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ .column.is-12, .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12, .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ .column.is-narrow-touch {
+ flex: none; }
+ .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-touch {
+ margin-left: 50%; }
+ .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-touch {
+ margin-left: 0%; }
+ .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-touch {
+ margin-left: 25%; }
+ .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-touch {
+ margin-left: 50%; }
+ .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-touch {
+ margin-left: 75%; }
+ .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ .column.is-narrow-desktop {
+ flex: none; }
+ .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ .column.is-narrow-widescreen {
+ flex: none; }
+ .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ .column.is-narrow-fullhd {
+ flex: none; }
+ .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+.columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .columns:last-child {
+ margin-bottom: -0.75rem; }
+ .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ .columns.is-centered {
+ justify-content: center; }
+ .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ .columns.is-mobile {
+ display: flex; }
+ .columns.is-multiline {
+ flex-wrap: wrap; }
+ .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-desktop {
+ display: flex; } }
+.columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+.tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .tile.is-child {
+ margin: 0 !important; }
+ .tile.is-parent {
+ padding: 0.75rem; }
+ .tile.is-vertical {
+ flex-direction: column; }
+ .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ .tile:not(.is-child) {
+ display: flex; }
+ .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+.hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ .hero .navbar {
+ background: none; }
+ .hero .tabs ul {
+ border-bottom: none; }
+ .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-white strong {
+ color: inherit; }
+ .hero.is-white .title {
+ color: #0a0a0a; }
+ .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ .hero.is-white .subtitle a:not(.button),
+ .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-white .navbar-menu {
+ background-color: white; } }
+ .hero.is-white .navbar-item,
+ .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active,
+ .hero.is-white .navbar-link:hover,
+ .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-black strong {
+ color: inherit; }
+ .hero.is-black .title {
+ color: white; }
+ .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-black .subtitle a:not(.button),
+ .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ .hero.is-black .navbar-item,
+ .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active,
+ .hero.is-black .navbar-link:hover,
+ .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ .hero.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-light strong {
+ color: inherit; }
+ .hero.is-light .title {
+ color: #363636; }
+ .hero.is-light .subtitle {
+ color: rgba(54, 54, 54, 0.9); }
+ .hero.is-light .subtitle a:not(.button),
+ .hero.is-light .subtitle strong {
+ color: #363636; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-light .navbar-menu {
+ background-color: whitesmoke; } }
+ .hero.is-light .navbar-item,
+ .hero.is-light .navbar-link {
+ color: rgba(54, 54, 54, 0.7); }
+ .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active,
+ .hero.is-light .navbar-link:hover,
+ .hero.is-light .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .hero.is-light .tabs a {
+ color: #363636;
+ opacity: 0.9; }
+ .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a {
+ color: #363636; }
+ .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }
+ .hero.is-dark, .content kbd.hero {
+ background-color: #363636;
+ color: whitesmoke; }
+ .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-dark strong,
+ .content kbd.hero strong {
+ color: inherit; }
+ .hero.is-dark .title, .content kbd.hero .title {
+ color: whitesmoke; }
+ .hero.is-dark .subtitle, .content kbd.hero .subtitle {
+ color: rgba(245, 245, 245, 0.9); }
+ .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button),
+ .hero.is-dark .subtitle strong,
+ .content kbd.hero .subtitle strong {
+ color: whitesmoke; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu {
+ background-color: #363636; } }
+ .hero.is-dark .navbar-item, .content kbd.hero .navbar-item,
+ .hero.is-dark .navbar-link,
+ .content kbd.hero .navbar-link {
+ color: rgba(245, 245, 245, 0.7); }
+ .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active,
+ .hero.is-dark .navbar-link:hover,
+ .content kbd.hero .navbar-link:hover,
+ .hero.is-dark .navbar-link.is-active,
+ .content kbd.hero .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .hero.is-dark .tabs a, .content kbd.hero .tabs a {
+ color: whitesmoke;
+ opacity: 0.9; }
+ .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a {
+ color: whitesmoke; }
+ .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .hero.is-dark.is-bold, .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }
+ .hero.is-primary, .docstring > section > a.hero.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-primary strong,
+ .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ .hero.is-primary .subtitle strong,
+ .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #4eb5de; } }
+ .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ .hero.is-primary .navbar-link,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ .hero.is-primary .navbar-link:hover,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ .hero.is-primary .navbar-link.is-active,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #4eb5de; }
+ .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } }
+ .hero.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-link strong {
+ color: inherit; }
+ .hero.is-link .title {
+ color: #fff; }
+ .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-link .subtitle a:not(.button),
+ .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-link .navbar-menu {
+ background-color: #2e63b8; } }
+ .hero.is-link .navbar-item,
+ .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active,
+ .hero.is-link .navbar-link:hover,
+ .hero.is-link .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #2e63b8; }
+ .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } }
+ .hero.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-info strong {
+ color: inherit; }
+ .hero.is-info .title {
+ color: #fff; }
+ .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-info .subtitle a:not(.button),
+ .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-info .navbar-menu {
+ background-color: #209cee; } }
+ .hero.is-info .navbar-item,
+ .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active,
+ .hero.is-info .navbar-link:hover,
+ .hero.is-info .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #209cee; }
+ .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } }
+ .hero.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-success strong {
+ color: inherit; }
+ .hero.is-success .title {
+ color: #fff; }
+ .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-success .subtitle a:not(.button),
+ .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-success .navbar-menu {
+ background-color: #22c35b; } }
+ .hero.is-success .navbar-item,
+ .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active,
+ .hero.is-success .navbar-link:hover,
+ .hero.is-success .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #22c35b; }
+ .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } }
+ .hero.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-warning strong {
+ color: inherit; }
+ .hero.is-warning .title {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .subtitle {
+ color: rgba(0, 0, 0, 0.9); }
+ .hero.is-warning .subtitle a:not(.button),
+ .hero.is-warning .subtitle strong {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (max-width: 1055px) {
+ .hero.is-warning .navbar-menu {
+ background-color: #ffdd57; } }
+ .hero.is-warning .navbar-item,
+ .hero.is-warning .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active,
+ .hero.is-warning .navbar-link:hover,
+ .hero.is-warning .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9; }
+ .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } }
+ .hero.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-danger strong {
+ color: inherit; }
+ .hero.is-danger .title {
+ color: #fff; }
+ .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-danger .subtitle a:not(.button),
+ .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-danger .navbar-menu {
+ background-color: #da0b00; } }
+ .hero.is-danger .navbar-item,
+ .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active,
+ .hero.is-danger .navbar-link:hover,
+ .hero.is-danger .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #da0b00; }
+ .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } }
+ .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .hero.is-halfheight {
+ min-height: 50vh; }
+ .hero.is-fullheight {
+ min-height: 100vh; }
+
+.hero-video {
+ overflow: hidden; }
+ .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ .hero-video {
+ display: none; } }
+.hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .hero-buttons .button {
+ display: flex; }
+ .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+.hero-head,
+.hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+
+.section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ .section.is-medium {
+ padding: 9rem 1.5rem; }
+ .section.is-large {
+ padding: 18rem 1.5rem; } }
+.footer {
+ background-color: #fafafa;
+ padding: 3rem 1.5rem 6rem; }
+
+h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited {
+ color: #222222; }
+
+h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+
+h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+
+.docs-dark-only {
+ display: none !important; }
+
+pre {
+ position: relative;
+ overflow: hidden; }
+ pre code, pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ pre code:first-of-type, pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ pre code:last-of-type, pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #222222;
+ cursor: pointer;
+ text-align: center; }
+ pre .copy-button:focus, pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(34, 34, 34, 0.1);
+ color: #2e63b8; }
+ pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ pre:hover .copy-button {
+ opacity: 1; }
+
+.admonition {
+ background-color: #b5b5b5;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #363636;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .admonition strong {
+ color: currentColor; }
+ .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.75rem; }
+ .admonition.is-medium {
+ font-size: 1.25rem; }
+ .admonition.is-large {
+ font-size: 1.5rem; }
+ .admonition.is-default {
+ background-color: #b5b5b5;
+ border-color: #363636; }
+ .admonition.is-default > .admonition-header {
+ background-color: #363636;
+ color: #fff; }
+ .admonition.is-default > .admonition-body {
+ color: #fff; }
+ .admonition.is-info {
+ background-color: #def0fc;
+ border-color: #209cee; }
+ .admonition.is-info > .admonition-header {
+ background-color: #209cee;
+ color: #fff; }
+ .admonition.is-info > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-success {
+ background-color: #bdf4d1;
+ border-color: #22c35b; }
+ .admonition.is-success > .admonition-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .admonition.is-success > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning {
+ background-color: #fff3c5;
+ border-color: #ffdd57; }
+ .admonition.is-warning > .admonition-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-danger {
+ background-color: #ffaba7;
+ border-color: #da0b00; }
+ .admonition.is-danger > .admonition-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .admonition.is-danger > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-compat {
+ background-color: #bdeff5;
+ border-color: #1db5c9; }
+ .admonition.is-compat > .admonition-header {
+ background-color: #1db5c9;
+ color: #fff; }
+ .admonition.is-compat > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+
+.admonition-header {
+ color: #fff;
+ background-color: #363636;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+
+.admonition-body {
+ color: #222222;
+ padding: 0.5rem 0.75rem; }
+ .admonition-body pre {
+ background-color: whitesmoke; }
+ .admonition-body code {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #dbdbdb;
+ box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1);
+ max-width: 100%; }
+ .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: whitesmoke;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > header code {
+ background-color: transparent; }
+ .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > section:last-child {
+ border-bottom: none; }
+ .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+
+.documenter-example-output {
+ background-color: white; }
+
+.outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #ffaba7;
+ color: rgba(0, 0, 0, 0.7);
+ border-bottom: 3px solid #da0b00;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ .outdated-warning-overlay a {
+ color: #2e63b8; }
+ .outdated-warning-overlay a:hover {
+ color: #363636; }
+
+.content pre {
+ border: 1px solid #dbdbdb; }
+
+.content code {
+ font-weight: inherit; }
+
+.content a code {
+ color: #2e63b8; }
+
+.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code {
+ color: #222222; }
+
+.content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+
+.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+
+pre, code {
+ font-variant-ligatures: no-contextual; }
+
+.breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover {
+ color: #222222; }
+
+.hljs {
+ background: initial !important; }
+
+.katex .katex-mathml {
+ top: 0;
+ right: 0; }
+
+.katex-display, mjx-container, .MathJax_Display {
+ margin: 0.5em 0 !important; }
+
+html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+
+li.no-marker {
+ list-style: none; }
+
+/* This file contain the overall layout.
+ *
+ * The main container is
that is identified by id #documenter.
+ */
+#documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+@media screen and (min-width: 1056px) {
+ #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+
+@media screen and (max-width: 1055px) {
+ #documenter .docs-main {
+ width: 100%; }
+ #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-main > header, #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+
+#documenter .docs-main header.docs-navbar {
+ background-color: white;
+ border-bottom: 1px solid #dbdbdb;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #bbb;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+#documenter .docs-main section.footnotes {
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+
+#documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #dbdbdb;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+
+#documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #0a0a0a;
+ background-color: whitesmoke;
+ border-right: 1px solid #dbdbdb;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 1rem;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #bbb; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #0a0a0a; }
+ #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #dbdbdb;
+ display: none;
+ padding: 0.5rem; }
+ #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #dbdbdb;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 0.95rem;
+ margin-left: 1em;
+ border-left: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 0.75rem;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #0a0a0a;
+ background: whitesmoke; }
+ #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #0a0a0a;
+ background-color: #ebebeb; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #dbdbdb;
+ border-bottom: 1px solid #dbdbdb;
+ background-color: white; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: white;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #ebebeb;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 0.85rem;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+#documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+
+#documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+
+.ansi span.sgr1 {
+ font-weight: bolder; }
+
+.ansi span.sgr2 {
+ font-weight: lighter; }
+
+.ansi span.sgr3 {
+ font-style: italic; }
+
+.ansi span.sgr4 {
+ text-decoration: underline; }
+
+.ansi span.sgr7 {
+ color: white;
+ background-color: #222222; }
+
+.ansi span.sgr8 {
+ color: transparent; }
+ .ansi span.sgr8 span {
+ color: transparent; }
+
+.ansi span.sgr9 {
+ text-decoration: line-through; }
+
+.ansi span.sgr30 {
+ color: #242424; }
+
+.ansi span.sgr31 {
+ color: #a7201f; }
+
+.ansi span.sgr32 {
+ color: #066f00; }
+
+.ansi span.sgr33 {
+ color: #856b00; }
+
+.ansi span.sgr34 {
+ color: #2149b0; }
+
+.ansi span.sgr35 {
+ color: #7d4498; }
+
+.ansi span.sgr36 {
+ color: #007989; }
+
+.ansi span.sgr37 {
+ color: gray; }
+
+.ansi span.sgr40 {
+ background-color: #242424; }
+
+.ansi span.sgr41 {
+ background-color: #a7201f; }
+
+.ansi span.sgr42 {
+ background-color: #066f00; }
+
+.ansi span.sgr43 {
+ background-color: #856b00; }
+
+.ansi span.sgr44 {
+ background-color: #2149b0; }
+
+.ansi span.sgr45 {
+ background-color: #7d4498; }
+
+.ansi span.sgr46 {
+ background-color: #007989; }
+
+.ansi span.sgr47 {
+ background-color: gray; }
+
+.ansi span.sgr90 {
+ color: #616161; }
+
+.ansi span.sgr91 {
+ color: #cb3c33; }
+
+.ansi span.sgr92 {
+ color: #0e8300; }
+
+.ansi span.sgr93 {
+ color: #a98800; }
+
+.ansi span.sgr94 {
+ color: #3c5dcd; }
+
+.ansi span.sgr95 {
+ color: #9256af; }
+
+.ansi span.sgr96 {
+ color: #008fa3; }
+
+.ansi span.sgr97 {
+ color: whitesmoke; }
+
+.ansi span.sgr100 {
+ background-color: #616161; }
+
+.ansi span.sgr101 {
+ background-color: #cb3c33; }
+
+.ansi span.sgr102 {
+ background-color: #0e8300; }
+
+.ansi span.sgr103 {
+ background-color: #a98800; }
+
+.ansi span.sgr104 {
+ background-color: #3c5dcd; }
+
+.ansi span.sgr105 {
+ background-color: #9256af; }
+
+.ansi span.sgr106 {
+ background-color: #008fa3; }
+
+.ansi span.sgr107 {
+ background-color: whitesmoke; }
+
+code.language-julia-repl > span.hljs-meta {
+ color: #066f00;
+ font-weight: bolder; }
+
+/*!
+ Theme: Default
+ Description: Original highlight.js style
+ Author: (c) Ivan Sagalaev
+ Maintainer: @highlightjs/core-team
+ Website: https://highlightjs.org/
+ License: see project LICENSE
+ Touched: 2021
+*/
+/*
+This is left on purpose making default.css the single file that can be lifted
+as-is from the repository directly without the need for a build step
+
+Typically this "required" baseline CSS is added by `makestuff.js` during build.
+*/
+pre code.hljs {
+ display: block;
+ overflow-x: auto; }
+
+code.hljs {
+ padding: 3px 5px; }
+
+/* end baseline CSS */
+.hljs {
+ background: #F0F0F0;
+ color: #444; }
+
+/* Base color: saturation 0; */
+.hljs-subst {
+ /* default */ }
+
+/* purposely ignored */
+.hljs-comment {
+ color: #888888; }
+
+.hljs-tag,
+.hljs-punctuation {
+ color: #444a; }
+
+.hljs-tag .hljs-name,
+.hljs-tag .hljs-attr {
+ color: #444; }
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta .hljs-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold; }
+
+/* User color: hue: 0 */
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000; }
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold; }
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-operator,
+.hljs-selector-pseudo {
+ color: #BC6060; }
+
+/* Language color: hue: 90; */
+.hljs-literal {
+ color: #78A960; }
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #397300; }
+
+/* Meta color: hue: 200 */
+.hljs-meta {
+ color: #1f7199; }
+
+.hljs-meta .hljs-string {
+ color: #4d99bf; }
+
+/* Misc effects */
+.hljs-emphasis {
+ font-style: italic; }
+
+.hljs-strong {
+ font-weight: bold; }
diff --git a/v0.4.0/assets/themeswap.js b/v0.4.0/assets/themeswap.js
new file mode 100644
index 0000000..c58e993
--- /dev/null
+++ b/v0.4.0/assets/themeswap.js
@@ -0,0 +1,66 @@
+// Small function to quickly swap out themes. Gets put into the tag..
+function set_theme_from_local_storage() {
+ // Intialize the theme to null, which means default
+ var theme = null;
+ // If the browser supports the localstorage and is not disabled then try to get the
+ // documenter theme
+ if(window.localStorage != null) {
+ // Get the user-picked theme from localStorage. May be `null`, which means the default
+ // theme.
+ theme = window.localStorage.getItem("documenter-theme");
+ }
+ // Check if the browser supports user color preference
+ var darkPreference = false;
+ // Check if the users preference is for dark color scheme
+ if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) {
+ darkPreference = true;
+ }
+ // Initialize a few variables for the loop:
+ //
+ // - active: will contain the index of the theme that should be active. Note that there
+ // is no guarantee that localStorage contains sane values. If `active` stays `null`
+ // we either could not find the theme or it is the default (primary) theme anyway.
+ // Either way, we then need to stick to the primary theme.
+ //
+ // - disabled: style sheets that should be disabled (i.e. all the theme style sheets
+ // that are not the currently active theme)
+ var active = null; var disabled = []; var darkTheme = null;
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ // The tag of each style sheet is expected to have a data-theme-name attribute
+ // which must contain the name of the theme. The names in localStorage much match this.
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ // attribute not set => non-theme stylesheet => ignore
+ if(themename === null) continue;
+ // To distinguish the default (primary) theme, it needs to have the data-theme-primary
+ // attribute set.
+ var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
+ // Check if the theme is primary dark theme
+ var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null);
+ // If ss is for dark theme then set the value of darkTheme to the name of the theme
+ if(isDarkTheme) darkTheme = themename;
+ // If we find a matching theme (and it's not the default), we'll set active to non-null
+ if(themename === theme) active = i;
+ // Store the style sheets of inactive themes so that we could disable them
+ if(themename !== theme) disabled.push(ss);
+ }
+ if(active !== null) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+ else if(darkTheme !== null && darkPreference === true) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + darkTheme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) {
+ ss.disabled = true;
+ }
+ });
+ }
+}
+set_theme_from_local_storage();
diff --git a/v0.4.0/assets/warner.js b/v0.4.0/assets/warner.js
new file mode 100644
index 0000000..5531c88
--- /dev/null
+++ b/v0.4.0/assets/warner.js
@@ -0,0 +1,49 @@
+function maybeAddWarning () {
+ // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
+ // in siteinfo.js.
+ // If either of these are undefined something went horribly wrong, so we abort.
+ if (
+ window.DOCUMENTER_NEWEST === undefined ||
+ window.DOCUMENTER_CURRENT_VERSION === undefined ||
+ window.DOCUMENTER_STABLE === undefined
+ ) {
+ return
+ };
+
+ // Current version is not a version number, so we can't tell if it's the newest version. Abort.
+ if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
+ return
+ };
+
+ // Current version is newest version, so no need to add a warning.
+ if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
+ return
+ };
+
+ // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
+ if (document.body.querySelector('meta[name="robots"]') === null) {
+ const meta = document.createElement('meta');
+ meta.name = 'robots';
+ meta.content = 'noindex';
+
+ document.getElementsByTagName('head')[0].appendChild(meta);
+ };
+
+ const div = document.createElement('div');
+ div.classList.add('outdated-warning-overlay');
+ const closer = document.createElement('button');
+ closer.classList.add('outdated-warning-closer', 'delete');
+ closer.addEventListener('click', function () {
+ document.body.removeChild(div);
+ });
+ const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE;
+ div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
+ div.appendChild(closer);
+ document.body.appendChild(div);
+};
+
+if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', maybeAddWarning);
+} else {
+ maybeAddWarning();
+};
diff --git a/v0.4.0/generated/examples/01-tomography.ipynb b/v0.4.0/generated/examples/01-tomography.ipynb
new file mode 100644
index 0000000..45e9b2c
--- /dev/null
+++ b/v0.4.0/generated/examples/01-tomography.ipynb
@@ -0,0 +1,411 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Tomography overview\n",
+ "\n",
+ "This page gives an overview of the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[01-tomography.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/01-tomography.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: fbp\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Tomography\n",
+ "\n",
+ "[Tomography](https://en.wikipedia.org/wiki/Tomography)\n",
+ "is the process of imaging cross sections of an object\n",
+ "without actually slicing the object.\n",
+ "There are many forms of tomography;\n",
+ "the description here\n",
+ "focuses on\n",
+ "[X-ray computed tomography (CT scans)](https://en.wikipedia.org/wiki/CT_scan).\n",
+ "(See\n",
+ "[SPECTrecon.jl](https://github.com/JeffFessler/SPECTrecon.jl)\n",
+ "for a Julia package related to\n",
+ "[SPECT](https://en.wikipedia.org/wiki/Single-photon_emission_computed_tomography)\n",
+ "imaging.)\n",
+ "\n",
+ "In an\n",
+ "[X-ray CT imaging system](http://en.wikipedia.org/wiki/File:Ct-internals.jpg),\n",
+ "X-rays emitted from an X-ray source\n",
+ "are transmitted through an object\n",
+ "(e.g., a patient in medical CT)\n",
+ "towards a detector array.\n",
+ "The source and detector\n",
+ "[rotate rapidly](https://www.youtube.com/watch?v=2CWpZKuy-NE)\n",
+ "around the object.\n",
+ "The signal intensities recorded by the detector\n",
+ "are related\n",
+ "to the sizes and densities\n",
+ "of the object materials\n",
+ "between the source and each detector element.\n",
+ "\n",
+ "\n",
+ "## Radon transform\n",
+ "\n",
+ "The mathematical foundation\n",
+ "for 2D X-ray CT imaging\n",
+ "is the\n",
+ "[Radon transform](https://en.wikipedia.org/wiki/Radon_transform),\n",
+ "an\n",
+ "[integral transform](https://en.wikipedia.org/wiki/Integral_transform)\n",
+ "that maps a 2D function\n",
+ "$f(x,y)$\n",
+ "into the collection of line integrals\n",
+ "through that function.\n",
+ "Here we describe each line\n",
+ "by its angle $\\phi$\n",
+ "measured counter-clockwise from the $y$ axis,\n",
+ "and by the radial distance $r$ of the line from the origin.\n",
+ "The collection of integrals\n",
+ "is called a sinogram.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$ is defined by\n",
+ "$$\n",
+ "p(r,\\phi) = \\int_{-\\infty}^{\\infty}\n",
+ "f(r \\cos \\phi - l \\sin \\phi,\n",
+ "r \\sin \\phi + l \\cos \\phi) \\, \\mathrm{d} l.\n",
+ "$$\n",
+ "\n",
+ "The Radon transform of the object that is 1 inside the unit disk\n",
+ "and 0 elsewhere is given by\n",
+ "$$\n",
+ "p_1(r,\\phi) = 2 \\sqrt{1 - r^2}, \\ \\mathrm{ for } \\ |r| < 1.\n",
+ "$$\n",
+ "\n",
+ "By the Radon transform's translation and scaling properties,\n",
+ "the Radon transform\n",
+ "of a disk of radius $r_0$\n",
+ "centered at $(x_0,y_0)$\n",
+ "is given by\n",
+ "$$\n",
+ "p(r,\\phi) = r_0 \\, p_1\n",
+ "\\left( \\frac{r - (x_0 \\cos \\phi + y_0 \\sin \\phi)}{r_0}, ϕ \\right).\n",
+ "$$\n",
+ "\n",
+ "## Sinogram example\n",
+ "\n",
+ "Here is a display of that Radon transform\n",
+ "for a disk of radius $3$\n",
+ "centered at coordinate $(5,1)$.\n",
+ "Note that maximum value is approximately $6$,\n",
+ "the length of the longest chord\n",
+ "through a disk of radius $3$."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "nr = 128\n",
+ "dr = 20 / nr\n",
+ "r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\n",
+ "na = 130\n",
+ "ϕ = (0:(na-1))/na * π # angular samples\n",
+ "proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\n",
+ "proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\n",
+ "sino = proj2.(r, ϕ', 5, 1, 3)\n",
+ "jimsino = (sino, title) -> jim(\n",
+ " r, ϕ, sino; title, aspect_ratio=:none,\n",
+ " xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n",
+ " yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n",
+ " clim = (0, 6),\n",
+ ")\n",
+ "jimsino(sino, \"Sinogram for one disk\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As this figure illustrates,\n",
+ "the Radon transform of a unit disk\n",
+ "has a somewhat sinusoidal shape.\n",
+ "Indeed every point in the $(x,y)$ plane\n",
+ "traces out a distinct sinusoid\n",
+ "in the sinogram.\n",
+ "\n",
+ "The mapping from the object $f(x,y)$\n",
+ "to data like the sinogram $p(r,\\phi)$\n",
+ "is called the \"forward problem.\"\n",
+ "\n",
+ "\n",
+ "## Image reconstruction\n",
+ "\n",
+ "[Image reconstruction](http://en.wikipedia.org/wiki/Image_reconstruction)\n",
+ "is the process of solving the\n",
+ "[inverse problem](https://en.wikipedia.org/wiki/Inverse_problem)\n",
+ "of recovering an estimate $\\hat{f}(x,y)$\n",
+ "of the object $f(x,y)$\n",
+ "from a measured sinogram,\n",
+ "i.e.,\n",
+ "from (usually noisy) samples of $p(r,\\phi)$.\n",
+ "\n",
+ "\n",
+ "## FBP\n",
+ "\n",
+ "A simple image reconstruction method\n",
+ "is called the\n",
+ "\"filtered back-projection\" (FBP) approach.\n",
+ "It works by filtering each row of the sinogram\n",
+ "with a filter,\n",
+ "called the\n",
+ "[ramp filter](https://en.wikipedia.org/wiki/Radon_transform#Radon_inversion_formula),\n",
+ "whose frequency response\n",
+ "is roughly $|\\nu|$,\n",
+ "where $\\nu$ is the spatial frequency variable\n",
+ "(units cycles / m),\n",
+ "followed by a\n",
+ "[back-projection](https://en.wikipedia.org/wiki/Radon_transform#Dual_transform)\n",
+ "step that is the\n",
+ "[adjoint](https://en.wikipedia.org/wiki/Hermitian_adjoint)\n",
+ "of the Radon transform.\n",
+ "\n",
+ "\n",
+ "### FBP example\n",
+ "\n",
+ "Here is an illustration\n",
+ "of using the `fbp` method\n",
+ "in this package\n",
+ "to perform image reconstruction\n",
+ "from the preceding sinogram."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "image = fbp(sino; dr)\n",
+ "(nx,ny) = size(image)\n",
+ "dx = dr # default\n",
+ "x = ((-(nx-1)/2):((nx-1)/2)) * dr\n",
+ "y = x\n",
+ "jim(x, y, image, \"FBP image\",\n",
+ " xtick=[-10, 0, 2, 5, 8, 10],\n",
+ " ytick=[-10, 0, -2, 1, 4, 10],\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The FBP reconstructed image\n",
+ "looks pretty similar\n",
+ "to a disk of radius $3$\n",
+ "centered at $(5,1)$\n",
+ "as expected.\n",
+ "However,\n",
+ "there are quite a few ripples;\n",
+ "these are\n",
+ "[aliasing](https://en.wikipedia.org/wiki/Aliasing)\n",
+ "artifacts\n",
+ "due to the finite sampling\n",
+ "in $r$ and $\\phi$.\n",
+ "\n",
+ "This is example is what is called\n",
+ "2D parallel-beam tomography,\n",
+ "because for the angles $\\phi$ are equally spaced\n",
+ "and for each angle\n",
+ "the radial samples $r$ are also equally spaced.\n",
+ "This package includes\n",
+ "FBP reconstruction methods\n",
+ "for several other sinogram geometries,\n",
+ "including the well-known fan beam geometries\n",
+ "and the specialized Mojette geometry.\n",
+ "\n",
+ "\n",
+ "## Noise effects on FBP\n",
+ "\n",
+ "Simulating the effects of measurement noise in sinogram\n",
+ "leads to even worse FBP results.\n",
+ "\n",
+ "First note that a practical imaging system\n",
+ "has a finite field of view (FOV):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rmax = maximum(r)\n",
+ "fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\n",
+ "jim(x, y, fovmask, \"FOV mask\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Add noise to the original sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_sinogram = sino + 0.1 * randn(size(sino))\n",
+ "jimsino(noisy_sinogram, \"Noisy sinogram\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Apply FBP to the noisy sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_fbp_image = fbp(noisy_sinogram; dr)\n",
+ "noisy_fbp_image .*= fovmask # apply FOV mask\n",
+ "jim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The methods in this package\n",
+ "(WIP)\n",
+ "and related methods in the\n",
+ "[JuliaImageRecon](https://github.com/JuliaImageRecon)\n",
+ "suite\n",
+ "are designed\n",
+ "to provide better reconstructions\n",
+ "than the simple FBP method.\n",
+ "In particular,\n",
+ "model-based image reconstruction (MBIR) methods\n",
+ "and methods that use suitable machine-learning approaches\n",
+ "can improve image quality significantly.\n",
+ "See this\n",
+ "[2020 survey paper](http://doi.org/10.1109/JPROC.2019.2936204)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Reproducibility"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page was generated with the following version of Julia:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "And with the following package versions"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "import Pkg; Pkg.status()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/01-tomography/index.html b/v0.4.0/generated/examples/01-tomography/index.html
new file mode 100644
index 0000000..e8bbb4c
--- /dev/null
+++ b/v0.4.0/generated/examples/01-tomography/index.html
@@ -0,0 +1,4043 @@
+
+Tomography overview · Sinograms.jl This page gives an overview of the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 01-tomography.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb
, and opened in binder here: 01-tomography.ipynb
.
Packages needed here.
using Sinograms: fbp
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans) . (See SPECTrecon.jl for a Julia package related to SPECT imaging.)
In an X-ray CT imaging system , X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.
The mathematical foundation for 2D X-ray CT imaging is the Radon transform , an integral transform that maps a 2D function $f(x,y)$ into the collection of line integrals through that function. Here we describe each line by its angle $\phi$ measured counter-clockwise from the $y$ axis, and by the radial distance $r$ of the line from the origin. The collection of integrals is called a sinogram.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined by
\[p(r,\phi) = \int_{-\infty}^{\infty}
+f(r \cos \phi - l \sin \phi,
+r \sin \phi + l \cos \phi) \, \mathrm{d} l.\]
The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by
\[p_1(r,\phi) = 2 \sqrt{1 - r^2}, \ \mathrm{ for } \ |r| < 1.\]
By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius $r_0$ centered at $(x_0,y_0)$ is given by
\[p(r,\phi) = r_0 \, p_1
+\left( \frac{r - (x_0 \cos \phi + y_0 \sin \phi)}{r_0}, ϕ \right).\]
Here is a display of that Radon transform for a disk of radius $3$ centered at coordinate $(5,1)$ . Note that maximum value is approximately $6$ , the length of the longest chord through a disk of radius $3$ .
nr = 128
+dr = 20 / nr
+r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations
+na = 130
+ϕ = (0:(na-1))/na * π # angular samples
+proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.
+proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)
+sino = proj2.(r, ϕ', 5, 1, 3)
+jimsino = (sino, title) -> jim(
+ r, ϕ, sino; title, aspect_ratio=:none,
+ xlabel = "r", ylabel = "ϕ", ylims=(0,π), yticks=([0, π], ["0", "π"]),
+ yflip=false, xticks = [-10, 0, 2, 5, 8, 10],
+ clim = (0, 6),
+)
+jimsino(sino, "Sinogram for one disk")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the $(x,y)$ plane traces out a distinct sinusoid in the sinogram.
The mapping from the object $f(x,y)$ to data like the sinogram $p(r,\phi)$ is called the "forward problem."
Image reconstruction is the process of solving the inverse problem of recovering an estimate $\hat{f}(x,y)$ of the object $f(x,y)$ from a measured sinogram, i.e., from (usually noisy) samples of $p(r,\phi)$ .
A simple image reconstruction method is called the "filtered back-projection" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter , whose frequency response is roughly $|\nu|$ , where $\nu$ is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.
Here is an illustration of using the fbp
method in this package to perform image reconstruction from the preceding sinogram.
image = fbp(sino; dr)
+(nx,ny) = size(image)
+dx = dr # default
+x = ((-(nx-1)/2):((nx-1)/2)) * dr
+y = x
+jim(x, y, image, "FBP image",
+ xtick=[-10, 0, 2, 5, 8, 10],
+ ytick=[-10, 0, -2, 1, 4, 10],
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The FBP reconstructed image looks pretty similar to a disk of radius $3$ centered at $(5,1)$ as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in $r$ and $\phi$ .
This is example is what is called 2D parallel-beam tomography, because for the angles $\phi$ are equally spaced and for each angle the radial samples $r$ are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.
Simulating the effects of measurement noise in sinogram leads to even worse FBP results.
First note that a practical imaging system has a finite field of view (FOV):
rmax = maximum(r)
+fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax
+jim(x, y, fovmask, "FOV mask")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Add noise to the original sinogram:
noisy_sinogram = sino + 0.1 * randn(size(sino))
+jimsino(noisy_sinogram, "Noisy sinogram")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Apply FBP to the noisy sinogram:
noisy_fbp_image = fbp(noisy_sinogram; dr)
+noisy_fbp_image .*= fovmask # apply FOV mask
+jim(x, y, noisy_fbp_image, "Noisy FBP image"; clim=(0,1))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper .
This page was generated with the following version of Julia:
io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\n')
10-element Vector{SubString{String}}:
+ "Julia Version 1.8.4"
+ "Commit 00177ebc4fc (2022-12-23 21:32 UTC)"
+ "Platform Info:"
+ " OS: Linux (x86_64-linux-gnu)"
+ " CPU: 2 × Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz"
+ " WORD_SIZE: 64"
+ " LIBM: libopenlibm"
+ " LLVM: libLLVM-13.0.1 (ORCJIT, haswell)"
+ " Threads: 1 on 2 virtual cores"
+ ""
And with the following package versions
import Pkg; Pkg.status()
Status `~/work/Sinograms.jl/Sinograms.jl/docs/Project.toml`
+ [39de3d68] AxisArrays v0.4.6
+ [e30172f5] Documenter v0.27.23
+ [9ee76f2b] ImageGeoms v0.10.0
+ [71a99df6] ImagePhantoms v0.7.2
+ [98b081ad] Literate v2.14.0
+ [170b2178] MIRTjim v0.21.1
+ [6fe1bfb0] OffsetArrays v1.12.8
+ [91a5bcdd] Plots v1.38.0
+ [02a14def] Sinograms v0.4.0 `~/work/Sinograms.jl/Sinograms.jl`
+ [1986cc42] Unitful v1.12.2
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/generated/examples/02-sino-geom.ipynb b/v0.4.0/generated/examples/02-sino-geom.ipynb
new file mode 100644
index 0000000..57137d3
--- /dev/null
+++ b/v0.4.0/generated/examples/02-sino-geom.ipynb
@@ -0,0 +1,402 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 2D sinogram geometry\n",
+ "\n",
+ "This page describes the 2D sinogram geometries\n",
+ "available in the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[02-sino-geom.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/02-sino-geom.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Unitful: mm, °\n",
+ "using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\n",
+ "using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\n",
+ "using Sinograms: sino_plot_rays, rays, angles\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 2D Sinogram geometries\n",
+ "\n",
+ "To perform 2D image reconstruction\n",
+ "from a 2D sinogram,\n",
+ "one must first describe\n",
+ "how the rays in the sinogram are sampled.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$\n",
+ "is defined for all $r$ and $ϕ$\n",
+ "but practical systems\n",
+ "record $p(r,ϕ)$\n",
+ "only for certain finite sets of samples\n",
+ "of those values.\n",
+ "\n",
+ "\n",
+ "## Parallel-beam geometry\n",
+ "\n",
+ "The simplest form of sinogram sampling\n",
+ "is equally spaced samples\n",
+ "in both $r$ and $ϕ$.\n",
+ "This sampling is called a parallel-beam geometry.\n",
+ "(Very few practical systems have this sampling pattern,\n",
+ "but it is an easy place to start.)\n",
+ "Both FBP and iterative reconstruction methods\n",
+ "need to know which values\n",
+ "of $r$ and $ϕ$\n",
+ "are sampled.\n",
+ "\n",
+ "In this package,\n",
+ "`SinoPar`\n",
+ "is the type that describes\n",
+ "a parallel-beam sinogram geometry.\n",
+ "\n",
+ "The built-in defaults provide helpful reminders about the usage."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "SinoPar()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This package supports units via the\n",
+ "[Unitful.jl](https://github.com/PainterQubits/Unitful.jl)\n",
+ "and using units is recommended\n",
+ "(but not required).\n",
+ "\n",
+ "Here is an example of how to specify\n",
+ "a parallel-beam geometry.\n",
+ "Everything is a named keyword argument with sensible default values.\n",
+ "\n",
+ "* `orbit` and `orbit_start` must both be unitless (degrees)\n",
+ " or have the same units (e.g., degrees or radians).\n",
+ "* detector spacing `d` (can be unitless or have units e.g., mm).\n",
+ "* The projection angles $ϕ$ are equally space and given by\n",
+ " `orbit_start + (0:(nb-1))/nb * orbit`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoPar( ;\n",
+ " nb = 64, # number of radial samples (\"bins\")\n",
+ " na = 30, # number of angular samples\n",
+ " d = 2mm, # detector spacing\n",
+ " offset = 0.25, # quarter detector offset (unitless)\n",
+ " orbit = 180, # angular range (in degrees)\n",
+ " orbit_start = 0, # starting angle (in degrees)\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The struct `rg` has numerous useful properties;\n",
+ "type `?SinoGeom` to see the full list.\n",
+ "\n",
+ "For example,\n",
+ "to access the angular samples in degrees\n",
+ "type `angles(rg)`"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "angles(rg)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following function visualizes the sampling pattern."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with an arc detector (3rd generation CT)\n",
+ "\n",
+ "For a fan-beam geometry,\n",
+ "the arguments are the same as for `SinoPar`\n",
+ "with the addition of specifying:\n",
+ "* `dsd` distance from source to detector\n",
+ "* `dod` distance from origin (isocenter) to detector\n",
+ "* `dfs` distance from focal point of detector to source\n",
+ " (0 for a 3rd gen arc detector, and `Inf` for a flat detector)\n",
+ "* `source_offset` for misaligned systems\n",
+ " where the ray from the source to the detector center\n",
+ " does not intersect the isocenter.\n",
+ " Not fully supported; submit an issue if you need this feature.\n",
+ "\n",
+ "Here is an example that corresponds to a GE Lightspeed CT system.\n",
+ "These numbers are published in\n",
+ "[IEEE T-MI Oct. 2006, p.1272-1283](http://doi.org/10.1109/TMI.2006.882141)."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( ; nb=888, na=984,\n",
+ " d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a smaller example for plotting the rays."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)\n",
+ "sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for arc detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with a flat detector\n",
+ "\n",
+ "This geometry is the same as the arc detector\n",
+ "except that `dfs=Inf`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanFlat( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for flat detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Mojette sampling\n",
+ "This is a specialized sampling geometry\n",
+ "that is currently incompletely supported."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoMoj( ; nb=60, na=30)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true,\n",
+ " title=\"Mojette sampling\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a diagram that illustrates how the radial spacing\n",
+ "is a function of the projection view angle for the Mojette geometry.\n",
+ "The key aspect here\n",
+ "is that in each image row\n",
+ "the line intersection lengths are identical."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\n",
+ "default(label=\"\")\n",
+ "for y in -2:2\n",
+ " plot!([-3, 3], [y, y], color=:black)\n",
+ "end\n",
+ "for x in -3:3\n",
+ " plot!([x, x], [-2, 2], color=:black)\n",
+ "end\n",
+ "plot_ray!(r, ϕ) = plot!(\n",
+ " r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n",
+ " r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n",
+ " color = :blue,\n",
+ ")\n",
+ "ia = 4 # pick an angle\n",
+ "i = rays(rg) # iterator\n",
+ "rs = [i[1] for i in i] # radial samples\n",
+ "ϕs = [i[2] for i in i] # projection angle\n",
+ "r = rs[:,ia]\n",
+ "r = r[abs.(r) .< 3]\n",
+ "ϕ = ϕs[1,ia]\n",
+ "plot_ray!.(r, ϕ)\n",
+ "plot!(aspect_ratio=1, title = \"Mojette line integrals\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/02-sino-geom/index.html b/v0.4.0/generated/examples/02-sino-geom/index.html
new file mode 100644
index 0000000..698c847
--- /dev/null
+++ b/v0.4.0/generated/examples/02-sino-geom/index.html
@@ -0,0 +1,8063 @@
+
+2D sinogram geometry · Sinograms.jl This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 02-sino-geom.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb
, and opened in binder here: 02-sino-geom.ipynb
.
Packages needed here.
using Unitful: mm, °
+using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work
+using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan
+using Sinograms: sino_plot_rays, rays, angles
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined for all $r$ and $ϕ$ but practical systems record $p(r,ϕ)$ only for certain finite sets of samples of those values.
The simplest form of sinogram sampling is equally spaced samples in both $r$ and $ϕ$ . This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of $r$ and $ϕ$ are sampled.
In this package, SinoPar
is the type that describes a parallel-beam sinogram geometry.
The built-in defaults provide helpful reminders about the usage.
SinoPar()
SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
This package supports units via the Unitful.jl and using units is recommended (but not required).
Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.
orbit
and orbit_start
must both be unitless (degrees) or have the same units (e.g., degrees or radians).detector spacing d
(can be unitless or have units e.g., mm). The projection angles $ϕ$ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit
. rg = SinoPar( ;
+ nb = 64, # number of radial samples ("bins")
+ na = 30, # number of angular samples
+ d = 2mm, # detector spacing
+ offset = 0.25, # quarter detector offset (unitless)
+ orbit = 180, # angular range (in degrees)
+ orbit_start = 0, # starting angle (in degrees)
+)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
The struct rg
has numerous useful properties; type ?SinoGeom
to see the full list.
For example, to access the angular samples in degrees type angles(rg)
angles(rg)
0.0f0:6.0f0:174.0f0
The following function visualizes the sampling pattern.
sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true, title="Parallel")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
For a fan-beam geometry, the arguments are the same as for SinoPar
with the addition of specifying:
dsd
distance from source to detectordod
distance from origin (isocenter) to detectordfs
distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf
for a flat detector)source_offset
for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 .
rg = SinoFanArc( ; nb=888, na=984,
+ d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 888
+ d::Unit{Float64} 1.0239 mm
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 949.075 mm
+ dod::Unit{Float64} 408.075 mm
+
Here is a smaller example for plotting the rays.
rg = SinoFanArc( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
+sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for arc detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This geometry is the same as the arc detector except that dfs=Inf
.
rg = SinoFanFlat( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
SinoFanFlat{Unitful.Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Float32} 20.0f0 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float32} 0.0f0 mm
+ dsd::Unit{Float32} 900.0f0 mm
+ dod::Unit{Float32} 400.0f0 mm
+
Here is its sampling plot
sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for flat detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This is a specialized sampling geometry that is currently incompletely supported.
rg = SinoMoj( ; nb=60, na=30)
SinoMoj{Float32, Float32} :
+ nb::Int64 60
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Here is its sampling plot
sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true,
+ title="Mojette sampling")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.
plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel="x", ylabel="x")
+default(label="")
+for y in -2:2
+ plot!([-3, 3], [y, y], color=:black)
+end
+for x in -3:3
+ plot!([x, x], [-2, 2], color=:black)
+end
+plot_ray!(r, ϕ) = plot!(
+ r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),
+ r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),
+ color = :blue,
+)
+ia = 4 # pick an angle
+i = rays(rg) # iterator
+rs = [i[1] for i in i] # radial samples
+ϕs = [i[2] for i in i] # projection angle
+r = rs[:,ia]
+r = r[abs.(r) .< 3]
+ϕ = ϕs[1,ia]
+plot_ray!.(r, ϕ)
+plot!(aspect_ratio=1, title = "Mojette line integrals")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/generated/examples/03-parallel-beam.ipynb b/v0.4.0/generated/examples/03-parallel-beam.ipynb
new file mode 100644
index 0000000..9b793cd
--- /dev/null
+++ b/v0.4.0/generated/examples/03-parallel-beam.ipynb
@@ -0,0 +1,239 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Parallel-beam tomography\n",
+ "\n",
+ "This page describes parallel-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[03-parallel-beam.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/03-parallel-beam.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: SinoPar, rays, plan_fbp, fbp, fbp_sino_filter\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using Unitful: mm\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Parallel-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a parallel-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoPar` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoPar( ; nb = 130, d = 2mm, na = 100)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Radon transform of Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n",
+ "\n",
+ "# Image reconstruction via FBP"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig)\n",
+ "fbp_image = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For fun, here is the filtered sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_filt = fbp_sino_filter(sino, plan.filter)\n",
+ "jim(axes(rg), sino_filt; title=\"Filtered sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/03-parallel-beam/index.html b/v0.4.0/generated/examples/03-parallel-beam/index.html
new file mode 100644
index 0000000..5a3cfef
--- /dev/null
+++ b/v0.4.0/generated/examples/03-parallel-beam/index.html
@@ -0,0 +1,2387 @@
+
+Parallel-beam tomography · Sinograms.jl This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 03-parallel-beam.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb
, and opened in binder here: 03-parallel-beam.ipynb
.
Packages needed here.
using Sinograms: SinoPar, rays, plan_fbp, fbp, fbp_sino_filter
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using Unitful: mm
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoPar
to define the sinogram geometry.
rg = SinoPar( ; nb = 130, d = 2mm, na = 100)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Radon transform of Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+# Image reconstruction via FBP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(rg, ig)
+fbp_image = fbp(plan, sino)
128×126 Matrix{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}}:
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ ⋮ ⋱ ⋮
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For fun, here is the filtered sinogram:
sino_filt = fbp_sino_filter(sino, plan.filter)
+jim(axes(rg), sino_filt; title="Filtered sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/generated/examples/04-fan-arc.ipynb b/v0.4.0/generated/examples/04-fan-arc.ipynb
new file mode 100644
index 0000000..a4f5dcd
--- /dev/null
+++ b/v0.4.0/generated/examples/04-fan-arc.ipynb
@@ -0,0 +1,257 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: arc detector\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[04-fan-arc.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/04-fan-arc.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig)\n",
+ "fbp_image = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/04-fan-arc/index.html b/v0.4.0/generated/examples/04-fan-arc/index.html
new file mode 100644
index 0000000..f291a0a
--- /dev/null
+++ b/v0.4.0/generated/examples/04-fan-arc/index.html
@@ -0,0 +1,2334 @@
+
+Fan-beam tomography: arc detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 04-fan-arc.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb
, and opened in binder here: 04-fan-arc.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry.
rg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(rg, ig)
+fbp_image = fbp(plan, sino)
128×126 Matrix{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}}:
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ ⋮ ⋱ ⋮
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/generated/examples/05-fan-flat.ipynb b/v0.4.0/generated/examples/05-fan-flat.ipynb
new file mode 100644
index 0000000..8b53372
--- /dev/null
+++ b/v0.4.0/generated/examples/05-fan-flat.ipynb
@@ -0,0 +1,253 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: flat detector\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with a \"flat\" detector,\n",
+ "i.e., one row of a flat-panel detector\n",
+ "as used in many cone-beam CT (CBCT) systems.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[05-fan-flat.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/05-fan-flat.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanFlat` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "fbp_image = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/05-fan-flat/index.html b/v0.4.0/generated/examples/05-fan-flat/index.html
new file mode 100644
index 0000000..4d4559a
--- /dev/null
+++ b/v0.4.0/generated/examples/05-fan-flat/index.html
@@ -0,0 +1,2194 @@
+
+Fan-beam tomography: flat detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with a "flat" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.
This page was generated from a single Julia file: 05-fan-flat.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb
, and opened in binder here: 05-fan-flat.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.2 cm, 0.2 cm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanFlat
to define the sinogram geometry.
rg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)
SinoFanFlat{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 0.3 cm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 50.0 cm
+ dod::Unit{Float64} 14.0 cm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 0.0 cm), (11.776000000000002 cm, 8.694 cm), (1.5707963267948966,), 0.2 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -0.23184000000000002 cm), (11.1872 cm, 8.346240000000002 cm), (1.5707963267948966,), -0.098 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((2.8160000000000003 cm, 0.0 cm), (3.968 cm, 1.3860000000000001 cm), (1.2566370614359172,), -0.002 cm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-2.8160000000000003 cm, 0.0 cm), (5.248 cm, 2.0160000000000005 cm), (1.8849555921538759,), -0.002 cm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 4.41 cm), (3.2 cm, 2.6460000000000004 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-1.024 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -7.623 cm), (0.2944 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.768 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+fbp_image = fbp(plan, sino)
128×126 Matrix{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}}:
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ ⋮ ⋱ ⋮
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for flat case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/generated/examples/06-fan-short.ipynb b/v0.4.0/generated/examples/06-fan-short.ipynb
new file mode 100644
index 0000000..2562686
--- /dev/null
+++ b/v0.4.0/generated/examples/06-fan-short.ipynb
@@ -0,0 +1,318 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: short scan\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl)\n",
+ "for a \"short\" scan\n",
+ "where the rotation (`orbit`) is 180° plus the fan angle.\n",
+ "This case requires\n",
+ "[Parker weighting](http://doi.org/10.1118/1.595078).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[06-fan-short.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/06-fan-short.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry,\n",
+ "with the `:short` option for `orbit` to make a short scan.\n",
+ "Note that even though we specify `na = 100`\n",
+ "we end up with `na = 67` views\n",
+ "because of the `:short` option."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( :short, ;\n",
+ " nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV.\n",
+ "The `na=67` blue dots show the `:short` scan."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Short arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan 'short' sinogram\",\n",
+ " xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine Parker weights:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(rg), plan.view_weight; title = \"Parker weights\",\n",
+ " xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Finally perform FBP:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "fbp_image = fbp(plan, sino);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for 'short' arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the difference image.\n",
+ "Better sampling would reduce the errors."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig)..., fbp_image - true_image, \"Error image\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/06-fan-short/index.html b/v0.4.0/generated/examples/06-fan-short/index.html
new file mode 100644
index 0000000..39ab3ed
--- /dev/null
+++ b/v0.4.0/generated/examples/06-fan-short/index.html
@@ -0,0 +1,3520 @@
+
+Fan-beam tomography: short scan · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
for a "short" scan where the rotation (orbit
) is 180° plus the fan angle. This case requires Parker weighting .
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 06-fan-short.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 06-fan-short.ipynb
, and opened in binder here: 06-fan-short.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry, with the :short
option for orbit
to make a short scan. Note that even though we specify na = 100
we end up with na = 67
views because of the :short
option.
rg = SinoFanArc( :short, ;
+ nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,
+)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 67
+ orbit::Float32 239.12924
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV. The na=67
blue dots show the :short
scan.
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Short arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan 'short' sinogram",
+ xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(rg, ig)
FBPNormalPlan{S,I,H,V} with
+ S = SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} (130, 67)
+ I = ImageGeoms.ImageGeom{2, Tuple{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix} (128, 126)
+ H = Vector{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}} with extrema (0.0001541825009936049 mm^-1, 0.38515099184495855 mm^-1)
+ V = Matrix{Float32} (130, 67) with extrema (0.0f0, 0.062292427f0)
+
Examine Parker weights:
jim(axes(rg), plan.view_weight; title = "Parker weights",
+ xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Finally perform FBP:
fbp_image = fbp(plan, sino);
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for 'short' arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image:
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is the difference image. Better sampling would reduce the errors.
jim(axes(ig)..., fbp_image - true_image, "Error image")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/generated/examples/07-fdk.ipynb b/v0.4.0/generated/examples/07-fdk.ipynb
new file mode 100644
index 0000000..8b74ee3
--- /dev/null
+++ b/v0.4.0/generated/examples/07-fdk.ipynb
@@ -0,0 +1,369 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# CBCT FDK\n",
+ "\n",
+ "This page describes image reconstruction\n",
+ "for cone-beam computed tomography (CBCT)\n",
+ "with both arc and flat detectors\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[07-fdk.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/07-fdk.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: CtFanArc, CtFanFlat # CtPar\n",
+ "using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\n",
+ "using ImageGeoms: ImageGeom, MaskCircle, fovs\n",
+ "using ImagePhantoms: ellipsoid_parameters, ellipsoid\n",
+ "using ImagePhantoms: radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### CBCT projections of 3D Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "CBCT projections\n",
+ "of the 3D Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipsoid parameters for 3D Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\n",
+ "ob = ellipsoid(params)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow grayscale window is needed to see the soft tissue structures"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.95, 1.05) .* μ"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "oversample = 3\n",
+ "true_image = phantom(axes(ig)..., ob, oversample)\n",
+ "pt = jim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Define the system geometry\n",
+ "(for some explanation use `?CtGeom`):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\n",
+ "rg = CtFanArc( ; p...)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV\n",
+ "(this is more interesting when interacting via other Plot backends):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ct_geom_plot3(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "CBCT projections\n",
+ "using `Sinogram.rays` and `ImagePhantoms.radon`:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "proj_arc = radon(rays(rg), ob)\n",
+ "pa = jim(axes(rg)[1:2], proj_arc ;\n",
+ " title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "There is no \"inverse crime\" here\n",
+ "because we compute the projection views\n",
+ "using the analytical phantom geometry,\n",
+ "but then reconstruct\n",
+ "on a discrete grid.\n",
+ "\n",
+ "## Image reconstruction via FBP / FDK\n",
+ "\n",
+ "We start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_arc = fdk(plan, proj_arc)\n",
+ "par = jim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_arc = fdk_arc - true_image\n",
+ "elim = (-1,1) .* (0.02μ)\n",
+ "pae = jim(axes(ig), err_arc, \"Error image (arc)\"; clim = elim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Repeat with flat detector geometry"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = CtFanFlat( ; p...)\n",
+ "proj_flat = radon(rays(rg), ob)\n",
+ "pfp = jim(axes(rg)[1:2], proj_flat ;\n",
+ " title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n",
+ "\n",
+ "plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_flat = fdk(plan, proj_flat)\n",
+ "pfr = jim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_flat = fdk_flat - true_image\n",
+ "pfe = jim(axes(ig), err_flat, \"Error image (flat)\"; clim = elim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As expected for CBCT,\n",
+ "the largest errors are in the end slices."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Short scan"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = CtFanFlat(:short ; p..., na = 200)\n",
+ "proj_short = radon(rays(rg), ob)\n",
+ "psp = jim(axes(rg)[1:2], proj_short ;\n",
+ " title=\"Shepp-Logan projections (flat,short)\", xlabel=\"s\", ylabel=\"t\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan_short = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "psw = jim(axes(rg)[[1,3]], plan_short.view_weight[:,1,:];\n",
+ " title = \"View weights (including Parker)\",\n",
+ " xlabel=\"s\", ylabel=\"angle\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "fdk_short = fdk(plan_short, proj_short)\n",
+ "psr = jim(axes(ig), fdk_short, \"FDK image (flat,short)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_short = fdk_short - true_image\n",
+ "pse = jim(axes(ig), err_flat, \"Error image (flat,short)\"; clim = elim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.0/generated/examples/07-fdk/index.html b/v0.4.0/generated/examples/07-fdk/index.html
new file mode 100644
index 0000000..4af4b4d
--- /dev/null
+++ b/v0.4.0/generated/examples/07-fdk/index.html
@@ -0,0 +1,31997 @@
+
+CBCT FDK · Sinograms.jl This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 07-fdk.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb
, and opened in binder here: 07-fdk.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: CtFanArc, CtFanFlat # CtPar
+using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3
+using ImageGeoms: ImageGeom, MaskCircle, fovs
+using ImagePhantoms: ellipsoid_parameters, ellipsoid
+using ImagePhantoms: radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)
ImageGeoms.ImageGeom{3, NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitArray{3}}
+ dims::NTuple{3,Int64} (64, 62, 30)
+ deltas::NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.4 cm, 0.4 cm, 0.8 cm)
+ offsets::NTuple{3,Float32} (0.0f0, 0.0f0, 0.0f0)
+ mask: 64×62×30 BitArray{3} {84840 of 119040}
+
Ellipsoid parameters for 3D Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))
+ob = ellipsoid(params)
12-element Vector{ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}}:
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 0.0 cm, 0.0 cm), (8.831999999999999 cm, 11.408000000000001 cm, 10.8 cm), (0.0, 0.0, 0.0), 0.2 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -0.22816 cm, 0.0 cm), (8.478720000000001 cm, 10.8376 cm, 10.56 cm), (0.0, 0.0, 0.0), -0.098 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-2.8160000000000003 cm, 0.0 cm, -3.0 cm), (5.248 cm, 1.9840000000000002 cm, 2.52 cm), (-1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (-0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((2.8160000000000003 cm, 0.0 cm, -3.0 cm), (3.968 cm, 1.364 cm, 2.64 cm), (1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 4.34 cm, -3.0 cm), (2.688 cm, 3.1 cm, 4.199999999999999 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-1.024 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -7.502 cm, -3.0 cm), (0.2944 cm, 0.2852 cm, 0.276 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (-1.5707963267948966, 0.0, 0.0), 0.001 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -1.302 cm, 0.75 cm), (0.7168000000000001 cm, 0.49600000000000005 cm, 1.2000000000000002 cm), (-1.5707963267948966, 0.0, 0.0), 0.002 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, 7.5 cm), (0.7168000000000001 cm, 0.6944 cm, 1.2000000000000002 cm), (0.0, 0.0, 0.0), -0.002 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
A narrow grayscale window is needed to see the soft tissue structures
clim = (0.95, 1.05) .* μ
(0.095 cm^-1, 0.10500000000000001 cm^-1)
Here is the ideal phantom image:
oversample = 3
+true_image = phantom(axes(ig)..., ob, oversample)
+pt = jim(axes(ig), true_image, "True 3D Shepp-Logan phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Define the system geometry (for some explanation use ?CtGeom
):
p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)
+rg = CtFanArc( ; p...)
CtFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32, CtSourceCircle} :
+ ns::Int64 130
+ nt::Int64 80
+ ds::Unit{Float64} 0.3 cm
+ dt::Unit{Float64} 0.4 cm
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 50
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 200.0 cm
+ dod::Unit{Float64} 40.0 cm
+ src::CtSourceCircle CtSourceCircle()
+
Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):
ct_geom_plot3(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
CBCT projections using Sinogram.rays
and ImagePhantoms.radon
:
proj_arc = radon(rays(rg), ob)
+pa = jim(axes(rg)[1:2], proj_arc ;
+ title="Shepp-Logan projections (arc)", xlabel="s", ylabel="t")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+There is no "inverse crime" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.
We start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+fdk_arc = fdk(plan, proj_arc)
+par = jim(axes(ig), fdk_arc, "FDK image (arc)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_arc = fdk_arc - true_image
+elim = (-1,1) .* (0.02μ)
+pae = jim(axes(ig), err_arc, "Error image (arc)"; clim = elim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rg = CtFanFlat( ; p...)
+proj_flat = radon(rays(rg), ob)
+pfp = jim(axes(rg)[1:2], proj_flat ;
+ title="Shepp-Logan projections (flat)", xlabel="s", ylabel="t")
+
+plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+fdk_flat = fdk(plan, proj_flat)
+pfr = jim(axes(ig), fdk_flat, "FDK image (flat)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_flat = fdk_flat - true_image
+pfe = jim(axes(ig), err_flat, "Error image (flat)"; clim = elim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As expected for CBCT, the largest errors are in the end slices.
rg = CtFanFlat(:short ; p..., na = 200)
+proj_short = radon(rays(rg), ob)
+psp = jim(axes(rg)[1:2], proj_short ;
+ title="Shepp-Logan projections (flat,short)", xlabel="s", ylabel="t")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+plan_short = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+psw = jim(axes(rg)[[1,3]], plan_short.view_weight[:,1,:];
+ title = "View weights (including Parker)",
+ xlabel="s", ylabel="angle")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+fdk_short = fdk(plan_short, proj_short)
+psr = jim(axes(ig), fdk_short, "FDK image (flat,short)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_short = fdk_short - true_image
+pse = jim(axes(ig), err_flat, "Error image (flat,short)"; clim = elim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/index.html b/v0.4.0/index.html
new file mode 100644
index 0000000..532f067
--- /dev/null
+++ b/v0.4.0/index.html
@@ -0,0 +1,2 @@
+
+Home · Sinograms.jl Sinograms.jl
is a Julia language package with tools for tomographic image reconstruction, including
describing ray geometries (parallel beam, fan beam, etc.) ✅ performing filtered back-projection (FBP) image reconstruction ✅ system models for iterative reconstruction (WIP) See the examples.
See also:
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/methods/index.html b/v0.4.0/methods/index.html
new file mode 100644
index 0000000..dd4ca3f
--- /dev/null
+++ b/v0.4.0/methods/index.html
@@ -0,0 +1,129 @@
+
+Methods · Sinograms.jl CtFanArc{Td,To,Ts}
3D CBCT geometry for arc detector
source CtFanArc(::Val{:ge1} ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
(see CtFanArc
) out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> CtFanArc(Val(:ge1))
+CtFanArc{Float64, Float32, CtSourceCircle} :
+ ns::Int64 888
+ nt::Int64 64
+ ds::Float64 1.0239
+ dt::Float64 1.0964
+ offset_s::Float32 1.25
+ offset_t::Float32 0.0
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float64 0.0
+ dsd::Float64 949.075
+ dod::Float64 408.075
+ src::CtSourceCircle CtSourceCircle()
source CtFanArc( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
+CtFanArc(:short ; ...)
Constructor with named keywords. See ?CtGeom
for documentation.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well. julia> CtFanArc()
+CtFanArc{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtFanFlat{Td,To,Ts}
3D CTCT geometry for flat detector
source CtFanFlat( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
+CtFanFlat(:short ; ...)
Constructor with named keywords. See ?CtGeom
for documentation.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well. julia> CtFanFlat()
+CtFanFlat{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtGeom{Td,To,Ts}
Abstract type for representing ray geometries for 3D CT imaging.
The projection view coordinates are (s,t)
where s
denotes the transaxial sampling and t
denotes the axial direction (along z
).
Common fields
ns
size of each projection viewnt
ds
detector pixel spacingdt
offset_s
unitless detector center offset (usually 0 or 0.25)offset_t
unitless, usually 0na
# of projection views, aka nϕ or nβorbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.src::CtSource
describes the X-ray CT source trajectory. Primary support for CtSourceCircle()
.Additional fields for CtFan
types:
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
ds
, dt
, source_offset
, dsd
, dod
must all be unitless or have the same units.Basic methods
angles
(na) in degreesdims (ns, nt, na)
ones = ones(Float32, ns,nt,na)
zeros = zeros(Float32, ns,nt,na)
rays
iterator of (u,v,ϕ,θ)
samplesdownsample(st, down)
reduce sampling by integer factoroversample(st, over)
ct_geom_plot3
plot system geometryNon-exported helper functions for developers:
_s (ns) s
sample locations_t (nt) t
sample locations_ws = (ns-1)/2 + offset_s
"middle" sample position_wt = (nt-1)/2 + offset_t
_ar (na)
source angles [radians]_rfov
max radius within FOV_zfov
axial FOV_xds (nb)
center of detector elements (beta=0)_yds (nb)
""_tau(rg, x, y)
projected s/ds for each (x,y)
pair (length(x), na)
_shape(rg, proj [,:])
reshape proj
into array (ns,nt,na[,:])
_unitv(rg [, (is,it,ia)])
unit 'vector' with single nonzero elementFor fan beam:
_dso = dsd - dod
distance from source to origin (Inf for parallel beam)_dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors)_gamma(rg [,s]) (ns)
gamma sample values radians
, optionally given s
values_gamma_max = max(|γ|)
half of fan angle radians
, if offset_s
== 0_cone_angle
(half) cone angle on axis (s=0): +/- angleNotes
Use sino_geom()
instead for 2D geometries.
source CtPar{Td,To,Ts}
3D parallel-beam projection geometry
source CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtPar()
+CtPar{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 60
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ src::CtSourceCircle CtSourceCircle()
source CtSource
Abstract type for representing X-ray CT source trajectories.
source CtSourceCircle
Type for representing circular X-ray CT source trajectory.
source CtSourceHelix
Type for representing helical X-ray CT source trajectories having constant pitch.
Fields
pitch
helix pitch (unitless fraction of zFOV, default 0)source_z0
initial z position of x-ray source (default 0) It should have same units as detector pixels etc.source CtSourceHelix( ; pitch = 0, source_z0 = 0)
Constructor with named keywords
source FBPNormalPlan{S,I,H,P}
Struct type for storing "normal" FBP plan.
The view_weight
can include (products of)
Parker weighting for short scans view-wise weighting from fbp_sino_weight
todo dβ
weighting for possibly nonuniform angles from _angle_weights
source FBPplan
Abstract type for FBP plans.
source FDKplan{C,I,H,V}
Struct type for storing FDK plan.
The view_weight
can include (products of)
Parker weighting for short scans view-wise CBCT weighting from fdk_weight_cyl
dβ
weighting for possibly nonuniform angles from _angle_weights
source RayGeom{Td,To}
Parent type for SinoGeom
and CtGeom
source SinoFanArc{Td,To}
2D fan-beam sinogram geometry for arc detector
source SinoFanArc(Val(:ge1) ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
nb::Int = 888
# of detector channelsd::RealU = 1.0239
channel spacingoffset::Real = 1.25
for "quarter-detector" offsetna::Int = 984
# of anglesorbit::Union{Symbol,Real} = 360
use :short
for short scandsd::RealU = 949.075
dod::RealU = 408.075
out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> SinoFanArc(Val(:ge1))
+SinoFanArc{Float32, Float32} :
+ nb::Int64 888
+ d::Float32 1.0239
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 949.075
+ dod::Float32 408.075
source SinoFanArc( ; nb d offset na orbit orbit_start
+ source_offset, dsd = 4 * nb * d, dod = nb * d)
+SinoFanArc(:short ; ...)
Constructor with named keywords. See ?SinoGeom
for documentation.
d
, source_offset
, dsd
, dod
must all have the same units.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well.
julia> SinoFanArc()
+SinoFanArc{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoFanFlat{Td,To}
2D fan-beam sinogram geometry for flat detector
source SinoFanFlat( ; nb d offset na orbit orbit_start
+ source_offset, dsd= 4 * nb * d, dod = nb * d)
+SinoFanFlat(:short ; ...)
Constructor with named keywords. See ?SinoGeom
for documentation.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well. julia> SinoFanFlat()
+SinoFanFlat{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoGeom{Td,To}
Abstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.
Common fields
nb
# of "radial" samples, aka nr
or ns
d
aka dr
or ds
, "radial" sample spacingoffset
unitless sample offset (usually 0 or 0.25)na
# of angular samples, aka nϕ
or nβ
default: 2 * floor(Int, nb * π/2 / 2)
orbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.Additional fields for SinoFan
types
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
d
, source_offset
, dsd
, dod
must all have the same units.Basic methods
angles
(na) in degreesdims (nb, na)
ones = ones(Float32, nb, na)
zeros = zeros(Float32, nb, na)
rays
iterator of (r, ϕ)
parallel-beam coordinate tuples of size (nb, na)
downsample(st, down)
reduce sampling by integer factoroversample(st, over)
sino_geom_plot!
plot system geometryNon-exported helper functions for developers:
_ds|dr
radial sample spacing (NaN
for :moj
)_s (nb) s
sample locations_w = (nb-1)/2 + offset
"middle" sample position_ar (na)
source angles [radians]_rfov
radial FOV_xds (nb)
center of detector elements (beta=0)_yds (nb)
""_tau(rg, x, y)
projected s/ds for each (x,y)
pair (length(x), na)
_shape(rg, sino [,:])
reshape sino
into array (nb,na[,:])
_unitv(rg [, (ib,ia)])
unit 'vector' with single nonzero elementFor mojette:
_d_ang (na)
angle-dependent radial spacingFor fan beam:
_dso = dsd - dod
distance from source to origin (Inf for parallel beam)_dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors)_gamma(rg [,s]) (nb)
gamma sample values radians
, optionally given s
values_gamma_max = max(|γ|)
half of fan angle radians
, if offset_s
== 0Notes
Use ct_geom()
instead for 3D axial or helical cone-beam CT. source SinoMoj{Td,To}
2D Mojette sinogram geometry where d
means dx
(square pixel size)
source SinoMoj( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoMoj()
+SinoMoj{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source SinoPar{Td,To}
2D parallel-beam sinogram geometry
source SinoPar( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoPar()
+SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source Window{S,T}
Data type for FBP apodizing windows, with given window shape::S
and cutoff::T
.
julia> Window(Hamming(), 0.8)
+Window{Hamming, Float64}(Hamming(), 0.8)
source WindowVect{V} <: AbstractWindowShape
A user-specified window vector, constructed via WindowVect(v::V)
, where v
is a AbstractVector
. Caution: length(v)
must be appropriate for the padded sinogram size.
source show(io::IO, ::MIME"text/plain", rg::RayGeom)
source _angle_weights(ar::AbstractVector{<:RealU})
Angular weighting to # scale projections by dβ (aka dϕ or da) for Riemann-like integration.
input
ar (na,)
angles in radians.output
For now, simply the scalar (ar[begin+1]-ar[begin]) / n180
where n180
is the number of full multiples of 180°. This simplifies to π/na
for typical 180° and 360° scans. For a fan-beam short scan (180° + fan angle), it also simplifies to π/na
, where the "excess" is handled by Parker weighting.
Examples
julia> rg = SinoPar(); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na
+(0.015707962f0, 0.015707963267948967)
julia> rg = SinoPar(;orbit=360); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na
+(0.015707962f0, 0.015707963267948967)
julia> rg = SinoFanArc(:short); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na
+(0.04842342f0, 0.04487989505128276)
For now, only equally spaced views are supported, but this is where unequal spacing would be handled, and the output would be of size (na,)
.
source _gamma(rg::RayGeom [, s])
Return gamma (γ: fan angle) values for fan-beam geometry.
source _reale(x ; rtol = …)
Return the real part of x
, but warn if the imaginary part is too large. By default this uses a 100× larger rtol
than isapprox
due to FFT errors.
source _rfov(rg::RayGeom)
Radial FOV.
source _shape(rg, x::AbstractArray [, :])
Reshape x
to dims(rg)
or (dims(rg)..., :)
.
source _show(io::IO, ::MIME"text/plain", st::Any)
Informative way to show fields of a struct (composite type).
source _tau(rg::RayGeom, x, y)
Projected s/ds
, useful for footprint center and support. Returns Matrix
of size length(x) × rg.na
.
source _unitv([T=Float32], rg:RayGeom [, pos::Tuple])
Projection views with a single non-zero ray value at position pos
(default: middle).
source _xds(rg::RayGeom)
Center x
positions of detectors (for beta = 0), for central row of detector.
source _yds(rg::RayGeom)
Center y
positions of detectors (for beta = 0), for central row of detector.
source angles(rg::RayGeom) =
Return vector of angles for this ray geometry, in whatever units the user used to specify orbit
and orbit_start
, typically degrees.
source u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)
Convert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)
Convert from cone-beam flat panel coordinages to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source cbct_back(proj, rg, ig)
Cone-beam backprojector for feldkamp.jl
in
proj (ns,nt,na)
cone-beam projection viewsrg::CtGeom
ig::ImageGeom
out
img (nx,ny,nz)
back-projection resultsource cbct_back_fan!(...)
This should work even for non-uniformly spaced source angles (for a circular source trajectory).
source ct_geom_plot2!(rg::CtGeom [, ig::ImageGeom])
Plot central 2D portion of the CBCT geometry.
source ct_geom_plot3(rg::CtFan [, ig::ImageGeom])
3D CBCT geometry plot
source downsample(rg, down::Int)
+downsample(rg, down::NTuple{3,Int})
Down-sample CT geometry (for testing with small problems).
source downsample(rg, down)
Down-sample sinogram geometry (for testing with small problems).
source fbp(plan, sino)
Filtered back-projection (FBP) reconstruction.
in
plan::FBPplan
sino::AbstractArray{<:Number} (nb,na,...)
sinogram(s)out
image::Matrix{<:Number} (nx,ny,...)
reconstructed image(s)source fbp!(image, sino ; orbit::Real = 180, kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Writes result into image
matrix.
Input
Options for SinoPar
constructor
dr
: sinogram radial spacing; default 1orbit
: angular range in degrees; default 180orbit_start
: angular range in degrees; default 0Options for ImageGeom
dx
, dy
, deltas
, offset_x
, offset_y
, offsets
rmax
maximum radius for maskOptions
kwargs
: passed to plan_fbp
Output
image::AbstractMatrix
is mutatedsource fbp(sino::AbstractMatrix ; kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Returns an image of size [nx × ny]
.
Options
nx
: default nr
ny
: default nx
kwargs
: passed to fbp!
source img = fbp_back(rg, ig, sino ; ia_skip)
2D pixel-driven backprojection for FBP.
in
rg::SinoGeom
ig::ImageGeom
sino::AbstractArray{<:Number}
sinogram(s) (line integrals), usually ramp filteredoption
ia_skip::Int
downsample in angle to save time for quick tests (default: 1)out
img::Array{<:Number}
reconstructed image(s)source fbp_back_fan!(image, sino, sinβ, cosβ,
+ dsd, dso, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd,dso,source_offset::RealU
geometryis_arc::Bool
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_fan(sino, betas,
+ dsd, dso, dfs, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredbetas::Vector{<:Real}
(na)
in radiansdsd,dso,source_offset::RealU
geometryis_arc::Bool
arc or flat?ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::Type{<:Number}
usually same as eltype(sino)
out
source fbp_back_fan_xy(sino, sinβ, cosβ,
+ dsd_ds, dso_ds, source_offset_ds, is_arc,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd_ds,dso_ds,source_offset_ds::Real
geometry, normalizedwb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::Type{<:Number}
typically same as eltype(sino)
out
Returns a scalar of type T
. source fbp_back_par!(image, sino, sinϕ, cosϕ,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_par(sino, angles,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredangles::Vector{<:Real}
(na)
in radiansds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::Type{<:Number}
usually same as eltype(sino)
out
source fbp_back_par_xy(sino, sinϕ, cosϕ,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
wb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::Type{<:Number}
typically same as eltype(sino)
out
Returns a scalar of type T
. source Hk = fbp_filter(rg::RayGeom ;
+ npad=0, ds::RealU = rg.d, decon1::Bool=true, window=Window())
Compute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
option
npad::Int
# of padded samples. (default: next power of 2)ds::Td
detector sample spacing (default from st
)decon1::Bool
deconvolve effect of linear interpolator? (default: true)window::Window
apodizer; default: Window()
out
Hk::Vector
apodized ramp filter frequency responsesource h, n = fbp_ramp(rg::SinoGeom, N::Int)
'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
rg::SinoGeom
N::Int
: # of samples (must be even)out
h::Vector{<:RealU}
: samples of band-limited ramp filtern::UnitRange{Int64}
: -(N÷2):(N÷2-1)source sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)
Apply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.
in
sino::AbstractArray{<:Number}
[nb (L)]
sinogramsfilter::AbstractVector
(npad ≥ nb)
apodized ramp filter frequency responseoption
extra::Int
# of extra sinogram radial samples to keep (default: 0)npad::Int
# of padded samples. (default: next power of 2)out
sino::AbstractArray
sinogram with filtered rowssource fbp_sino_weight(rg::SinoFan)
Return 1D sinogram weighting for first step of 2D fan-beam FBP.
source fbp_window(w::Window, N::Int ; T = Float32)
Create an apodizing window of length N
and fftshift
it.
julia> fbp_window(Window(Hamming()), 4)
+4-element Vector{Float32}:
+ 1.0
+ 0.54
+ 0.0
+ 0.54
source image = fdk(plan, proj)
Reconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.
in
plan::FDKplan
proj
(ns,nt,na) projection viewsout
image
(nx,ny,nz) reconstructed imageReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.
source fdk_weight_cyl
FDK projection weighting providing "exact" CBCT reconstruction for cylindrical-like objects that satisfy $f(x,y,z) = f(x,y,0) ∀z$ . The output is a (ns,nt)
matrix.
source fft_filter(data::Array, filter::Vector [, dim])
Apply filter to selected dimensions of array data
using FFT.
in
data::AbstractArray{<:Number} (n, (L))
filter::AbstractVector (n)
apodized ramp filter frequency responseoption
dim
non-singleton dimensions of filter
(typically 1
)out
out::AbstractArray
data filtered along dimension dim
If the input data is real, so will be the output; this assumes filter
frequency response has appropriate symmetry.
source footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)
Unitless maximum footprint size (in detector pixels).
source oversample(rg, over::Int)
Over-sample CT geometry in "radial" dimension.
source oversample(rg, over::Int)
Over-sample sinogram geometry in "radial" dimension. For Mojette sampling, it means that d = dx/over
.
source parker_weight(rg::SinoGeom, T = Float32)
Compute Parker weighting for non-360° orbits. See http://doi.org/10.1118/1.595078. Returns Matrix{T}
of size:
(1,1) for SinoPar
with typical 180 or 360 orbit (1,na) for SinoPar
with atypical orbit (1,1) for SinoFan
with typical 360 orbit (ns,na) for SinoFan
with typical 360 orbit source parker_weight(rg::CtFan; T::Type{<:AbstractFloat} = Float32, kwargs...)
For 3D case, return Array{T,3}
where size is
(1,1,1)
typical fan case with 360° orbit(ns,1,na)
atypical fan case including short scansource plan = plan_fbp(rg, ig; window=Window(), ...)
Plan FDK 3D CBCT image reconstruction, with either flat or arc detector.
To use this method, you first call it with the CT geometry and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FDK reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
rg::CtGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.option
window::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, rg.ns + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)out
plan::FDKplan
initialized plansource plan = plan_fbp(rg, ig; how=:normal, window=Window())
Plan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.
To use this method, you first call it with the sinogram geometry and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FBP reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
rg::SinoGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.option
how::Symbol
how to reconstruct:normal
default:mojette
use mojette rebinning and Gtomo2_tablewindow::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, rg.nb + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)T::Type{<:Number}
type of sino
elements (default Float32
)out
plan::FBPplan
initialized plansource (h, n) = ramp_arc(N::Int, ds::RealU, dsd::RealU)
Ramp filter samples for arc fan geometry, for n = -(N÷2):(N÷2-1)
.
source (h, n) = ramp_flat(N::Int, ds::RealU)
Ramp filter samples for flat fan geometry, for n = -(N÷2):(N÷2-1)
.
source i = rays(rg::CtGeom)
Return parallel-beam coordinates of all rays for this CT geometry. Return type of i
is a ProductIterator
that makes tuples of the form (u, v, ϕ, θ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source i = rays(rg::SinoGeom)
Radial r
and angular ϕ
coordinates (in radians) of all sinogram elements for the given geometry. Return type of i
is a ProductIterator
that makes tuples of the form (r, ϕ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source sino_geom_plot!(rg, ig)
Picture of the source position / detector geometry.
source sino_geom_plot!(rg)
Picture of the source position / detector geometry.
source sino_plot_rays(rg::SinoGeom ; kwargs...)
Make a scatter plot of the (r, ϕ)
sample locations for all rays. Requires Plots
.
source to_radians(angles::AbstractArray{Unitful.Quantity})
Convert Unitful
quantity array to radians.
source to_radians(angles::AbstractArray{<:AbstractFloat})
When Unitful package not loaded, assume angles
are in degrees and convert to radians.
source output = zwart_powell(r, ϕ)
Analytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r
(normalized by pixel size) and angle ϕ
(in radians).
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/search/index.html b/v0.4.0/search/index.html
new file mode 100644
index 0000000..7974351
--- /dev/null
+++ b/v0.4.0/search/index.html
@@ -0,0 +1,2 @@
+
+Search · Sinograms.jl
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Saturday 31 December 2022 . Using Julia version 1.8.4.
diff --git a/v0.4.0/search_index.js b/v0.4.0/search_index.js
new file mode 100644
index 0000000..7fc24ec
--- /dev/null
+++ b/v0.4.0/search_index.js
@@ -0,0 +1,3 @@
+var documenterSearchIndex = {"docs":
+[{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/07-fdk.jl\"","category":"page"},{"location":"generated/examples/07-fdk/#fdk","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated from a single Julia file: 07-fdk.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb, and opened in binder here: 07-fdk.ipynb.","category":"page"},{"location":"generated/examples/07-fdk/#Setup","page":"CBCT FDK","title":"Setup","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Packages needed here.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: CtFanArc, CtFanFlat # CtPar\nusing Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\nusing ImageGeoms: ImageGeom, MaskCircle, fovs\nusing ImagePhantoms: ellipsoid_parameters, ellipsoid\nusing ImagePhantoms: radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/07-fdk/#CBCT-projections-of-3D-Shepp-Logan-phantom","page":"CBCT FDK","title":"CBCT projections of 3D Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Ellipsoid parameters for 3D Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nparams = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\nob = ellipsoid(params)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"A narrow grayscale window is needed to see the soft tissue structures","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"clim = (0.95, 1.05) .* μ","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Here is the ideal phantom image:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"oversample = 3\ntrue_image = phantom(axes(ig)..., ob, oversample)\npt = jim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Define the system geometry (for some explanation use ?CtGeom):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\nrg = CtFanArc( ; p...)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ct_geom_plot3(rg, ig)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"prompt()","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"CBCT projections using Sinogram.rays and ImagePhantoms.radon:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"proj_arc = radon(rays(rg), ob)\npa = jim(axes(rg)[1:2], proj_arc ;\n title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"There is no \"inverse crime\" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.","category":"page"},{"location":"generated/examples/07-fdk/#Image-reconstruction-via-FBP-/-FDK","page":"CBCT FDK","title":"Image reconstruction via FBP / FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"We start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\nfdk_arc = fdk(plan, proj_arc)\npar = jim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_arc = fdk_arc - true_image\nelim = (-1,1) .* (0.02μ)\npae = jim(axes(ig), err_arc, \"Error image (arc)\"; clim = elim)","category":"page"},{"location":"generated/examples/07-fdk/#Repeat-with-flat-detector-geometry","page":"CBCT FDK","title":"Repeat with flat detector geometry","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"rg = CtFanFlat( ; p...)\nproj_flat = radon(rays(rg), ob)\npfp = jim(axes(rg)[1:2], proj_flat ;\n title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n\nplan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\nfdk_flat = fdk(plan, proj_flat)\npfr = jim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_flat = fdk_flat - true_image\npfe = jim(axes(ig), err_flat, \"Error image (flat)\"; clim = elim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"As expected for CBCT, the largest errors are in the end slices.","category":"page"},{"location":"generated/examples/07-fdk/#Short-scan","page":"CBCT FDK","title":"Short scan","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"rg = CtFanFlat(:short ; p..., na = 200)\nproj_short = radon(rays(rg), ob)\npsp = jim(axes(rg)[1:2], proj_short ;\n title=\"Shepp-Logan projections (flat,short)\", xlabel=\"s\", ylabel=\"t\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"plan_short = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\npsw = jim(axes(rg)[[1,3]], plan_short.view_weight[:,1,:];\n title = \"View weights (including Parker)\",\n xlabel=\"s\", ylabel=\"angle\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"fdk_short = fdk(plan_short, proj_short)\npsr = jim(axes(ig), fdk_short, \"FDK image (flat,short)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_short = fdk_short - true_image\npse = jim(axes(ig), err_flat, \"Error image (flat,short)\"; clim = elim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/02-sino-geom.jl\"","category":"page"},{"location":"generated/examples/02-sino-geom/#sino-geom","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated from a single Julia file: 02-sino-geom.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb, and opened in binder here: 02-sino-geom.ipynb.","category":"page"},{"location":"generated/examples/02-sino-geom/#Setup","page":"2D sinogram geometry","title":"Setup","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Packages needed here.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"using Unitful: mm, °\nusing Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\nusing Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\nusing Sinograms: sino_plot_rays, rays, angles\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/02-sino-geom/#D-Sinogram-geometries","page":"2D sinogram geometry","title":"2D Sinogram geometries","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined for all r and ϕ but practical systems record p(rϕ) only for certain finite sets of samples of those values.","category":"page"},{"location":"generated/examples/02-sino-geom/#Parallel-beam-geometry","page":"2D sinogram geometry","title":"Parallel-beam geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The simplest form of sinogram sampling is equally spaced samples in both r and ϕ. This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of r and ϕ are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In this package, SinoPar is the type that describes a parallel-beam sinogram geometry.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The built-in defaults provide helpful reminders about the usage.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"SinoPar()","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This package supports units via the Unitful.jl and using units is recommended (but not required).","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"orbit and orbit_start must both be unitless (degrees) or have the same units (e.g., degrees or radians).\ndetector spacing d (can be unitless or have units e.g., mm).\nThe projection angles ϕ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoPar( ;\n nb = 64, # number of radial samples (\"bins\")\n na = 30, # number of angular samples\n d = 2mm, # detector spacing\n offset = 0.25, # quarter detector offset (unitless)\n orbit = 180, # angular range (in degrees)\n orbit_start = 0, # starting angle (in degrees)\n)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The struct rg has numerous useful properties; type ?SinoGeom to see the full list.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For example, to access the angular samples in degrees type angles(rg)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"angles(rg)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following function visualizes the sampling pattern.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-an-arc-detector-(3rd-generation-CT)","page":"2D sinogram geometry","title":"Fan-beam CT with an arc detector (3rd generation CT)","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For a fan-beam geometry, the arguments are the same as for SinoPar with the addition of specifying:","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"dsd distance from source to detector\ndod distance from origin (isocenter) to detector\ndfs distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf for a flat detector)\nsource_offset for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoFanArc( ; nb=888, na=984,\n d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a smaller example for plotting the rays.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoFanArc( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)\nsino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for arc detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-a-flat-detector","page":"2D sinogram geometry","title":"Fan-beam CT with a flat detector","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This geometry is the same as the arc detector except that dfs=Inf.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoFanFlat( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for flat detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Mojette-sampling","page":"2D sinogram geometry","title":"Mojette sampling","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This is a specialized sampling geometry that is currently incompletely supported.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoMoj( ; nb=60, na=30)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true,\n title=\"Mojette sampling\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\ndefault(label=\"\")\nfor y in -2:2\n plot!([-3, 3], [y, y], color=:black)\nend\nfor x in -3:3\n plot!([x, x], [-2, 2], color=:black)\nend\nplot_ray!(r, ϕ) = plot!(\n r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n color = :blue,\n)\nia = 4 # pick an angle\ni = rays(rg) # iterator\nrs = [i[1] for i in i] # radial samples\nϕs = [i[2] for i in i] # projection angle\nr = rs[:,ia]\nr = r[abs.(r) .< 3]\nϕ = ϕs[1,ia]\nplot_ray!.(r, ϕ)\nplot!(aspect_ratio=1, title = \"Mojette line integrals\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/03-parallel-beam.jl\"","category":"page"},{"location":"generated/examples/03-parallel-beam/#parallel-beam","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated from a single Julia file: 03-parallel-beam.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb, and opened in binder here: 03-parallel-beam.ipynb.","category":"page"},{"location":"generated/examples/03-parallel-beam/#Setup","page":"Parallel-beam tomography","title":"Setup","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Packages needed here.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"using Sinograms: SinoPar, rays, plan_fbp, fbp, fbp_sino_filter\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing Unitful: mm\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/03-parallel-beam/#Parallel-beam-sinogram-of-Shepp-Logan-phantom","page":"Parallel-beam tomography","title":"Parallel-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use SinoPar to define the sinogram geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"rg = SinoPar( ; nb = 130, d = 2mm, na = 100)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Radon transform of Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n\n# Image reconstruction via FBP","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"plan = plan_fbp(rg, ig)\nfbp_image = fbp(plan, sino)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For fun, here is the filtered sinogram:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sino_filt = fbp_sino_filter(sino, plan.filter)\njim(axes(rg), sino_filt; title=\"Filtered sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated using Literate.jl.","category":"page"},{"location":"methods/#Methods-list","page":"Methods","title":"Methods list","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"","category":"page"},{"location":"methods/#Methods-usage","page":"Methods","title":"Methods usage","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"Modules = [Sinograms]","category":"page"},{"location":"methods/#Sinograms.Sinograms","page":"Methods","title":"Sinograms.Sinograms","text":"Sinograms module\n\n\n\n\n\n","category":"module"},{"location":"methods/#Sinograms.CtFanArc","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc{Td,To,Ts}\n\n3D CBCT geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc(::Val{:ge1} ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\n(see CtFanArc)\n\nout\n\nCtFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> CtFanArc(Val(:ge1))\nCtFanArc{Float64, Float32, CtSourceCircle} :\n ns::Int64 888\n nt::Int64 64\n ds::Float64 1.0239\n dt::Float64 1.0964\n offset_s::Float32 1.25\n offset_t::Float32 0.0\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float64 0.0\n dsd::Float64 949.075\n dod::Float64 408.075\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanArc-Tuple{}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\nCtFanArc(:short ; ...)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> CtFanArc()\nCtFanArc{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanFlat","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat{Td,To,Ts}\n\n3D CTCT geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanFlat-Tuple{}","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\nCtFanFlat(:short ; ...)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> CtFanFlat()\nCtFanFlat{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtGeom","page":"Methods","title":"Sinograms.CtGeom","text":"CtGeom{Td,To,Ts}\n\nAbstract type for representing ray geometries for 3D CT imaging.\n\nThe projection view coordinates are (s,t) where s denotes the transaxial sampling and t denotes the axial direction (along z).\n\nCommon fields\n\nns size of each projection view\nnt\nds detector pixel spacing\ndt\noffset_s unitless detector center offset (usually 0 or 0.25)\noffset_t unitless, usually 0\nna # of projection views, aka nϕ or nβ\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\nsrc::CtSource describes the X-ray CT source trajectory. Primary support for CtSourceCircle().\n\nAdditional fields for CtFan types:\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nds, dt, source_offset, dsd, dod must all be unitless or have the same units.\n\nBasic methods\n\nangles (na) in degrees\ndims (ns, nt, na)\nones = ones(Float32, ns,nt,na)\nzeros = zeros(Float32, ns,nt,na)\nrays iterator of (u,v,ϕ,θ) samples\ndownsample(st, down) reduce sampling by integer factor\noversample(st, over)\nct_geom_plot3 plot system geometry\n\nNon-exported helper functions for developers:\n\n_s (ns) s sample locations\n_t (nt) t sample locations\n_ws = (ns-1)/2 + offset_s \"middle\" sample position\n_wt = (nt-1)/2 + offset_t\n_ar (na) source angles [radians]\n_rfov max radius within FOV\n_zfov axial FOV\n_xds (nb) center of detector elements (beta=0)\n_yds (nb) \"\"\n_tau(rg, x, y) projected s/ds for each (x,y) pair (length(x), na)\n_shape(rg, proj [,:]) reshape proj into array (ns,nt,na[,:])\n_unitv(rg [, (is,it,ia)]) unit 'vector' with single nonzero element\n\nFor fan beam:\n\n_dso = dsd - dod distance from source to origin (Inf for parallel beam)\n_dfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n_gamma(rg [,s]) (ns) gamma sample values radians, optionally given s values\n_gamma_max = max(|γ|) half of fan angle radians, if offset_s == 0\n_cone_angle (half) cone angle on axis (s=0): +/- angle\n\nNotes\n\nUse sino_geom() instead for 2D geometries.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar","page":"Methods","title":"Sinograms.CtPar","text":"CtPar{Td,To,Ts}\n\n3D parallel-beam projection geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar-Tuple{}","page":"Methods","title":"Sinograms.CtPar","text":"CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtPar()\nCtPar{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 60\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtSource","page":"Methods","title":"Sinograms.CtSource","text":"CtSource\n\nAbstract type for representing X-ray CT source trajectories.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceCircle","page":"Methods","title":"Sinograms.CtSourceCircle","text":"CtSourceCircle\n\nType for representing circular X-ray CT source trajectory.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix\n\nType for representing helical X-ray CT source trajectories having constant pitch.\n\nFields\n\npitch helix pitch (unitless fraction of zFOV, default 0)\nsource_z0 initial z position of x-ray source (default 0) It should have same units as detector pixels etc.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix-Tuple{}","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix( ; pitch = 0, source_z0 = 0)\n\nConstructor with named keywords\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.FBPNormalPlan","page":"Methods","title":"Sinograms.FBPNormalPlan","text":"FBPNormalPlan{S,I,H,P}\n\nStruct type for storing \"normal\" FBP plan.\n\nThe view_weight can include (products of)\n\nParker weighting for short scans\nview-wise weighting from fbp_sino_weight todo\ndβ weighting for possibly nonuniform angles from _angle_weights\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FBPplan","page":"Methods","title":"Sinograms.FBPplan","text":"FBPplan\n\nAbstract type for FBP plans.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FDKplan","page":"Methods","title":"Sinograms.FDKplan","text":"FDKplan{C,I,H,V}\n\nStruct type for storing FDK plan.\n\nThe view_weight can include (products of)\n\nParker weighting for short scans\nview-wise CBCT weighting from fdk_weight_cyl\ndβ weighting for possibly nonuniform angles from _angle_weights\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.RayGeom","page":"Methods","title":"Sinograms.RayGeom","text":"RayGeom{Td,To}\n\nParent type for SinoGeom and CtGeom\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc{Td,To}\n\n2D fan-beam sinogram geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc(Val(:ge1) ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\nnb::Int = 888 # of detector channels\nd::RealU = 1.0239 channel spacing\noffset::Real = 1.25 for \"quarter-detector\" offset\nna::Int = 984 # of angles\norbit::Union{Symbol,Real} = 360 use :short for short scan\ndsd::RealU = 949.075\ndod::RealU = 408.075\n\nout\n\nSinoFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> SinoFanArc(Val(:ge1))\nSinoFanArc{Float32, Float32} :\n nb::Int64 888\n d::Float32 1.0239\n offset::Float32 1.25\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 949.075\n dod::Float32 408.075\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc( ; nb d offset na orbit orbit_start\n source_offset, dsd = 4 * nb * d, dod = nb * d)\nSinoFanArc(:short ; ...)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\nd, source_offset, dsd, dod must all have the same units.\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> SinoFanArc()\nSinoFanArc{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanFlat","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat{Td,To}\n\n2D fan-beam sinogram geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanFlat-Tuple{}","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat( ; nb d offset na orbit orbit_start\n source_offset, dsd= 4 * nb * d, dod = nb * d)\nSinoFanFlat(:short ; ...)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> SinoFanFlat()\nSinoFanFlat{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoGeom","page":"Methods","title":"Sinograms.SinoGeom","text":"SinoGeom{Td,To}\n\nAbstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.\n\nCommon fields\n\nnb # of \"radial\" samples, aka nr or ns\nd aka dr or ds, \"radial\" sample spacing\noffset unitless sample offset (usually 0 or 0.25)\nna # of angular samples, aka nϕ or nβ default: 2 * floor(Int, nb * π/2 / 2)\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\n\nAdditional fields for SinoFan types\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nd, source_offset, dsd, dod must all have the same units.\n\nBasic methods\n\nangles (na) in degrees\ndims (nb, na)\nones = ones(Float32, nb, na)\nzeros = zeros(Float32, nb, na)\nrays iterator of (r, ϕ) parallel-beam coordinate tuples of size (nb, na)\ndownsample(st, down) reduce sampling by integer factor\noversample(st, over)\nsino_geom_plot! plot system geometry\n\nNon-exported helper functions for developers:\n\n_ds|dr radial sample spacing (NaN for :moj)\n_s (nb) s sample locations\n_w = (nb-1)/2 + offset \"middle\" sample position\n_ar (na) source angles [radians]\n_rfov radial FOV\n_xds (nb) center of detector elements (beta=0)\n_yds (nb) \"\"\n_tau(rg, x, y) projected s/ds for each (x,y) pair (length(x), na)\n_shape(rg, sino [,:]) reshape sino into array (nb,na[,:])\n_unitv(rg [, (ib,ia)]) unit 'vector' with single nonzero element\n\nFor mojette:\n\n_d_ang (na) angle-dependent radial spacing\n\nFor fan beam:\n\n_dso = dsd - dod distance from source to origin (Inf for parallel beam)\n_dfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n_gamma(rg [,s]) (nb) gamma sample values radians, optionally given s values\n_gamma_max = max(|γ|) half of fan angle radians, if offset_s == 0\n\nNotes\n\nUse ct_geom() instead for 3D axial or helical cone-beam CT.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj{Td,To}\n\n2D Mojette sinogram geometry where d means dx (square pixel size)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj-Tuple{}","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoMoj()\nSinoMoj{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoPar","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar{Td,To}\n\n2D parallel-beam sinogram geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoPar-Tuple{}","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoPar()\nSinoPar{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.Window","page":"Methods","title":"Sinograms.Window","text":"Window{S,T}\n\nData type for FBP apodizing windows, with given window shape::S and cutoff::T.\n\njulia> Window(Hamming(), 0.8)\nWindow{Hamming, Float64}(Hamming(), 0.8)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.WindowVect","page":"Methods","title":"Sinograms.WindowVect","text":"WindowVect{V} <: AbstractWindowShape\n\nA user-specified window vector, constructed via WindowVect(v::V), where v is a AbstractVector. Caution: length(v) must be appropriate for the padded sinogram size.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Base.show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Sinograms.RayGeom}","page":"Methods","title":"Base.show","text":"show(io::IO, ::MIME\"text/plain\", rg::RayGeom)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._angle_weights-Tuple{AbstractVector{<:Number}}","page":"Methods","title":"Sinograms._angle_weights","text":"_angle_weights(ar::AbstractVector{<:RealU})\n\nAngular weighting to # scale projections by dβ (aka dϕ or da) for Riemann-like integration.\n\ninput\n\nar (na,) angles in radians.\n\noutput\n\nFor now, simply the scalar (ar[begin+1]-ar[begin]) / n180 where n180 is the number of full multiples of 180°. This simplifies to π/na for typical 180° and 360° scans. For a fan-beam short scan (180° + fan angle), it also simplifies to π/na, where the \"excess\" is handled by Parker weighting.\n\nExamples\n\njulia> rg = SinoPar(); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na\n(0.015707962f0, 0.015707963267948967)\n\njulia> rg = SinoPar(;orbit=360); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na\n(0.015707962f0, 0.015707963267948967)\n\njulia> rg = SinoFanArc(:short); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na\n(0.04842342f0, 0.04487989505128276)\n\nFor now, only equally spaced views are supported, but this is where unequal spacing would be handled, and the output would be of size (na,).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._gamma","page":"Methods","title":"Sinograms._gamma","text":"_gamma(rg::RayGeom [, s])\n\nReturn gamma (γ: fan angle) values for fan-beam geometry.\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms._reale-Tuple{Any}","page":"Methods","title":"Sinograms._reale","text":"_reale(x ; rtol = …)\n\nReturn the real part of x, but warn if the imaginary part is too large. By default this uses a 100× larger rtol than isapprox due to FFT errors.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._rfov-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._rfov","text":"_rfov(rg::RayGeom)\n\nRadial FOV.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._shape-Tuple{Sinograms.RayGeom, AbstractArray}","page":"Methods","title":"Sinograms._shape","text":"_shape(rg, x::AbstractArray [, :])\n\nReshape x to dims(rg) or (dims(rg)..., :).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Any}","page":"Methods","title":"Sinograms._show","text":"_show(io::IO, ::MIME\"text/plain\", st::Any)\n\nInformative way to show fields of a struct (composite type).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._tau-Tuple{Sinograms.RayGeom, AbstractArray, AbstractArray}","page":"Methods","title":"Sinograms._tau","text":"_tau(rg::RayGeom, x, y)\n\nProjected s/ds, useful for footprint center and support. Returns Matrix of size length(x) × rg.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._unitv","page":"Methods","title":"Sinograms._unitv","text":"_unitv([T=Float32], rg:RayGeom [, pos::Tuple])\n\nProjection views with a single non-zero ray value at position pos (default: middle).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms._xds-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._xds","text":"_xds(rg::RayGeom)\n\nCenter x positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._yds-Union{Tuple{Union{CtPar{Td}, SinoPar{Td}}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms._yds","text":"_yds(rg::RayGeom)\n\nCenter y positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.angles-Tuple{Sinograms.RayGeom}","page":"Methods","title":"Sinograms.angles","text":"angles(rg::RayGeom) =\n\nReturn vector of angles for this ray geometry, in whatever units the user used to specify orbit and orbit_start, typically degrees.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_arc_to_par-Union{Tuple{Ts}, Tuple{Ts, Number, Number, Number, Number}} where Ts<:Number","page":"Methods","title":"Sinograms.cb_arc_to_par","text":"u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_flat_to_par-NTuple{5, Number}","page":"Methods","title":"Sinograms.cb_flat_to_par","text":"u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam flat panel coordinages to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back-Tuple{AbstractArray{<:Number, 3}, CtFan, ImageGeoms.ImageGeom{3, S, M} where {S<:Tuple{Number, Number, Number}, M<:AbstractArray{Bool, 3}}}","page":"Methods","title":"Sinograms.cbct_back","text":"cbct_back(proj, rg, ig)\n\nCone-beam backprojector for feldkamp.jl\n\nin\n\nproj (ns,nt,na) cone-beam projection views\nrg::CtGeom\nig::ImageGeom\n\nout\n\nimg (nx,ny,nz) back-projection result\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back_fan!-Union{Tuple{Toffset}, Tuple{T}, Tuple{Array{T, 3}, AbstractArray{<:Number, 3}, AbstractVector{<:Number}, Number, Number, Number, Number, Toffset, Toffset, Bool, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractArray{Bool, 3}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.cbct_back_fan!","text":"cbct_back_fan!(...)\n\nThis should work even for non-uniformly spaced source angles (for a circular source trajectory).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot2!-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot2!","text":"ct_geom_plot2!(rg::CtGeom [, ig::ImageGeom])\n\nPlot central 2D portion of the CBCT geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot3-Tuple{CtFan, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot3","text":"ct_geom_plot3(rg::CtFan [, ig::ImageGeom])\n\n3D CBCT geometry plot\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Tuple{CtGeom, Int64}","page":"Methods","title":"Sinograms.downsample","text":"downsample(rg, down::Int)\ndownsample(rg, down::NTuple{3,Int})\n\nDown-sample CT geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.downsample","text":"downsample(rg, down)\n\nDown-sample sinogram geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp","page":"Methods","title":"Sinograms.fbp","text":"fbp(plan, sino)\n\nFiltered back-projection (FBP) reconstruction.\n\nin\n\nplan::FBPplan\nsino::AbstractArray{<:Number} (nb,na,...) sinogram(s)\n\nout\n\nimage::Matrix{<:Number} (nx,ny,...) reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp!-Tuple{AbstractMatrix{<:Number}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp!","text":"fbp!(image, sino ; orbit::Real = 180, kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Writes result into image matrix.\n\nInput\n\nsino::AbstractMatrix\n\nOptions for SinoPar constructor\n\ndr : sinogram radial spacing; default 1\norbit : angular range in degrees; default 180\norbit_start : angular range in degrees; default 0\n\nOptions for ImageGeom\n\ndx, dy, deltas, offset_x, offset_y, offsets\nrmax maximum radius for mask\n\nOptions\n\nkwargs : passed to plan_fbp\n\nOutput\n\nimage::AbstractMatrix is mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Union{Tuple{AbstractMatrix{Ts}}, Tuple{Td}, Tuple{Ts}} where {Ts<:Number, Td<:Number}","page":"Methods","title":"Sinograms.fbp","text":"fbp(sino::AbstractMatrix ; kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Returns an image of size [nx × ny].\n\nOptions\n\nnx : default nr\nny : default nx\nkwargs : passed to fbp!\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back","page":"Methods","title":"Sinograms.fbp_back","text":"img = fbp_back(rg, ig, sino ; ia_skip)\n\n2D pixel-driven backprojection for FBP.\n\nin\n\nrg::SinoGeom\nig::ImageGeom\nsino::AbstractArray{<:Number} sinogram(s) (line integrals), usually ramp filtered\n\noption\n\nia_skip::Int downsample in angle to save time for quick tests (default: 1)\n\nout\n\nimg::Array{<:Number} reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_back_fan!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Number, Number, Bool, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan!","text":"fbp_back_fan!(image, sino, sinβ, cosβ,\n dsd, dso, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Number, Number, Number, Bool, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_fan","text":"fbp_back_fan(sino, betas,\n dsd, dso, dfs, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nbetas::Vector{<:Real} (na) in radians\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool arc or flat?\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::Type{<:Number} usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Real, Real, Real, Bool, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan_xy","text":"fbp_back_fan_xy(sino, sinβ, cosβ,\n dsd_ds, dso_ds, source_offset_ds, is_arc,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd_ds,dso_ds,source_offset_ds::Real geometry, normalized\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::Type{<:Number} typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_par!","text":"fbp_back_par!(image, sino, sinϕ, cosϕ,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_par","text":"fbp_back_par(sino, angles,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nangles::Vector{<:Real} (na) in radians\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::Type{<:Number} usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_par_xy","text":"fbp_back_par_xy(sino, sinϕ, cosϕ,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::Type{<:Number} typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_filter-Union{Tuple{}, Tuple{Sinograms.RayGeom{Td}}, Tuple{Td}} where Td<:Number","page":"Methods","title":"Sinograms.fbp_filter","text":"Hk = fbp_filter(rg::RayGeom ;\n npad=0, ds::RealU = rg.d, decon1::Bool=true, window=Window())\n\nCompute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nrg::RayGeom\n\noption\n\nnpad::Int # of padded samples. (default: next power of 2)\nds::Td detector sample spacing (default from st)\ndecon1::Bool deconvolve effect of linear interpolator? (default: true)\nwindow::Window apodizer; default: Window()\n\nout\n\nHk::Vector apodized ramp filter frequency response\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_ramp","page":"Methods","title":"Sinograms.fbp_ramp","text":"h, n = fbp_ramp(rg::SinoGeom, N::Int)\n\n'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nrg::SinoGeom\nN::Int : # of samples (must be even)\n\nout\n\nh::Vector{<:RealU} : samples of band-limited ramp filter\nn::UnitRange{Int64} : -(N÷2):(N÷2-1)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_sino_filter-Union{Tuple{Ts}, Tuple{AbstractArray{Ts}, AbstractVector{<:Number}}} where Ts<:Number","page":"Methods","title":"Sinograms.fbp_sino_filter","text":"sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)\n\nApply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.\n\nin\n\nsino::AbstractArray{<:Number} [nb (L)] sinograms\nfilter::AbstractVector (npad ≥ nb) apodized ramp filter frequency response\n\noption\n\nextra::Int # of extra sinogram radial samples to keep (default: 0)\nnpad::Int # of padded samples. (default: next power of 2)\n\nout\n\nsino::AbstractArray sinogram with filtered rows\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_weight-Tuple{SinoFan}","page":"Methods","title":"Sinograms.fbp_sino_weight","text":"fbp_sino_weight(rg::SinoFan)\n\nReturn 1D sinogram weighting for first step of 2D fan-beam FBP.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_window-Tuple{Window, Int64}","page":"Methods","title":"Sinograms.fbp_window","text":"fbp_window(w::Window, N::Int ; T = Float32)\n\nCreate an apodizing window of length N and fftshift it.\n\njulia> fbp_window(Window(Hamming()), 4)\n4-element Vector{Float32}:\n 1.0\n 0.54\n 0.0\n 0.54\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fdk-Tuple{FDKplan, AbstractArray{<:Number, 3}}","page":"Methods","title":"Sinograms.fdk","text":"image = fdk(plan, proj)\n\nReconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.\n\nin\n\nplan::FDKplan\nproj (ns,nt,na) projection views\n\nout\n\nimage (nx,ny,nz) reconstructed image\n\nReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fdk_weight_cyl","page":"Methods","title":"Sinograms.fdk_weight_cyl","text":"fdk_weight_cyl\n\nFDK projection weighting providing \"exact\" CBCT reconstruction for cylindrical-like objects that satisfy f(xyz) = f(xy0) z. The output is a (ns,nt) matrix.\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fft_filter","page":"Methods","title":"Sinograms.fft_filter","text":"fft_filter(data::Array, filter::Vector [, dim])\n\nApply filter to selected dimensions of array data using FFT.\n\nin\n\ndata::AbstractArray{<:Number} (n, (L))\nfilter::AbstractVector (n) apodized ramp filter frequency response\n\noption\n\ndim non-singleton dimensions of filter (typically 1)\n\nout\n\nout::AbstractArray data filtered along dimension dim\n\nIf the input data is real, so will be the output; this assumes filter frequency response has appropriate symmetry.\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.footprint_size","page":"Methods","title":"Sinograms.footprint_size","text":"footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)\n\nUnitless maximum footprint size (in detector pixels).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:CtParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(rg, over::Int)\n\nOver-sample CT geometry in \"radial\" dimension.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(rg, over::Int)\n\nOver-sample sinogram geometry in \"radial\" dimension. For Mojette sampling, it means that d = dx/over.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.parker_weight","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(rg::SinoGeom, T = Float32)\n\nCompute Parker weighting for non-360° orbits. See http://doi.org/10.1118/1.595078. Returns Matrix{T} of size:\n\n(1,1) for SinoPar with typical 180 or 360 orbit\n(1,na) for SinoPar with atypical orbit\n(1,1) for SinoFan with typical 360 orbit\n(ns,na) for SinoFan with typical 360 orbit\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.parker_weight-Tuple{CtFan}","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(rg::CtFan; T::Type{<:AbstractFloat} = Float32, kwargs...)\n\nFor 3D case, return Array{T,3} where size is\n\n(1,1,1) typical fan case with 360° orbit\n(ns,1,na) atypical fan case including short scan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(rg, ig; window=Window(), ...)\n\nPlan FDK 3D CBCT image reconstruction, with either flat or arc detector.\n\nTo use this method, you first call it with the CT geometry and image geometry. The routine returns the initialized plan. Thereafter, to to perform FDK reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nrg::CtGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noption\n\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, rg.ns + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\n\nout\n\nplan::FDKplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(rg, ig; how=:normal, window=Window())\n\nPlan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.\n\nTo use this method, you first call it with the sinogram geometry and image geometry. The routine returns the initialized plan. Thereafter, to to perform FBP reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nrg::SinoGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noption\n\nhow::Symbol how to reconstruct\n:normal default\n:mojette use mojette rebinning and Gtomo2_table\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, rg.nb + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\nT::Type{<:Number} type of sino elements (default Float32)\n\nout\n\nplan::FBPplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ramp_arc-Tuple{Int64, Number, Number}","page":"Methods","title":"Sinograms.ramp_arc","text":"(h, n) = ramp_arc(N::Int, ds::RealU, dsd::RealU)\n\nRamp filter samples for arc fan geometry, for n = -(N÷2):(N÷2-1).\n\nN must be even.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ramp_flat-Tuple{Int64, Number}","page":"Methods","title":"Sinograms.ramp_flat","text":"(h, n) = ramp_flat(N::Int, ds::RealU)\n\nRamp filter samples for flat fan geometry, for n = -(N÷2):(N÷2-1).\n\nN must be even.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Tuple{CtPar}","page":"Methods","title":"Sinograms.rays","text":"i = rays(rg::CtGeom)\n\nReturn parallel-beam coordinates of all rays for this CT geometry. Return type of i is a ProductIterator that makes tuples of the form (u, v, ϕ, θ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Tuple{SinoPar}","page":"Methods","title":"Sinograms.rays","text":"i = rays(rg::SinoGeom)\n\nRadial r and angular ϕ coordinates (in radians) of all sinogram elements for the given geometry. Return type of i is a ProductIterator that makes tuples of the form (r, ϕ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(rg, ig)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(rg)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_plot_rays-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_plot_rays","text":"sino_plot_rays(rg::SinoGeom ; kwargs...)\n\nMake a scatter plot of the (r, ϕ) sample locations for all rays. Requires Plots.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{<:Unitful.Quantity{T}}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{Unitful.Quantity})\n\nConvert Unitful quantity array to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{<:AbstractFloat})\n\nWhen Unitful package not loaded, assume angles are in degrees and convert to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.zwart_powell-Tuple{Real, Real}","page":"Methods","title":"Sinograms.zwart_powell","text":"output = zwart_powell(r, ϕ)\n\nAnalytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r (normalized by pixel size) and angle ϕ (in radians).\n\n\n\n\n\n","category":"method"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/05-fan-flat.jl\"","category":"page"},{"location":"generated/examples/05-fan-flat/#fan-flat","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page focuses on fan-beam with a \"flat\" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated from a single Julia file: 05-fan-flat.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb, and opened in binder here: 05-fan-flat.ipynb.","category":"page"},{"location":"generated/examples/05-fan-flat/#Setup","page":"Fan-beam tomography: flat detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/05-fan-flat/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: flat detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use SinoFanFlat to define the sinogram geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"rg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(rg, ig)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"prompt()","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/05-fan-flat/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: flat detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\nfbp_image = fbp(plan, sino)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/04-fan-arc.jl\"","category":"page"},{"location":"generated/examples/04-fan-arc/#fan-arc","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated from a single Julia file: 04-fan-arc.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb, and opened in binder here: 04-fan-arc.ipynb.","category":"page"},{"location":"generated/examples/04-fan-arc/#Setup","page":"Fan-beam tomography: arc detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/04-fan-arc/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: arc detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use SinoFanArc to define the sinogram geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"rg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(rg, ig)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"prompt()","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/04-fan-arc/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: arc detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"plan = plan_fbp(rg, ig)\nfbp_image = fbp(plan, sino)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Sinograms","category":"page"},{"location":"#Sinograms.jl-Documentation","page":"Home","title":"Sinograms.jl Documentation","text":"","category":"section"},{"location":"#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Sinograms.jl is a Julia language package with tools for tomographic image reconstruction, including","category":"page"},{"location":"","page":"Home","title":"Home","text":"describing ray geometries (parallel beam, fan beam, etc.) ✅\nperforming filtered back-projection (FBP) image reconstruction ✅\nsystem models for iterative reconstruction (WIP)","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the examples.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See also:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Michigan Image Reconstruction Toolbox (MIRT)\nJuliaImageRecon","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/01-tomography.jl\"","category":"page"},{"location":"generated/examples/01-tomography/#tomography","page":"Tomography overview","title":"Tomography overview","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page gives an overview of the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated from a single Julia file: 01-tomography.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb, and opened in binder here: 01-tomography.ipynb.","category":"page"},{"location":"generated/examples/01-tomography/#Setup","page":"Tomography overview","title":"Setup","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Packages needed here.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"using Sinograms: fbp\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/01-tomography/#Tomography","page":"Tomography overview","title":"Tomography","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans). (See SPECTrecon.jl for a Julia package related to SPECT imaging.)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In an X-ray CT imaging system, X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.","category":"page"},{"location":"generated/examples/01-tomography/#Radon-transform","page":"Tomography overview","title":"Radon transform","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mathematical foundation for 2D X-ray CT imaging is the Radon transform, an integral transform that maps a 2D function f(xy) into the collection of line integrals through that function. Here we describe each line by its angle phi measured counter-clockwise from the y axis, and by the radial distance r of the line from the origin. The collection of integrals is called a sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = int_-infty^infty\nf(r cos phi - l sin phi\nr sin phi + l cos phi) mathrmd l","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p_1(rphi) = 2 sqrt1 - r^2 mathrm for r 1","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius r_0 centered at (x_0y_0) is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = r_0 p_1\nleft( fracr - (x_0 cos phi + y_0 sin phi)r_0 ϕ right)","category":"page"},{"location":"generated/examples/01-tomography/#Sinogram-example","page":"Tomography overview","title":"Sinogram example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is a display of that Radon transform for a disk of radius 3 centered at coordinate (51). Note that maximum value is approximately 6, the length of the longest chord through a disk of radius 3.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"nr = 128\ndr = 20 / nr\nr = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\nna = 130\nϕ = (0:(na-1))/na * π # angular samples\nproj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\nproj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\nsino = proj2.(r, ϕ', 5, 1, 3)\njimsino = (sino, title) -> jim(\n r, ϕ, sino; title, aspect_ratio=:none,\n xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n clim = (0, 6),\n)\njimsino(sino, \"Sinogram for one disk\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the (xy) plane traces out a distinct sinusoid in the sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mapping from the object f(xy) to data like the sinogram p(rphi) is called the \"forward problem.\"","category":"page"},{"location":"generated/examples/01-tomography/#Image-reconstruction","page":"Tomography overview","title":"Image reconstruction","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Image reconstruction is the process of solving the inverse problem of recovering an estimate hatf(xy) of the object f(xy) from a measured sinogram, i.e., from (usually noisy) samples of p(rphi).","category":"page"},{"location":"generated/examples/01-tomography/#FBP","page":"Tomography overview","title":"FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"A simple image reconstruction method is called the \"filtered back-projection\" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter, whose frequency response is roughly nu, where nu is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.","category":"page"},{"location":"generated/examples/01-tomography/#FBP-example","page":"Tomography overview","title":"FBP example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is an illustration of using the fbp method in this package to perform image reconstruction from the preceding sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"image = fbp(sino; dr)\n(nx,ny) = size(image)\ndx = dr # default\nx = ((-(nx-1)/2):((nx-1)/2)) * dr\ny = x\njim(x, y, image, \"FBP image\",\n xtick=[-10, 0, 2, 5, 8, 10],\n ytick=[-10, 0, -2, 1, 4, 10],\n)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The FBP reconstructed image looks pretty similar to a disk of radius 3 centered at (51) as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in r and phi.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This is example is what is called 2D parallel-beam tomography, because for the angles phi are equally spaced and for each angle the radial samples r are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.","category":"page"},{"location":"generated/examples/01-tomography/#Noise-effects-on-FBP","page":"Tomography overview","title":"Noise effects on FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Simulating the effects of measurement noise in sinogram leads to even worse FBP results.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"First note that a practical imaging system has a finite field of view (FOV):","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"rmax = maximum(r)\nfovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\njim(x, y, fovmask, \"FOV mask\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Add noise to the original sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_sinogram = sino + 0.1 * randn(size(sino))\njimsino(noisy_sinogram, \"Noisy sinogram\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Apply FBP to the noisy sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_fbp_image = fbp(noisy_sinogram; dr)\nnoisy_fbp_image .*= fovmask # apply FOV mask\njim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper.","category":"page"},{"location":"generated/examples/01-tomography/#Reproducibility","page":"Tomography overview","title":"Reproducibility","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated with the following version of Julia:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"And with the following package versions","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"import Pkg; Pkg.status()","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/06-fan-short.jl\"","category":"page"},{"location":"generated/examples/06-fan-short/#fan-short","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl for a \"short\" scan where the rotation (orbit) is 180° plus the fan angle. This case requires Parker weighting.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page was generated from a single Julia file: 06-fan-short.jl.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"The corresponding notebook can be viewed in nbviewer here: 06-fan-short.ipynb, and opened in binder here: 06-fan-short.ipynb.","category":"page"},{"location":"generated/examples/06-fan-short/#Setup","page":"Fan-beam tomography: short scan","title":"Setup","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Packages needed here.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/06-fan-short/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: short scan","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Use SinoFanArc to define the sinogram geometry, with the :short option for orbit to make a short scan. Note that even though we specify na = 100 we end up with na = 67 views because of the :short option.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"rg = SinoFanArc( :short, ;\n nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,\n)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Examine the geometry to verify the FOV. The na=67 blue dots show the :short scan.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(rg, ig)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"prompt()","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Short arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan 'short' sinogram\",\n xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/06-fan-short/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: short scan","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"plan = plan_fbp(rg, ig)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Examine Parker weights:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(rg), plan.view_weight; title = \"Parker weights\",\n xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Finally perform FBP:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"fbp_image = fbp(plan, sino);\nnothing #hide","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for 'short' arc case\"; clim)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For comparison, here is the ideal phantom image:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Here is the difference image. Better sampling would reduce the errors.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(ig)..., fbp_image - true_image, \"Error image\")","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page was generated using Literate.jl.","category":"page"}]
+}
diff --git a/v0.4.0/siteinfo.js b/v0.4.0/siteinfo.js
new file mode 100644
index 0000000..cf5b387
--- /dev/null
+++ b/v0.4.0/siteinfo.js
@@ -0,0 +1 @@
+var DOCUMENTER_CURRENT_VERSION = "v0.4.0";
diff --git a/v0.4.1/assets/documenter.js b/v0.4.1/assets/documenter.js
new file mode 100644
index 0000000..6adfbbb
--- /dev/null
+++ b/v0.4.1/assets/documenter.js
@@ -0,0 +1,331 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min',
+ 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min',
+ 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min',
+ 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min',
+ 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min',
+ 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min',
+ 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min',
+ },
+ shim: {
+ "highlight-julia": {
+ "deps": [
+ "highlight"
+ ]
+ },
+ "katex-auto-render": {
+ "deps": [
+ "katex"
+ ]
+ },
+ "headroom-jquery": {
+ "deps": [
+ "jquery",
+ "headroom"
+ ]
+ },
+ "highlight-julia-repl": {
+ "deps": [
+ "highlight"
+ ]
+ }
+}
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) {
+$(document).ready(function() {
+ renderMathInElement(
+ document.body,
+ {
+ "delimiters": [
+ {
+ "left": "$",
+ "right": "$",
+ "display": false
+ },
+ {
+ "left": "$$",
+ "right": "$$",
+ "display": true
+ },
+ {
+ "left": "\\[",
+ "right": "\\]",
+ "display": true
+ }
+ ]
+}
+
+ );
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) {
+$(document).ready(function() {
+ hljs.highlightAll();
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require([], function() {
+function addCopyButtonCallbacks() {
+ for (const el of document.getElementsByTagName("pre")) {
+ const button = document.createElement("button");
+ button.classList.add("copy-button", "fas", "fa-copy");
+ el.appendChild(button);
+
+ const success = function () {
+ button.classList.add("success", "fa-check");
+ button.classList.remove("fa-copy");
+ };
+
+ const failure = function () {
+ button.classList.add("error", "fa-times");
+ button.classList.remove("fa-copy");
+ };
+
+ button.addEventListener("click", function () {
+ copyToClipboard(el.innerText).then(success, failure);
+
+ setTimeout(function () {
+ button.classList.add("fa-copy");
+ button.classList.remove("success", "fa-check", "fa-times");
+ }, 5000);
+ });
+ }
+}
+
+function copyToClipboard(text) {
+ // clipboard API is only available in secure contexts
+ if (window.navigator && window.navigator.clipboard) {
+ return window.navigator.clipboard.writeText(text);
+ } else {
+ return new Promise(function (resolve, reject) {
+ try {
+ const el = document.createElement("textarea");
+ el.textContent = text;
+ el.style.position = "fixed";
+ el.style.opacity = 0;
+ document.body.appendChild(el);
+ el.select();
+ document.execCommand("copy");
+
+ resolve();
+ } catch (err) {
+ reject(err);
+ } finally {
+ document.body.removeChild(el);
+ }
+ });
+ }
+}
+
+if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks);
+} else {
+ addCopyButtonCallbacks();
+}
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
+
+// Manages the top navigation bar (hides it when the user starts scrolling down on the
+// mobile).
+window.Headroom = Headroom; // work around buggy module loading?
+$(document).ready(function() {
+ $('#documenter .docs-navbar').headroom({
+ "tolerance": {"up": 10, "down": 10},
+ });
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Modal settings dialog
+$(document).ready(function() {
+ var settings = $('#documenter-settings');
+ $('#documenter-settings-button').click(function(){
+ settings.toggleClass('is-active');
+ });
+ // Close the dialog if X is clicked
+ $('#documenter-settings button.delete').click(function(){
+ settings.removeClass('is-active');
+ });
+ // Close dialog if ESC is pressed
+ $(document).keyup(function(e) {
+ if (e.keyCode == 27) settings.removeClass('is-active');
+ });
+});
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// Manages the showing and hiding of the sidebar.
+$(document).ready(function() {
+ var sidebar = $("#documenter > .docs-sidebar");
+ var sidebar_button = $("#documenter-sidebar-button")
+ sidebar_button.click(function(ev) {
+ ev.preventDefault();
+ sidebar.toggleClass('visible');
+ if (sidebar.hasClass('visible')) {
+ // Makes sure that the current menu item is visible in the sidebar.
+ $("#documenter .docs-menu a.is-active").focus();
+ }
+ });
+ $("#documenter > .docs-main").bind('click', function(ev) {
+ if ($(ev.target).is(sidebar_button)) {
+ return;
+ }
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ });
+})
+
+// Resizes the package name / sitename in the sidebar if it is too wide.
+// Inspired by: https://github.com/davatron5000/FitText.js
+$(document).ready(function() {
+ e = $("#documenter .docs-autofit");
+ function resize() {
+ var L = parseInt(e.css('max-width'), 10);
+ var L0 = e.width();
+ if(L0 > L) {
+ var h0 = parseInt(e.css('font-size'), 10);
+ e.css('font-size', L * h0 / L0);
+ // TODO: make sure it survives resizes?
+ }
+ }
+ // call once and then register events
+ resize();
+ $(window).resize(resize);
+ $(window).on('orientationchange', resize);
+});
+
+// Scroll the navigation bar to the currently selected menu item
+$(document).ready(function() {
+ var sidebar = $("#documenter .docs-menu").get(0);
+ var active = $("#documenter .docs-menu .is-active").get(0);
+ if(typeof active !== 'undefined') {
+ sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+function set_theme(theme) {
+ var active = null;
+ var disabled = [];
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ if(themename === null) continue; // ignore non-theme stylesheets
+ // Find the active theme
+ if(themename === theme) active = ss;
+ else disabled.push(ss);
+ }
+ if(active !== null) {
+ active.disabled = false;
+ if(active.ownerNode.getAttribute("data-theme-primary") === null) {
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ } else {
+ document.getElementsByTagName('html')[0].className = "";
+ }
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+
+ // Store the theme in localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ window.localStorage.setItem("documenter-theme", theme);
+ } else {
+ console.error("Browser does not support window.localStorage");
+ }
+}
+
+// Theme picker setup
+$(document).ready(function() {
+ // onchange callback
+ $('#documenter-themepicker').change(function themepick_callback(ev){
+ var themename = $('#documenter-themepicker option:selected').attr('value');
+ set_theme(themename);
+ });
+
+ // Make sure that the themepicker displays the correct theme when the theme is retrieved
+ // from localStorage
+ if(typeof(window.localStorage) !== "undefined") {
+ var theme = window.localStorage.getItem("documenter-theme");
+ if(theme !== null) {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = (e.value === theme);
+ })
+ } else {
+ $('#documenter-themepicker option').each(function(i,e) {
+ e.selected = $("html").hasClass(`theme--${e.value}`);
+ })
+ }
+ }
+})
+
+})
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery'], function($) {
+
+// update the version selector with info from the siteinfo.js and ../versions.js files
+$(document).ready(function() {
+ // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the
+ // siteinfo.js file, we just return immediately and not display the version selector.
+ if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) {
+ return;
+ }
+
+ var version_selector = $("#documenter .docs-version-selector");
+ var version_selector_select = $("#documenter .docs-version-selector select");
+
+ version_selector_select.change(function(x) {
+ target_href = version_selector_select.children("option:selected").get(0).value;
+ window.location.href = target_href;
+ });
+
+ // add the current version to the selector based on siteinfo.js, but only if the selector is empty
+ if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
+ var option = $("" + DOCUMENTER_CURRENT_VERSION + " ");
+ version_selector_select.append(option);
+ }
+
+ if (typeof DOC_VERSIONS !== 'undefined') {
+ var existing_versions = version_selector_select.children("option");
+ var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
+ DOC_VERSIONS.forEach(function(each) {
+ var version_url = documenterBaseURL + "/../" + each;
+ var existing_id = $.inArray(each, existing_versions_texts);
+ // if not already in the version selector, add it as a new option,
+ // otherwise update the old option with the URL and enable it
+ if (existing_id == -1) {
+ var option = $("" + each + " ");
+ version_selector_select.append(option);
+ } else {
+ var option = existing_versions[existing_id];
+ option.value = version_url;
+ option.disabled = false;
+ }
+ });
+ }
+
+ // only show the version selector if the selector has been populated
+ if (version_selector_select.children("option").length > 0) {
+ version_selector.toggleClass("visible");
+ }
+})
+
+})
diff --git a/v0.4.1/assets/logo.jl b/v0.4.1/assets/logo.jl
new file mode 100644
index 0000000..501013f
--- /dev/null
+++ b/v0.4.1/assets/logo.jl
@@ -0,0 +1,34 @@
+# logo.jl
+# Make Sinograms.jl logo
+
+using Sinograms: SinoPar, dims, rays
+using ImagePhantoms: ellipse, radon
+using MIRTjim: jim
+using Colors: RGB
+using FileIO: save
+
+const julia_purple = (0.584, 0.345, 0.698)
+const julia_green = (0.22, 0.596, 0.149)
+const julia_red = (0.796, 0.235, 0.2)
+colors = [ julia_purple, julia_green, julia_red, ] # from Luxor.jl
+
+rg = SinoPar(; nb=200, na=181, orbit=181)
+
+pars = [
+ (70, 0, 10, 10, 0, 1),
+ (30, 30, 10, 10, 0, 1),
+ ( 0, -60, 10, 10, 0, 1),
+]
+oa = ellipse(pars)
+
+sino = zeros(dims(rg)..., size(pars,1))
+logo = zeros(RGB{Float32}, dims(rg)...)
+for ip in 1:3
+ sino[:,:,ip] = radon(rays(rg), [oa[ip]])
+ c = RGB{Float32}(colors[ip]...)
+ logo[sino[:,:,ip] .> 0] .= c
+end
+sino = round.(Int, 255*sino/maximum(sino))
+jim(axes(rg), sino)
+
+#save("logo.png", logo')
diff --git a/v0.4.1/assets/logo.png b/v0.4.1/assets/logo.png
new file mode 100644
index 0000000..6934bc4
Binary files /dev/null and b/v0.4.1/assets/logo.png differ
diff --git a/v0.4.1/assets/search.js b/v0.4.1/assets/search.js
new file mode 100644
index 0000000..c133f74
--- /dev/null
+++ b/v0.4.1/assets/search.js
@@ -0,0 +1,267 @@
+// Generated by Documenter.jl
+requirejs.config({
+ paths: {
+ 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min',
+ 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min',
+ 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min',
+ }
+});
+////////////////////////////////////////////////////////////////////////////////
+require(['jquery', 'lunr', 'lodash'], function($, lunr, _) {
+
+$(document).ready(function() {
+ // parseUri 1.2.2
+ // (c) Steven Levithan
+ // MIT License
+ function parseUri (str) {
+ var o = parseUri.options,
+ m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
+ uri = {},
+ i = 14;
+
+ while (i--) uri[o.key[i]] = m[i] || "";
+
+ uri[o.q.name] = {};
+ uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
+ if ($1) uri[o.q.name][$1] = $2;
+ });
+
+ return uri;
+ };
+ parseUri.options = {
+ strictMode: false,
+ key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
+ q: {
+ name: "queryKey",
+ parser: /(?:^|&)([^&=]*)=?([^&]*)/g
+ },
+ parser: {
+ strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+ loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
+ }
+ };
+
+ $("#search-form").submit(function(e) {
+ e.preventDefault()
+ })
+
+ // list below is the lunr 2.1.3 list minus the intersect with names(Base)
+ // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with)
+ // ideally we'd just filter the original list but it's not available as a variable
+ lunr.stopWordFilter = lunr.generateStopWordFilter([
+ 'a',
+ 'able',
+ 'about',
+ 'across',
+ 'after',
+ 'almost',
+ 'also',
+ 'am',
+ 'among',
+ 'an',
+ 'and',
+ 'are',
+ 'as',
+ 'at',
+ 'be',
+ 'because',
+ 'been',
+ 'but',
+ 'by',
+ 'can',
+ 'cannot',
+ 'could',
+ 'dear',
+ 'did',
+ 'does',
+ 'either',
+ 'ever',
+ 'every',
+ 'from',
+ 'got',
+ 'had',
+ 'has',
+ 'have',
+ 'he',
+ 'her',
+ 'hers',
+ 'him',
+ 'his',
+ 'how',
+ 'however',
+ 'i',
+ 'if',
+ 'into',
+ 'it',
+ 'its',
+ 'just',
+ 'least',
+ 'like',
+ 'likely',
+ 'may',
+ 'me',
+ 'might',
+ 'most',
+ 'must',
+ 'my',
+ 'neither',
+ 'no',
+ 'nor',
+ 'not',
+ 'of',
+ 'off',
+ 'often',
+ 'on',
+ 'or',
+ 'other',
+ 'our',
+ 'own',
+ 'rather',
+ 'said',
+ 'say',
+ 'says',
+ 'she',
+ 'should',
+ 'since',
+ 'so',
+ 'some',
+ 'than',
+ 'that',
+ 'the',
+ 'their',
+ 'them',
+ 'then',
+ 'there',
+ 'these',
+ 'they',
+ 'this',
+ 'tis',
+ 'to',
+ 'too',
+ 'twas',
+ 'us',
+ 'wants',
+ 'was',
+ 'we',
+ 'were',
+ 'what',
+ 'when',
+ 'who',
+ 'whom',
+ 'why',
+ 'will',
+ 'would',
+ 'yet',
+ 'you',
+ 'your'
+ ])
+
+ // add . as a separator, because otherwise "title": "Documenter.Anchors.add!"
+ // would not find anything if searching for "add!", only for the entire qualification
+ lunr.tokenizer.separator = /[\s\-\.]+/
+
+ // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names
+ lunr.trimmer = function (token) {
+ return token.update(function (s) {
+ return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '')
+ })
+ }
+
+ lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter')
+ lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer')
+
+ var index = lunr(function () {
+ this.ref('location')
+ this.field('title',{boost: 100})
+ this.field('text')
+ documenterSearchIndex['docs'].forEach(function(e) {
+ this.add(e)
+ }, this)
+ })
+ var store = {}
+
+ documenterSearchIndex['docs'].forEach(function(e) {
+ store[e.location] = {title: e.title, category: e.category, page: e.page}
+ })
+
+ $(function(){
+ searchresults = $('#documenter-search-results');
+ searchinfo = $('#documenter-search-info');
+ searchbox = $('#documenter-search-query');
+ searchform = $('.docs-search');
+ sidebar = $('.docs-sidebar');
+ function update_search(querystring) {
+ tokens = lunr.tokenizer(querystring)
+ results = index.query(function (q) {
+ tokens.forEach(function (t) {
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 100,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["title"],
+ boost: 10,
+ usePipeline: true,
+ editDistance: 2,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ q.term(t.toString(), {
+ fields: ["text"],
+ boost: 1,
+ usePipeline: true,
+ editDistance: 0,
+ wildcard: lunr.Query.wildcard.NONE
+ })
+ })
+ })
+ searchinfo.text("Number of results: " + results.length)
+ searchresults.empty()
+ results.forEach(function(result) {
+ data = store[result.ref]
+ link = $(''+data.title+' ')
+ link.attr('href', documenterBaseURL+'/'+result.ref)
+ if (data.category != "page"){
+ cat = $('('+data.category+', '+data.page+') ')
+ } else {
+ cat = $('('+data.category+') ')
+ }
+ li = $('').append(link).append(" ").append(cat)
+ searchresults.append(li)
+ })
+ }
+
+ function update_search_box() {
+ querystring = searchbox.val()
+ update_search(querystring)
+ }
+
+ searchbox.keyup(_.debounce(update_search_box, 250))
+ searchbox.change(update_search_box)
+
+ // Disable enter-key form submission for the searchbox on the search page
+ // and just re-run search rather than refresh the whole page.
+ searchform.keypress(
+ function(event){
+ if (event.which == '13') {
+ if (sidebar.hasClass('visible')) {
+ sidebar.removeClass('visible');
+ }
+ update_search_box();
+ event.preventDefault();
+ }
+ }
+ );
+
+ search_query_uri = parseUri(window.location).queryKey["q"]
+ if(search_query_uri !== undefined) {
+ search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20'))
+ searchbox.val(search_query)
+ }
+ update_search_box();
+ })
+})
+
+})
diff --git a/v0.4.1/assets/themes/documenter-dark.css b/v0.4.1/assets/themes/documenter-dark.css
new file mode 100644
index 0000000..0bf1af7
--- /dev/null
+++ b/v0.4.1/assets/themes/documenter-dark.css
@@ -0,0 +1,7702 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child),
+html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before {
+ height: 2px;
+ width: 50%; }
+ html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after {
+ height: 50%;
+ width: 2px; }
+ html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdee0;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+html.theme--documenter-dark .image.is-square .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+html.theme--documenter-dark .image.is-1by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+html.theme--documenter-dark .image.is-5by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+html.theme--documenter-dark .image.is-4by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+html.theme--documenter-dark .image.is-3by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+html.theme--documenter-dark .image.is-5by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+html.theme--documenter-dark .image.is-16by9 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+html.theme--documenter-dark .image.is-2by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+html.theme--documenter-dark .image.is-3by1 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+html.theme--documenter-dark .image.is-4by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+html.theme--documenter-dark .image.is-3by4 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+html.theme--documenter-dark .image.is-2by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+html.theme--documenter-dark .image.is-3by5 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+html.theme--documenter-dark .image.is-9by16 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+html.theme--documenter-dark .image.is-1by2 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+html.theme--documenter-dark .image.is-1by3 .has-ratio,
+html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+html.theme--documenter-dark .pagination-previous,
+html.theme--documenter-dark .pagination-next,
+html.theme--documenter-dark .pagination-link,
+html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta,
+html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 0.4em;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 15px;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus,
+ html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus,
+ html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous,
+ html.theme--documenter-dark .is-focused.pagination-next,
+ html.theme--documenter-dark .is-focused.pagination-link,
+ html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta,
+ html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active,
+ html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active,
+ html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous,
+ html.theme--documenter-dark .is-active.pagination-next,
+ html.theme--documenter-dark .is-active.pagination-link,
+ html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta,
+ html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button {
+ outline: none; }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled],
+ html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled],
+ html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous,
+ fieldset[disabled] html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark fieldset[disabled] .pagination-next,
+ fieldset[disabled] html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark fieldset[disabled] .pagination-link,
+ fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta,
+ fieldset[disabled] html.theme--documenter-dark .file-name,
+ html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 15px !important; }
+
+.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ font-size: 0.85em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 15px !important; }
+ .is-size-7-mobile {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 15px !important; }
+ .is-size-7-tablet {
+ font-size: 0.85em !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 15px !important; }
+ .is-size-7-touch {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 15px !important; }
+ .is-size-7-desktop {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 15px !important; }
+ .is-size-7-widescreen {
+ font-size: 0.85em !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 15px !important; }
+ .is-size-7-fullhd {
+ font-size: 0.85em !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: #ecf0f1 !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #cfd9db !important; }
+
+.has-background-light {
+ background-color: #ecf0f1 !important; }
+
+.has-text-dark {
+ color: #282f2f !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #111414 !important; }
+
+.has-background-dark {
+ background-color: #282f2f !important; }
+
+.has-text-primary {
+ color: #375a7f !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #28415b !important; }
+
+.has-background-primary {
+ background-color: #375a7f !important; }
+
+.has-text-link {
+ color: #1abc9c !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #148f77 !important; }
+
+.has-background-link {
+ background-color: #1abc9c !important; }
+
+.has-text-info {
+ color: #024c7d !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #012d4b !important; }
+
+.has-background-info {
+ background-color: #024c7d !important; }
+
+.has-text-success {
+ color: #008438 !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #005122 !important; }
+
+.has-background-success {
+ background-color: #008438 !important; }
+
+.has-text-warning {
+ color: #ad8100 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #7a5b00 !important; }
+
+.has-background-warning {
+ background-color: #ad8100 !important; }
+
+.has-text-danger {
+ color: #9e1b0d !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #6f1309 !important; }
+
+.has-background-danger {
+ background-color: #9e1b0d !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #282f2f !important; }
+
+.has-background-grey-darker {
+ background-color: #282f2f !important; }
+
+.has-text-grey-dark {
+ color: #343c3d !important; }
+
+.has-background-grey-dark {
+ background-color: #343c3d !important; }
+
+.has-text-grey {
+ color: #5e6d6f !important; }
+
+.has-background-grey {
+ background-color: #5e6d6f !important; }
+
+.has-text-grey-light {
+ color: #8c9b9d !important; }
+
+.has-background-grey-light {
+ background-color: #8c9b9d !important; }
+
+.has-text-grey-lighter {
+ color: #dbdee0 !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdee0 !important; }
+
+.has-text-white-ter {
+ color: #ecf0f1 !important; }
+
+.has-background-white-ter {
+ background-color: #ecf0f1 !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+html.theme--documenter-dark {
+ /* This file contain the overall layout.
+ *
+ * The main container is that is identified by id #documenter.
+ */
+ /*!
+ Theme: a11y-dark
+ Author: @ericwbailey
+ Maintainer: @ericwbailey
+
+ Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
+*/
+ /* Comment */
+ /* Red */
+ /* Orange */
+ /* Yellow */
+ /* Green */
+ /* Blue */
+ /* Purple */ }
+ html.theme--documenter-dark html {
+ background-color: #1f2424;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark article,
+ html.theme--documenter-dark aside,
+ html.theme--documenter-dark figure,
+ html.theme--documenter-dark footer,
+ html.theme--documenter-dark header,
+ html.theme--documenter-dark hgroup,
+ html.theme--documenter-dark section {
+ display: block; }
+ html.theme--documenter-dark body,
+ html.theme--documenter-dark button,
+ html.theme--documenter-dark input,
+ html.theme--documenter-dark select,
+ html.theme--documenter-dark textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+ html.theme--documenter-dark code,
+ html.theme--documenter-dark pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+ html.theme--documenter-dark body {
+ color: #fff;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+ html.theme--documenter-dark a {
+ color: #1abc9c;
+ cursor: pointer;
+ text-decoration: none; }
+ html.theme--documenter-dark a strong {
+ color: currentColor; }
+ html.theme--documenter-dark a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark code {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: #ececec;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+ html.theme--documenter-dark hr {
+ background-color: #282f2f;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+ html.theme--documenter-dark img {
+ height: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark input[type="checkbox"],
+ html.theme--documenter-dark input[type="radio"] {
+ vertical-align: baseline; }
+ html.theme--documenter-dark small {
+ font-size: 0.875em; }
+ html.theme--documenter-dark span {
+ font-style: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark strong {
+ color: #f2f2f2;
+ font-weight: 700; }
+ html.theme--documenter-dark fieldset {
+ border: none; }
+ html.theme--documenter-dark pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: #282f2f;
+ color: #fff;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+ html.theme--documenter-dark table td,
+ html.theme--documenter-dark table th {
+ vertical-align: top; }
+ html.theme--documenter-dark table td:not([align]),
+ html.theme--documenter-dark table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .box {
+ background-color: #343c3d;
+ border-radius: 8px;
+ box-shadow: none;
+ color: #fff;
+ display: block;
+ padding: 1.25rem; }
+ html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; }
+ html.theme--documenter-dark .button {
+ background-color: #282f2f;
+ border-color: #4c5759;
+ border-width: 1px;
+ color: #375a7f;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ html.theme--documenter-dark .button strong {
+ color: inherit; }
+ html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered {
+ border-color: #8c9b9d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused {
+ border-color: #8c9b9d;
+ color: #17a689; }
+ html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active {
+ border-color: #343c3d;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active {
+ background-color: #1d2122;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused {
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused {
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button {
+ background-color: #282f2f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered {
+ background-color: #dde4e6; }
+ html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
+ html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #282f2f #282f2f !important; }
+ html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #ecf0f1;
+ box-shadow: none;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #375a7f;
+ box-shadow: none;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #375a7f #375a7f !important; }
+ html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link {
+ background-color: #1abc9c;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #1abc9c;
+ box-shadow: none;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #1abc9c #1abc9c !important; }
+ html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info {
+ background-color: #024c7d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #024c7d;
+ box-shadow: none;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #024c7d #024c7d !important; }
+ html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success {
+ background-color: #008438;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #008438;
+ box-shadow: none;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #008438 #008438 !important; }
+ html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning {
+ background-color: #ad8100;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ad8100;
+ box-shadow: none;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ad8100 #ad8100 !important; }
+ html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ box-shadow: none; }
+ html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #9e1b0d;
+ box-shadow: none;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #9e1b0d #9e1b0d !important; }
+ html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .button.is-normal {
+ font-size: 15px; }
+ html.theme--documenter-dark .button.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .button.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button {
+ background-color: #8c9b9d;
+ border-color: #dbdee0;
+ box-shadow: none;
+ opacity: 0.5; }
+ html.theme--documenter-dark .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ html.theme--documenter-dark .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ html.theme--documenter-dark .button.is-static {
+ background-color: #282f2f;
+ border-color: #5e6d6f;
+ color: #dbdee0;
+ box-shadow: none;
+ pointer-events: none; }
+ html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .buttons .button {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ html.theme--documenter-dark .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ html.theme--documenter-dark .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .buttons.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .buttons.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ html.theme--documenter-dark .container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .container {
+ max-width: 992px; }
+ html.theme--documenter-dark .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ html.theme--documenter-dark .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ html.theme--documenter-dark .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .container {
+ max-width: 1344px; } }
+ html.theme--documenter-dark .content li + li {
+ margin-top: 0.25em; }
+ html.theme--documenter-dark .content p:not(:last-child),
+ html.theme--documenter-dark .content dl:not(:last-child),
+ html.theme--documenter-dark .content ol:not(:last-child),
+ html.theme--documenter-dark .content ul:not(:last-child),
+ html.theme--documenter-dark .content blockquote:not(:last-child),
+ html.theme--documenter-dark .content pre:not(:last-child),
+ html.theme--documenter-dark .content table:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content h1,
+ html.theme--documenter-dark .content h2,
+ html.theme--documenter-dark .content h3,
+ html.theme--documenter-dark .content h4,
+ html.theme--documenter-dark .content h5,
+ html.theme--documenter-dark .content h6 {
+ color: #f2f2f2;
+ font-weight: 600;
+ line-height: 1.125; }
+ html.theme--documenter-dark .content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .content h1:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ html.theme--documenter-dark .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+ html.theme--documenter-dark .content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ html.theme--documenter-dark .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+ html.theme--documenter-dark .content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+ html.theme--documenter-dark .content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+ html.theme--documenter-dark .content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .content blockquote {
+ background-color: #282f2f;
+ border-left: 5px solid #5e6d6f;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ol:not([type]) {
+ list-style-type: decimal; }
+ html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ html.theme--documenter-dark .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ html.theme--documenter-dark .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+ html.theme--documenter-dark .content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ html.theme--documenter-dark .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ html.theme--documenter-dark .content ul ul ul {
+ list-style-type: square; }
+ html.theme--documenter-dark .content dd {
+ margin-left: 2em; }
+ html.theme--documenter-dark .content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ html.theme--documenter-dark .content figure:not(:first-child) {
+ margin-top: 2em; }
+ html.theme--documenter-dark .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ html.theme--documenter-dark .content figure img {
+ display: inline-block; }
+ html.theme--documenter-dark .content figure figcaption {
+ font-style: italic; }
+ html.theme--documenter-dark .content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+ html.theme--documenter-dark .content sup,
+ html.theme--documenter-dark .content sub {
+ font-size: 75%; }
+ html.theme--documenter-dark .content table {
+ width: 100%; }
+ html.theme--documenter-dark .content table td,
+ html.theme--documenter-dark .content table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .content table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .content table thead td,
+ html.theme--documenter-dark .content table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tfoot td,
+ html.theme--documenter-dark .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table tbody tr:last-child td,
+ html.theme--documenter-dark .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .content .tabs li + li {
+ margin-top: 0; }
+ html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .content.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .content.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ html.theme--documenter-dark .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ html.theme--documenter-dark .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+ html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
+ html.theme--documenter-dark .image.is-square .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ html.theme--documenter-dark .image.is-1by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ html.theme--documenter-dark .image.is-5by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ html.theme--documenter-dark .image.is-4by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ html.theme--documenter-dark .image.is-3by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ html.theme--documenter-dark .image.is-5by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ html.theme--documenter-dark .image.is-16by9 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ html.theme--documenter-dark .image.is-2by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ html.theme--documenter-dark .image.is-3by1 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ html.theme--documenter-dark .image.is-4by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ html.theme--documenter-dark .image.is-3by4 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ html.theme--documenter-dark .image.is-2by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ html.theme--documenter-dark .image.is-3by5 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ html.theme--documenter-dark .image.is-9by16 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ html.theme--documenter-dark .image.is-1by2 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ html.theme--documenter-dark .image.is-1by3 .has-ratio,
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+ html.theme--documenter-dark .notification {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification strong {
+ color: currentColor; }
+ html.theme--documenter-dark .notification code,
+ html.theme--documenter-dark .notification pre {
+ background: white; }
+ html.theme--documenter-dark .notification pre code {
+ background: transparent; }
+ html.theme--documenter-dark .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ html.theme--documenter-dark .notification .title,
+ html.theme--documenter-dark .notification .subtitle,
+ html.theme--documenter-dark .notification .content {
+ color: currentColor; }
+ html.theme--documenter-dark .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .notification.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .notification.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 15px;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ html.theme--documenter-dark .progress::-webkit-progress-bar {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .progress::-webkit-progress-value {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-moz-progress-bar {
+ background-color: #dbdee0; }
+ html.theme--documenter-dark .progress::-ms-fill {
+ background-color: #dbdee0;
+ border: none; }
+ html.theme--documenter-dark .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white::-ms-fill {
+ background-color: white; }
+ html.theme--documenter-dark .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ html.theme--documenter-dark .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-light::-webkit-progress-value {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-moz-progress-bar {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light::-ms-fill {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #375a7f; }
+ html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-link::-webkit-progress-value {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-moz-progress-bar {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link::-ms-fill {
+ background-color: #1abc9c; }
+ html.theme--documenter-dark .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-info::-webkit-progress-value {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-moz-progress-bar {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info::-ms-fill {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-success::-webkit-progress-value {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-moz-progress-bar {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success::-ms-fill {
+ background-color: #008438; }
+ html.theme--documenter-dark .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-warning::-webkit-progress-value {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-moz-progress-bar {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning::-ms-fill {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress.is-danger::-webkit-progress-value {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-moz-progress-bar {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger::-ms-fill {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); }
+ html.theme--documenter-dark .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #5e6d6f;
+ background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.85em; }
+ html.theme--documenter-dark .progress.is-medium {
+ height: 1.25rem; }
+ html.theme--documenter-dark .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+ html.theme--documenter-dark .table {
+ background-color: #343c3d;
+ color: #fff; }
+ html.theme--documenter-dark .table td,
+ html.theme--documenter-dark .table th {
+ border: 1px solid #5e6d6f;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ html.theme--documenter-dark .table td.is-white,
+ html.theme--documenter-dark .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .table td.is-black,
+ html.theme--documenter-dark .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .table td.is-light,
+ html.theme--documenter-dark .table th.is-light {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .table td.is-dark,
+ html.theme--documenter-dark .table th.is-dark {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .table td.is-primary,
+ html.theme--documenter-dark .table th.is-primary {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-link,
+ html.theme--documenter-dark .table th.is-link {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-info,
+ html.theme--documenter-dark .table th.is-info {
+ background-color: #024c7d;
+ border-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-success,
+ html.theme--documenter-dark .table th.is-success {
+ background-color: #008438;
+ border-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-warning,
+ html.theme--documenter-dark .table th.is-warning {
+ background-color: #ad8100;
+ border-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-danger,
+ html.theme--documenter-dark .table th.is-danger {
+ background-color: #9e1b0d;
+ border-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-narrow,
+ html.theme--documenter-dark .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ html.theme--documenter-dark .table td.is-selected,
+ html.theme--documenter-dark .table th.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table td.is-selected a,
+ html.theme--documenter-dark .table td.is-selected strong,
+ html.theme--documenter-dark .table th.is-selected a,
+ html.theme--documenter-dark .table th.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table th {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table th:not([align]) {
+ text-align: left; }
+ html.theme--documenter-dark .table tr.is-selected {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .table tr.is-selected a,
+ html.theme--documenter-dark .table tr.is-selected strong {
+ color: currentColor; }
+ html.theme--documenter-dark .table tr.is-selected td,
+ html.theme--documenter-dark .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ html.theme--documenter-dark .table thead {
+ background-color: transparent; }
+ html.theme--documenter-dark .table thead td,
+ html.theme--documenter-dark .table thead th {
+ border-width: 0 0 2px;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tfoot {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tfoot td,
+ html.theme--documenter-dark .table tfoot th {
+ border-width: 2px 0 0;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .table tbody {
+ background-color: transparent; }
+ html.theme--documenter-dark .table tbody tr:last-child td,
+ html.theme--documenter-dark .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ html.theme--documenter-dark .table.is-bordered td,
+ html.theme--documenter-dark .table.is-bordered th {
+ border-width: 1px; }
+ html.theme--documenter-dark .table.is-bordered tr:last-child td,
+ html.theme--documenter-dark .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .table.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: #2d3435; }
+ html.theme--documenter-dark .table.is-narrow td,
+ html.theme--documenter-dark .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+ html.theme--documenter-dark .tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ html.theme--documenter-dark .tags:last-child {
+ margin-bottom: -0.5rem; }
+ html.theme--documenter-dark .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tags.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ html.theme--documenter-dark .tags.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ color: #fff;
+ display: inline-flex;
+ font-size: 0.85em;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 15px; }
+ html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #1d2122; }
+ html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #111414; }
+ html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+ html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+ html.theme--documenter-dark .title,
+ html.theme--documenter-dark .subtitle {
+ word-break: break-word; }
+ html.theme--documenter-dark .title em,
+ html.theme--documenter-dark .title span,
+ html.theme--documenter-dark .subtitle em,
+ html.theme--documenter-dark .subtitle span {
+ font-weight: inherit; }
+ html.theme--documenter-dark .title sub,
+ html.theme--documenter-dark .subtitle sub {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title sup,
+ html.theme--documenter-dark .subtitle sup {
+ font-size: 0.75em; }
+ html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink,
+ html.theme--documenter-dark .subtitle .tag,
+ html.theme--documenter-dark .subtitle .content kbd,
+ html.theme--documenter-dark .content .subtitle kbd,
+ html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+ html.theme--documenter-dark .title {
+ color: #fff;
+ font-size: 2rem;
+ font-weight: 500;
+ line-height: 1.125; }
+ html.theme--documenter-dark .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ html.theme--documenter-dark .title + .highlight {
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .title.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .title.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .title.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .title.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .title.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .title.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .title.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .subtitle {
+ color: #8c9b9d;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ html.theme--documenter-dark .subtitle strong {
+ color: #8c9b9d;
+ font-weight: 600; }
+ html.theme--documenter-dark .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ html.theme--documenter-dark .subtitle.is-1 {
+ font-size: 3rem; }
+ html.theme--documenter-dark .subtitle.is-2 {
+ font-size: 2.5rem; }
+ html.theme--documenter-dark .subtitle.is-3 {
+ font-size: 2rem; }
+ html.theme--documenter-dark .subtitle.is-4 {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .subtitle.is-5 {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .subtitle.is-6 {
+ font-size: 15px; }
+ html.theme--documenter-dark .subtitle.is-7 {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ html.theme--documenter-dark .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+ html.theme--documenter-dark .number {
+ align-items: center;
+ background-color: #282f2f;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+ html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #1f2424;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ color: #dbdee0; }
+ html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(219, 222, 224, 0.3); }
+ html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ background-color: #8c9b9d;
+ border-color: #282f2f;
+ box-shadow: none;
+ color: white; }
+ html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(255, 255, 255, 0.3); }
+ html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #008438; }
+ html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+ html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+ html.theme--documenter-dark .textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ html.theme--documenter-dark .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ html.theme--documenter-dark .textarea[rows] {
+ height: initial; }
+ html.theme--documenter-dark .textarea.has-fixed-size {
+ resize: none; }
+ html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input {
+ cursor: pointer; }
+ html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover {
+ color: #8c9b9d; }
+ html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox {
+ color: white;
+ cursor: not-allowed; }
+ html.theme--documenter-dark .radio + .radio {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .select:not(.is-multiple) {
+ height: 2.25em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #1abc9c;
+ right: 1.125em;
+ z-index: 4; }
+ html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ html.theme--documenter-dark .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ html.theme--documenter-dark .select select::-ms-expand {
+ display: none; }
+ html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ html.theme--documenter-dark .select select[multiple] option {
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .select.is-white:not(:hover)::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ html.theme--documenter-dark .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered {
+ border-color: black; }
+ html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ html.theme--documenter-dark .select.is-light:not(:hover)::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered {
+ border-color: #dde4e6; }
+ html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
+ html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered {
+ border-color: #1d2122; }
+ html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
+ html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select {
+ border-color: #375a7f; }
+ html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #2f4d6d; }
+ html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
+ html.theme--documenter-dark .select.is-link:not(:hover)::after {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select {
+ border-color: #1abc9c; }
+ html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered {
+ border-color: #17a689; }
+ html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
+ html.theme--documenter-dark .select.is-info:not(:hover)::after {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select {
+ border-color: #024c7d; }
+ html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered {
+ border-color: #023d64; }
+ html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
+ html.theme--documenter-dark .select.is-success:not(:hover)::after {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select {
+ border-color: #008438; }
+ html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered {
+ border-color: #006b2d; }
+ html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
+ html.theme--documenter-dark .select.is-warning:not(:hover)::after {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select {
+ border-color: #ad8100; }
+ html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered {
+ border-color: #946e00; }
+ html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
+ html.theme--documenter-dark .select.is-danger:not(:hover)::after {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select {
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered {
+ border-color: #86170b; }
+ html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
+ html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 3px;
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .select.is-disabled::after {
+ border-color: white; }
+ html.theme--documenter-dark .select.is-fullwidth {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-fullwidth select {
+ width: 100%; }
+ html.theme--documenter-dark .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ html.theme--documenter-dark .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ html.theme--documenter-dark .file.is-light .file-cta {
+ background-color: #ecf0f1;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta {
+ background-color: #e5eaec;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25);
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta {
+ background-color: #dde4e6;
+ border-color: transparent;
+ color: #282f2f; }
+ html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta {
+ background-color: #282f2f;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta {
+ background-color: #232829;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25);
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta {
+ background-color: #1d2122;
+ border-color: transparent;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #375a7f;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #335476;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #2f4d6d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link .file-cta {
+ background-color: #1abc9c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta {
+ background-color: #18b193;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta {
+ background-color: #17a689;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info .file-cta {
+ background-color: #024c7d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta {
+ background-color: #024470;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta {
+ background-color: #023d64;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success .file-cta {
+ background-color: #008438;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta {
+ background-color: #007733;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta {
+ background-color: #006b2d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning .file-cta {
+ background-color: #ad8100;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta {
+ background-color: #a07700;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta {
+ background-color: #946e00;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger .file-cta {
+ background-color: #9e1b0d;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta {
+ background-color: #92190c;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25);
+ color: #fff; }
+ html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta {
+ background-color: #86170b;
+ border-color: transparent;
+ color: #fff; }
+ html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .file.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-cta {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .file.has-name.is-empty .file-name {
+ display: none; }
+ html.theme--documenter-dark .file.is-boxed .file-label {
+ flex-direction: column; }
+ html.theme--documenter-dark .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ html.theme--documenter-dark .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ html.theme--documenter-dark .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-cta {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 0.4em 0.4em;
+ border-width: 0 1px 1px; }
+ html.theme--documenter-dark .file.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .file.is-fullwidth .file-label {
+ width: 100%; }
+ html.theme--documenter-dark .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ html.theme--documenter-dark .file.is-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .file.is-right .file-cta {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .file.is-right .file-name {
+ border-radius: 0.4em 0 0 0.4em;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+ html.theme--documenter-dark .file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ html.theme--documenter-dark .file-label:hover .file-cta {
+ background-color: #e5eaec;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:hover .file-name {
+ border-color: #596668; }
+ html.theme--documenter-dark .file-label:active .file-cta {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .file-label:active .file-name {
+ border-color: #535f61; }
+ html.theme--documenter-dark .file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ html.theme--documenter-dark .file-cta,
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .file-cta {
+ background-color: #ecf0f1;
+ color: #343c3d; }
+ html.theme--documenter-dark .file-name {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+ html.theme--documenter-dark .file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ html.theme--documenter-dark .file-icon .fa {
+ font-size: 14px; }
+ html.theme--documenter-dark .label {
+ color: #282f2f;
+ display: block;
+ font-size: 15px;
+ font-weight: 700; }
+ html.theme--documenter-dark .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .label.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .label.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .help {
+ display: block;
+ font-size: 0.85em;
+ margin-top: 0.25rem; }
+ html.theme--documenter-dark .help.is-white {
+ color: white; }
+ html.theme--documenter-dark .help.is-black {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .help.is-light {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help {
+ color: #282f2f; }
+ html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink {
+ color: #375a7f; }
+ html.theme--documenter-dark .help.is-link {
+ color: #1abc9c; }
+ html.theme--documenter-dark .help.is-info {
+ color: #024c7d; }
+ html.theme--documenter-dark .help.is-success {
+ color: #008438; }
+ html.theme--documenter-dark .help.is-warning {
+ color: #ad8100; }
+ html.theme--documenter-dark .help.is-danger {
+ color: #9e1b0d; }
+ html.theme--documenter-dark .field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,
+ html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ html.theme--documenter-dark .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .field.is-grouped > .control {
+ flex-shrink: 0; }
+ html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field.is-horizontal {
+ display: flex; } }
+ html.theme--documenter-dark .field-label .label {
+ font-size: inherit; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .field-label {
+ margin-bottom: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.85em;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-normal {
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ html.theme--documenter-dark .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+ html.theme--documenter-dark .field-body .field .field {
+ margin-bottom: 0; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body .field {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .field-body > .field {
+ flex-shrink: 1; }
+ html.theme--documenter-dark .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ html.theme--documenter-dark .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 15px;
+ position: relative;
+ text-align: left; }
+ html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon {
+ color: #5e6d6f; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon {
+ color: #dbdee0;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-left .icon.is-left {
+ left: 0; }
+ html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ html.theme--documenter-dark .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ html.theme--documenter-dark .control.has-icons-right .icon.is-right {
+ right: 0; }
+ html.theme--documenter-dark .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb {
+ font-size: 15px;
+ white-space: nowrap; }
+ html.theme--documenter-dark .breadcrumb a {
+ align-items: center;
+ color: #1abc9c;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ html.theme--documenter-dark .breadcrumb a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .breadcrumb li:first-child a {
+ padding-left: 0; }
+ html.theme--documenter-dark .breadcrumb li.is-active a {
+ color: #f2f2f2;
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb li + li::before {
+ color: #8c9b9d;
+ content: "\0002f"; }
+ html.theme--documenter-dark .breadcrumb ul,
+ html.theme--documenter-dark .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .breadcrumb.is-centered ol,
+ html.theme--documenter-dark .breadcrumb.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .breadcrumb.is-right ol,
+ html.theme--documenter-dark .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+ html.theme--documenter-dark .card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #fff;
+ max-width: 100%;
+ position: relative; }
+ html.theme--documenter-dark .card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+ html.theme--documenter-dark .card-header-title {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-header-title.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-image {
+ display: block;
+ position: relative; }
+ html.theme--documenter-dark .card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+ html.theme--documenter-dark .card-footer {
+ background-color: transparent;
+ border-top: 1px solid #5e6d6f;
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ html.theme--documenter-dark .card-footer-item:not(:last-child) {
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ html.theme--documenter-dark .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+ html.theme--documenter-dark .dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .dropdown-content {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .dropdown-item {
+ color: #fff;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+ html.theme--documenter-dark a.dropdown-item,
+ html.theme--documenter-dark button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ html.theme--documenter-dark a.dropdown-item:hover,
+ html.theme--documenter-dark button.dropdown-item:hover {
+ background-color: #282f2f;
+ color: #0a0a0a; }
+ html.theme--documenter-dark a.dropdown-item.is-active,
+ html.theme--documenter-dark button.dropdown-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .dropdown-divider {
+ background-color: #5e6d6f;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+ html.theme--documenter-dark .level {
+ align-items: center;
+ justify-content: space-between; }
+ html.theme--documenter-dark .level code {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .level img {
+ display: inline-block;
+ vertical-align: top; }
+ html.theme--documenter-dark .level.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left,
+ html.theme--documenter-dark .level.is-mobile .level-right {
+ display: flex; }
+ html.theme--documenter-dark .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level {
+ display: flex; }
+ html.theme--documenter-dark .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+ html.theme--documenter-dark .level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ html.theme--documenter-dark .level-item .title,
+ html.theme--documenter-dark .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ html.theme--documenter-dark .level-left,
+ html.theme--documenter-dark .level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .level-left .level-item.is-flexible,
+ html.theme--documenter-dark .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left .level-item:not(:last-child),
+ html.theme--documenter-dark .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+ html.theme--documenter-dark .level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-left {
+ display: flex; } }
+ html.theme--documenter-dark .level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .level-right {
+ display: flex; } }
+ html.theme--documenter-dark .list {
+ background-color: white;
+ border-radius: 0.4em;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ html.theme--documenter-dark .list-item:not(a) {
+ color: #fff; }
+ html.theme--documenter-dark .list-item:first-child {
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:last-child {
+ border-bottom-left-radius: 0.4em;
+ border-bottom-right-radius: 0.4em; }
+ html.theme--documenter-dark .list-item:not(:last-child) {
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .list-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark a.list-item {
+ background-color: #282f2f;
+ cursor: pointer; }
+ html.theme--documenter-dark .media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ html.theme--documenter-dark .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .media .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ html.theme--documenter-dark .media .media .content:not(:last-child),
+ html.theme--documenter-dark .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark .media .media .media {
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .media .media .media + .media {
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark .media + .media {
+ border-top: 1px solid rgba(94, 109, 111, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ html.theme--documenter-dark .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+ html.theme--documenter-dark .media-left,
+ html.theme--documenter-dark .media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .media-left {
+ margin-right: 1rem; }
+ html.theme--documenter-dark .media-right {
+ margin-left: 1rem; }
+ html.theme--documenter-dark .media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .media-content {
+ overflow-x: auto; } }
+ html.theme--documenter-dark .menu {
+ font-size: 15px; }
+ html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .menu.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .menu.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .menu-list {
+ line-height: 1.25; }
+ html.theme--documenter-dark .menu-list a {
+ border-radius: 3px;
+ color: #fff;
+ display: block;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .menu-list a:hover {
+ background-color: #282f2f;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .menu-list a.is-active {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .menu-list li ul {
+ border-left: 1px solid #5e6d6f;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .menu-label {
+ color: white;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ html.theme--documenter-dark .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ html.theme--documenter-dark .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+ html.theme--documenter-dark .message {
+ background-color: #282f2f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .message strong {
+ color: currentColor; }
+ html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .message.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .message.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .message.is-white {
+ background-color: white; }
+ html.theme--documenter-dark .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ html.theme--documenter-dark .message.is-black {
+ background-color: #fafafa; }
+ html.theme--documenter-dark .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ html.theme--documenter-dark .message.is-light {
+ background-color: #f9fafb; }
+ html.theme--documenter-dark .message.is-light .message-header {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .message.is-light .message-body {
+ border-color: #ecf0f1;
+ color: #505050; }
+ html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message {
+ background-color: #f9fafa; }
+ html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body {
+ border-color: #282f2f;
+ color: #212526; }
+ html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink {
+ background-color: #f8fafc; }
+ html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #375a7f;
+ color: #2b4159; }
+ html.theme--documenter-dark .message.is-link {
+ background-color: #f6fefc; }
+ html.theme--documenter-dark .message.is-link .message-header {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-link .message-body {
+ border-color: #1abc9c;
+ color: #0b2f28; }
+ html.theme--documenter-dark .message.is-info {
+ background-color: #f5fbff; }
+ html.theme--documenter-dark .message.is-info .message-header {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-info .message-body {
+ border-color: #024c7d;
+ color: #033659; }
+ html.theme--documenter-dark .message.is-success {
+ background-color: #f5fff9; }
+ html.theme--documenter-dark .message.is-success .message-header {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-success .message-body {
+ border-color: #008438;
+ color: #023518; }
+ html.theme--documenter-dark .message.is-warning {
+ background-color: #fffcf5; }
+ html.theme--documenter-dark .message.is-warning .message-header {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-warning .message-body {
+ border-color: #ad8100;
+ color: #3d2e03; }
+ html.theme--documenter-dark .message.is-danger {
+ background-color: #fef6f6; }
+ html.theme--documenter-dark .message.is-danger .message-header {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .message.is-danger .message-body {
+ border-color: #9e1b0d;
+ color: #7a170c; }
+ html.theme--documenter-dark .message-header {
+ align-items: center;
+ background-color: #fff;
+ border-radius: 0.4em 0.4em 0 0;
+ color: rgba(0, 0, 0, 0.7);
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ html.theme--documenter-dark .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ html.theme--documenter-dark .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+ html.theme--documenter-dark .message-body {
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #fff;
+ padding: 1.25em 1.5em; }
+ html.theme--documenter-dark .message-body code,
+ html.theme--documenter-dark .message-body pre {
+ background-color: white; }
+ html.theme--documenter-dark .message-body pre code {
+ background-color: transparent; }
+ html.theme--documenter-dark .modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ html.theme--documenter-dark .modal.is-active {
+ display: flex; }
+ html.theme--documenter-dark .modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .modal-content,
+ html.theme--documenter-dark .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+ html.theme--documenter-dark .modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+ html.theme--documenter-dark .modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+ html.theme--documenter-dark .modal-card-head,
+ html.theme--documenter-dark .modal-card-foot {
+ align-items: center;
+ background-color: #282f2f;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+ html.theme--documenter-dark .modal-card-head {
+ border-bottom: 1px solid #5e6d6f;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px; }
+ html.theme--documenter-dark .modal-card-title {
+ color: #f2f2f2;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+ html.theme--documenter-dark .modal-card-foot {
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+ html.theme--documenter-dark .navbar {
+ background-color: #375a7f;
+ min-height: 4rem;
+ position: relative;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ html.theme--documenter-dark .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ html.theme--documenter-dark .navbar.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-burger {
+ color: #282f2f; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link {
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ecf0f1;
+ color: #282f2f; } }
+ html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger {
+ color: #ecf0f1; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #282f2f;
+ color: #ecf0f1; } }
+ html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #375a7f;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #024c7d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #008438;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ad8100;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,
+ html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #9e1b0d;
+ color: #fff; } }
+ html.theme--documenter-dark .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 4rem;
+ width: 100%; }
+ html.theme--documenter-dark .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 #282f2f; }
+ html.theme--documenter-dark .navbar.is-fixed-top {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top,
+ html.theme--documenter-dark body.has-navbar-fixed-top {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark .navbar-brand,
+ html.theme--documenter-dark .navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+ html.theme--documenter-dark .navbar-burger {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ height: 4rem;
+ position: relative;
+ width: 4rem;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ html.theme--documenter-dark .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ html.theme--documenter-dark .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ html.theme--documenter-dark .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+ html.theme--documenter-dark .navbar-menu {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ color: #fff;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .navbar-item .icon:only-child,
+ html.theme--documenter-dark .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+ html.theme--documenter-dark a.navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ cursor: pointer; }
+ html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link:focus,
+ html.theme--documenter-dark .navbar-link:focus-within,
+ html.theme--documenter-dark .navbar-link:hover,
+ html.theme--documenter-dark .navbar-link.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-item img {
+ max-height: 1.75rem; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ padding: 0; }
+ html.theme--documenter-dark .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 4rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #1abc9c; }
+ html.theme--documenter-dark .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #1abc9c;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #1abc9c;
+ padding-bottom: calc(0.5rem - 3px); }
+ html.theme--documenter-dark .navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after {
+ border-color: #fff;
+ margin-top: -0.375em;
+ right: 1.125em; }
+ html.theme--documenter-dark .navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+ html.theme--documenter-dark .navbar-divider {
+ background-color: rgba(0, 0, 0, 0.2);
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar > .container {
+ display: block; }
+ html.theme--documenter-dark .navbar-brand .navbar-item,
+ html.theme--documenter-dark .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-link::after {
+ display: none; }
+ html.theme--documenter-dark .navbar-menu {
+ background-color: #375a7f;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark .navbar-menu.is-active {
+ display: block; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-touch {
+ top: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 4rem);
+ overflow: auto; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-top-touch {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 4rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .navbar,
+ html.theme--documenter-dark .navbar-menu,
+ html.theme--documenter-dark .navbar-start,
+ html.theme--documenter-dark .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ html.theme--documenter-dark .navbar {
+ min-height: 4rem; }
+ html.theme--documenter-dark .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ html.theme--documenter-dark .navbar.is-spaced .navbar-start,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ html.theme--documenter-dark .navbar.is-spaced a.navbar-item,
+ html.theme--documenter-dark .navbar.is-spaced .navbar-link {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,
+ html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ html.theme--documenter-dark .navbar-burger {
+ display: none; }
+ html.theme--documenter-dark .navbar-item,
+ html.theme--documenter-dark .navbar-link {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .navbar-item {
+ display: flex; }
+ html.theme--documenter-dark .navbar-item.has-dropdown {
+ align-items: stretch; }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 8px 8px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ html.theme--documenter-dark .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ html.theme--documenter-dark .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ html.theme--documenter-dark .navbar-dropdown {
+ background-color: #375a7f;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ html.theme--documenter-dark .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover {
+ background-color: transparent;
+ color: #dbdee0; }
+ html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active {
+ background-color: transparent;
+ color: #1abc9c; }
+ .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed {
+ border-radius: 8px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ html.theme--documenter-dark .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ html.theme--documenter-dark .navbar-divider {
+ display: block; }
+ html.theme--documenter-dark .navbar > .container .navbar-brand,
+ html.theme--documenter-dark .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ html.theme--documenter-dark .navbar > .container .navbar-menu,
+ html.theme--documenter-dark .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.theme--documenter-dark html.has-navbar-fixed-top-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-top-desktop {
+ padding-top: 4rem; }
+ html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,
+ html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 4rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-top,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-top {
+ padding-top: 6rem; }
+ html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,
+ html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 6rem; }
+ html.theme--documenter-dark a.navbar-item.is-active,
+ html.theme--documenter-dark .navbar-link.is-active {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),
+ html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: transparent; } }
+ html.theme--documenter-dark .hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 4rem); }
+ html.theme--documenter-dark .pagination {
+ font-size: 15px;
+ margin: -0.25rem; }
+ html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .pagination.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .pagination.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ html.theme--documenter-dark .pagination.is-rounded .pagination-next,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+ html.theme--documenter-dark .pagination,
+ html.theme--documenter-dark .pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-link {
+ border-color: #5e6d6f;
+ color: #1abc9c;
+ min-width: 2.25em; }
+ html.theme--documenter-dark .pagination-previous:hover,
+ html.theme--documenter-dark .pagination-next:hover,
+ html.theme--documenter-dark .pagination-link:hover {
+ border-color: #8c9b9d;
+ color: #1dd2af; }
+ html.theme--documenter-dark .pagination-previous:focus,
+ html.theme--documenter-dark .pagination-next:focus,
+ html.theme--documenter-dark .pagination-link:focus {
+ border-color: #8c9b9d; }
+ html.theme--documenter-dark .pagination-previous:active,
+ html.theme--documenter-dark .pagination-next:active,
+ html.theme--documenter-dark .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ html.theme--documenter-dark .pagination-previous[disabled],
+ html.theme--documenter-dark .pagination-next[disabled],
+ html.theme--documenter-dark .pagination-link[disabled] {
+ background-color: #dbdee0;
+ border-color: #dbdee0;
+ box-shadow: none;
+ color: #5e6d6f;
+ opacity: 0.5; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ html.theme--documenter-dark .pagination-link.is-current {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .pagination-ellipsis {
+ color: #8c9b9d;
+ pointer-events: none; }
+ html.theme--documenter-dark .pagination-list {
+ flex-wrap: wrap; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .pagination {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ html.theme--documenter-dark .pagination-previous {
+ order: 2; }
+ html.theme--documenter-dark .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination {
+ justify-content: space-between; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-centered .pagination-next {
+ order: 3; }
+ html.theme--documenter-dark .pagination.is-right .pagination-previous {
+ order: 1; }
+ html.theme--documenter-dark .pagination.is-right .pagination-next {
+ order: 2; }
+ html.theme--documenter-dark .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+ html.theme--documenter-dark .panel {
+ font-size: 15px; }
+ html.theme--documenter-dark .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs,
+ html.theme--documenter-dark .panel-block {
+ border-bottom: 1px solid #5e6d6f;
+ border-left: 1px solid #5e6d6f;
+ border-right: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child,
+ html.theme--documenter-dark .panel-block:first-child {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .panel-heading {
+ background-color: #282f2f;
+ border-radius: 0.4em 0.4em 0 0;
+ color: #f2f2f2;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-bottom: 1px solid #5e6d6f;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #343c3d;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-list a {
+ color: #fff; }
+ html.theme--documenter-dark .panel-list a:hover {
+ color: #1abc9c; }
+ html.theme--documenter-dark .panel-block {
+ align-items: center;
+ color: #f2f2f2;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ html.theme--documenter-dark .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ html.theme--documenter-dark .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .panel-block.is-active {
+ border-left-color: #1abc9c;
+ color: #17a689; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #1abc9c; }
+ html.theme--documenter-dark a.panel-block,
+ html.theme--documenter-dark label.panel-block {
+ cursor: pointer; }
+ html.theme--documenter-dark a.panel-block:hover,
+ html.theme--documenter-dark label.panel-block:hover {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: white;
+ margin-right: 0.75em; }
+ html.theme--documenter-dark .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+ html.theme--documenter-dark .tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 15px;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ html.theme--documenter-dark .tabs a {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ html.theme--documenter-dark .tabs a:hover {
+ border-bottom-color: #f2f2f2;
+ color: #f2f2f2; }
+ html.theme--documenter-dark .tabs li {
+ display: block; }
+ html.theme--documenter-dark .tabs li.is-active a {
+ border-bottom-color: #1abc9c;
+ color: #1abc9c; }
+ html.theme--documenter-dark .tabs ul {
+ align-items: center;
+ border-bottom-color: #5e6d6f;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ html.theme--documenter-dark .tabs ul.is-left {
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ html.theme--documenter-dark .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ html.theme--documenter-dark .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ html.theme--documenter-dark .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ html.theme--documenter-dark .tabs.is-centered ul {
+ justify-content: center; }
+ html.theme--documenter-dark .tabs.is-right ul {
+ justify-content: flex-end; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .tabs.is-boxed a:hover {
+ background-color: #282f2f;
+ border-bottom-color: #5e6d6f; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #5e6d6f;
+ border-bottom-color: transparent !important; }
+ html.theme--documenter-dark .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .tabs.is-toggle a {
+ border-color: #5e6d6f;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ html.theme--documenter-dark .tabs.is-toggle a:hover {
+ background-color: #282f2f;
+ border-color: #8c9b9d;
+ z-index: 2; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .tabs.is-toggle li:first-child a {
+ border-radius: 0.4em 0 0 0.4em; }
+ html.theme--documenter-dark .tabs.is-toggle li:last-child a {
+ border-radius: 0 0.4em 0.4em 0; }
+ html.theme--documenter-dark .tabs.is-toggle li.is-active a {
+ background-color: #1abc9c;
+ border-color: #1abc9c;
+ color: #fff;
+ z-index: 1; }
+ html.theme--documenter-dark .tabs.is-toggle ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .tabs.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .tabs.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .column.is-narrow-mobile {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .column.is-narrow-touch {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-touch {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-touch {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-touch {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-touch {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .column.is-narrow-desktop {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .column.is-narrow-widescreen {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .column.is-narrow-fullhd {
+ flex: none; }
+ html.theme--documenter-dark .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ html.theme--documenter-dark .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ html.theme--documenter-dark .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ html.theme--documenter-dark .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ html.theme--documenter-dark .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ html.theme--documenter-dark .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ html.theme--documenter-dark .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ html.theme--documenter-dark .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ html.theme--documenter-dark .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ html.theme--documenter-dark .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ html.theme--documenter-dark .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ html.theme--documenter-dark .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ html.theme--documenter-dark .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ html.theme--documenter-dark .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ html.theme--documenter-dark .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ html.theme--documenter-dark .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ html.theme--documenter-dark .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ html.theme--documenter-dark .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ html.theme--documenter-dark .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ html.theme--documenter-dark .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ html.theme--documenter-dark .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ html.theme--documenter-dark .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ html.theme--documenter-dark .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ html.theme--documenter-dark .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ html.theme--documenter-dark .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ html.theme--documenter-dark .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ html.theme--documenter-dark .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+ html.theme--documenter-dark .columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .columns:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ html.theme--documenter-dark .columns.is-centered {
+ justify-content: center; }
+ html.theme--documenter-dark .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ html.theme--documenter-dark .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ html.theme--documenter-dark .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ html.theme--documenter-dark .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ html.theme--documenter-dark .columns.is-mobile {
+ display: flex; }
+ html.theme--documenter-dark .columns.is-multiline {
+ flex-wrap: wrap; }
+ html.theme--documenter-dark .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-desktop {
+ display: flex; } }
+ html.theme--documenter-dark .columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ html.theme--documenter-dark .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ html.theme--documenter-dark .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ html.theme--documenter-dark .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ html.theme--documenter-dark .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+ html.theme--documenter-dark .tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ html.theme--documenter-dark .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ html.theme--documenter-dark .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ html.theme--documenter-dark .tile.is-child {
+ margin: 0 !important; }
+ html.theme--documenter-dark .tile.is-parent {
+ padding: 0.75rem; }
+ html.theme--documenter-dark .tile.is-vertical {
+ flex-direction: column; }
+ html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .tile:not(.is-child) {
+ display: flex; }
+ html.theme--documenter-dark .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ html.theme--documenter-dark .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ html.theme--documenter-dark .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ html.theme--documenter-dark .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ html.theme--documenter-dark .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ html.theme--documenter-dark .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ html.theme--documenter-dark .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ html.theme--documenter-dark .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ html.theme--documenter-dark .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ html.theme--documenter-dark .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ html.theme--documenter-dark .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ html.theme--documenter-dark .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+ html.theme--documenter-dark .hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ html.theme--documenter-dark .hero .navbar {
+ background: none; }
+ html.theme--documenter-dark .hero .tabs ul {
+ border-bottom: none; }
+ html.theme--documenter-dark .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-white strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-white .title {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-white .navbar-menu {
+ background-color: white; } }
+ html.theme--documenter-dark .hero.is-white .navbar-item,
+ html.theme--documenter-dark .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-white .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ html.theme--documenter-dark .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-black strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-black .title {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ html.theme--documenter-dark .hero.is-black .navbar-item,
+ html.theme--documenter-dark .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-black .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ html.theme--documenter-dark .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ html.theme--documenter-dark .hero.is-light {
+ background-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-light strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-light .title {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .subtitle {
+ color: rgba(40, 47, 47, 0.9); }
+ html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-light .subtitle strong {
+ color: #282f2f; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-light .navbar-menu {
+ background-color: #ecf0f1; } }
+ html.theme--documenter-dark .hero.is-light .navbar-item,
+ html.theme--documenter-dark .hero.is-light .navbar-link {
+ color: rgba(40, 47, 47, 0.7); }
+ html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-light .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-light .navbar-link.is-active {
+ background-color: #dde4e6;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs a {
+ color: #282f2f;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a {
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #282f2f;
+ border-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } }
+ html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero {
+ background-color: #282f2f;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-dark strong,
+ html.theme--documenter-dark .content kbd.hero strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle {
+ color: rgba(236, 240, 241, 0.9); }
+ html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-dark .subtitle strong,
+ html.theme--documenter-dark .content kbd.hero .subtitle strong {
+ color: #ecf0f1; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu {
+ background-color: #282f2f; } }
+ html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item,
+ html.theme--documenter-dark .hero.is-dark .navbar-link,
+ html.theme--documenter-dark .content kbd.hero .navbar-link {
+ color: rgba(236, 240, 241, 0.7); }
+ html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-dark .navbar-link:hover,
+ html.theme--documenter-dark .content kbd.hero .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,
+ html.theme--documenter-dark .content kbd.hero .navbar-link.is-active {
+ background-color: #1d2122;
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a {
+ color: #ecf0f1;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: #ecf0f1;
+ border-color: #ecf0f1;
+ color: #282f2f; }
+ html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } }
+ html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink {
+ background-color: #375a7f;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-primary strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-primary .subtitle strong,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #375a7f; } }
+ html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ html.theme--documenter-dark .hero.is-primary .navbar-link,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-primary .navbar-link:hover,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,
+ html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #2f4d6d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #375a7f; }
+ html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } }
+ html.theme--documenter-dark .hero.is-link {
+ background-color: #1abc9c;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-link strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-link .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-link .navbar-menu {
+ background-color: #1abc9c; } }
+ html.theme--documenter-dark .hero.is-link .navbar-item,
+ html.theme--documenter-dark .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-link .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-link .navbar-link.is-active {
+ background-color: #17a689;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #1abc9c; }
+ html.theme--documenter-dark .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } }
+ html.theme--documenter-dark .hero.is-info {
+ background-color: #024c7d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-info strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-info .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-info .navbar-menu {
+ background-color: #024c7d; } }
+ html.theme--documenter-dark .hero.is-info .navbar-item,
+ html.theme--documenter-dark .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-info .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-info .navbar-link.is-active {
+ background-color: #023d64;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #024c7d; }
+ html.theme--documenter-dark .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } }
+ html.theme--documenter-dark .hero.is-success {
+ background-color: #008438;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-success strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-success .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-success .navbar-menu {
+ background-color: #008438; } }
+ html.theme--documenter-dark .hero.is-success .navbar-item,
+ html.theme--documenter-dark .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-success .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-success .navbar-link.is-active {
+ background-color: #006b2d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #008438; }
+ html.theme--documenter-dark .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } }
+ html.theme--documenter-dark .hero.is-warning {
+ background-color: #ad8100;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-warning strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-warning .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-warning .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-warning .navbar-menu {
+ background-color: #ad8100; } }
+ html.theme--documenter-dark .hero.is-warning .navbar-item,
+ html.theme--documenter-dark .hero.is-warning .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-warning .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-warning .navbar-link.is-active {
+ background-color: #946e00;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #ad8100; }
+ html.theme--documenter-dark .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } }
+ html.theme--documenter-dark .hero.is-danger {
+ background-color: #9e1b0d;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ html.theme--documenter-dark .hero.is-danger strong {
+ color: inherit; }
+ html.theme--documenter-dark .hero.is-danger .title {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),
+ html.theme--documenter-dark .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .hero.is-danger .navbar-menu {
+ background-color: #9e1b0d; } }
+ html.theme--documenter-dark .hero.is-danger .navbar-item,
+ html.theme--documenter-dark .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,
+ html.theme--documenter-dark .hero.is-danger .navbar-link:hover,
+ html.theme--documenter-dark .hero.is-danger .navbar-link.is-active {
+ background-color: #86170b;
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ html.theme--documenter-dark .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #9e1b0d; }
+ html.theme--documenter-dark .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } }
+ html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ html.theme--documenter-dark .hero.is-halfheight {
+ min-height: 50vh; }
+ html.theme--documenter-dark .hero.is-fullheight {
+ min-height: 100vh; }
+ html.theme--documenter-dark .hero-video {
+ overflow: hidden; }
+ html.theme--documenter-dark .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ html.theme--documenter-dark .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-video {
+ display: none; } }
+ html.theme--documenter-dark .hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ html.theme--documenter-dark .hero-buttons .button {
+ display: flex; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ html.theme--documenter-dark .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+ html.theme--documenter-dark .hero-head,
+ html.theme--documenter-dark .hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+ html.theme--documenter-dark .hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+ html.theme--documenter-dark .section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark .section.is-medium {
+ padding: 9rem 1.5rem; }
+ html.theme--documenter-dark .section.is-large {
+ padding: 18rem 1.5rem; } }
+ html.theme--documenter-dark .footer {
+ background-color: #282f2f;
+ padding: 3rem 1.5rem 6rem; }
+ html.theme--documenter-dark hr {
+ height: 1px; }
+ html.theme--documenter-dark h6 {
+ text-transform: uppercase;
+ letter-spacing: 0.5px; }
+ html.theme--documenter-dark .hero {
+ background-color: #343c3d; }
+ html.theme--documenter-dark a {
+ transition: all 200ms ease; }
+ html.theme--documenter-dark .button {
+ transition: all 200ms ease;
+ border-width: 1px;
+ color: white; }
+ html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus {
+ box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); }
+ html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus {
+ border-color: white;
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); }
+ html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover {
+ background-color: #1d1d1d; }
+ html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus {
+ border-color: #0a0a0a;
+ box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); }
+ html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover {
+ background-color: white; }
+ html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus {
+ border-color: #ecf0f1;
+ box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); }
+ html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover {
+ background-color: #3a4344; }
+ html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus {
+ border-color: #282f2f;
+ box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); }
+ html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover {
+ background-color: #436d9a; }
+ html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus {
+ border-color: #375a7f;
+ box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); }
+ html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover {
+ background-color: #1fdeb8; }
+ html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus {
+ border-color: #1abc9c;
+ box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); }
+ html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover {
+ background-color: #0363a3; }
+ html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus {
+ border-color: #024c7d;
+ box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); }
+ html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover {
+ background-color: #00aa48; }
+ html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus {
+ border-color: #008438;
+ box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); }
+ html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover {
+ background-color: #d39e00; }
+ html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus {
+ border-color: #ad8100;
+ box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); }
+ html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover {
+ background-color: #c12110; }
+ html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus {
+ border-color: #9e1b0d;
+ box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); }
+ html.theme--documenter-dark .label {
+ color: #dbdee0; }
+ html.theme--documenter-dark .button,
+ html.theme--documenter-dark .control.has-icons-left .icon,
+ html.theme--documenter-dark .control.has-icons-right .icon,
+ html.theme--documenter-dark .input,
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .pagination-ellipsis,
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous,
+ html.theme--documenter-dark .select,
+ html.theme--documenter-dark .select select,
+ html.theme--documenter-dark .textarea {
+ height: 2.5em; }
+ html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark .textarea {
+ transition: all 200ms ease;
+ box-shadow: none;
+ border-width: 1px;
+ padding-left: 1em;
+ padding-right: 1em; }
+ html.theme--documenter-dark .select:after,
+ html.theme--documenter-dark .select select {
+ border-width: 1px; }
+ html.theme--documenter-dark .control.has-addons .button,
+ html.theme--documenter-dark .control.has-addons .input,
+ html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input,
+ html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input,
+ html.theme--documenter-dark .control.has-addons .select {
+ margin-right: -1px; }
+ html.theme--documenter-dark .notification {
+ background-color: #343c3d; }
+ html.theme--documenter-dark .card {
+ box-shadow: none;
+ border: 1px solid #343c3d;
+ background-color: #282f2f;
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .card .card-image img {
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-header {
+ box-shadow: none;
+ background-color: rgba(18, 18, 18, 0.2);
+ border-radius: 0.4em 0.4em 0 0; }
+ html.theme--documenter-dark .card .card-footer {
+ background-color: rgba(18, 18, 18, 0.2); }
+ html.theme--documenter-dark .card .card-footer,
+ html.theme--documenter-dark .card .card-footer-item {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .notification.is-white a:not(.button) {
+ color: #0a0a0a;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-black a:not(.button) {
+ color: white;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-light a:not(.button) {
+ color: #282f2f;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) {
+ color: #ecf0f1;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-link a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-info a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-success a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-warning a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .notification.is-danger a:not(.button) {
+ color: #fff;
+ text-decoration: underline; }
+ html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .menu-list a {
+ transition: all 300ms ease; }
+ html.theme--documenter-dark .modal-card-body {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .modal-card-foot,
+ html.theme--documenter-dark .modal-card-head {
+ border-color: #343c3d; }
+ html.theme--documenter-dark .message-header {
+ font-weight: 700;
+ background-color: #343c3d;
+ color: white; }
+ html.theme--documenter-dark .message-body {
+ border-width: 1px;
+ border-color: #343c3d; }
+ html.theme--documenter-dark .navbar {
+ border-radius: 0.4em; }
+ html.theme--documenter-dark .navbar.is-transparent {
+ background: none; }
+ html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #1abc9c; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark .navbar .navbar-menu {
+ background-color: #375a7f;
+ border-radius: 0 0 0.4em 0.4em; } }
+ html.theme--documenter-dark .hero .navbar,
+ html.theme--documenter-dark body > .navbar {
+ border-radius: 0; }
+ html.theme--documenter-dark .pagination-link,
+ html.theme--documenter-dark .pagination-next,
+ html.theme--documenter-dark .pagination-previous {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block,
+ html.theme--documenter-dark .panel-heading,
+ html.theme--documenter-dark .panel-tabs {
+ border-width: 1px; }
+ html.theme--documenter-dark .panel-block:first-child,
+ html.theme--documenter-dark .panel-heading:first-child,
+ html.theme--documenter-dark .panel-tabs:first-child {
+ border-top-width: 1px; }
+ html.theme--documenter-dark .panel-heading {
+ font-weight: 700; }
+ html.theme--documenter-dark .panel-tabs a {
+ border-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .panel-tabs a.is-active {
+ border-bottom-color: #17a689; }
+ html.theme--documenter-dark .panel-block:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block:hover .panel-icon {
+ color: #1dd2af; }
+ html.theme--documenter-dark .panel-block.is-active .panel-icon {
+ color: #17a689; }
+ html.theme--documenter-dark .tabs a {
+ border-bottom-width: 1px;
+ margin-bottom: -1px; }
+ html.theme--documenter-dark .tabs ul {
+ border-bottom-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed a {
+ border-width: 1px; }
+ html.theme--documenter-dark .tabs.is-boxed li.is-active a {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .tabs.is-toggle li a {
+ border-width: 1px;
+ margin-bottom: 0; }
+ html.theme--documenter-dark .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover {
+ background-color: transparent; }
+ html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited {
+ color: #f2f2f2; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+ html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+ html.theme--documenter-dark .docs-light-only {
+ display: none !important; }
+ html.theme--documenter-dark pre {
+ position: relative;
+ overflow: hidden; }
+ html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ html.theme--documenter-dark pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #fff;
+ cursor: pointer;
+ text-align: center; }
+ html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(255, 255, 255, 0.1);
+ color: #1abc9c; }
+ html.theme--documenter-dark pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ html.theme--documenter-dark pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ html.theme--documenter-dark pre:hover .copy-button {
+ opacity: 1; }
+ html.theme--documenter-dark .admonition {
+ background-color: #282f2f;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #5e6d6f;
+ border-radius: 0.4em;
+ font-size: 15px; }
+ html.theme--documenter-dark .admonition strong {
+ color: currentColor; }
+ html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.85em; }
+ html.theme--documenter-dark .admonition.is-medium {
+ font-size: 1.25rem; }
+ html.theme--documenter-dark .admonition.is-large {
+ font-size: 1.5rem; }
+ html.theme--documenter-dark .admonition.is-default {
+ background-color: #282f2f;
+ border-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-default > .admonition-header {
+ background-color: #5e6d6f; }
+ html.theme--documenter-dark .admonition.is-info {
+ background-color: #282f2f;
+ border-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-info > .admonition-header {
+ background-color: #024c7d; }
+ html.theme--documenter-dark .admonition.is-success {
+ background-color: #282f2f;
+ border-color: #008438; }
+ html.theme--documenter-dark .admonition.is-success > .admonition-header {
+ background-color: #008438; }
+ html.theme--documenter-dark .admonition.is-warning {
+ background-color: #282f2f;
+ border-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-warning > .admonition-header {
+ background-color: #ad8100; }
+ html.theme--documenter-dark .admonition.is-danger {
+ background-color: #282f2f;
+ border-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-danger > .admonition-header {
+ background-color: #9e1b0d; }
+ html.theme--documenter-dark .admonition.is-compat {
+ background-color: #282f2f;
+ border-color: #137886; }
+ html.theme--documenter-dark .admonition.is-compat > .admonition-header {
+ background-color: #137886; }
+ html.theme--documenter-dark .admonition-header {
+ background-color: #5e6d6f;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ html.theme--documenter-dark .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+ html.theme--documenter-dark .admonition-body {
+ color: #fff;
+ padding: 0.5rem 0.75rem; }
+ html.theme--documenter-dark .admonition-body pre {
+ background-color: #282f2f; }
+ html.theme--documenter-dark .admonition-body code {
+ background-color: rgba(255, 255, 255, 0.05); }
+ html.theme--documenter-dark .docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #5e6d6f;
+ box-shadow: none;
+ max-width: 100%; }
+ html.theme--documenter-dark .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: #282f2f;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > header code {
+ background-color: transparent; }
+ html.theme--documenter-dark .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ html.theme--documenter-dark .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ html.theme--documenter-dark .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .docstring > section:last-child {
+ border-bottom: none; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+ html.theme--documenter-dark .documenter-example-output {
+ background-color: #1f2424; }
+ html.theme--documenter-dark .outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #282f2f;
+ border-bottom: 3px solid #9e1b0d;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ html.theme--documenter-dark .outdated-warning-overlay a {
+ color: #1abc9c; }
+ html.theme--documenter-dark .outdated-warning-overlay a:hover {
+ color: #1dd2af; }
+ html.theme--documenter-dark .content pre {
+ border: 1px solid #5e6d6f; }
+ html.theme--documenter-dark .content code {
+ font-weight: inherit; }
+ html.theme--documenter-dark .content a code {
+ color: #1abc9c; }
+ html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+ html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+ html.theme--documenter-dark pre, html.theme--documenter-dark code {
+ font-variant-ligatures: no-contextual; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover {
+ color: #f2f2f2; }
+ html.theme--documenter-dark .hljs {
+ background: initial !important; }
+ html.theme--documenter-dark .katex .katex-mathml {
+ top: 0;
+ right: 0; }
+ html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display {
+ margin: 0.5em 0 !important; }
+ html.theme--documenter-dark html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+ html.theme--documenter-dark li.no-marker {
+ list-style: none; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ html.theme--documenter-dark #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main {
+ width: 100%; }
+ html.theme--documenter-dark #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ background-color: #1f2424;
+ border-bottom: 1px solid #5e6d6f;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #171717;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes {
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #5e6d6f;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #fff;
+ background-color: #282f2f;
+ border-right: 1px solid #5e6d6f;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 15px;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #171717; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #5e6d6f;
+ display: none;
+ padding: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #5e6d6f;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 14.25px;
+ margin-left: 1em;
+ border-left: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 11.25px;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #fff;
+ background: #282f2f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #fff;
+ background-color: #32393a; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #5e6d6f;
+ border-bottom: 1px solid #5e6d6f;
+ background-color: #1f2424; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: #1f2424;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #32393a;
+ color: #fff; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #5e6d6f; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 12.75px;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ @media screen and (max-width: 1055px) {
+ html.theme--documenter-dark #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #3b4445; }
+ html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #4e5a5c; } }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+ html.theme--documenter-dark {
+ background-color: #1f2424;
+ font-size: 16px;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+ html.theme--documenter-dark .ansi span.sgr1 {
+ font-weight: bolder; }
+ html.theme--documenter-dark .ansi span.sgr2 {
+ font-weight: lighter; }
+ html.theme--documenter-dark .ansi span.sgr3 {
+ font-style: italic; }
+ html.theme--documenter-dark .ansi span.sgr4 {
+ text-decoration: underline; }
+ html.theme--documenter-dark .ansi span.sgr7 {
+ color: #1f2424;
+ background-color: #fff; }
+ html.theme--documenter-dark .ansi span.sgr8 {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr8 span {
+ color: transparent; }
+ html.theme--documenter-dark .ansi span.sgr9 {
+ text-decoration: line-through; }
+ html.theme--documenter-dark .ansi span.sgr30 {
+ color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr31 {
+ color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr32 {
+ color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr33 {
+ color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr34 {
+ color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr35 {
+ color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr36 {
+ color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr37 {
+ color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr40 {
+ background-color: #242424; }
+ html.theme--documenter-dark .ansi span.sgr41 {
+ background-color: #f6705f; }
+ html.theme--documenter-dark .ansi span.sgr42 {
+ background-color: #4fb43a; }
+ html.theme--documenter-dark .ansi span.sgr43 {
+ background-color: #f4c72f; }
+ html.theme--documenter-dark .ansi span.sgr44 {
+ background-color: #7587f0; }
+ html.theme--documenter-dark .ansi span.sgr45 {
+ background-color: #bc89d3; }
+ html.theme--documenter-dark .ansi span.sgr46 {
+ background-color: #49b6ca; }
+ html.theme--documenter-dark .ansi span.sgr47 {
+ background-color: #b3bdbe; }
+ html.theme--documenter-dark .ansi span.sgr90 {
+ color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr91 {
+ color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr92 {
+ color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr93 {
+ color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr94 {
+ color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr95 {
+ color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr96 {
+ color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr97 {
+ color: #ecf0f1; }
+ html.theme--documenter-dark .ansi span.sgr100 {
+ background-color: #92a0a2; }
+ html.theme--documenter-dark .ansi span.sgr101 {
+ background-color: #ff8674; }
+ html.theme--documenter-dark .ansi span.sgr102 {
+ background-color: #79d462; }
+ html.theme--documenter-dark .ansi span.sgr103 {
+ background-color: #ffe76b; }
+ html.theme--documenter-dark .ansi span.sgr104 {
+ background-color: #8a98ff; }
+ html.theme--documenter-dark .ansi span.sgr105 {
+ background-color: #d2a4e6; }
+ html.theme--documenter-dark .ansi span.sgr106 {
+ background-color: #6bc8db; }
+ html.theme--documenter-dark .ansi span.sgr107 {
+ background-color: #ecf0f1; }
+ html.theme--documenter-dark code.language-julia-repl > span.hljs-meta {
+ color: #4fb43a;
+ font-weight: bolder; }
+ html.theme--documenter-dark .hljs {
+ background: #2b2b2b;
+ color: #f8f8f2; }
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-quote {
+ color: #d4d0ab; }
+ html.theme--documenter-dark .hljs-variable,
+ html.theme--documenter-dark .hljs-template-variable,
+ html.theme--documenter-dark .hljs-tag,
+ html.theme--documenter-dark .hljs-name,
+ html.theme--documenter-dark .hljs-selector-id,
+ html.theme--documenter-dark .hljs-selector-class,
+ html.theme--documenter-dark .hljs-regexp,
+ html.theme--documenter-dark .hljs-deletion {
+ color: #ffa07a; }
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-link {
+ color: #f5ab35; }
+ html.theme--documenter-dark .hljs-attribute {
+ color: #ffd700; }
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-addition {
+ color: #abe338; }
+ html.theme--documenter-dark .hljs-title,
+ html.theme--documenter-dark .hljs-section {
+ color: #00e0e0; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ color: #dcc6e0; }
+ html.theme--documenter-dark .hljs-emphasis {
+ font-style: italic; }
+ html.theme--documenter-dark .hljs-strong {
+ font-weight: bold; }
+ @media screen and (-ms-high-contrast: active) {
+ html.theme--documenter-dark .hljs-addition,
+ html.theme--documenter-dark .hljs-attribute,
+ html.theme--documenter-dark .hljs-built_in,
+ html.theme--documenter-dark .hljs-bullet,
+ html.theme--documenter-dark .hljs-comment,
+ html.theme--documenter-dark .hljs-link,
+ html.theme--documenter-dark .hljs-literal,
+ html.theme--documenter-dark .hljs-meta,
+ html.theme--documenter-dark .hljs-number,
+ html.theme--documenter-dark .hljs-params,
+ html.theme--documenter-dark .hljs-string,
+ html.theme--documenter-dark .hljs-symbol,
+ html.theme--documenter-dark .hljs-type,
+ html.theme--documenter-dark .hljs-quote {
+ color: highlight; }
+ html.theme--documenter-dark .hljs-keyword,
+ html.theme--documenter-dark .hljs-selector-tag {
+ font-weight: bold; } }
+ html.theme--documenter-dark .hljs-subst {
+ color: #f8f8f2; }
diff --git a/v0.4.1/assets/themes/documenter-light.css b/v0.4.1/assets/themes/documenter-light.css
new file mode 100644
index 0000000..9595d5b
--- /dev/null
+++ b/v0.4.1/assets/themes/documenter-light.css
@@ -0,0 +1,7738 @@
+@charset "UTF-8";
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@keyframes spinAround {
+ from {
+ transform: rotate(0deg); }
+ to {
+ transform: rotate(359deg); } }
+
+.tabs, .pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: 0.625em;
+ margin-top: -0.4375em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: 0.625em; }
+
+.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child),
+.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.modal-close, .delete {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ background-color: rgba(10, 10, 10, 0.2);
+ border: none;
+ border-radius: 290486px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ vertical-align: top;
+ width: 20px; }
+ .modal-close::before, .delete::before, .modal-close::after, .delete::after {
+ background-color: white;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .modal-close::before, .delete::before {
+ height: 2px;
+ width: 50%; }
+ .modal-close::after, .delete::after {
+ height: 50%;
+ width: 2px; }
+ .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus {
+ background-color: rgba(10, 10, 10, 0.3); }
+ .modal-close:active, .delete:active {
+ background-color: rgba(10, 10, 10, 0.4); }
+ .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete {
+ height: 16px;
+ max-height: 16px;
+ max-width: 16px;
+ min-height: 16px;
+ min-width: 16px;
+ width: 16px; }
+ .is-medium.modal-close, .is-medium.delete {
+ height: 24px;
+ max-height: 24px;
+ max-width: 24px;
+ min-height: 24px;
+ min-width: 24px;
+ width: 24px; }
+ .is-large.modal-close, .is-large.delete {
+ height: 32px;
+ max-height: 32px;
+ max-width: 32px;
+ min-height: 32px;
+ min-width: 32px;
+ width: 32px; }
+
+.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after {
+ animation: spinAround 500ms infinite linear;
+ border: 2px solid #dbdbdb;
+ border-radius: 290486px;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ content: "";
+ display: block;
+ height: 1em;
+ position: relative;
+ width: 1em; }
+
+.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+.image.is-square .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+.image.is-1by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+.image.is-5by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+.image.is-4by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+.image.is-3by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+.image.is-5by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+.image.is-16by9 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+.image.is-2by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+.image.is-3by1 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+.image.is-4by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+.image.is-3by4 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+.image.is-2by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+.image.is-3by5 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+.image.is-9by16 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+.image.is-1by2 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+.image.is-1by3 .has-ratio,
+#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis, .file-cta,
+.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.25em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: calc(0.625em - 1px);
+ padding-right: calc(0.625em - 1px);
+ padding-top: calc(0.375em - 1px);
+ position: relative;
+ vertical-align: top; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus,
+ .pagination-ellipsis:focus, .file-cta:focus,
+ .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous,
+ .is-focused.pagination-next,
+ .is-focused.pagination-link,
+ .is-focused.pagination-ellipsis, .is-focused.file-cta,
+ .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active,
+ .pagination-ellipsis:active, .file-cta:active,
+ .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous,
+ .is-active.pagination-next,
+ .is-active.pagination-link,
+ .is-active.pagination-ellipsis, .is-active.file-cta,
+ .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button {
+ outline: none; }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled],
+ .pagination-ellipsis[disabled], .file-cta[disabled],
+ .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous,
+ fieldset[disabled] .pagination-next,
+ fieldset[disabled] .pagination-link,
+ fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta,
+ fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button {
+ cursor: not-allowed; }
+
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ padding: 0; }
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: normal; }
+
+ul {
+ list-style: none; }
+
+button,
+input,
+select,
+textarea {
+ margin: 0; }
+
+html {
+ box-sizing: border-box; }
+
+*, *::before, *::after {
+ box-sizing: inherit; }
+
+img,
+embed,
+iframe,
+object,
+video {
+ height: auto;
+ max-width: 100%; }
+
+audio {
+ max-width: 100%; }
+
+iframe {
+ border: 0; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+ td:not([align]),
+ th:not([align]) {
+ text-align: left; }
+
+html {
+ background-color: white;
+ font-size: 16px;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ min-width: 300px;
+ overflow-x: auto;
+ overflow-y: scroll;
+ text-rendering: optimizeLegibility;
+ text-size-adjust: 100%; }
+
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section {
+ display: block; }
+
+body,
+button,
+input,
+select,
+textarea {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
+
+code,
+pre {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto;
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
+
+body {
+ color: #222222;
+ font-size: 1em;
+ font-weight: 400;
+ line-height: 1.5; }
+
+a {
+ color: #2e63b8;
+ cursor: pointer;
+ text-decoration: none; }
+ a strong {
+ color: currentColor; }
+ a:hover {
+ color: #363636; }
+
+code {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #000000;
+ font-size: 0.875em;
+ font-weight: normal;
+ padding: 0.1em; }
+
+hr {
+ background-color: whitesmoke;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 1.5rem 0; }
+
+img {
+ height: auto;
+ max-width: 100%; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ vertical-align: baseline; }
+
+small {
+ font-size: 0.875em; }
+
+span {
+ font-style: inherit;
+ font-weight: inherit; }
+
+strong {
+ color: #222222;
+ font-weight: 700; }
+
+fieldset {
+ border: none; }
+
+pre {
+ -webkit-overflow-scrolling: touch;
+ background-color: whitesmoke;
+ color: #222222;
+ font-size: 0.875em;
+ overflow-x: auto;
+ padding: 1.25rem 1.5rem;
+ white-space: pre;
+ word-wrap: normal; }
+ pre code {
+ background-color: transparent;
+ color: currentColor;
+ font-size: 1em;
+ padding: 0; }
+
+table td,
+table th {
+ vertical-align: top; }
+ table td:not([align]),
+ table th:not([align]) {
+ text-align: left; }
+
+table th {
+ color: #222222; }
+
+.is-clearfix::after {
+ clear: both;
+ content: " ";
+ display: table; }
+
+.is-pulled-left {
+ float: left !important; }
+
+.is-pulled-right {
+ float: right !important; }
+
+.is-clipped {
+ overflow: hidden !important; }
+
+.is-size-1 {
+ font-size: 3rem !important; }
+
+.is-size-2 {
+ font-size: 2.5rem !important; }
+
+.is-size-3 {
+ font-size: 2rem !important; }
+
+.is-size-4 {
+ font-size: 1.5rem !important; }
+
+.is-size-5 {
+ font-size: 1.25rem !important; }
+
+.is-size-6 {
+ font-size: 1rem !important; }
+
+.is-size-7, .docstring > section > a.docs-sourcelink {
+ font-size: 0.75rem !important; }
+
+@media screen and (max-width: 768px) {
+ .is-size-1-mobile {
+ font-size: 3rem !important; }
+ .is-size-2-mobile {
+ font-size: 2.5rem !important; }
+ .is-size-3-mobile {
+ font-size: 2rem !important; }
+ .is-size-4-mobile {
+ font-size: 1.5rem !important; }
+ .is-size-5-mobile {
+ font-size: 1.25rem !important; }
+ .is-size-6-mobile {
+ font-size: 1rem !important; }
+ .is-size-7-mobile {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-size-1-tablet {
+ font-size: 3rem !important; }
+ .is-size-2-tablet {
+ font-size: 2.5rem !important; }
+ .is-size-3-tablet {
+ font-size: 2rem !important; }
+ .is-size-4-tablet {
+ font-size: 1.5rem !important; }
+ .is-size-5-tablet {
+ font-size: 1.25rem !important; }
+ .is-size-6-tablet {
+ font-size: 1rem !important; }
+ .is-size-7-tablet {
+ font-size: 0.75rem !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-size-1-touch {
+ font-size: 3rem !important; }
+ .is-size-2-touch {
+ font-size: 2.5rem !important; }
+ .is-size-3-touch {
+ font-size: 2rem !important; }
+ .is-size-4-touch {
+ font-size: 1.5rem !important; }
+ .is-size-5-touch {
+ font-size: 1.25rem !important; }
+ .is-size-6-touch {
+ font-size: 1rem !important; }
+ .is-size-7-touch {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-size-1-desktop {
+ font-size: 3rem !important; }
+ .is-size-2-desktop {
+ font-size: 2.5rem !important; }
+ .is-size-3-desktop {
+ font-size: 2rem !important; }
+ .is-size-4-desktop {
+ font-size: 1.5rem !important; }
+ .is-size-5-desktop {
+ font-size: 1.25rem !important; }
+ .is-size-6-desktop {
+ font-size: 1rem !important; }
+ .is-size-7-desktop {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-size-1-widescreen {
+ font-size: 3rem !important; }
+ .is-size-2-widescreen {
+ font-size: 2.5rem !important; }
+ .is-size-3-widescreen {
+ font-size: 2rem !important; }
+ .is-size-4-widescreen {
+ font-size: 1.5rem !important; }
+ .is-size-5-widescreen {
+ font-size: 1.25rem !important; }
+ .is-size-6-widescreen {
+ font-size: 1rem !important; }
+ .is-size-7-widescreen {
+ font-size: 0.75rem !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-size-1-fullhd {
+ font-size: 3rem !important; }
+ .is-size-2-fullhd {
+ font-size: 2.5rem !important; }
+ .is-size-3-fullhd {
+ font-size: 2rem !important; }
+ .is-size-4-fullhd {
+ font-size: 1.5rem !important; }
+ .is-size-5-fullhd {
+ font-size: 1.25rem !important; }
+ .is-size-6-fullhd {
+ font-size: 1rem !important; }
+ .is-size-7-fullhd {
+ font-size: 0.75rem !important; } }
+
+.has-text-centered {
+ text-align: center !important; }
+
+.has-text-justified {
+ text-align: justify !important; }
+
+.has-text-left {
+ text-align: left !important; }
+
+.has-text-right {
+ text-align: right !important; }
+
+@media screen and (max-width: 768px) {
+ .has-text-centered-mobile {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-centered-tablet {
+ text-align: center !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-centered-tablet-only {
+ text-align: center !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-centered-touch {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-centered-desktop {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-centered-desktop-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-centered-widescreen {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-centered-widescreen-only {
+ text-align: center !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-centered-fullhd {
+ text-align: center !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-justified-mobile {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-justified-tablet {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-justified-tablet-only {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-justified-touch {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-justified-desktop {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-justified-desktop-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-justified-widescreen {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-justified-widescreen-only {
+ text-align: justify !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-justified-fullhd {
+ text-align: justify !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-left-mobile {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-left-tablet {
+ text-align: left !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-left-tablet-only {
+ text-align: left !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-left-touch {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-left-desktop {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-left-desktop-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-left-widescreen {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-left-widescreen-only {
+ text-align: left !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-left-fullhd {
+ text-align: left !important; } }
+
+@media screen and (max-width: 768px) {
+ .has-text-right-mobile {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px), print {
+ .has-text-right-tablet {
+ text-align: right !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .has-text-right-tablet-only {
+ text-align: right !important; } }
+
+@media screen and (max-width: 1055px) {
+ .has-text-right-touch {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) {
+ .has-text-right-desktop {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .has-text-right-desktop-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) {
+ .has-text-right-widescreen {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .has-text-right-widescreen-only {
+ text-align: right !important; } }
+
+@media screen and (min-width: 1408px) {
+ .has-text-right-fullhd {
+ text-align: right !important; } }
+
+.is-capitalized {
+ text-transform: capitalize !important; }
+
+.is-lowercase {
+ text-transform: lowercase !important; }
+
+.is-uppercase {
+ text-transform: uppercase !important; }
+
+.is-italic {
+ font-style: italic !important; }
+
+.has-text-white {
+ color: white !important; }
+
+a.has-text-white:hover, a.has-text-white:focus {
+ color: #e6e6e6 !important; }
+
+.has-background-white {
+ background-color: white !important; }
+
+.has-text-black {
+ color: #0a0a0a !important; }
+
+a.has-text-black:hover, a.has-text-black:focus {
+ color: black !important; }
+
+.has-background-black {
+ background-color: #0a0a0a !important; }
+
+.has-text-light {
+ color: whitesmoke !important; }
+
+a.has-text-light:hover, a.has-text-light:focus {
+ color: #dbdbdb !important; }
+
+.has-background-light {
+ background-color: whitesmoke !important; }
+
+.has-text-dark {
+ color: #363636 !important; }
+
+a.has-text-dark:hover, a.has-text-dark:focus {
+ color: #1c1c1c !important; }
+
+.has-background-dark {
+ background-color: #363636 !important; }
+
+.has-text-primary {
+ color: #4eb5de !important; }
+
+a.has-text-primary:hover, a.has-text-primary:focus {
+ color: #27a1d2 !important; }
+
+.has-background-primary {
+ background-color: #4eb5de !important; }
+
+.has-text-link {
+ color: #2e63b8 !important; }
+
+a.has-text-link:hover, a.has-text-link:focus {
+ color: #244d8f !important; }
+
+.has-background-link {
+ background-color: #2e63b8 !important; }
+
+.has-text-info {
+ color: #209cee !important; }
+
+a.has-text-info:hover, a.has-text-info:focus {
+ color: #1081cb !important; }
+
+.has-background-info {
+ background-color: #209cee !important; }
+
+.has-text-success {
+ color: #22c35b !important; }
+
+a.has-text-success:hover, a.has-text-success:focus {
+ color: #1a9847 !important; }
+
+.has-background-success {
+ background-color: #22c35b !important; }
+
+.has-text-warning {
+ color: #ffdd57 !important; }
+
+a.has-text-warning:hover, a.has-text-warning:focus {
+ color: #ffd324 !important; }
+
+.has-background-warning {
+ background-color: #ffdd57 !important; }
+
+.has-text-danger {
+ color: #da0b00 !important; }
+
+a.has-text-danger:hover, a.has-text-danger:focus {
+ color: #a70800 !important; }
+
+.has-background-danger {
+ background-color: #da0b00 !important; }
+
+.has-text-black-bis {
+ color: #121212 !important; }
+
+.has-background-black-bis {
+ background-color: #121212 !important; }
+
+.has-text-black-ter {
+ color: #242424 !important; }
+
+.has-background-black-ter {
+ background-color: #242424 !important; }
+
+.has-text-grey-darker {
+ color: #363636 !important; }
+
+.has-background-grey-darker {
+ background-color: #363636 !important; }
+
+.has-text-grey-dark {
+ color: #4a4a4a !important; }
+
+.has-background-grey-dark {
+ background-color: #4a4a4a !important; }
+
+.has-text-grey {
+ color: #6b6b6b !important; }
+
+.has-background-grey {
+ background-color: #6b6b6b !important; }
+
+.has-text-grey-light {
+ color: #b5b5b5 !important; }
+
+.has-background-grey-light {
+ background-color: #b5b5b5 !important; }
+
+.has-text-grey-lighter {
+ color: #dbdbdb !important; }
+
+.has-background-grey-lighter {
+ background-color: #dbdbdb !important; }
+
+.has-text-white-ter {
+ color: whitesmoke !important; }
+
+.has-background-white-ter {
+ background-color: whitesmoke !important; }
+
+.has-text-white-bis {
+ color: #fafafa !important; }
+
+.has-background-white-bis {
+ background-color: #fafafa !important; }
+
+.has-text-weight-light {
+ font-weight: 300 !important; }
+
+.has-text-weight-normal {
+ font-weight: 400 !important; }
+
+.has-text-weight-medium {
+ font-weight: 500 !important; }
+
+.has-text-weight-semibold {
+ font-weight: 600 !important; }
+
+.has-text-weight-bold {
+ font-weight: 700 !important; }
+
+.is-family-primary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-secondary {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-sans-serif {
+ font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
+
+.is-family-monospace {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-family-code {
+ font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
+
+.is-block {
+ display: block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-block-mobile {
+ display: block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-block-tablet {
+ display: block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-block-tablet-only {
+ display: block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-block-touch {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-block-desktop {
+ display: block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-block-desktop-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-block-widescreen {
+ display: block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-block-widescreen-only {
+ display: block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-block-fullhd {
+ display: block !important; } }
+
+.is-flex {
+ display: flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-flex-mobile {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-flex-tablet {
+ display: flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-flex-tablet-only {
+ display: flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-flex-touch {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-flex-desktop {
+ display: flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-flex-desktop-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-flex-widescreen {
+ display: flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-flex-widescreen-only {
+ display: flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-flex-fullhd {
+ display: flex !important; } }
+
+.is-inline {
+ display: inline !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-mobile {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-tablet {
+ display: inline !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-tablet-only {
+ display: inline !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-touch {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-desktop {
+ display: inline !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-desktop-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-widescreen {
+ display: inline !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-widescreen-only {
+ display: inline !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-fullhd {
+ display: inline !important; } }
+
+.is-inline-block {
+ display: inline-block !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-block-mobile {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-block-tablet {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-block-tablet-only {
+ display: inline-block !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-block-touch {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-block-desktop {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-block-desktop-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-block-widescreen {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-block-widescreen-only {
+ display: inline-block !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-block-fullhd {
+ display: inline-block !important; } }
+
+.is-inline-flex {
+ display: inline-flex !important; }
+
+@media screen and (max-width: 768px) {
+ .is-inline-flex-mobile {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-inline-flex-tablet {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-inline-flex-tablet-only {
+ display: inline-flex !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-inline-flex-touch {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-inline-flex-desktop {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-inline-flex-desktop-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-inline-flex-widescreen {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-inline-flex-widescreen-only {
+ display: inline-flex !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-inline-flex-fullhd {
+ display: inline-flex !important; } }
+
+.is-hidden {
+ display: none !important; }
+
+.is-sr-only {
+ border: none !important;
+ clip: rect(0, 0, 0, 0) !important;
+ height: 0.01em !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ white-space: nowrap !important;
+ width: 0.01em !important; }
+
+@media screen and (max-width: 768px) {
+ .is-hidden-mobile {
+ display: none !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-hidden-tablet {
+ display: none !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-hidden-tablet-only {
+ display: none !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-hidden-touch {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-hidden-desktop {
+ display: none !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-hidden-desktop-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-hidden-widescreen {
+ display: none !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-hidden-widescreen-only {
+ display: none !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-hidden-fullhd {
+ display: none !important; } }
+
+.is-invisible {
+ visibility: hidden !important; }
+
+@media screen and (max-width: 768px) {
+ .is-invisible-mobile {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px), print {
+ .is-invisible-tablet {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 769px) and (max-width: 1055px) {
+ .is-invisible-tablet-only {
+ visibility: hidden !important; } }
+
+@media screen and (max-width: 1055px) {
+ .is-invisible-touch {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) {
+ .is-invisible-desktop {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .is-invisible-desktop-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) {
+ .is-invisible-widescreen {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .is-invisible-widescreen-only {
+ visibility: hidden !important; } }
+
+@media screen and (min-width: 1408px) {
+ .is-invisible-fullhd {
+ visibility: hidden !important; } }
+
+.is-marginless {
+ margin: 0 !important; }
+
+.is-paddingless {
+ padding: 0 !important; }
+
+.is-radiusless {
+ border-radius: 0 !important; }
+
+.is-shadowless {
+ box-shadow: none !important; }
+
+.is-relative {
+ position: relative !important; }
+
+.box {
+ background-color: white;
+ border-radius: 6px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ display: block;
+ padding: 1.25rem; }
+
+a.box:hover, a.box:focus {
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; }
+
+a.box:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; }
+
+.button {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-width: 1px;
+ color: #363636;
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.375em - 1px);
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ padding-top: calc(0.375em - 1px);
+ text-align: center;
+ white-space: nowrap; }
+ .button strong {
+ color: inherit; }
+ .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large {
+ height: 1.5em;
+ width: 1.5em; }
+ .button .icon:first-child:not(:last-child) {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: 0.1875em; }
+ .button .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: calc(-0.375em - 1px); }
+ .button .icon:first-child:last-child {
+ margin-left: calc(-0.375em - 1px);
+ margin-right: calc(-0.375em - 1px); }
+ .button:hover, .button.is-hovered {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .button:focus, .button.is-focused {
+ border-color: #3c5dcd;
+ color: #363636; }
+ .button:focus:not(:active), .button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button:active, .button.is-active {
+ border-color: #4a4a4a;
+ color: #363636; }
+ .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ color: #222222;
+ text-decoration: underline; }
+ .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused {
+ background-color: whitesmoke;
+ color: #222222; }
+ .button.is-text:active, .button.is-text.is-active {
+ background-color: #e8e8e8;
+ color: #222222; }
+ .button.is-text[disabled], fieldset[disabled] .button.is-text {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:hover, .button.is-white.is-hovered {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus, .button.is-white.is-focused {
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .button.is-white:active, .button.is-white.is-active {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .button.is-white[disabled], fieldset[disabled] .button.is-white {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered {
+ background-color: black; }
+ .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .button.is-white.is-outlined.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ color: white; }
+ .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:hover, .button.is-black.is-hovered {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus, .button.is-black.is-focused {
+ border-color: transparent;
+ color: white; }
+ .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .button.is-black:active, .button.is-black.is-active {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .button.is-black[disabled], fieldset[disabled] .button.is-black {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-black.is-inverted {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted {
+ background-color: white;
+ border-color: transparent;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-loading::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ color: #0a0a0a; }
+ .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .button.is-black.is-outlined.is-loading::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent white white !important; }
+ .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined {
+ background-color: transparent;
+ border-color: #0a0a0a;
+ box-shadow: none;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ color: white; }
+ .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused {
+ background-color: white;
+ color: #0a0a0a; }
+ .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #0a0a0a #0a0a0a !important; }
+ .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: white;
+ box-shadow: none;
+ color: white; }
+ .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:hover, .button.is-light.is-hovered {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus, .button.is-light.is-focused {
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .button.is-light:active, .button.is-light.is-active {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .button.is-light[disabled], fieldset[disabled] .button.is-light {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-light.is-inverted {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered {
+ background-color: #292929; }
+ .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .button.is-light.is-outlined.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused {
+ background-color: #363636;
+ color: whitesmoke; }
+ .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark, .content kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused {
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button {
+ background-color: #363636;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-dark.is-inverted, .content kbd.button.is-inverted {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered {
+ background-color: #e8e8e8; }
+ .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted {
+ background-color: whitesmoke;
+ border-color: transparent;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-loading::after, .content kbd.button.is-loading::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined, .content kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ color: #363636; }
+ .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent whitesmoke whitesmoke !important; }
+ .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined {
+ background-color: transparent;
+ border-color: #363636;
+ box-shadow: none;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ color: whitesmoke; }
+ .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused {
+ background-color: whitesmoke;
+ color: #363636; }
+ .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #363636 #363636 !important; }
+ .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: whitesmoke; }
+ .button.is-primary, .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
+ background-color: #f2f2f2; }
+ .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ color: #4eb5de; }
+ .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #4eb5de;
+ box-shadow: none;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
+ background-color: #fff;
+ color: #4eb5de; }
+ .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
+ border-color: transparent transparent #4eb5de #4eb5de !important; }
+ .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:hover, .button.is-link.is-hovered {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus, .button.is-link.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .button.is-link:active, .button.is-link.is-active {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-link[disabled], fieldset[disabled] .button.is-link {
+ background-color: #2e63b8;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-link.is-inverted {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ color: #2e63b8; }
+ .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .button.is-link.is-outlined.is-loading::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined {
+ background-color: transparent;
+ border-color: #2e63b8;
+ box-shadow: none;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #2e63b8; }
+ .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #2e63b8 #2e63b8 !important; }
+ .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:hover, .button.is-info.is-hovered {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus, .button.is-info.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .button.is-info:active, .button.is-info.is-active {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-info[disabled], fieldset[disabled] .button.is-info {
+ background-color: #209cee;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-info.is-inverted {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ color: #209cee; }
+ .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .button.is-info.is-outlined.is-loading::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined {
+ background-color: transparent;
+ border-color: #209cee;
+ box-shadow: none;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #209cee; }
+ .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #209cee #209cee !important; }
+ .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:hover, .button.is-success.is-hovered {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus, .button.is-success.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .button.is-success:active, .button.is-success.is-active {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-success[disabled], fieldset[disabled] .button.is-success {
+ background-color: #22c35b;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-success.is-inverted {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ color: #22c35b; }
+ .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .button.is-success.is-outlined.is-loading::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined {
+ background-color: transparent;
+ border-color: #22c35b;
+ box-shadow: none;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #22c35b; }
+ .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #22c35b #22c35b !important; }
+ .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:hover, .button.is-warning.is-hovered {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus, .button.is-warning.is-focused {
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .button.is-warning:active, .button.is-warning.is-active {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning[disabled], fieldset[disabled] .button.is-warning {
+ background-color: #ffdd57;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered {
+ background-color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: transparent;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-loading::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ color: #ffdd57; }
+ .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-outlined.is-loading::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
+ .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined {
+ background-color: transparent;
+ border-color: #ffdd57;
+ box-shadow: none;
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused {
+ background-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #ffdd57 #ffdd57 !important; }
+ .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.7);
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7); }
+ .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:hover, .button.is-danger.is-hovered {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus, .button.is-danger.is-focused {
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .button.is-danger:active, .button.is-danger.is-active {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .button.is-danger[disabled], fieldset[disabled] .button.is-danger {
+ background-color: #da0b00;
+ border-color: transparent;
+ box-shadow: none; }
+ .button.is-danger.is-inverted {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered {
+ background-color: #f2f2f2; }
+ .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted {
+ background-color: #fff;
+ border-color: transparent;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-loading::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ color: #da0b00; }
+ .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .button.is-danger.is-outlined.is-loading::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #fff #fff !important; }
+ .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined {
+ background-color: transparent;
+ border-color: #da0b00;
+ box-shadow: none;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ color: #fff; }
+ .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused {
+ background-color: #fff;
+ color: #da0b00; }
+ .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
+ border-color: transparent transparent #da0b00 #da0b00 !important; }
+ .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
+ background-color: transparent;
+ border-color: #fff;
+ box-shadow: none;
+ color: #fff; }
+ .button.is-small, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .button.is-normal {
+ font-size: 1rem; }
+ .button.is-medium {
+ font-size: 1.25rem; }
+ .button.is-large {
+ font-size: 1.5rem; }
+ .button[disabled], fieldset[disabled] .button {
+ background-color: white;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ opacity: 0.5; }
+ .button.is-fullwidth {
+ display: flex;
+ width: 100%; }
+ .button.is-loading {
+ color: transparent !important;
+ pointer-events: none; }
+ .button.is-loading::after {
+ position: absolute;
+ left: calc(50% - (1em / 2));
+ top: calc(50% - (1em / 2));
+ position: absolute !important; }
+ .button.is-static {
+ background-color: whitesmoke;
+ border-color: #dbdbdb;
+ color: #6b6b6b;
+ box-shadow: none;
+ pointer-events: none; }
+ .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .buttons .button {
+ margin-bottom: 0.5rem; }
+ .buttons .button:not(:last-child):not(.is-fullwidth) {
+ margin-right: 0.5rem; }
+ .buttons:last-child {
+ margin-bottom: -0.5rem; }
+ .buttons:not(:last-child) {
+ margin-bottom: 1rem; }
+ .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
+ font-size: 1.25rem; }
+ .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
+ font-size: 1.5rem; }
+ .buttons.has-addons .button:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .buttons.has-addons .button:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ margin-right: -1px; }
+ .buttons.has-addons .button:last-child {
+ margin-right: 0; }
+ .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
+ z-index: 2; }
+ .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
+ z-index: 3; }
+ .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
+ z-index: 4; }
+ .buttons.has-addons .button.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .buttons.is-centered {
+ justify-content: center; }
+ .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+ .buttons.is-right {
+ justify-content: flex-end; }
+ .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+
+.container {
+ flex-grow: 1;
+ margin: 0 auto;
+ position: relative;
+ width: auto; }
+ @media screen and (min-width: 1056px) {
+ .container {
+ max-width: 992px; }
+ .container.is-fluid {
+ margin-left: 32px;
+ margin-right: 32px;
+ max-width: none; } }
+ @media screen and (max-width: 1215px) {
+ .container.is-widescreen {
+ max-width: 1152px; } }
+ @media screen and (max-width: 1407px) {
+ .container.is-fullhd {
+ max-width: 1344px; } }
+ @media screen and (min-width: 1216px) {
+ .container {
+ max-width: 1152px; } }
+ @media screen and (min-width: 1408px) {
+ .container {
+ max-width: 1344px; } }
+.content li + li {
+ margin-top: 0.25em; }
+
+.content p:not(:last-child),
+.content dl:not(:last-child),
+.content ol:not(:last-child),
+.content ul:not(:last-child),
+.content blockquote:not(:last-child),
+.content pre:not(:last-child),
+.content table:not(:last-child) {
+ margin-bottom: 1em; }
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ color: #222222;
+ font-weight: 600;
+ line-height: 1.125; }
+
+.content h1 {
+ font-size: 2em;
+ margin-bottom: 0.5em; }
+ .content h1:not(:first-child) {
+ margin-top: 1em; }
+
+.content h2 {
+ font-size: 1.75em;
+ margin-bottom: 0.5714em; }
+ .content h2:not(:first-child) {
+ margin-top: 1.1428em; }
+
+.content h3 {
+ font-size: 1.5em;
+ margin-bottom: 0.6666em; }
+ .content h3:not(:first-child) {
+ margin-top: 1.3333em; }
+
+.content h4 {
+ font-size: 1.25em;
+ margin-bottom: 0.8em; }
+
+.content h5 {
+ font-size: 1.125em;
+ margin-bottom: 0.8888em; }
+
+.content h6 {
+ font-size: 1em;
+ margin-bottom: 1em; }
+
+.content blockquote {
+ background-color: whitesmoke;
+ border-left: 5px solid #dbdbdb;
+ padding: 1.25em 1.5em; }
+
+.content ol {
+ list-style-position: outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ol:not([type]) {
+ list-style-type: decimal; }
+ .content ol.is-lower-alpha:not([type]) {
+ list-style-type: lower-alpha; }
+ .content ol.is-lower-roman:not([type]) {
+ list-style-type: lower-roman; }
+ .content ol.is-upper-alpha:not([type]) {
+ list-style-type: upper-alpha; }
+ .content ol.is-upper-roman:not([type]) {
+ list-style-type: upper-roman; }
+
+.content ul {
+ list-style: disc outside;
+ margin-left: 2em;
+ margin-top: 1em; }
+ .content ul ul {
+ list-style-type: circle;
+ margin-top: 0.5em; }
+ .content ul ul ul {
+ list-style-type: square; }
+
+.content dd {
+ margin-left: 2em; }
+
+.content figure {
+ margin-left: 2em;
+ margin-right: 2em;
+ text-align: center; }
+ .content figure:not(:first-child) {
+ margin-top: 2em; }
+ .content figure:not(:last-child) {
+ margin-bottom: 2em; }
+ .content figure img {
+ display: inline-block; }
+ .content figure figcaption {
+ font-style: italic; }
+
+.content pre {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: auto;
+ padding: 0;
+ white-space: pre;
+ word-wrap: normal; }
+
+.content sup,
+.content sub {
+ font-size: 75%; }
+
+.content table {
+ width: 100%; }
+ .content table td,
+ .content table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .content table th {
+ color: #222222; }
+ .content table th:not([align]) {
+ text-align: left; }
+ .content table thead td,
+ .content table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .content table tfoot td,
+ .content table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .content table tbody tr:last-child td,
+ .content table tbody tr:last-child th {
+ border-bottom-width: 0; }
+
+.content .tabs li + li {
+ margin-top: 0; }
+
+.content.is-small, #documenter .docs-sidebar form.docs-search > input.content {
+ font-size: 0.75rem; }
+
+.content.is-medium {
+ font-size: 1.25rem; }
+
+.content.is-large {
+ font-size: 1.5rem; }
+
+.icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem; }
+ .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon {
+ height: 1rem;
+ width: 1rem; }
+ .icon.is-medium {
+ height: 2rem;
+ width: 2rem; }
+ .icon.is-large {
+ height: 3rem;
+ width: 3rem; }
+
+.image, #documenter .docs-sidebar .docs-logo > img {
+ display: block;
+ position: relative; }
+ .image img, #documenter .docs-sidebar .docs-logo > img img {
+ display: block;
+ height: auto;
+ width: 100%; }
+ .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded {
+ border-radius: 290486px; }
+ .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
+ .image.is-square .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
+ .image.is-1by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
+ .image.is-5by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
+ .image.is-4by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
+ .image.is-3by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
+ .image.is-5by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
+ .image.is-16by9 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
+ .image.is-2by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
+ .image.is-3by1 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
+ .image.is-4by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
+ .image.is-3by4 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
+ .image.is-2by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
+ .image.is-3by5 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
+ .image.is-9by16 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
+ .image.is-1by2 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
+ .image.is-1by3 .has-ratio,
+ #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
+ height: 100%;
+ width: 100%; }
+ .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 {
+ padding-top: 100%; }
+ .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 {
+ padding-top: 80%; }
+ .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 {
+ padding-top: 75%; }
+ .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 {
+ padding-top: 66.6666%; }
+ .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 {
+ padding-top: 60%; }
+ .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 {
+ padding-top: 56.25%; }
+ .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 {
+ padding-top: 50%; }
+ .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 {
+ padding-top: 33.3333%; }
+ .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 {
+ padding-top: 125%; }
+ .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 {
+ padding-top: 133.3333%; }
+ .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 {
+ padding-top: 150%; }
+ .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 {
+ padding-top: 166.6666%; }
+ .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 {
+ padding-top: 177.7777%; }
+ .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 {
+ padding-top: 200%; }
+ .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 {
+ padding-top: 300%; }
+ .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 {
+ height: 16px;
+ width: 16px; }
+ .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 {
+ height: 24px;
+ width: 24px; }
+ .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 {
+ height: 32px;
+ width: 32px; }
+ .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 {
+ height: 48px;
+ width: 48px; }
+ .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 {
+ height: 64px;
+ width: 64px; }
+ .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 {
+ height: 96px;
+ width: 96px; }
+ .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 {
+ height: 128px;
+ width: 128px; }
+
+.notification {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ position: relative; }
+ .notification a:not(.button):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .notification strong {
+ color: currentColor; }
+ .notification code,
+ .notification pre {
+ background: white; }
+ .notification pre code {
+ background: transparent; }
+ .notification > .delete {
+ position: absolute;
+ right: 0.5rem;
+ top: 0.5rem; }
+ .notification .title,
+ .notification .subtitle,
+ .notification .content {
+ color: currentColor; }
+ .notification.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .notification.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .notification.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .notification.is-dark, .content kbd.notification {
+ background-color: #363636;
+ color: whitesmoke; }
+ .notification.is-primary, .docstring > section > a.notification.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .notification.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .notification.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .notification.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .notification.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .notification.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+
+.progress {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ border: none;
+ border-radius: 290486px;
+ display: block;
+ height: 1rem;
+ overflow: hidden;
+ padding: 0;
+ width: 100%; }
+ .progress::-webkit-progress-bar {
+ background-color: #dbdbdb; }
+ .progress::-webkit-progress-value {
+ background-color: #222222; }
+ .progress::-moz-progress-bar {
+ background-color: #222222; }
+ .progress::-ms-fill {
+ background-color: #222222;
+ border: none; }
+ .progress.is-white::-webkit-progress-value {
+ background-color: white; }
+ .progress.is-white::-moz-progress-bar {
+ background-color: white; }
+ .progress.is-white::-ms-fill {
+ background-color: white; }
+ .progress.is-white:indeterminate {
+ background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }
+ .progress.is-black::-webkit-progress-value {
+ background-color: #0a0a0a; }
+ .progress.is-black::-moz-progress-bar {
+ background-color: #0a0a0a; }
+ .progress.is-black::-ms-fill {
+ background-color: #0a0a0a; }
+ .progress.is-black:indeterminate {
+ background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }
+ .progress.is-light::-webkit-progress-value {
+ background-color: whitesmoke; }
+ .progress.is-light::-moz-progress-bar {
+ background-color: whitesmoke; }
+ .progress.is-light::-ms-fill {
+ background-color: whitesmoke; }
+ .progress.is-light:indeterminate {
+ background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }
+ .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value {
+ background-color: #363636; }
+ .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar {
+ background-color: #363636; }
+ .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill {
+ background-color: #363636; }
+ .progress.is-dark:indeterminate, .content kbd.progress:indeterminate {
+ background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }
+ .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
+ background-color: #4eb5de; }
+ .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
+ background-color: #4eb5de; }
+ .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill {
+ background-color: #4eb5de; }
+ .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate {
+ background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); }
+ .progress.is-link::-webkit-progress-value {
+ background-color: #2e63b8; }
+ .progress.is-link::-moz-progress-bar {
+ background-color: #2e63b8; }
+ .progress.is-link::-ms-fill {
+ background-color: #2e63b8; }
+ .progress.is-link:indeterminate {
+ background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); }
+ .progress.is-info::-webkit-progress-value {
+ background-color: #209cee; }
+ .progress.is-info::-moz-progress-bar {
+ background-color: #209cee; }
+ .progress.is-info::-ms-fill {
+ background-color: #209cee; }
+ .progress.is-info:indeterminate {
+ background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); }
+ .progress.is-success::-webkit-progress-value {
+ background-color: #22c35b; }
+ .progress.is-success::-moz-progress-bar {
+ background-color: #22c35b; }
+ .progress.is-success::-ms-fill {
+ background-color: #22c35b; }
+ .progress.is-success:indeterminate {
+ background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); }
+ .progress.is-warning::-webkit-progress-value {
+ background-color: #ffdd57; }
+ .progress.is-warning::-moz-progress-bar {
+ background-color: #ffdd57; }
+ .progress.is-warning::-ms-fill {
+ background-color: #ffdd57; }
+ .progress.is-warning:indeterminate {
+ background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }
+ .progress.is-danger::-webkit-progress-value {
+ background-color: #da0b00; }
+ .progress.is-danger::-moz-progress-bar {
+ background-color: #da0b00; }
+ .progress.is-danger::-ms-fill {
+ background-color: #da0b00; }
+ .progress.is-danger:indeterminate {
+ background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); }
+ .progress:indeterminate {
+ animation-duration: 1.5s;
+ animation-iteration-count: infinite;
+ animation-name: moveIndeterminate;
+ animation-timing-function: linear;
+ background-color: #dbdbdb;
+ background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%);
+ background-position: top left;
+ background-repeat: no-repeat;
+ background-size: 150% 150%; }
+ .progress:indeterminate::-webkit-progress-bar {
+ background-color: transparent; }
+ .progress:indeterminate::-moz-progress-bar {
+ background-color: transparent; }
+ .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress {
+ height: 0.75rem; }
+ .progress.is-medium {
+ height: 1.25rem; }
+ .progress.is-large {
+ height: 1.5rem; }
+
+@keyframes moveIndeterminate {
+ from {
+ background-position: 200% 0; }
+ to {
+ background-position: -200% 0; } }
+
+.table {
+ background-color: white;
+ color: #363636; }
+ .table td,
+ .table th {
+ border: 1px solid #dbdbdb;
+ border-width: 0 0 1px;
+ padding: 0.5em 0.75em;
+ vertical-align: top; }
+ .table td.is-white,
+ .table th.is-white {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .table td.is-black,
+ .table th.is-black {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .table td.is-light,
+ .table th.is-light {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .table td.is-dark,
+ .table th.is-dark {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .table td.is-primary,
+ .table th.is-primary {
+ background-color: #4eb5de;
+ border-color: #4eb5de;
+ color: #fff; }
+ .table td.is-link,
+ .table th.is-link {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+ .table td.is-info,
+ .table th.is-info {
+ background-color: #209cee;
+ border-color: #209cee;
+ color: #fff; }
+ .table td.is-success,
+ .table th.is-success {
+ background-color: #22c35b;
+ border-color: #22c35b;
+ color: #fff; }
+ .table td.is-warning,
+ .table th.is-warning {
+ background-color: #ffdd57;
+ border-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .table td.is-danger,
+ .table th.is-danger {
+ background-color: #da0b00;
+ border-color: #da0b00;
+ color: #fff; }
+ .table td.is-narrow,
+ .table th.is-narrow {
+ white-space: nowrap;
+ width: 1%; }
+ .table td.is-selected,
+ .table th.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table td.is-selected a,
+ .table td.is-selected strong,
+ .table th.is-selected a,
+ .table th.is-selected strong {
+ color: currentColor; }
+ .table th {
+ color: #222222; }
+ .table th:not([align]) {
+ text-align: left; }
+ .table tr.is-selected {
+ background-color: #4eb5de;
+ color: #fff; }
+ .table tr.is-selected a,
+ .table tr.is-selected strong {
+ color: currentColor; }
+ .table tr.is-selected td,
+ .table tr.is-selected th {
+ border-color: #fff;
+ color: currentColor; }
+ .table thead {
+ background-color: transparent; }
+ .table thead td,
+ .table thead th {
+ border-width: 0 0 2px;
+ color: #222222; }
+ .table tfoot {
+ background-color: transparent; }
+ .table tfoot td,
+ .table tfoot th {
+ border-width: 2px 0 0;
+ color: #222222; }
+ .table tbody {
+ background-color: transparent; }
+ .table tbody tr:last-child td,
+ .table tbody tr:last-child th {
+ border-bottom-width: 0; }
+ .table.is-bordered td,
+ .table.is-bordered th {
+ border-width: 1px; }
+ .table.is-bordered tr:last-child td,
+ .table.is-bordered tr:last-child th {
+ border-bottom-width: 1px; }
+ .table.is-fullwidth {
+ width: 100%; }
+ .table.is-hoverable tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
+ background-color: #fafafa; }
+ .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
+ background-color: whitesmoke; }
+ .table.is-narrow td,
+ .table.is-narrow th {
+ padding: 0.25em 0.5em; }
+ .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
+ background-color: #fafafa; }
+
+.table-container {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ overflow-y: hidden;
+ max-width: 100%; }
+
+.tags {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink {
+ margin-bottom: 0.5rem; }
+ .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0.5rem; }
+ .tags:last-child {
+ margin-bottom: -0.5rem; }
+ .tags:not(:last-child) {
+ margin-bottom: 1rem; }
+ .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
+ font-size: 1rem; }
+ .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
+ font-size: 1.25rem; }
+ .tags.is-centered {
+ justify-content: center; }
+ .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink {
+ margin-right: 0.25rem;
+ margin-left: 0.25rem; }
+ .tags.is-right {
+ justify-content: flex-end; }
+ .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0.5rem; }
+ .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
+ margin-right: 0; }
+ .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink {
+ margin-right: 0; }
+ .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
+ margin-left: 0;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 4px;
+ color: #222222;
+ display: inline-flex;
+ font-size: 0.75rem;
+ height: 2em;
+ justify-content: center;
+ line-height: 1.5;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+ .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete {
+ margin-left: 0.25rem;
+ margin-right: -0.375rem; }
+ .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) {
+ background-color: white;
+ color: #0a0a0a; }
+ .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) {
+ background-color: #0a0a0a;
+ color: white; }
+ .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) {
+ background-color: whitesmoke;
+ color: #363636; }
+ .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) {
+ background-color: #363636;
+ color: whitesmoke; }
+ .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) {
+ background-color: #4eb5de;
+ color: #fff; }
+ .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) {
+ background-color: #2e63b8;
+ color: #fff; }
+ .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) {
+ background-color: #209cee;
+ color: #fff; }
+ .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) {
+ background-color: #22c35b;
+ color: #fff; }
+ .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) {
+ background-color: #da0b00;
+ color: #fff; }
+ .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) {
+ font-size: 0.75rem; }
+ .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) {
+ font-size: 1rem; }
+ .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) {
+ font-size: 1.25rem; }
+ .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
+ margin-left: -0.375em;
+ margin-right: 0.1875em; }
+ .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
+ margin-left: 0.1875em;
+ margin-right: -0.375em; }
+ .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
+ margin-left: -0.375em;
+ margin-right: -0.375em; }
+ .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) {
+ margin-left: 1px;
+ padding: 0;
+ position: relative;
+ width: 2em; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ background-color: currentColor;
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center; }
+ .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
+ height: 1px;
+ width: 50%; }
+ .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
+ height: 50%;
+ width: 1px; }
+ .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
+ background-color: #e8e8e8; }
+ .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
+ background-color: #dbdbdb; }
+ .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
+ border-radius: 290486px; }
+
+a.tag:hover, .docstring > section > a.docs-sourcelink:hover {
+ text-decoration: underline; }
+
+.title,
+.subtitle {
+ word-break: break-word; }
+ .title em,
+ .title span,
+ .subtitle em,
+ .subtitle span {
+ font-weight: inherit; }
+ .title sub,
+ .subtitle sub {
+ font-size: 0.75em; }
+ .title sup,
+ .subtitle sup {
+ font-size: 0.75em; }
+ .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink,
+ .subtitle .tag,
+ .subtitle .content kbd,
+ .content .subtitle kbd,
+ .subtitle .docstring > section > a.docs-sourcelink {
+ vertical-align: middle; }
+
+.title {
+ color: #363636;
+ font-size: 2rem;
+ font-weight: 600;
+ line-height: 1.125; }
+ .title strong {
+ color: inherit;
+ font-weight: inherit; }
+ .title + .highlight {
+ margin-top: -0.75rem; }
+ .title:not(.is-spaced) + .subtitle {
+ margin-top: -1.25rem; }
+ .title.is-1 {
+ font-size: 3rem; }
+ .title.is-2 {
+ font-size: 2.5rem; }
+ .title.is-3 {
+ font-size: 2rem; }
+ .title.is-4 {
+ font-size: 1.5rem; }
+ .title.is-5 {
+ font-size: 1.25rem; }
+ .title.is-6 {
+ font-size: 1rem; }
+ .title.is-7 {
+ font-size: 0.75rem; }
+
+.subtitle {
+ color: #4a4a4a;
+ font-size: 1.25rem;
+ font-weight: 400;
+ line-height: 1.25; }
+ .subtitle strong {
+ color: #363636;
+ font-weight: 600; }
+ .subtitle:not(.is-spaced) + .title {
+ margin-top: -1.25rem; }
+ .subtitle.is-1 {
+ font-size: 3rem; }
+ .subtitle.is-2 {
+ font-size: 2.5rem; }
+ .subtitle.is-3 {
+ font-size: 2rem; }
+ .subtitle.is-4 {
+ font-size: 1.5rem; }
+ .subtitle.is-5 {
+ font-size: 1.25rem; }
+ .subtitle.is-6 {
+ font-size: 1rem; }
+ .subtitle.is-7 {
+ font-size: 0.75rem; }
+
+.heading {
+ display: block;
+ font-size: 11px;
+ letter-spacing: 1px;
+ margin-bottom: 5px;
+ text-transform: uppercase; }
+
+.highlight {
+ font-weight: 400;
+ max-width: 100%;
+ overflow: hidden;
+ padding: 0; }
+ .highlight pre {
+ overflow: auto;
+ max-width: 100%; }
+
+.number {
+ align-items: center;
+ background-color: whitesmoke;
+ border-radius: 290486px;
+ display: inline-flex;
+ font-size: 1.25rem;
+ height: 2em;
+ justify-content: center;
+ margin-right: 1.5rem;
+ min-width: 2.5em;
+ padding: 0.25rem 0.5rem;
+ text-align: center;
+ vertical-align: top; }
+
+.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ color: #363636; }
+ .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
+ color: rgba(54, 54, 54, 0.3); }
+ .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered {
+ border-color: #b5b5b5; }
+ .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ border-color: #2e63b8;
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ box-shadow: none;
+ color: #6b6b6b; }
+ .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+ .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder {
+ color: rgba(107, 107, 107, 0.3); }
+
+.textarea, .input, #documenter .docs-sidebar form.docs-search > input {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ max-width: 100%;
+ width: 100%; }
+ .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] {
+ box-shadow: none; }
+ .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white {
+ border-color: white; }
+ .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black {
+ border-color: #0a0a0a; }
+ .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light {
+ border-color: whitesmoke; }
+ .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input {
+ border-color: #363636; }
+ .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink {
+ border-color: #4eb5de; }
+ .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link {
+ border-color: #2e63b8; }
+ .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info {
+ border-color: #209cee; }
+ .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success {
+ border-color: #22c35b; }
+ .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning {
+ border-color: #ffdd57; }
+ .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger {
+ border-color: #da0b00; }
+ .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium {
+ font-size: 1.25rem; }
+ .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large {
+ font-size: 1.5rem; }
+ .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
+ display: block;
+ width: 100%; }
+ .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline {
+ display: inline;
+ width: auto; }
+
+.input.is-rounded, #documenter .docs-sidebar form.docs-search > input {
+ border-radius: 290486px;
+ padding-left: 1em;
+ padding-right: 1em; }
+
+.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static {
+ background-color: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ padding-left: 0;
+ padding-right: 0; }
+
+.textarea {
+ display: block;
+ max-width: 100%;
+ min-width: 100%;
+ padding: 0.625em;
+ resize: vertical; }
+ .textarea:not([rows]) {
+ max-height: 600px;
+ min-height: 120px; }
+ .textarea[rows] {
+ height: initial; }
+ .textarea.has-fixed-size {
+ resize: none; }
+
+.radio, .checkbox {
+ cursor: pointer;
+ display: inline-block;
+ line-height: 1.25;
+ position: relative; }
+ .radio input, .checkbox input {
+ cursor: pointer; }
+ .radio:hover, .checkbox:hover {
+ color: #363636; }
+ .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox {
+ color: #6b6b6b;
+ cursor: not-allowed; }
+
+.radio + .radio {
+ margin-left: 0.5em; }
+
+.select {
+ display: inline-block;
+ max-width: 100%;
+ position: relative;
+ vertical-align: top; }
+ .select:not(.is-multiple) {
+ height: 2.25em; }
+ .select:not(.is-multiple):not(.is-loading)::after {
+ border-color: #2e63b8;
+ right: 1.125em;
+ z-index: 4; }
+ .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select {
+ border-radius: 290486px;
+ padding-left: 1em; }
+ .select select {
+ cursor: pointer;
+ display: block;
+ font-size: 1em;
+ max-width: 100%;
+ outline: none; }
+ .select select::-ms-expand {
+ display: none; }
+ .select select[disabled]:hover, fieldset[disabled] .select select:hover {
+ border-color: whitesmoke; }
+ .select select:not([multiple]) {
+ padding-right: 2.5em; }
+ .select select[multiple] {
+ height: auto;
+ padding: 0; }
+ .select select[multiple] option {
+ padding: 0.5em 1em; }
+ .select:not(.is-multiple):not(.is-loading):hover::after {
+ border-color: #363636; }
+ .select.is-white:not(:hover)::after {
+ border-color: white; }
+ .select.is-white select {
+ border-color: white; }
+ .select.is-white select:hover, .select.is-white select.is-hovered {
+ border-color: #f2f2f2; }
+ .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
+ .select.is-black:not(:hover)::after {
+ border-color: #0a0a0a; }
+ .select.is-black select {
+ border-color: #0a0a0a; }
+ .select.is-black select:hover, .select.is-black select.is-hovered {
+ border-color: black; }
+ .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
+ .select.is-light:not(:hover)::after {
+ border-color: whitesmoke; }
+ .select.is-light select {
+ border-color: whitesmoke; }
+ .select.is-light select:hover, .select.is-light select.is-hovered {
+ border-color: #e8e8e8; }
+ .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
+ .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after {
+ border-color: #363636; }
+ .select.is-dark select, .content kbd.select select {
+ border-color: #363636; }
+ .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered {
+ border-color: #292929; }
+ .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
+ .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
+ border-color: #4eb5de; }
+ .select.is-primary select, .docstring > section > a.select.docs-sourcelink select {
+ border-color: #4eb5de; }
+ .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered {
+ border-color: #39acda; }
+ .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
+ .select.is-link:not(:hover)::after {
+ border-color: #2e63b8; }
+ .select.is-link select {
+ border-color: #2e63b8; }
+ .select.is-link select:hover, .select.is-link select.is-hovered {
+ border-color: #2958a4; }
+ .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
+ .select.is-info:not(:hover)::after {
+ border-color: #209cee; }
+ .select.is-info select {
+ border-color: #209cee; }
+ .select.is-info select:hover, .select.is-info select.is-hovered {
+ border-color: #1190e3; }
+ .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
+ .select.is-success:not(:hover)::after {
+ border-color: #22c35b; }
+ .select.is-success select {
+ border-color: #22c35b; }
+ .select.is-success select:hover, .select.is-success select.is-hovered {
+ border-color: #1ead51; }
+ .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
+ .select.is-warning:not(:hover)::after {
+ border-color: #ffdd57; }
+ .select.is-warning select {
+ border-color: #ffdd57; }
+ .select.is-warning select:hover, .select.is-warning select.is-hovered {
+ border-color: #ffd83e; }
+ .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
+ .select.is-danger:not(:hover)::after {
+ border-color: #da0b00; }
+ .select.is-danger select {
+ border-color: #da0b00; }
+ .select.is-danger select:hover, .select.is-danger select.is-hovered {
+ border-color: #c10a00; }
+ .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active {
+ box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
+ .select.is-small, #documenter .docs-sidebar form.docs-search > input.select {
+ border-radius: 2px;
+ font-size: 0.75rem; }
+ .select.is-medium {
+ font-size: 1.25rem; }
+ .select.is-large {
+ font-size: 1.5rem; }
+ .select.is-disabled::after {
+ border-color: #6b6b6b; }
+ .select.is-fullwidth {
+ width: 100%; }
+ .select.is-fullwidth select {
+ width: 100%; }
+ .select.is-loading::after {
+ margin-top: 0;
+ position: absolute;
+ right: 0.625em;
+ top: 0.625em;
+ transform: none; }
+ .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .select.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .select.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.file {
+ align-items: stretch;
+ display: flex;
+ justify-content: flex-start;
+ position: relative; }
+ .file.is-white .file-cta {
+ background-color: white;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta {
+ background-color: #f9f9f9;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
+ color: #0a0a0a; }
+ .file.is-white:active .file-cta, .file.is-white.is-active .file-cta {
+ background-color: #f2f2f2;
+ border-color: transparent;
+ color: #0a0a0a; }
+ .file.is-black .file-cta {
+ background-color: #0a0a0a;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta {
+ background-color: #040404;
+ border-color: transparent;
+ color: white; }
+ .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
+ color: white; }
+ .file.is-black:active .file-cta, .file.is-black.is-active .file-cta {
+ background-color: black;
+ border-color: transparent;
+ color: white; }
+ .file.is-light .file-cta {
+ background-color: whitesmoke;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta {
+ background-color: #eeeeee;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
+ color: #363636; }
+ .file.is-light:active .file-cta, .file.is-light.is-active .file-cta {
+ background-color: #e8e8e8;
+ border-color: transparent;
+ color: #363636; }
+ .file.is-dark .file-cta, .content kbd.file .file-cta {
+ background-color: #363636;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta {
+ background-color: #2f2f2f;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
+ color: whitesmoke; }
+ .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta {
+ background-color: #292929;
+ border-color: transparent;
+ color: whitesmoke; }
+ .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta {
+ background-color: #4eb5de;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
+ background-color: #43b1dc;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25);
+ color: #fff; }
+ .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
+ background-color: #39acda;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link .file-cta {
+ background-color: #2e63b8;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta {
+ background-color: #2b5eae;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25);
+ color: #fff; }
+ .file.is-link:active .file-cta, .file.is-link.is-active .file-cta {
+ background-color: #2958a4;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info .file-cta {
+ background-color: #209cee;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta {
+ background-color: #1497ed;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25);
+ color: #fff; }
+ .file.is-info:active .file-cta, .file.is-info.is-active .file-cta {
+ background-color: #1190e3;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success .file-cta {
+ background-color: #22c35b;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta {
+ background-color: #20b856;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25);
+ color: #fff; }
+ .file.is-success:active .file-cta, .file.is-success.is-active .file-cta {
+ background-color: #1ead51;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-warning .file-cta {
+ background-color: #ffdd57;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta {
+ background-color: #ffda4a;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta {
+ background-color: #ffd83e;
+ border-color: transparent;
+ color: rgba(0, 0, 0, 0.7); }
+ .file.is-danger .file-cta {
+ background-color: #da0b00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta {
+ background-color: #cd0a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta {
+ border-color: transparent;
+ box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25);
+ color: #fff; }
+ .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta {
+ background-color: #c10a00;
+ border-color: transparent;
+ color: #fff; }
+ .file.is-small, #documenter .docs-sidebar form.docs-search > input.file {
+ font-size: 0.75rem; }
+ .file.is-medium {
+ font-size: 1.25rem; }
+ .file.is-medium .file-icon .fa {
+ font-size: 21px; }
+ .file.is-large {
+ font-size: 1.5rem; }
+ .file.is-large .file-icon .fa {
+ font-size: 28px; }
+ .file.has-name .file-cta {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .file.has-name .file-name {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .file.has-name.is-empty .file-cta {
+ border-radius: 4px; }
+ .file.has-name.is-empty .file-name {
+ display: none; }
+ .file.is-boxed .file-label {
+ flex-direction: column; }
+ .file.is-boxed .file-cta {
+ flex-direction: column;
+ height: auto;
+ padding: 1em 3em; }
+ .file.is-boxed .file-name {
+ border-width: 0 1px 1px; }
+ .file.is-boxed .file-icon {
+ height: 1.5em;
+ width: 1.5em; }
+ .file.is-boxed .file-icon .fa {
+ font-size: 21px; }
+ .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
+ font-size: 14px; }
+ .file.is-boxed.is-medium .file-icon .fa {
+ font-size: 28px; }
+ .file.is-boxed.is-large .file-icon .fa {
+ font-size: 35px; }
+ .file.is-boxed.has-name .file-cta {
+ border-radius: 4px 4px 0 0; }
+ .file.is-boxed.has-name .file-name {
+ border-radius: 0 0 4px 4px;
+ border-width: 0 1px 1px; }
+ .file.is-centered {
+ justify-content: center; }
+ .file.is-fullwidth .file-label {
+ width: 100%; }
+ .file.is-fullwidth .file-name {
+ flex-grow: 1;
+ max-width: none; }
+ .file.is-right {
+ justify-content: flex-end; }
+ .file.is-right .file-cta {
+ border-radius: 0 4px 4px 0; }
+ .file.is-right .file-name {
+ border-radius: 4px 0 0 4px;
+ border-width: 1px 0 1px 1px;
+ order: -1; }
+
+.file-label {
+ align-items: stretch;
+ display: flex;
+ cursor: pointer;
+ justify-content: flex-start;
+ overflow: hidden;
+ position: relative; }
+ .file-label:hover .file-cta {
+ background-color: #eeeeee;
+ color: #363636; }
+ .file-label:hover .file-name {
+ border-color: #d5d5d5; }
+ .file-label:active .file-cta {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .file-label:active .file-name {
+ border-color: #cfcfcf; }
+
+.file-input {
+ height: 100%;
+ left: 0;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ top: 0;
+ width: 100%; }
+
+.file-cta,
+.file-name {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ font-size: 1em;
+ padding-left: 1em;
+ padding-right: 1em;
+ white-space: nowrap; }
+
+.file-cta {
+ background-color: whitesmoke;
+ color: #4a4a4a; }
+
+.file-name {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px 1px 1px 0;
+ display: block;
+ max-width: 16em;
+ overflow: hidden;
+ text-align: left;
+ text-overflow: ellipsis; }
+
+.file-icon {
+ align-items: center;
+ display: flex;
+ height: 1em;
+ justify-content: center;
+ margin-right: 0.5em;
+ width: 1em; }
+ .file-icon .fa {
+ font-size: 14px; }
+
+.label {
+ color: #363636;
+ display: block;
+ font-size: 1rem;
+ font-weight: 700; }
+ .label:not(:last-child) {
+ margin-bottom: 0.5em; }
+ .label.is-small, #documenter .docs-sidebar form.docs-search > input.label {
+ font-size: 0.75rem; }
+ .label.is-medium {
+ font-size: 1.25rem; }
+ .label.is-large {
+ font-size: 1.5rem; }
+
+.help {
+ display: block;
+ font-size: 0.75rem;
+ margin-top: 0.25rem; }
+ .help.is-white {
+ color: white; }
+ .help.is-black {
+ color: #0a0a0a; }
+ .help.is-light {
+ color: whitesmoke; }
+ .help.is-dark, .content kbd.help {
+ color: #363636; }
+ .help.is-primary, .docstring > section > a.help.docs-sourcelink {
+ color: #4eb5de; }
+ .help.is-link {
+ color: #2e63b8; }
+ .help.is-info {
+ color: #209cee; }
+ .help.is-success {
+ color: #22c35b; }
+ .help.is-warning {
+ color: #ffdd57; }
+ .help.is-danger {
+ color: #da0b00; }
+
+.field:not(:last-child) {
+ margin-bottom: 0.75rem; }
+
+.field.has-addons {
+ display: flex;
+ justify-content: flex-start; }
+ .field.has-addons .control:not(:last-child) {
+ margin-right: -1px; }
+ .field.has-addons .control:not(:first-child):not(:last-child) .button,
+ .field.has-addons .control:not(:first-child):not(:last-child) .input,
+ .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
+ .field.has-addons .control:not(:first-child):not(:last-child) .select select {
+ border-radius: 0; }
+ .field.has-addons .control:first-child:not(:only-child) .button,
+ .field.has-addons .control:first-child:not(:only-child) .input,
+ .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:first-child:not(:only-child) .select select {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+ .field.has-addons .control:last-child:not(:only-child) .button,
+ .field.has-addons .control:last-child:not(:only-child) .input,
+ .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
+ #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
+ .field.has-addons .control:last-child:not(:only-child) .select select {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+ .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
+ .field.has-addons .control .input.is-hovered:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):hover,
+ .field.has-addons .control .select select.is-hovered:not([disabled]) {
+ z-index: 2; }
+ .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):focus,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
+ .field.has-addons .control .input.is-focused:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
+ .field.has-addons .control .input:not([disabled]):active,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
+ .field.has-addons .control .input.is-active:not([disabled]),
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):focus,
+ .field.has-addons .control .select select.is-focused:not([disabled]),
+ .field.has-addons .control .select select:not([disabled]):active,
+ .field.has-addons .control .select select.is-active:not([disabled]) {
+ z-index: 3; }
+ .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):focus:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
+ .field.has-addons .control .input.is-focused:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
+ .field.has-addons .control .input:not([disabled]):active:hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
+ .field.has-addons .control .input.is-active:not([disabled]):hover,
+ .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
+ #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):focus:hover,
+ .field.has-addons .control .select select.is-focused:not([disabled]):hover,
+ .field.has-addons .control .select select:not([disabled]):active:hover,
+ .field.has-addons .control .select select.is-active:not([disabled]):hover {
+ z-index: 4; }
+ .field.has-addons .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.has-addons.has-addons-centered {
+ justify-content: center; }
+ .field.has-addons.has-addons-right {
+ justify-content: flex-end; }
+ .field.has-addons.has-addons-fullwidth .control {
+ flex-grow: 1;
+ flex-shrink: 0; }
+
+.field.is-grouped {
+ display: flex;
+ justify-content: flex-start; }
+ .field.is-grouped > .control {
+ flex-shrink: 0; }
+ .field.is-grouped > .control:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .field.is-grouped > .control.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .field.is-grouped.is-grouped-centered {
+ justify-content: center; }
+ .field.is-grouped.is-grouped-right {
+ justify-content: flex-end; }
+ .field.is-grouped.is-grouped-multiline {
+ flex-wrap: wrap; }
+ .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .field.is-grouped.is-grouped-multiline:last-child {
+ margin-bottom: -0.75rem; }
+ .field.is-grouped.is-grouped-multiline:not(:last-child) {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field.is-horizontal {
+ display: flex; } }
+
+.field-label .label {
+ font-size: inherit; }
+
+@media screen and (max-width: 768px) {
+ .field-label {
+ margin-bottom: 0.5rem; } }
+
+@media screen and (min-width: 769px), print {
+ .field-label {
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ margin-right: 1.5rem;
+ text-align: right; }
+ .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label {
+ font-size: 0.75rem;
+ padding-top: 0.375em; }
+ .field-label.is-normal {
+ padding-top: 0.375em; }
+ .field-label.is-medium {
+ font-size: 1.25rem;
+ padding-top: 0.375em; }
+ .field-label.is-large {
+ font-size: 1.5rem;
+ padding-top: 0.375em; } }
+
+.field-body .field .field {
+ margin-bottom: 0; }
+
+@media screen and (min-width: 769px), print {
+ .field-body {
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 5;
+ flex-shrink: 1; }
+ .field-body .field {
+ margin-bottom: 0; }
+ .field-body > .field {
+ flex-shrink: 1; }
+ .field-body > .field:not(.is-narrow) {
+ flex-grow: 1; }
+ .field-body > .field:not(:last-child) {
+ margin-right: 0.75rem; } }
+
+.control {
+ box-sizing: border-box;
+ clear: both;
+ font-size: 1rem;
+ position: relative;
+ text-align: left; }
+ .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
+ .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
+ .control.has-icons-right .select:focus ~ .icon {
+ color: #6b6b6b; }
+ .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
+ .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
+ .control.has-icons-right .select.is-small ~ .icon {
+ font-size: 0.75rem; }
+ .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
+ .control.has-icons-right .select.is-medium ~ .icon {
+ font-size: 1.25rem; }
+ .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
+ .control.has-icons-right .select.is-large ~ .icon {
+ font-size: 1.5rem; }
+ .control.has-icons-left .icon, .control.has-icons-right .icon {
+ color: #dbdbdb;
+ height: 2.25em;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ width: 2.25em;
+ z-index: 4; }
+ .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
+ .control.has-icons-left .select select {
+ padding-left: 2.25em; }
+ .control.has-icons-left .icon.is-left {
+ left: 0; }
+ .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
+ .control.has-icons-right .select select {
+ padding-right: 2.25em; }
+ .control.has-icons-right .icon.is-right {
+ right: 0; }
+ .control.is-loading::after {
+ position: absolute !important;
+ right: 0.625em;
+ top: 0.625em;
+ z-index: 4; }
+ .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
+ font-size: 0.75rem; }
+ .control.is-loading.is-medium:after {
+ font-size: 1.25rem; }
+ .control.is-loading.is-large:after {
+ font-size: 1.5rem; }
+
+.breadcrumb {
+ font-size: 1rem;
+ white-space: nowrap; }
+ .breadcrumb a {
+ align-items: center;
+ color: #2e63b8;
+ display: flex;
+ justify-content: center;
+ padding: 0 0.75em; }
+ .breadcrumb a:hover {
+ color: #363636; }
+ .breadcrumb li {
+ align-items: center;
+ display: flex; }
+ .breadcrumb li:first-child a {
+ padding-left: 0; }
+ .breadcrumb li.is-active a {
+ color: #222222;
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb li + li::before {
+ color: #b5b5b5;
+ content: "\0002f"; }
+ .breadcrumb ul,
+ .breadcrumb ol {
+ align-items: flex-start;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .breadcrumb .icon:first-child {
+ margin-right: 0.5em; }
+ .breadcrumb .icon:last-child {
+ margin-left: 0.5em; }
+ .breadcrumb.is-centered ol,
+ .breadcrumb.is-centered ul {
+ justify-content: center; }
+ .breadcrumb.is-right ol,
+ .breadcrumb.is-right ul {
+ justify-content: flex-end; }
+ .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb {
+ font-size: 0.75rem; }
+ .breadcrumb.is-medium {
+ font-size: 1.25rem; }
+ .breadcrumb.is-large {
+ font-size: 1.5rem; }
+ .breadcrumb.has-arrow-separator li + li::before {
+ content: "\02192"; }
+ .breadcrumb.has-bullet-separator li + li::before {
+ content: "\02022"; }
+ .breadcrumb.has-dot-separator li + li::before {
+ content: "\000b7"; }
+ .breadcrumb.has-succeeds-separator li + li::before {
+ content: "\0227B"; }
+
+.card {
+ background-color: white;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ color: #222222;
+ max-width: 100%;
+ position: relative; }
+
+.card-header {
+ background-color: transparent;
+ align-items: stretch;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ display: flex; }
+
+.card-header-title {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ flex-grow: 1;
+ font-weight: 700;
+ padding: 0.75rem; }
+ .card-header-title.is-centered {
+ justify-content: center; }
+
+.card-header-icon {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ padding: 0.75rem; }
+
+.card-image {
+ display: block;
+ position: relative; }
+
+.card-content {
+ background-color: transparent;
+ padding: 1.5rem; }
+
+.card-footer {
+ background-color: transparent;
+ border-top: 1px solid #dbdbdb;
+ align-items: stretch;
+ display: flex; }
+
+.card-footer-item {
+ align-items: center;
+ display: flex;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0.75rem; }
+ .card-footer-item:not(:last-child) {
+ border-right: 1px solid #dbdbdb; }
+
+.card .media:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.dropdown {
+ display: inline-flex;
+ position: relative;
+ vertical-align: top; }
+ .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu {
+ display: block; }
+ .dropdown.is-right .dropdown-menu {
+ left: auto;
+ right: 0; }
+ .dropdown.is-up .dropdown-menu {
+ bottom: 100%;
+ padding-bottom: 4px;
+ padding-top: initial;
+ top: auto; }
+
+.dropdown-menu {
+ display: none;
+ left: 0;
+ min-width: 12rem;
+ padding-top: 4px;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+
+.dropdown-content {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+
+.dropdown-item {
+ color: #4a4a4a;
+ display: block;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ padding: 0.375rem 1rem;
+ position: relative; }
+
+a.dropdown-item,
+button.dropdown-item {
+ padding-right: 3rem;
+ text-align: left;
+ white-space: nowrap;
+ width: 100%; }
+ a.dropdown-item:hover,
+ button.dropdown-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ a.dropdown-item.is-active,
+ button.dropdown-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+.dropdown-divider {
+ background-color: #dbdbdb;
+ border: none;
+ display: block;
+ height: 1px;
+ margin: 0.5rem 0; }
+
+.level {
+ align-items: center;
+ justify-content: space-between; }
+ .level code {
+ border-radius: 4px; }
+ .level img {
+ display: inline-block;
+ vertical-align: top; }
+ .level.is-mobile {
+ display: flex; }
+ .level.is-mobile .level-left,
+ .level.is-mobile .level-right {
+ display: flex; }
+ .level.is-mobile .level-left + .level-right {
+ margin-top: 0; }
+ .level.is-mobile .level-item:not(:last-child) {
+ margin-bottom: 0;
+ margin-right: 0.75rem; }
+ .level.is-mobile .level-item:not(.is-narrow) {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level {
+ display: flex; }
+ .level > .level-item:not(.is-narrow) {
+ flex-grow: 1; } }
+.level-item {
+ align-items: center;
+ display: flex;
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center; }
+ .level-item .title,
+ .level-item .subtitle {
+ margin-bottom: 0; }
+ @media screen and (max-width: 768px) {
+ .level-item:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+.level-left,
+.level-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .level-left .level-item.is-flexible,
+ .level-right .level-item.is-flexible {
+ flex-grow: 1; }
+ @media screen and (min-width: 769px), print {
+ .level-left .level-item:not(:last-child),
+ .level-right .level-item:not(:last-child) {
+ margin-right: 0.75rem; } }
+.level-left {
+ align-items: center;
+ justify-content: flex-start; }
+ @media screen and (max-width: 768px) {
+ .level-left + .level-right {
+ margin-top: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .level-left {
+ display: flex; } }
+.level-right {
+ align-items: center;
+ justify-content: flex-end; }
+ @media screen and (min-width: 769px), print {
+ .level-right {
+ display: flex; } }
+.list {
+ background-color: white;
+ border-radius: 4px;
+ box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
+
+.list-item {
+ display: block;
+ padding: 0.5em 1em; }
+ .list-item:not(a) {
+ color: #222222; }
+ .list-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px; }
+ .list-item:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px; }
+ .list-item:not(:last-child) {
+ border-bottom: 1px solid #dbdbdb; }
+ .list-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+
+a.list-item {
+ background-color: whitesmoke;
+ cursor: pointer; }
+
+.media {
+ align-items: flex-start;
+ display: flex;
+ text-align: left; }
+ .media .content:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .media .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ display: flex;
+ padding-top: 0.75rem; }
+ .media .media .content:not(:last-child),
+ .media .media .control:not(:last-child) {
+ margin-bottom: 0.5rem; }
+ .media .media .media {
+ padding-top: 0.5rem; }
+ .media .media .media + .media {
+ margin-top: 0.5rem; }
+ .media + .media {
+ border-top: 1px solid rgba(219, 219, 219, 0.5);
+ margin-top: 1rem;
+ padding-top: 1rem; }
+ .media.is-large + .media {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem; }
+
+.media-left,
+.media-right {
+ flex-basis: auto;
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.media-left {
+ margin-right: 1rem; }
+
+.media-right {
+ margin-left: 1rem; }
+
+.media-content {
+ flex-basis: auto;
+ flex-grow: 1;
+ flex-shrink: 1;
+ text-align: left; }
+
+@media screen and (max-width: 768px) {
+ .media-content {
+ overflow-x: auto; } }
+
+.menu {
+ font-size: 1rem; }
+ .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu {
+ font-size: 0.75rem; }
+ .menu.is-medium {
+ font-size: 1.25rem; }
+ .menu.is-large {
+ font-size: 1.5rem; }
+
+.menu-list {
+ line-height: 1.25; }
+ .menu-list a {
+ border-radius: 2px;
+ color: #222222;
+ display: block;
+ padding: 0.5em 0.75em; }
+ .menu-list a:hover {
+ background-color: whitesmoke;
+ color: #222222; }
+ .menu-list a.is-active {
+ background-color: #2e63b8;
+ color: #fff; }
+ .menu-list li ul {
+ border-left: 1px solid #dbdbdb;
+ margin: 0.75em;
+ padding-left: 0.75em; }
+
+.menu-label {
+ color: #6b6b6b;
+ font-size: 0.75em;
+ letter-spacing: 0.1em;
+ text-transform: uppercase; }
+ .menu-label:not(:first-child) {
+ margin-top: 1em; }
+ .menu-label:not(:last-child) {
+ margin-bottom: 1em; }
+
+.message {
+ background-color: whitesmoke;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .message strong {
+ color: currentColor; }
+ .message a:not(.button):not(.tag):not(.dropdown-item) {
+ color: currentColor;
+ text-decoration: underline; }
+ .message.is-small, #documenter .docs-sidebar form.docs-search > input.message {
+ font-size: 0.75rem; }
+ .message.is-medium {
+ font-size: 1.25rem; }
+ .message.is-large {
+ font-size: 1.5rem; }
+ .message.is-white {
+ background-color: white; }
+ .message.is-white .message-header {
+ background-color: white;
+ color: #0a0a0a; }
+ .message.is-white .message-body {
+ border-color: white;
+ color: #4d4d4d; }
+ .message.is-black {
+ background-color: #fafafa; }
+ .message.is-black .message-header {
+ background-color: #0a0a0a;
+ color: white; }
+ .message.is-black .message-body {
+ border-color: #0a0a0a;
+ color: #090909; }
+ .message.is-light {
+ background-color: #fafafa; }
+ .message.is-light .message-header {
+ background-color: whitesmoke;
+ color: #363636; }
+ .message.is-light .message-body {
+ border-color: whitesmoke;
+ color: #505050; }
+ .message.is-dark, .content kbd.message {
+ background-color: #fafafa; }
+ .message.is-dark .message-header, .content kbd.message .message-header {
+ background-color: #363636;
+ color: whitesmoke; }
+ .message.is-dark .message-body, .content kbd.message .message-body {
+ border-color: #363636;
+ color: #2a2a2a; }
+ .message.is-primary, .docstring > section > a.message.docs-sourcelink {
+ background-color: #f6fbfd; }
+ .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header {
+ background-color: #4eb5de;
+ color: #fff; }
+ .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body {
+ border-color: #4eb5de;
+ color: #1f556a; }
+ .message.is-link {
+ background-color: #f7f9fd; }
+ .message.is-link .message-header {
+ background-color: #2e63b8;
+ color: #fff; }
+ .message.is-link .message-body {
+ border-color: #2e63b8;
+ color: #264981; }
+ .message.is-info {
+ background-color: #f6fbfe; }
+ .message.is-info .message-header {
+ background-color: #209cee;
+ color: #fff; }
+ .message.is-info .message-body {
+ border-color: #209cee;
+ color: #12537d; }
+ .message.is-success {
+ background-color: #f6fdf9; }
+ .message.is-success .message-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .message.is-success .message-body {
+ border-color: #22c35b;
+ color: #0f361d; }
+ .message.is-warning {
+ background-color: #fffdf5; }
+ .message.is-warning .message-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .message.is-warning .message-body {
+ border-color: #ffdd57;
+ color: #3c3108; }
+ .message.is-danger {
+ background-color: #fff5f5; }
+ .message.is-danger .message-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .message.is-danger .message-body {
+ border-color: #da0b00;
+ color: #9b0c04; }
+
+.message-header {
+ align-items: center;
+ background-color: #222222;
+ border-radius: 4px 4px 0 0;
+ color: #fff;
+ display: flex;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.75em 1em;
+ position: relative; }
+ .message-header .delete {
+ flex-grow: 0;
+ flex-shrink: 0;
+ margin-left: 0.75em; }
+ .message-header + .message-body {
+ border-width: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.message-body {
+ border-color: #dbdbdb;
+ border-radius: 4px;
+ border-style: solid;
+ border-width: 0 0 0 4px;
+ color: #222222;
+ padding: 1.25em 1.5em; }
+ .message-body code,
+ .message-body pre {
+ background-color: white; }
+ .message-body pre code {
+ background-color: transparent; }
+
+.modal {
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40; }
+ .modal.is-active {
+ display: flex; }
+
+.modal-background {
+ background-color: rgba(10, 10, 10, 0.86); }
+
+.modal-content,
+.modal-card {
+ margin: 0 20px;
+ max-height: calc(100vh - 160px);
+ overflow: auto;
+ position: relative;
+ width: 100%; }
+ @media screen and (min-width: 769px), print {
+ .modal-content,
+ .modal-card {
+ margin: 0 auto;
+ max-height: calc(100vh - 40px);
+ width: 640px; } }
+.modal-close {
+ background: none;
+ height: 40px;
+ position: fixed;
+ right: 20px;
+ top: 20px;
+ width: 40px; }
+
+.modal-card {
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+ -ms-overflow-y: visible; }
+
+.modal-card-head,
+.modal-card-foot {
+ align-items: center;
+ background-color: whitesmoke;
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 20px;
+ position: relative; }
+
+.modal-card-head {
+ border-bottom: 1px solid #dbdbdb;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.modal-card-title {
+ color: #222222;
+ flex-grow: 1;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ line-height: 1; }
+
+.modal-card-foot {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid #dbdbdb; }
+ .modal-card-foot .button:not(:last-child) {
+ margin-right: 0.5em; }
+
+.modal-card-body {
+ -webkit-overflow-scrolling: touch;
+ background-color: white;
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px; }
+
+.navbar {
+ background-color: white;
+ min-height: 3.25rem;
+ position: relative;
+ z-index: 30; }
+ .navbar.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > .navbar-item,
+ .navbar.is-white .navbar-brand .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-white .navbar-brand .navbar-link:focus,
+ .navbar.is-white .navbar-brand .navbar-link:hover,
+ .navbar.is-white .navbar-brand .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-brand .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-burger {
+ color: #0a0a0a; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-white .navbar-start > .navbar-item,
+ .navbar.is-white .navbar-start .navbar-link,
+ .navbar.is-white .navbar-end > .navbar-item,
+ .navbar.is-white .navbar-end .navbar-link {
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active,
+ .navbar.is-white .navbar-start .navbar-link:focus,
+ .navbar.is-white .navbar-start .navbar-link:hover,
+ .navbar.is-white .navbar-start .navbar-link.is-active,
+ .navbar.is-white .navbar-end > a.navbar-item:focus,
+ .navbar.is-white .navbar-end > a.navbar-item:hover,
+ .navbar.is-white .navbar-end > a.navbar-item.is-active,
+ .navbar.is-white .navbar-end .navbar-link:focus,
+ .navbar.is-white .navbar-end .navbar-link:hover,
+ .navbar.is-white .navbar-end .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-start .navbar-link::after,
+ .navbar.is-white .navbar-end .navbar-link::after {
+ border-color: #0a0a0a; }
+ .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
+ background-color: white;
+ color: #0a0a0a; } }
+ .navbar.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .navbar.is-black .navbar-brand > .navbar-item,
+ .navbar.is-black .navbar-brand .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-black .navbar-brand .navbar-link:focus,
+ .navbar.is-black .navbar-brand .navbar-link:hover,
+ .navbar.is-black .navbar-brand .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-brand .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-burger {
+ color: white; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-black .navbar-start > .navbar-item,
+ .navbar.is-black .navbar-start .navbar-link,
+ .navbar.is-black .navbar-end > .navbar-item,
+ .navbar.is-black .navbar-end .navbar-link {
+ color: white; }
+ .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active,
+ .navbar.is-black .navbar-start .navbar-link:focus,
+ .navbar.is-black .navbar-start .navbar-link:hover,
+ .navbar.is-black .navbar-start .navbar-link.is-active,
+ .navbar.is-black .navbar-end > a.navbar-item:focus,
+ .navbar.is-black .navbar-end > a.navbar-item:hover,
+ .navbar.is-black .navbar-end > a.navbar-item.is-active,
+ .navbar.is-black .navbar-end .navbar-link:focus,
+ .navbar.is-black .navbar-end .navbar-link:hover,
+ .navbar.is-black .navbar-end .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-start .navbar-link::after,
+ .navbar.is-black .navbar-end .navbar-link::after {
+ border-color: white; }
+ .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: black;
+ color: white; }
+ .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
+ background-color: #0a0a0a;
+ color: white; } }
+ .navbar.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .navbar.is-light .navbar-brand > .navbar-item,
+ .navbar.is-light .navbar-brand .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-light .navbar-brand .navbar-link:focus,
+ .navbar.is-light .navbar-brand .navbar-link:hover,
+ .navbar.is-light .navbar-brand .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-brand .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-burger {
+ color: #363636; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-light .navbar-start > .navbar-item,
+ .navbar.is-light .navbar-start .navbar-link,
+ .navbar.is-light .navbar-end > .navbar-item,
+ .navbar.is-light .navbar-end .navbar-link {
+ color: #363636; }
+ .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active,
+ .navbar.is-light .navbar-start .navbar-link:focus,
+ .navbar.is-light .navbar-start .navbar-link:hover,
+ .navbar.is-light .navbar-start .navbar-link.is-active,
+ .navbar.is-light .navbar-end > a.navbar-item:focus,
+ .navbar.is-light .navbar-end > a.navbar-item:hover,
+ .navbar.is-light .navbar-end > a.navbar-item.is-active,
+ .navbar.is-light .navbar-end .navbar-link:focus,
+ .navbar.is-light .navbar-end .navbar-link:hover,
+ .navbar.is-light .navbar-end .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-start .navbar-link::after,
+ .navbar.is-light .navbar-end .navbar-link::after {
+ border-color: #363636; }
+ .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #363636; } }
+ .navbar.is-dark, .content kbd.navbar {
+ background-color: #363636;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item,
+ .navbar.is-dark .navbar-brand .navbar-link,
+ .content kbd.navbar .navbar-brand .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-brand .navbar-link:focus,
+ .content kbd.navbar .navbar-brand .navbar-link:focus,
+ .navbar.is-dark .navbar-brand .navbar-link:hover,
+ .content kbd.navbar .navbar-brand .navbar-link:hover,
+ .navbar.is-dark .navbar-brand .navbar-link.is-active,
+ .content kbd.navbar .navbar-brand .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger {
+ color: whitesmoke; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item,
+ .navbar.is-dark .navbar-start .navbar-link,
+ .content kbd.navbar .navbar-start .navbar-link,
+ .navbar.is-dark .navbar-end > .navbar-item,
+ .content kbd.navbar .navbar-end > .navbar-item,
+ .navbar.is-dark .navbar-end .navbar-link,
+ .content kbd.navbar .navbar-end .navbar-link {
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-start .navbar-link:focus,
+ .content kbd.navbar .navbar-start .navbar-link:focus,
+ .navbar.is-dark .navbar-start .navbar-link:hover,
+ .content kbd.navbar .navbar-start .navbar-link:hover,
+ .navbar.is-dark .navbar-start .navbar-link.is-active,
+ .content kbd.navbar .navbar-start .navbar-link.is-active,
+ .navbar.is-dark .navbar-end > a.navbar-item:focus,
+ .content kbd.navbar .navbar-end > a.navbar-item:focus,
+ .navbar.is-dark .navbar-end > a.navbar-item:hover,
+ .content kbd.navbar .navbar-end > a.navbar-item:hover,
+ .navbar.is-dark .navbar-end > a.navbar-item.is-active,
+ .content kbd.navbar .navbar-end > a.navbar-item.is-active,
+ .navbar.is-dark .navbar-end .navbar-link:focus,
+ .content kbd.navbar .navbar-end .navbar-link:focus,
+ .navbar.is-dark .navbar-end .navbar-link:hover,
+ .content kbd.navbar .navbar-end .navbar-link:hover,
+ .navbar.is-dark .navbar-end .navbar-link.is-active,
+ .content kbd.navbar .navbar-end .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after,
+ .navbar.is-dark .navbar-end .navbar-link::after,
+ .content kbd.navbar .navbar-end .navbar-link::after {
+ border-color: whitesmoke; }
+ .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
+ .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #292929;
+ color: whitesmoke; }
+ .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
+ background-color: #363636;
+ color: whitesmoke; } }
+ .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
+ .navbar.is-primary .navbar-brand .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-brand .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
+ .navbar.is-primary .navbar-brand .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
+ .navbar.is-primary .navbar-brand .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
+ .navbar.is-primary .navbar-start .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
+ .navbar.is-primary .navbar-end > .navbar-item,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
+ .navbar.is-primary .navbar-end .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-start .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
+ .navbar.is-primary .navbar-start .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
+ .navbar.is-primary .navbar-start .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
+ .navbar.is-primary .navbar-end > a.navbar-item:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
+ .navbar.is-primary .navbar-end > a.navbar-item:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
+ .navbar.is-primary .navbar-end > a.navbar-item.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
+ .navbar.is-primary .navbar-end .navbar-link:focus,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
+ .navbar.is-primary .navbar-end .navbar-link:hover,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
+ .navbar.is-primary .navbar-end .navbar-link.is-active,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
+ .navbar.is-primary .navbar-end .navbar-link::after,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
+ .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #39acda;
+ color: #fff; }
+ .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
+ background-color: #4eb5de;
+ color: #fff; } }
+ .navbar.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .navbar.is-link .navbar-brand > .navbar-item,
+ .navbar.is-link .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-link .navbar-brand .navbar-link:focus,
+ .navbar.is-link .navbar-brand .navbar-link:hover,
+ .navbar.is-link .navbar-brand .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-link .navbar-start > .navbar-item,
+ .navbar.is-link .navbar-start .navbar-link,
+ .navbar.is-link .navbar-end > .navbar-item,
+ .navbar.is-link .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active,
+ .navbar.is-link .navbar-start .navbar-link:focus,
+ .navbar.is-link .navbar-start .navbar-link:hover,
+ .navbar.is-link .navbar-start .navbar-link.is-active,
+ .navbar.is-link .navbar-end > a.navbar-item:focus,
+ .navbar.is-link .navbar-end > a.navbar-item:hover,
+ .navbar.is-link .navbar-end > a.navbar-item.is-active,
+ .navbar.is-link .navbar-end .navbar-link:focus,
+ .navbar.is-link .navbar-end .navbar-link:hover,
+ .navbar.is-link .navbar-end .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-start .navbar-link::after,
+ .navbar.is-link .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #2958a4;
+ color: #fff; }
+ .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
+ background-color: #2e63b8;
+ color: #fff; } }
+ .navbar.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .navbar.is-info .navbar-brand > .navbar-item,
+ .navbar.is-info .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-info .navbar-brand .navbar-link:focus,
+ .navbar.is-info .navbar-brand .navbar-link:hover,
+ .navbar.is-info .navbar-brand .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-info .navbar-start > .navbar-item,
+ .navbar.is-info .navbar-start .navbar-link,
+ .navbar.is-info .navbar-end > .navbar-item,
+ .navbar.is-info .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active,
+ .navbar.is-info .navbar-start .navbar-link:focus,
+ .navbar.is-info .navbar-start .navbar-link:hover,
+ .navbar.is-info .navbar-start .navbar-link.is-active,
+ .navbar.is-info .navbar-end > a.navbar-item:focus,
+ .navbar.is-info .navbar-end > a.navbar-item:hover,
+ .navbar.is-info .navbar-end > a.navbar-item.is-active,
+ .navbar.is-info .navbar-end .navbar-link:focus,
+ .navbar.is-info .navbar-end .navbar-link:hover,
+ .navbar.is-info .navbar-end .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-start .navbar-link::after,
+ .navbar.is-info .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1190e3;
+ color: #fff; }
+ .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
+ background-color: #209cee;
+ color: #fff; } }
+ .navbar.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .navbar.is-success .navbar-brand > .navbar-item,
+ .navbar.is-success .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-success .navbar-brand .navbar-link:focus,
+ .navbar.is-success .navbar-brand .navbar-link:hover,
+ .navbar.is-success .navbar-brand .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-success .navbar-start > .navbar-item,
+ .navbar.is-success .navbar-start .navbar-link,
+ .navbar.is-success .navbar-end > .navbar-item,
+ .navbar.is-success .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active,
+ .navbar.is-success .navbar-start .navbar-link:focus,
+ .navbar.is-success .navbar-start .navbar-link:hover,
+ .navbar.is-success .navbar-start .navbar-link.is-active,
+ .navbar.is-success .navbar-end > a.navbar-item:focus,
+ .navbar.is-success .navbar-end > a.navbar-item:hover,
+ .navbar.is-success .navbar-end > a.navbar-item.is-active,
+ .navbar.is-success .navbar-end .navbar-link:focus,
+ .navbar.is-success .navbar-end .navbar-link:hover,
+ .navbar.is-success .navbar-end .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-start .navbar-link::after,
+ .navbar.is-success .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #1ead51;
+ color: #fff; }
+ .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
+ background-color: #22c35b;
+ color: #fff; } }
+ .navbar.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > .navbar-item,
+ .navbar.is-warning .navbar-brand .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-brand .navbar-link:focus,
+ .navbar.is-warning .navbar-brand .navbar-link:hover,
+ .navbar.is-warning .navbar-brand .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-brand .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-burger {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-warning .navbar-start > .navbar-item,
+ .navbar.is-warning .navbar-start .navbar-link,
+ .navbar.is-warning .navbar-end > .navbar-item,
+ .navbar.is-warning .navbar-end .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-start .navbar-link:focus,
+ .navbar.is-warning .navbar-start .navbar-link:hover,
+ .navbar.is-warning .navbar-start .navbar-link.is-active,
+ .navbar.is-warning .navbar-end > a.navbar-item:focus,
+ .navbar.is-warning .navbar-end > a.navbar-item:hover,
+ .navbar.is-warning .navbar-end > a.navbar-item.is-active,
+ .navbar.is-warning .navbar-end .navbar-link:focus,
+ .navbar.is-warning .navbar-end .navbar-link:hover,
+ .navbar.is-warning .navbar-end .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-start .navbar-link::after,
+ .navbar.is-warning .navbar-end .navbar-link::after {
+ border-color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); } }
+ .navbar.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > .navbar-item,
+ .navbar.is-danger .navbar-brand .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-brand .navbar-link:focus,
+ .navbar.is-danger .navbar-brand .navbar-link:hover,
+ .navbar.is-danger .navbar-brand .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-brand .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-burger {
+ color: #fff; }
+ @media screen and (min-width: 1056px) {
+ .navbar.is-danger .navbar-start > .navbar-item,
+ .navbar.is-danger .navbar-start .navbar-link,
+ .navbar.is-danger .navbar-end > .navbar-item,
+ .navbar.is-danger .navbar-end .navbar-link {
+ color: #fff; }
+ .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-start .navbar-link:focus,
+ .navbar.is-danger .navbar-start .navbar-link:hover,
+ .navbar.is-danger .navbar-start .navbar-link.is-active,
+ .navbar.is-danger .navbar-end > a.navbar-item:focus,
+ .navbar.is-danger .navbar-end > a.navbar-item:hover,
+ .navbar.is-danger .navbar-end > a.navbar-item.is-active,
+ .navbar.is-danger .navbar-end .navbar-link:focus,
+ .navbar.is-danger .navbar-end .navbar-link:hover,
+ .navbar.is-danger .navbar-end .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-start .navbar-link::after,
+ .navbar.is-danger .navbar-end .navbar-link::after {
+ border-color: #fff; }
+ .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
+ .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #c10a00;
+ color: #fff; }
+ .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
+ background-color: #da0b00;
+ color: #fff; } }
+ .navbar > .container {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+ width: 100%; }
+ .navbar.has-shadow {
+ box-shadow: 0 2px 0 0 whitesmoke; }
+ .navbar.is-fixed-bottom, .navbar.is-fixed-top {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom {
+ bottom: 0; }
+ .navbar.is-fixed-bottom.has-shadow {
+ box-shadow: 0 -2px 0 0 whitesmoke; }
+ .navbar.is-fixed-top {
+ top: 0; }
+
+html.has-navbar-fixed-top,
+body.has-navbar-fixed-top {
+ padding-top: 3.25rem; }
+
+html.has-navbar-fixed-bottom,
+body.has-navbar-fixed-bottom {
+ padding-bottom: 3.25rem; }
+
+.navbar-brand,
+.navbar-tabs {
+ align-items: stretch;
+ display: flex;
+ flex-shrink: 0;
+ min-height: 3.25rem; }
+
+.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover {
+ background-color: transparent; }
+
+.navbar-tabs {
+ -webkit-overflow-scrolling: touch;
+ max-width: 100vw;
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+.navbar-burger {
+ color: #4a4a4a;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto; }
+ .navbar-burger span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color, opacity, transform;
+ transition-timing-function: ease-out;
+ width: 16px; }
+ .navbar-burger span:nth-child(1) {
+ top: calc(50% - 6px); }
+ .navbar-burger span:nth-child(2) {
+ top: calc(50% - 1px); }
+ .navbar-burger span:nth-child(3) {
+ top: calc(50% + 4px); }
+ .navbar-burger:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+ .navbar-burger.is-active span:nth-child(1) {
+ transform: translateY(5px) rotate(45deg); }
+ .navbar-burger.is-active span:nth-child(2) {
+ opacity: 0; }
+ .navbar-burger.is-active span:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg); }
+
+.navbar-menu {
+ display: none; }
+
+.navbar-item,
+.navbar-link {
+ color: #4a4a4a;
+ display: block;
+ line-height: 1.5;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .navbar-item .icon:only-child,
+ .navbar-link .icon:only-child {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem; }
+
+a.navbar-item,
+.navbar-link {
+ cursor: pointer; }
+ a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
+ .navbar-link:focus,
+ .navbar-link:focus-within,
+ .navbar-link:hover,
+ .navbar-link.is-active {
+ background-color: #fafafa;
+ color: #2e63b8; }
+
+.navbar-item {
+ display: block;
+ flex-grow: 0;
+ flex-shrink: 0; }
+ .navbar-item img {
+ max-height: 1.75rem; }
+ .navbar-item.has-dropdown {
+ padding: 0; }
+ .navbar-item.is-expanded {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .navbar-item.is-tab {
+ border-bottom: 1px solid transparent;
+ min-height: 3.25rem;
+ padding-bottom: calc(0.5rem - 1px); }
+ .navbar-item.is-tab:focus, .navbar-item.is-tab:hover {
+ background-color: transparent;
+ border-bottom-color: #2e63b8; }
+ .navbar-item.is-tab.is-active {
+ background-color: transparent;
+ border-bottom-color: #2e63b8;
+ border-bottom-style: solid;
+ border-bottom-width: 3px;
+ color: #2e63b8;
+ padding-bottom: calc(0.5rem - 3px); }
+
+.navbar-content {
+ flex-grow: 1;
+ flex-shrink: 1; }
+
+.navbar-link:not(.is-arrowless) {
+ padding-right: 2.5em; }
+ .navbar-link:not(.is-arrowless)::after {
+ border-color: #2e63b8;
+ margin-top: -0.375em;
+ right: 1.125em; }
+
+.navbar-dropdown {
+ font-size: 0.875rem;
+ padding-bottom: 0.5rem;
+ padding-top: 0.5rem; }
+ .navbar-dropdown .navbar-item {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem; }
+
+.navbar-divider {
+ background-color: whitesmoke;
+ border: none;
+ display: none;
+ height: 2px;
+ margin: 0.5rem 0; }
+
+@media screen and (max-width: 1055px) {
+ .navbar > .container {
+ display: block; }
+ .navbar-brand .navbar-item,
+ .navbar-tabs .navbar-item {
+ align-items: center;
+ display: flex; }
+ .navbar-link::after {
+ display: none; }
+ .navbar-menu {
+ background-color: white;
+ box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
+ padding: 0.5rem 0; }
+ .navbar-menu.is-active {
+ display: block; }
+ .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-touch {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-touch.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-touch {
+ top: 0; }
+ .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu {
+ -webkit-overflow-scrolling: touch;
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto; }
+ html.has-navbar-fixed-top-touch,
+ body.has-navbar-fixed-top-touch {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-touch,
+ body.has-navbar-fixed-bottom-touch {
+ padding-bottom: 3.25rem; } }
+
+@media screen and (min-width: 1056px) {
+ .navbar,
+ .navbar-menu,
+ .navbar-start,
+ .navbar-end {
+ align-items: stretch;
+ display: flex; }
+ .navbar {
+ min-height: 3.25rem; }
+ .navbar.is-spaced {
+ padding: 1rem 2rem; }
+ .navbar.is-spaced .navbar-start,
+ .navbar.is-spaced .navbar-end {
+ align-items: center; }
+ .navbar.is-spaced a.navbar-item,
+ .navbar.is-spaced .navbar-link {
+ border-radius: 4px; }
+ .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active,
+ .navbar.is-transparent .navbar-link:focus,
+ .navbar.is-transparent .navbar-link:hover,
+ .navbar.is-transparent .navbar-link.is-active {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
+ background-color: transparent !important; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar-burger {
+ display: none; }
+ .navbar-item,
+ .navbar-link {
+ align-items: center;
+ display: flex; }
+ .navbar-item {
+ display: flex; }
+ .navbar-item.has-dropdown {
+ align-items: stretch; }
+ .navbar-item.has-dropdown-up .navbar-link::after {
+ transform: rotate(135deg) translate(0.25em, -0.25em); }
+ .navbar-item.has-dropdown-up .navbar-dropdown {
+ border-bottom: 2px solid #dbdbdb;
+ border-radius: 6px 6px 0 0;
+ border-top: none;
+ bottom: 100%;
+ box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
+ top: auto; }
+ .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown {
+ display: block; }
+ .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
+ opacity: 1;
+ pointer-events: auto;
+ transform: translateY(0); }
+ .navbar-menu {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto; }
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto; }
+ .navbar-dropdown {
+ background-color: white;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid #dbdbdb;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
+ display: none;
+ font-size: 0.875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20; }
+ .navbar-dropdown .navbar-item {
+ padding: 0.375rem 1rem;
+ white-space: nowrap; }
+ .navbar-dropdown a.navbar-item {
+ padding-right: 3rem; }
+ .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover {
+ background-color: whitesmoke;
+ color: #0a0a0a; }
+ .navbar-dropdown a.navbar-item.is-active {
+ background-color: whitesmoke;
+ color: #2e63b8; }
+ .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed {
+ border-radius: 6px;
+ border-top: none;
+ box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
+ display: block;
+ opacity: 0;
+ pointer-events: none;
+ top: calc(100% + (-4px));
+ transform: translateY(-5px);
+ transition-duration: 86ms;
+ transition-property: opacity, transform; }
+ .navbar-dropdown.is-right {
+ left: auto;
+ right: 0; }
+ .navbar-divider {
+ display: block; }
+ .navbar > .container .navbar-brand,
+ .container > .navbar .navbar-brand {
+ margin-left: -.75rem; }
+ .navbar > .container .navbar-menu,
+ .container > .navbar .navbar-menu {
+ margin-right: -.75rem; }
+ .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop {
+ left: 0;
+ position: fixed;
+ right: 0;
+ z-index: 30; }
+ .navbar.is-fixed-bottom-desktop {
+ bottom: 0; }
+ .navbar.is-fixed-bottom-desktop.has-shadow {
+ box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
+ .navbar.is-fixed-top-desktop {
+ top: 0; }
+ html.has-navbar-fixed-top-desktop,
+ body.has-navbar-fixed-top-desktop {
+ padding-top: 3.25rem; }
+ html.has-navbar-fixed-bottom-desktop,
+ body.has-navbar-fixed-bottom-desktop {
+ padding-bottom: 3.25rem; }
+ html.has-spaced-navbar-fixed-top,
+ body.has-spaced-navbar-fixed-top {
+ padding-top: 5.25rem; }
+ html.has-spaced-navbar-fixed-bottom,
+ body.has-spaced-navbar-fixed-bottom {
+ padding-bottom: 5.25rem; }
+ a.navbar-item.is-active,
+ .navbar-link.is-active {
+ color: #0a0a0a; }
+ a.navbar-item.is-active:not(:focus):not(:hover),
+ .navbar-link.is-active:not(:focus):not(:hover) {
+ background-color: transparent; }
+ .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link {
+ background-color: #fafafa; } }
+
+.hero.is-fullheight-with-navbar {
+ min-height: calc(100vh - 3.25rem); }
+
+.pagination {
+ font-size: 1rem;
+ margin: -0.25rem; }
+ .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination {
+ font-size: 0.75rem; }
+ .pagination.is-medium {
+ font-size: 1.25rem; }
+ .pagination.is-large {
+ font-size: 1.5rem; }
+ .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
+ .pagination.is-rounded .pagination-next,
+ #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-radius: 290486px; }
+ .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
+ border-radius: 290486px; }
+
+.pagination,
+.pagination-list {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis {
+ font-size: 1em;
+ justify-content: center;
+ margin: 0.25rem;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ text-align: center; }
+
+.pagination-previous,
+.pagination-next,
+.pagination-link {
+ border-color: #dbdbdb;
+ color: #363636;
+ min-width: 2.25em; }
+ .pagination-previous:hover,
+ .pagination-next:hover,
+ .pagination-link:hover {
+ border-color: #b5b5b5;
+ color: #363636; }
+ .pagination-previous:focus,
+ .pagination-next:focus,
+ .pagination-link:focus {
+ border-color: #3c5dcd; }
+ .pagination-previous:active,
+ .pagination-next:active,
+ .pagination-link:active {
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
+ .pagination-previous[disabled],
+ .pagination-next[disabled],
+ .pagination-link[disabled] {
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+ box-shadow: none;
+ color: #6b6b6b;
+ opacity: 0.5; }
+
+.pagination-previous,
+.pagination-next {
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ white-space: nowrap; }
+
+.pagination-link.is-current {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff; }
+
+.pagination-ellipsis {
+ color: #b5b5b5;
+ pointer-events: none; }
+
+.pagination-list {
+ flex-wrap: wrap; }
+
+@media screen and (max-width: 768px) {
+ .pagination {
+ flex-wrap: wrap; }
+ .pagination-previous,
+ .pagination-next {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .pagination-list li {
+ flex-grow: 1;
+ flex-shrink: 1; } }
+
+@media screen and (min-width: 769px), print {
+ .pagination-list {
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-start;
+ order: 1; }
+ .pagination-previous {
+ order: 2; }
+ .pagination-next {
+ order: 3; }
+ .pagination {
+ justify-content: space-between; }
+ .pagination.is-centered .pagination-previous {
+ order: 1; }
+ .pagination.is-centered .pagination-list {
+ justify-content: center;
+ order: 2; }
+ .pagination.is-centered .pagination-next {
+ order: 3; }
+ .pagination.is-right .pagination-previous {
+ order: 1; }
+ .pagination.is-right .pagination-next {
+ order: 2; }
+ .pagination.is-right .pagination-list {
+ justify-content: flex-end;
+ order: 3; } }
+
+.panel {
+ font-size: 1rem; }
+ .panel:not(:last-child) {
+ margin-bottom: 1.5rem; }
+
+.panel-heading,
+.panel-tabs,
+.panel-block {
+ border-bottom: 1px solid #dbdbdb;
+ border-left: 1px solid #dbdbdb;
+ border-right: 1px solid #dbdbdb; }
+ .panel-heading:first-child,
+ .panel-tabs:first-child,
+ .panel-block:first-child {
+ border-top: 1px solid #dbdbdb; }
+
+.panel-heading {
+ background-color: whitesmoke;
+ border-radius: 4px 4px 0 0;
+ color: #222222;
+ font-size: 1.25em;
+ font-weight: 300;
+ line-height: 1.25;
+ padding: 0.5em 0.75em; }
+
+.panel-tabs {
+ align-items: flex-end;
+ display: flex;
+ font-size: 0.875em;
+ justify-content: center; }
+ .panel-tabs a {
+ border-bottom: 1px solid #dbdbdb;
+ margin-bottom: -1px;
+ padding: 0.5em; }
+ .panel-tabs a.is-active {
+ border-bottom-color: #4a4a4a;
+ color: #363636; }
+
+.panel-list a {
+ color: #222222; }
+ .panel-list a:hover {
+ color: #2e63b8; }
+
+.panel-block {
+ align-items: center;
+ color: #222222;
+ display: flex;
+ justify-content: flex-start;
+ padding: 0.5em 0.75em; }
+ .panel-block input[type="checkbox"] {
+ margin-right: 0.75em; }
+ .panel-block > .control {
+ flex-grow: 1;
+ flex-shrink: 1;
+ width: 100%; }
+ .panel-block.is-wrapped {
+ flex-wrap: wrap; }
+ .panel-block.is-active {
+ border-left-color: #2e63b8;
+ color: #363636; }
+ .panel-block.is-active .panel-icon {
+ color: #2e63b8; }
+
+a.panel-block,
+label.panel-block {
+ cursor: pointer; }
+ a.panel-block:hover,
+ label.panel-block:hover {
+ background-color: whitesmoke; }
+
+.panel-icon {
+ display: inline-block;
+ font-size: 14px;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ vertical-align: top;
+ width: 1em;
+ color: #6b6b6b;
+ margin-right: 0.75em; }
+ .panel-icon .fa {
+ font-size: inherit;
+ line-height: inherit; }
+
+.tabs {
+ -webkit-overflow-scrolling: touch;
+ align-items: stretch;
+ display: flex;
+ font-size: 1rem;
+ justify-content: space-between;
+ overflow: hidden;
+ overflow-x: auto;
+ white-space: nowrap; }
+ .tabs a {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ color: #222222;
+ display: flex;
+ justify-content: center;
+ margin-bottom: -1px;
+ padding: 0.5em 1em;
+ vertical-align: top; }
+ .tabs a:hover {
+ border-bottom-color: #222222;
+ color: #222222; }
+ .tabs li {
+ display: block; }
+ .tabs li.is-active a {
+ border-bottom-color: #2e63b8;
+ color: #2e63b8; }
+ .tabs ul {
+ align-items: center;
+ border-bottom-color: #dbdbdb;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ display: flex;
+ flex-grow: 1;
+ flex-shrink: 0;
+ justify-content: flex-start; }
+ .tabs ul.is-left {
+ padding-right: 0.75em; }
+ .tabs ul.is-center {
+ flex: none;
+ justify-content: center;
+ padding-left: 0.75em;
+ padding-right: 0.75em; }
+ .tabs ul.is-right {
+ justify-content: flex-end;
+ padding-left: 0.75em; }
+ .tabs .icon:first-child {
+ margin-right: 0.5em; }
+ .tabs .icon:last-child {
+ margin-left: 0.5em; }
+ .tabs.is-centered ul {
+ justify-content: center; }
+ .tabs.is-right ul {
+ justify-content: flex-end; }
+ .tabs.is-boxed a {
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .tabs.is-boxed a:hover {
+ background-color: whitesmoke;
+ border-bottom-color: #dbdbdb; }
+ .tabs.is-boxed li.is-active a {
+ background-color: white;
+ border-color: #dbdbdb;
+ border-bottom-color: transparent !important; }
+ .tabs.is-fullwidth li {
+ flex-grow: 1;
+ flex-shrink: 0; }
+ .tabs.is-toggle a {
+ border-color: #dbdbdb;
+ border-style: solid;
+ border-width: 1px;
+ margin-bottom: 0;
+ position: relative; }
+ .tabs.is-toggle a:hover {
+ background-color: whitesmoke;
+ border-color: #b5b5b5;
+ z-index: 2; }
+ .tabs.is-toggle li + li {
+ margin-left: -1px; }
+ .tabs.is-toggle li:first-child a {
+ border-radius: 4px 0 0 4px; }
+ .tabs.is-toggle li:last-child a {
+ border-radius: 0 4px 4px 0; }
+ .tabs.is-toggle li.is-active a {
+ background-color: #2e63b8;
+ border-color: #2e63b8;
+ color: #fff;
+ z-index: 1; }
+ .tabs.is-toggle ul {
+ border-bottom: none; }
+ .tabs.is-toggle.is-toggle-rounded li:first-child a {
+ border-bottom-left-radius: 290486px;
+ border-top-left-radius: 290486px;
+ padding-left: 1.25em; }
+ .tabs.is-toggle.is-toggle-rounded li:last-child a {
+ border-bottom-right-radius: 290486px;
+ border-top-right-radius: 290486px;
+ padding-right: 1.25em; }
+ .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs {
+ font-size: 0.75rem; }
+ .tabs.is-medium {
+ font-size: 1.25rem; }
+ .tabs.is-large {
+ font-size: 1.5rem; }
+
+.column {
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ padding: 0.75rem; }
+ .columns.is-mobile > .column.is-narrow {
+ flex: none; }
+ .columns.is-mobile > .column.is-full {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-three-quarters {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-two-thirds {
+ flex: none;
+ width: 66.6666%; }
+ .columns.is-mobile > .column.is-half {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-one-third {
+ flex: none;
+ width: 33.3333%; }
+ .columns.is-mobile > .column.is-one-quarter {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-one-fifth {
+ flex: none;
+ width: 20%; }
+ .columns.is-mobile > .column.is-two-fifths {
+ flex: none;
+ width: 40%; }
+ .columns.is-mobile > .column.is-three-fifths {
+ flex: none;
+ width: 60%; }
+ .columns.is-mobile > .column.is-four-fifths {
+ flex: none;
+ width: 80%; }
+ .columns.is-mobile > .column.is-offset-three-quarters {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-offset-two-thirds {
+ margin-left: 66.6666%; }
+ .columns.is-mobile > .column.is-offset-half {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-offset-one-third {
+ margin-left: 33.3333%; }
+ .columns.is-mobile > .column.is-offset-one-quarter {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-offset-one-fifth {
+ margin-left: 20%; }
+ .columns.is-mobile > .column.is-offset-two-fifths {
+ margin-left: 40%; }
+ .columns.is-mobile > .column.is-offset-three-fifths {
+ margin-left: 60%; }
+ .columns.is-mobile > .column.is-offset-four-fifths {
+ margin-left: 80%; }
+ .columns.is-mobile > .column.is-0 {
+ flex: none;
+ width: 0%; }
+ .columns.is-mobile > .column.is-offset-0 {
+ margin-left: 0%; }
+ .columns.is-mobile > .column.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .columns.is-mobile > .column.is-offset-1 {
+ margin-left: 8.3333333333%; }
+ .columns.is-mobile > .column.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .columns.is-mobile > .column.is-offset-2 {
+ margin-left: 16.6666666667%; }
+ .columns.is-mobile > .column.is-3 {
+ flex: none;
+ width: 25%; }
+ .columns.is-mobile > .column.is-offset-3 {
+ margin-left: 25%; }
+ .columns.is-mobile > .column.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .columns.is-mobile > .column.is-offset-4 {
+ margin-left: 33.3333333333%; }
+ .columns.is-mobile > .column.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .columns.is-mobile > .column.is-offset-5 {
+ margin-left: 41.6666666667%; }
+ .columns.is-mobile > .column.is-6 {
+ flex: none;
+ width: 50%; }
+ .columns.is-mobile > .column.is-offset-6 {
+ margin-left: 50%; }
+ .columns.is-mobile > .column.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .columns.is-mobile > .column.is-offset-7 {
+ margin-left: 58.3333333333%; }
+ .columns.is-mobile > .column.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .columns.is-mobile > .column.is-offset-8 {
+ margin-left: 66.6666666667%; }
+ .columns.is-mobile > .column.is-9 {
+ flex: none;
+ width: 75%; }
+ .columns.is-mobile > .column.is-offset-9 {
+ margin-left: 75%; }
+ .columns.is-mobile > .column.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .columns.is-mobile > .column.is-offset-10 {
+ margin-left: 83.3333333333%; }
+ .columns.is-mobile > .column.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .columns.is-mobile > .column.is-offset-11 {
+ margin-left: 91.6666666667%; }
+ .columns.is-mobile > .column.is-12 {
+ flex: none;
+ width: 100%; }
+ .columns.is-mobile > .column.is-offset-12 {
+ margin-left: 100%; }
+ @media screen and (max-width: 768px) {
+ .column.is-narrow-mobile {
+ flex: none; }
+ .column.is-full-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-mobile {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-mobile {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-mobile {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-mobile {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-mobile {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-mobile {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-mobile {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-mobile {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-mobile {
+ margin-left: 50%; }
+ .column.is-offset-one-third-mobile {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-mobile {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-mobile {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-mobile {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-mobile {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-mobile {
+ margin-left: 80%; }
+ .column.is-0-mobile {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-mobile {
+ margin-left: 0%; }
+ .column.is-1-mobile {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-mobile {
+ margin-left: 8.3333333333%; }
+ .column.is-2-mobile {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-mobile {
+ margin-left: 16.6666666667%; }
+ .column.is-3-mobile {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-mobile {
+ margin-left: 25%; }
+ .column.is-4-mobile {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-mobile {
+ margin-left: 33.3333333333%; }
+ .column.is-5-mobile {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-mobile {
+ margin-left: 41.6666666667%; }
+ .column.is-6-mobile {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-mobile {
+ margin-left: 50%; }
+ .column.is-7-mobile {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-mobile {
+ margin-left: 58.3333333333%; }
+ .column.is-8-mobile {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-mobile {
+ margin-left: 66.6666666667%; }
+ .column.is-9-mobile {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-mobile {
+ margin-left: 75%; }
+ .column.is-10-mobile {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-mobile {
+ margin-left: 83.3333333333%; }
+ .column.is-11-mobile {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-mobile {
+ margin-left: 91.6666666667%; }
+ .column.is-12-mobile {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-mobile {
+ margin-left: 100%; } }
+ @media screen and (min-width: 769px), print {
+ .column.is-narrow, .column.is-narrow-tablet {
+ flex: none; }
+ .column.is-full, .column.is-full-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters, .column.is-three-quarters-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds, .column.is-two-thirds-tablet {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half, .column.is-half-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third, .column.is-one-third-tablet {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter, .column.is-one-quarter-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth, .column.is-one-fifth-tablet {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths, .column.is-two-fifths-tablet {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths, .column.is-three-fifths-tablet {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths, .column.is-four-fifths-tablet {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet {
+ margin-left: 66.6666%; }
+ .column.is-offset-half, .column.is-offset-half-tablet {
+ margin-left: 50%; }
+ .column.is-offset-one-third, .column.is-offset-one-third-tablet {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet {
+ margin-left: 80%; }
+ .column.is-0, .column.is-0-tablet {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0, .column.is-offset-0-tablet {
+ margin-left: 0%; }
+ .column.is-1, .column.is-1-tablet {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1, .column.is-offset-1-tablet {
+ margin-left: 8.3333333333%; }
+ .column.is-2, .column.is-2-tablet {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2, .column.is-offset-2-tablet {
+ margin-left: 16.6666666667%; }
+ .column.is-3, .column.is-3-tablet {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3, .column.is-offset-3-tablet {
+ margin-left: 25%; }
+ .column.is-4, .column.is-4-tablet {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4, .column.is-offset-4-tablet {
+ margin-left: 33.3333333333%; }
+ .column.is-5, .column.is-5-tablet {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5, .column.is-offset-5-tablet {
+ margin-left: 41.6666666667%; }
+ .column.is-6, .column.is-6-tablet {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6, .column.is-offset-6-tablet {
+ margin-left: 50%; }
+ .column.is-7, .column.is-7-tablet {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7, .column.is-offset-7-tablet {
+ margin-left: 58.3333333333%; }
+ .column.is-8, .column.is-8-tablet {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8, .column.is-offset-8-tablet {
+ margin-left: 66.6666666667%; }
+ .column.is-9, .column.is-9-tablet {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9, .column.is-offset-9-tablet {
+ margin-left: 75%; }
+ .column.is-10, .column.is-10-tablet {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10, .column.is-offset-10-tablet {
+ margin-left: 83.3333333333%; }
+ .column.is-11, .column.is-11-tablet {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11, .column.is-offset-11-tablet {
+ margin-left: 91.6666666667%; }
+ .column.is-12, .column.is-12-tablet {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12, .column.is-offset-12-tablet {
+ margin-left: 100%; } }
+ @media screen and (max-width: 1055px) {
+ .column.is-narrow-touch {
+ flex: none; }
+ .column.is-full-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-touch {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-touch {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-touch {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-touch {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-touch {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-touch {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-touch {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-touch {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-touch {
+ margin-left: 50%; }
+ .column.is-offset-one-third-touch {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-touch {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-touch {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-touch {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-touch {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-touch {
+ margin-left: 80%; }
+ .column.is-0-touch {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-touch {
+ margin-left: 0%; }
+ .column.is-1-touch {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-touch {
+ margin-left: 8.3333333333%; }
+ .column.is-2-touch {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-touch {
+ margin-left: 16.6666666667%; }
+ .column.is-3-touch {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-touch {
+ margin-left: 25%; }
+ .column.is-4-touch {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-touch {
+ margin-left: 33.3333333333%; }
+ .column.is-5-touch {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-touch {
+ margin-left: 41.6666666667%; }
+ .column.is-6-touch {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-touch {
+ margin-left: 50%; }
+ .column.is-7-touch {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-touch {
+ margin-left: 58.3333333333%; }
+ .column.is-8-touch {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-touch {
+ margin-left: 66.6666666667%; }
+ .column.is-9-touch {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-touch {
+ margin-left: 75%; }
+ .column.is-10-touch {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-touch {
+ margin-left: 83.3333333333%; }
+ .column.is-11-touch {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-touch {
+ margin-left: 91.6666666667%; }
+ .column.is-12-touch {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-touch {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1056px) {
+ .column.is-narrow-desktop {
+ flex: none; }
+ .column.is-full-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-desktop {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-desktop {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-desktop {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-desktop {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-desktop {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-desktop {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-desktop {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-desktop {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-desktop {
+ margin-left: 50%; }
+ .column.is-offset-one-third-desktop {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-desktop {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-desktop {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-desktop {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-desktop {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-desktop {
+ margin-left: 80%; }
+ .column.is-0-desktop {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-desktop {
+ margin-left: 0%; }
+ .column.is-1-desktop {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-desktop {
+ margin-left: 8.3333333333%; }
+ .column.is-2-desktop {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-desktop {
+ margin-left: 16.6666666667%; }
+ .column.is-3-desktop {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-desktop {
+ margin-left: 25%; }
+ .column.is-4-desktop {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-desktop {
+ margin-left: 33.3333333333%; }
+ .column.is-5-desktop {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-desktop {
+ margin-left: 41.6666666667%; }
+ .column.is-6-desktop {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-desktop {
+ margin-left: 50%; }
+ .column.is-7-desktop {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-desktop {
+ margin-left: 58.3333333333%; }
+ .column.is-8-desktop {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-desktop {
+ margin-left: 66.6666666667%; }
+ .column.is-9-desktop {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-desktop {
+ margin-left: 75%; }
+ .column.is-10-desktop {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-desktop {
+ margin-left: 83.3333333333%; }
+ .column.is-11-desktop {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-desktop {
+ margin-left: 91.6666666667%; }
+ .column.is-12-desktop {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-desktop {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1216px) {
+ .column.is-narrow-widescreen {
+ flex: none; }
+ .column.is-full-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-widescreen {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-widescreen {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-widescreen {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-widescreen {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-widescreen {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-widescreen {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-widescreen {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-widescreen {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-widescreen {
+ margin-left: 50%; }
+ .column.is-offset-one-third-widescreen {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-widescreen {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-widescreen {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-widescreen {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-widescreen {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-widescreen {
+ margin-left: 80%; }
+ .column.is-0-widescreen {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-widescreen {
+ margin-left: 0%; }
+ .column.is-1-widescreen {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-widescreen {
+ margin-left: 8.3333333333%; }
+ .column.is-2-widescreen {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-widescreen {
+ margin-left: 16.6666666667%; }
+ .column.is-3-widescreen {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-widescreen {
+ margin-left: 25%; }
+ .column.is-4-widescreen {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-widescreen {
+ margin-left: 33.3333333333%; }
+ .column.is-5-widescreen {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-widescreen {
+ margin-left: 41.6666666667%; }
+ .column.is-6-widescreen {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-widescreen {
+ margin-left: 50%; }
+ .column.is-7-widescreen {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-widescreen {
+ margin-left: 58.3333333333%; }
+ .column.is-8-widescreen {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-widescreen {
+ margin-left: 66.6666666667%; }
+ .column.is-9-widescreen {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-widescreen {
+ margin-left: 75%; }
+ .column.is-10-widescreen {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-widescreen {
+ margin-left: 83.3333333333%; }
+ .column.is-11-widescreen {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-widescreen {
+ margin-left: 91.6666666667%; }
+ .column.is-12-widescreen {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-widescreen {
+ margin-left: 100%; } }
+ @media screen and (min-width: 1408px) {
+ .column.is-narrow-fullhd {
+ flex: none; }
+ .column.is-full-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-three-quarters-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-two-thirds-fullhd {
+ flex: none;
+ width: 66.6666%; }
+ .column.is-half-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-one-third-fullhd {
+ flex: none;
+ width: 33.3333%; }
+ .column.is-one-quarter-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-one-fifth-fullhd {
+ flex: none;
+ width: 20%; }
+ .column.is-two-fifths-fullhd {
+ flex: none;
+ width: 40%; }
+ .column.is-three-fifths-fullhd {
+ flex: none;
+ width: 60%; }
+ .column.is-four-fifths-fullhd {
+ flex: none;
+ width: 80%; }
+ .column.is-offset-three-quarters-fullhd {
+ margin-left: 75%; }
+ .column.is-offset-two-thirds-fullhd {
+ margin-left: 66.6666%; }
+ .column.is-offset-half-fullhd {
+ margin-left: 50%; }
+ .column.is-offset-one-third-fullhd {
+ margin-left: 33.3333%; }
+ .column.is-offset-one-quarter-fullhd {
+ margin-left: 25%; }
+ .column.is-offset-one-fifth-fullhd {
+ margin-left: 20%; }
+ .column.is-offset-two-fifths-fullhd {
+ margin-left: 40%; }
+ .column.is-offset-three-fifths-fullhd {
+ margin-left: 60%; }
+ .column.is-offset-four-fifths-fullhd {
+ margin-left: 80%; }
+ .column.is-0-fullhd {
+ flex: none;
+ width: 0%; }
+ .column.is-offset-0-fullhd {
+ margin-left: 0%; }
+ .column.is-1-fullhd {
+ flex: none;
+ width: 8.3333333333%; }
+ .column.is-offset-1-fullhd {
+ margin-left: 8.3333333333%; }
+ .column.is-2-fullhd {
+ flex: none;
+ width: 16.6666666667%; }
+ .column.is-offset-2-fullhd {
+ margin-left: 16.6666666667%; }
+ .column.is-3-fullhd {
+ flex: none;
+ width: 25%; }
+ .column.is-offset-3-fullhd {
+ margin-left: 25%; }
+ .column.is-4-fullhd {
+ flex: none;
+ width: 33.3333333333%; }
+ .column.is-offset-4-fullhd {
+ margin-left: 33.3333333333%; }
+ .column.is-5-fullhd {
+ flex: none;
+ width: 41.6666666667%; }
+ .column.is-offset-5-fullhd {
+ margin-left: 41.6666666667%; }
+ .column.is-6-fullhd {
+ flex: none;
+ width: 50%; }
+ .column.is-offset-6-fullhd {
+ margin-left: 50%; }
+ .column.is-7-fullhd {
+ flex: none;
+ width: 58.3333333333%; }
+ .column.is-offset-7-fullhd {
+ margin-left: 58.3333333333%; }
+ .column.is-8-fullhd {
+ flex: none;
+ width: 66.6666666667%; }
+ .column.is-offset-8-fullhd {
+ margin-left: 66.6666666667%; }
+ .column.is-9-fullhd {
+ flex: none;
+ width: 75%; }
+ .column.is-offset-9-fullhd {
+ margin-left: 75%; }
+ .column.is-10-fullhd {
+ flex: none;
+ width: 83.3333333333%; }
+ .column.is-offset-10-fullhd {
+ margin-left: 83.3333333333%; }
+ .column.is-11-fullhd {
+ flex: none;
+ width: 91.6666666667%; }
+ .column.is-offset-11-fullhd {
+ margin-left: 91.6666666667%; }
+ .column.is-12-fullhd {
+ flex: none;
+ width: 100%; }
+ .column.is-offset-12-fullhd {
+ margin-left: 100%; } }
+.columns {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .columns:last-child {
+ margin-bottom: -0.75rem; }
+ .columns:not(:last-child) {
+ margin-bottom: calc(1.5rem - 0.75rem); }
+ .columns.is-centered {
+ justify-content: center; }
+ .columns.is-gapless {
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0; }
+ .columns.is-gapless > .column {
+ margin: 0;
+ padding: 0 !important; }
+ .columns.is-gapless:not(:last-child) {
+ margin-bottom: 1.5rem; }
+ .columns.is-gapless:last-child {
+ margin-bottom: 0; }
+ .columns.is-mobile {
+ display: flex; }
+ .columns.is-multiline {
+ flex-wrap: wrap; }
+ .columns.is-vcentered {
+ align-items: center; }
+ @media screen and (min-width: 769px), print {
+ .columns:not(.is-desktop) {
+ display: flex; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-desktop {
+ display: flex; } }
+.columns.is-variable {
+ --columnGap: 0.75rem;
+ margin-left: calc(-1 * var(--columnGap));
+ margin-right: calc(-1 * var(--columnGap)); }
+ .columns.is-variable .column {
+ padding-left: var(--columnGap);
+ padding-right: var(--columnGap); }
+ .columns.is-variable.is-0 {
+ --columnGap: 0rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-0-mobile {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-0-tablet {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-0-tablet-only {
+ --columnGap: 0rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-0-touch {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-0-desktop {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-0-desktop-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-0-widescreen {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-0-widescreen-only {
+ --columnGap: 0rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-0-fullhd {
+ --columnGap: 0rem; } }
+ .columns.is-variable.is-1 {
+ --columnGap: 0.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-1-mobile {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-1-tablet {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-1-tablet-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-1-touch {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-1-desktop {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-1-desktop-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-1-widescreen {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-1-widescreen-only {
+ --columnGap: 0.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-1-fullhd {
+ --columnGap: 0.25rem; } }
+ .columns.is-variable.is-2 {
+ --columnGap: 0.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-2-mobile {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-2-tablet {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-2-tablet-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-2-touch {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-2-desktop {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-2-desktop-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-2-widescreen {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-2-widescreen-only {
+ --columnGap: 0.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-2-fullhd {
+ --columnGap: 0.5rem; } }
+ .columns.is-variable.is-3 {
+ --columnGap: 0.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-3-mobile {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-3-tablet {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-3-tablet-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-3-touch {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-3-desktop {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-3-desktop-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-3-widescreen {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-3-widescreen-only {
+ --columnGap: 0.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-3-fullhd {
+ --columnGap: 0.75rem; } }
+ .columns.is-variable.is-4 {
+ --columnGap: 1rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-4-mobile {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-4-tablet {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-4-tablet-only {
+ --columnGap: 1rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-4-touch {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-4-desktop {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-4-desktop-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-4-widescreen {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-4-widescreen-only {
+ --columnGap: 1rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-4-fullhd {
+ --columnGap: 1rem; } }
+ .columns.is-variable.is-5 {
+ --columnGap: 1.25rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-5-mobile {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-5-tablet {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-5-tablet-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-5-touch {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-5-desktop {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-5-desktop-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-5-widescreen {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-5-widescreen-only {
+ --columnGap: 1.25rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-5-fullhd {
+ --columnGap: 1.25rem; } }
+ .columns.is-variable.is-6 {
+ --columnGap: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-6-mobile {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-6-tablet {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-6-tablet-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-6-touch {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-6-desktop {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-6-desktop-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-6-widescreen {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-6-widescreen-only {
+ --columnGap: 1.5rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-6-fullhd {
+ --columnGap: 1.5rem; } }
+ .columns.is-variable.is-7 {
+ --columnGap: 1.75rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-7-mobile {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-7-tablet {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-7-tablet-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-7-touch {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-7-desktop {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-7-desktop-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-7-widescreen {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-7-widescreen-only {
+ --columnGap: 1.75rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-7-fullhd {
+ --columnGap: 1.75rem; } }
+ .columns.is-variable.is-8 {
+ --columnGap: 2rem; }
+ @media screen and (max-width: 768px) {
+ .columns.is-variable.is-8-mobile {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px), print {
+ .columns.is-variable.is-8-tablet {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 769px) and (max-width: 1055px) {
+ .columns.is-variable.is-8-tablet-only {
+ --columnGap: 2rem; } }
+ @media screen and (max-width: 1055px) {
+ .columns.is-variable.is-8-touch {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) {
+ .columns.is-variable.is-8-desktop {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1056px) and (max-width: 1215px) {
+ .columns.is-variable.is-8-desktop-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) {
+ .columns.is-variable.is-8-widescreen {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1216px) and (max-width: 1407px) {
+ .columns.is-variable.is-8-widescreen-only {
+ --columnGap: 2rem; } }
+ @media screen and (min-width: 1408px) {
+ .columns.is-variable.is-8-fullhd {
+ --columnGap: 2rem; } }
+.tile {
+ align-items: stretch;
+ display: block;
+ flex-basis: 0;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: min-content; }
+ .tile.is-ancestor {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+ margin-top: -0.75rem; }
+ .tile.is-ancestor:last-child {
+ margin-bottom: -0.75rem; }
+ .tile.is-ancestor:not(:last-child) {
+ margin-bottom: 0.75rem; }
+ .tile.is-child {
+ margin: 0 !important; }
+ .tile.is-parent {
+ padding: 0.75rem; }
+ .tile.is-vertical {
+ flex-direction: column; }
+ .tile.is-vertical > .tile.is-child:not(:last-child) {
+ margin-bottom: 1.5rem !important; }
+ @media screen and (min-width: 769px), print {
+ .tile:not(.is-child) {
+ display: flex; }
+ .tile.is-1 {
+ flex: none;
+ width: 8.3333333333%; }
+ .tile.is-2 {
+ flex: none;
+ width: 16.6666666667%; }
+ .tile.is-3 {
+ flex: none;
+ width: 25%; }
+ .tile.is-4 {
+ flex: none;
+ width: 33.3333333333%; }
+ .tile.is-5 {
+ flex: none;
+ width: 41.6666666667%; }
+ .tile.is-6 {
+ flex: none;
+ width: 50%; }
+ .tile.is-7 {
+ flex: none;
+ width: 58.3333333333%; }
+ .tile.is-8 {
+ flex: none;
+ width: 66.6666666667%; }
+ .tile.is-9 {
+ flex: none;
+ width: 75%; }
+ .tile.is-10 {
+ flex: none;
+ width: 83.3333333333%; }
+ .tile.is-11 {
+ flex: none;
+ width: 91.6666666667%; }
+ .tile.is-12 {
+ flex: none;
+ width: 100%; } }
+.hero {
+ align-items: stretch;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between; }
+ .hero .navbar {
+ background: none; }
+ .hero .tabs ul {
+ border-bottom: none; }
+ .hero.is-white {
+ background-color: white;
+ color: #0a0a0a; }
+ .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-white strong {
+ color: inherit; }
+ .hero.is-white .title {
+ color: #0a0a0a; }
+ .hero.is-white .subtitle {
+ color: rgba(10, 10, 10, 0.9); }
+ .hero.is-white .subtitle a:not(.button),
+ .hero.is-white .subtitle strong {
+ color: #0a0a0a; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-white .navbar-menu {
+ background-color: white; } }
+ .hero.is-white .navbar-item,
+ .hero.is-white .navbar-link {
+ color: rgba(10, 10, 10, 0.7); }
+ .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active,
+ .hero.is-white .navbar-link:hover,
+ .hero.is-white .navbar-link.is-active {
+ background-color: #f2f2f2;
+ color: #0a0a0a; }
+ .hero.is-white .tabs a {
+ color: #0a0a0a;
+ opacity: 0.9; }
+ .hero.is-white .tabs a:hover {
+ opacity: 1; }
+ .hero.is-white .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a {
+ color: #0a0a0a; }
+ .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover {
+ background-color: #0a0a0a;
+ border-color: #0a0a0a;
+ color: white; }
+ .hero.is-white.is-bold {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-white.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
+ .hero.is-black {
+ background-color: #0a0a0a;
+ color: white; }
+ .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-black strong {
+ color: inherit; }
+ .hero.is-black .title {
+ color: white; }
+ .hero.is-black .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-black .subtitle a:not(.button),
+ .hero.is-black .subtitle strong {
+ color: white; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-black .navbar-menu {
+ background-color: #0a0a0a; } }
+ .hero.is-black .navbar-item,
+ .hero.is-black .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active,
+ .hero.is-black .navbar-link:hover,
+ .hero.is-black .navbar-link.is-active {
+ background-color: black;
+ color: white; }
+ .hero.is-black .tabs a {
+ color: white;
+ opacity: 0.9; }
+ .hero.is-black .tabs a:hover {
+ opacity: 1; }
+ .hero.is-black .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a {
+ color: white; }
+ .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover {
+ background-color: white;
+ border-color: white;
+ color: #0a0a0a; }
+ .hero.is-black.is-bold {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-black.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
+ .hero.is-light {
+ background-color: whitesmoke;
+ color: #363636; }
+ .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-light strong {
+ color: inherit; }
+ .hero.is-light .title {
+ color: #363636; }
+ .hero.is-light .subtitle {
+ color: rgba(54, 54, 54, 0.9); }
+ .hero.is-light .subtitle a:not(.button),
+ .hero.is-light .subtitle strong {
+ color: #363636; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-light .navbar-menu {
+ background-color: whitesmoke; } }
+ .hero.is-light .navbar-item,
+ .hero.is-light .navbar-link {
+ color: rgba(54, 54, 54, 0.7); }
+ .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active,
+ .hero.is-light .navbar-link:hover,
+ .hero.is-light .navbar-link.is-active {
+ background-color: #e8e8e8;
+ color: #363636; }
+ .hero.is-light .tabs a {
+ color: #363636;
+ opacity: 0.9; }
+ .hero.is-light .tabs a:hover {
+ opacity: 1; }
+ .hero.is-light .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a {
+ color: #363636; }
+ .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover {
+ background-color: #363636;
+ border-color: #363636;
+ color: whitesmoke; }
+ .hero.is-light.is-bold {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-light.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }
+ .hero.is-dark, .content kbd.hero {
+ background-color: #363636;
+ color: whitesmoke; }
+ .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-dark strong,
+ .content kbd.hero strong {
+ color: inherit; }
+ .hero.is-dark .title, .content kbd.hero .title {
+ color: whitesmoke; }
+ .hero.is-dark .subtitle, .content kbd.hero .subtitle {
+ color: rgba(245, 245, 245, 0.9); }
+ .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button),
+ .hero.is-dark .subtitle strong,
+ .content kbd.hero .subtitle strong {
+ color: whitesmoke; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu {
+ background-color: #363636; } }
+ .hero.is-dark .navbar-item, .content kbd.hero .navbar-item,
+ .hero.is-dark .navbar-link,
+ .content kbd.hero .navbar-link {
+ color: rgba(245, 245, 245, 0.7); }
+ .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active,
+ .hero.is-dark .navbar-link:hover,
+ .content kbd.hero .navbar-link:hover,
+ .hero.is-dark .navbar-link.is-active,
+ .content kbd.hero .navbar-link.is-active {
+ background-color: #292929;
+ color: whitesmoke; }
+ .hero.is-dark .tabs a, .content kbd.hero .tabs a {
+ color: whitesmoke;
+ opacity: 0.9; }
+ .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover {
+ opacity: 1; }
+ .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a {
+ color: whitesmoke; }
+ .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover {
+ background-color: whitesmoke;
+ border-color: whitesmoke;
+ color: #363636; }
+ .hero.is-dark.is-bold, .content kbd.hero.is-bold {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }
+ .hero.is-primary, .docstring > section > a.hero.docs-sourcelink {
+ background-color: #4eb5de;
+ color: #fff; }
+ .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-primary strong,
+ .docstring > section > a.hero.docs-sourcelink strong {
+ color: inherit; }
+ .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title {
+ color: #fff; }
+ .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
+ .hero.is-primary .subtitle strong,
+ .docstring > section > a.hero.docs-sourcelink .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu {
+ background-color: #4eb5de; } }
+ .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item,
+ .hero.is-primary .navbar-link,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
+ .hero.is-primary .navbar-link:hover,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
+ .hero.is-primary .navbar-link.is-active,
+ .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
+ background-color: #39acda;
+ color: #fff; }
+ .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
+ opacity: 1; }
+ .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #4eb5de; }
+ .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
+ background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } }
+ .hero.is-link {
+ background-color: #2e63b8;
+ color: #fff; }
+ .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-link strong {
+ color: inherit; }
+ .hero.is-link .title {
+ color: #fff; }
+ .hero.is-link .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-link .subtitle a:not(.button),
+ .hero.is-link .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-link .navbar-menu {
+ background-color: #2e63b8; } }
+ .hero.is-link .navbar-item,
+ .hero.is-link .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active,
+ .hero.is-link .navbar-link:hover,
+ .hero.is-link .navbar-link.is-active {
+ background-color: #2958a4;
+ color: #fff; }
+ .hero.is-link .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-link .tabs a:hover {
+ opacity: 1; }
+ .hero.is-link .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #2e63b8; }
+ .hero.is-link.is-bold {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-link.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } }
+ .hero.is-info {
+ background-color: #209cee;
+ color: #fff; }
+ .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-info strong {
+ color: inherit; }
+ .hero.is-info .title {
+ color: #fff; }
+ .hero.is-info .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-info .subtitle a:not(.button),
+ .hero.is-info .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-info .navbar-menu {
+ background-color: #209cee; } }
+ .hero.is-info .navbar-item,
+ .hero.is-info .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active,
+ .hero.is-info .navbar-link:hover,
+ .hero.is-info .navbar-link.is-active {
+ background-color: #1190e3;
+ color: #fff; }
+ .hero.is-info .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-info .tabs a:hover {
+ opacity: 1; }
+ .hero.is-info .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #209cee; }
+ .hero.is-info.is-bold {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-info.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } }
+ .hero.is-success {
+ background-color: #22c35b;
+ color: #fff; }
+ .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-success strong {
+ color: inherit; }
+ .hero.is-success .title {
+ color: #fff; }
+ .hero.is-success .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-success .subtitle a:not(.button),
+ .hero.is-success .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-success .navbar-menu {
+ background-color: #22c35b; } }
+ .hero.is-success .navbar-item,
+ .hero.is-success .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active,
+ .hero.is-success .navbar-link:hover,
+ .hero.is-success .navbar-link.is-active {
+ background-color: #1ead51;
+ color: #fff; }
+ .hero.is-success .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-success .tabs a:hover {
+ opacity: 1; }
+ .hero.is-success .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #22c35b; }
+ .hero.is-success.is-bold {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-success.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } }
+ .hero.is-warning {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-warning strong {
+ color: inherit; }
+ .hero.is-warning .title {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .subtitle {
+ color: rgba(0, 0, 0, 0.9); }
+ .hero.is-warning .subtitle a:not(.button),
+ .hero.is-warning .subtitle strong {
+ color: rgba(0, 0, 0, 0.7); }
+ @media screen and (max-width: 1055px) {
+ .hero.is-warning .navbar-menu {
+ background-color: #ffdd57; } }
+ .hero.is-warning .navbar-item,
+ .hero.is-warning .navbar-link {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active,
+ .hero.is-warning .navbar-link:hover,
+ .hero.is-warning .navbar-link.is-active {
+ background-color: #ffd83e;
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs a {
+ color: rgba(0, 0, 0, 0.7);
+ opacity: 0.9; }
+ .hero.is-warning .tabs a:hover {
+ opacity: 1; }
+ .hero.is-warning .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a {
+ color: rgba(0, 0, 0, 0.7); }
+ .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover {
+ background-color: rgba(0, 0, 0, 0.7);
+ border-color: rgba(0, 0, 0, 0.7);
+ color: #ffdd57; }
+ .hero.is-warning.is-bold {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-warning.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } }
+ .hero.is-danger {
+ background-color: #da0b00;
+ color: #fff; }
+ .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+ .hero.is-danger strong {
+ color: inherit; }
+ .hero.is-danger .title {
+ color: #fff; }
+ .hero.is-danger .subtitle {
+ color: rgba(255, 255, 255, 0.9); }
+ .hero.is-danger .subtitle a:not(.button),
+ .hero.is-danger .subtitle strong {
+ color: #fff; }
+ @media screen and (max-width: 1055px) {
+ .hero.is-danger .navbar-menu {
+ background-color: #da0b00; } }
+ .hero.is-danger .navbar-item,
+ .hero.is-danger .navbar-link {
+ color: rgba(255, 255, 255, 0.7); }
+ .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active,
+ .hero.is-danger .navbar-link:hover,
+ .hero.is-danger .navbar-link.is-active {
+ background-color: #c10a00;
+ color: #fff; }
+ .hero.is-danger .tabs a {
+ color: #fff;
+ opacity: 0.9; }
+ .hero.is-danger .tabs a:hover {
+ opacity: 1; }
+ .hero.is-danger .tabs li.is-active a {
+ opacity: 1; }
+ .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a {
+ color: #fff; }
+ .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover {
+ background-color: rgba(10, 10, 10, 0.1); }
+ .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover {
+ background-color: #fff;
+ border-color: #fff;
+ color: #da0b00; }
+ .hero.is-danger.is-bold {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); }
+ @media screen and (max-width: 768px) {
+ .hero.is-danger.is-bold .navbar-menu {
+ background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } }
+ .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
+ padding-bottom: 1.5rem;
+ padding-top: 1.5rem; }
+ @media screen and (min-width: 769px), print {
+ .hero.is-medium .hero-body {
+ padding-bottom: 9rem;
+ padding-top: 9rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero.is-large .hero-body {
+ padding-bottom: 18rem;
+ padding-top: 18rem; } }
+ .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body {
+ align-items: center;
+ display: flex; }
+ .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container {
+ flex-grow: 1;
+ flex-shrink: 1; }
+ .hero.is-halfheight {
+ min-height: 50vh; }
+ .hero.is-fullheight {
+ min-height: 100vh; }
+
+.hero-video {
+ overflow: hidden; }
+ .hero-video video {
+ left: 50%;
+ min-height: 100%;
+ min-width: 100%;
+ position: absolute;
+ top: 50%;
+ transform: translate3d(-50%, -50%, 0); }
+ .hero-video.is-transparent {
+ opacity: 0.3; }
+ @media screen and (max-width: 768px) {
+ .hero-video {
+ display: none; } }
+.hero-buttons {
+ margin-top: 1.5rem; }
+ @media screen and (max-width: 768px) {
+ .hero-buttons .button {
+ display: flex; }
+ .hero-buttons .button:not(:last-child) {
+ margin-bottom: 0.75rem; } }
+ @media screen and (min-width: 769px), print {
+ .hero-buttons {
+ display: flex;
+ justify-content: center; }
+ .hero-buttons .button:not(:last-child) {
+ margin-right: 1.5rem; } }
+.hero-head,
+.hero-foot {
+ flex-grow: 0;
+ flex-shrink: 0; }
+
+.hero-body {
+ flex-grow: 1;
+ flex-shrink: 0;
+ padding: 3rem 1.5rem; }
+
+.section {
+ padding: 3rem 1.5rem; }
+ @media screen and (min-width: 1056px) {
+ .section.is-medium {
+ padding: 9rem 1.5rem; }
+ .section.is-large {
+ padding: 18rem 1.5rem; } }
+.footer {
+ background-color: #fafafa;
+ padding: 3rem 1.5rem 6rem; }
+
+h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited {
+ color: #222222; }
+
+h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink {
+ visibility: hidden;
+ vertical-align: middle;
+ margin-left: 0.5em;
+ font-size: 0.7rem; }
+ h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f0c1"; }
+
+h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink {
+ visibility: visible; }
+
+.docs-dark-only {
+ display: none !important; }
+
+pre {
+ position: relative;
+ overflow: hidden; }
+ pre code, pre code.hljs {
+ padding: 0 0.75rem !important;
+ overflow: auto;
+ display: block; }
+ pre code:first-of-type, pre code.hljs:first-of-type {
+ padding-top: 0.5rem !important; }
+ pre code:last-of-type, pre code.hljs:last-of-type {
+ padding-bottom: 0.5rem !important; }
+ pre .copy-button {
+ opacity: 0.2;
+ transition: opacity 0.2s;
+ position: absolute;
+ right: 0em;
+ top: 0em;
+ padding: 0.5em;
+ width: 2.5em;
+ height: 2.5em;
+ background: transparent;
+ border: none;
+ font-family: "Font Awesome 5 Free";
+ color: #222222;
+ cursor: pointer;
+ text-align: center; }
+ pre .copy-button:focus, pre .copy-button:hover {
+ opacity: 1;
+ background: rgba(34, 34, 34, 0.1);
+ color: #2e63b8; }
+ pre .copy-button.success {
+ color: #259a12;
+ opacity: 1; }
+ pre .copy-button.error {
+ color: #cb3c33;
+ opacity: 1; }
+ pre:hover .copy-button {
+ opacity: 1; }
+
+.admonition {
+ background-color: #b5b5b5;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #363636;
+ border-radius: 4px;
+ font-size: 1rem; }
+ .admonition strong {
+ color: currentColor; }
+ .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition {
+ font-size: 0.75rem; }
+ .admonition.is-medium {
+ font-size: 1.25rem; }
+ .admonition.is-large {
+ font-size: 1.5rem; }
+ .admonition.is-default {
+ background-color: #b5b5b5;
+ border-color: #363636; }
+ .admonition.is-default > .admonition-header {
+ background-color: #363636;
+ color: #fff; }
+ .admonition.is-default > .admonition-body {
+ color: #fff; }
+ .admonition.is-info {
+ background-color: #def0fc;
+ border-color: #209cee; }
+ .admonition.is-info > .admonition-header {
+ background-color: #209cee;
+ color: #fff; }
+ .admonition.is-info > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-success {
+ background-color: #bdf4d1;
+ border-color: #22c35b; }
+ .admonition.is-success > .admonition-header {
+ background-color: #22c35b;
+ color: #fff; }
+ .admonition.is-success > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning {
+ background-color: #fff3c5;
+ border-color: #ffdd57; }
+ .admonition.is-warning > .admonition-header {
+ background-color: #ffdd57;
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-warning > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-danger {
+ background-color: #ffaba7;
+ border-color: #da0b00; }
+ .admonition.is-danger > .admonition-header {
+ background-color: #da0b00;
+ color: #fff; }
+ .admonition.is-danger > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+ .admonition.is-compat {
+ background-color: #bdeff5;
+ border-color: #1db5c9; }
+ .admonition.is-compat > .admonition-header {
+ background-color: #1db5c9;
+ color: #fff; }
+ .admonition.is-compat > .admonition-body {
+ color: rgba(0, 0, 0, 0.7); }
+
+.admonition-header {
+ color: #fff;
+ background-color: #363636;
+ align-items: center;
+ font-weight: 700;
+ justify-content: space-between;
+ line-height: 1.25;
+ padding: 0.5rem 0.75rem;
+ position: relative; }
+ .admonition-header:before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 0.75rem;
+ content: "\f06a"; }
+
+.admonition-body {
+ color: #222222;
+ padding: 0.5rem 0.75rem; }
+ .admonition-body pre {
+ background-color: whitesmoke; }
+ .admonition-body code {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.docstring {
+ margin-bottom: 1em;
+ background-color: transparent;
+ border: 1px solid #dbdbdb;
+ box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1);
+ max-width: 100%; }
+ .docstring > header {
+ display: flex;
+ flex-grow: 1;
+ align-items: stretch;
+ padding: 0.5rem 0.75rem;
+ background-color: whitesmoke;
+ box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: none;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > header code {
+ background-color: transparent; }
+ .docstring > header .docstring-binding {
+ margin-right: 0.3em; }
+ .docstring > header .docstring-category {
+ margin-left: 0.3em; }
+ .docstring > section {
+ position: relative;
+ padding: 0.75rem 0.75rem;
+ border-bottom: 1px solid #dbdbdb; }
+ .docstring > section:last-child {
+ border-bottom: none; }
+ .docstring > section > a.docs-sourcelink {
+ transition: opacity 0.3s;
+ opacity: 0;
+ position: absolute;
+ right: 0.375rem;
+ bottom: 0.375rem; }
+ .docstring > section > a.docs-sourcelink:focus {
+ opacity: 1 !important; }
+ .docstring:hover > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring:focus-within > section > a.docs-sourcelink {
+ opacity: 0.2; }
+ .docstring > section:hover a.docs-sourcelink {
+ opacity: 1; }
+
+.documenter-example-output {
+ background-color: white; }
+
+.outdated-warning-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ z-index: 999;
+ background-color: #ffaba7;
+ color: rgba(0, 0, 0, 0.7);
+ border-bottom: 3px solid #da0b00;
+ padding: 10px 35px;
+ text-align: center;
+ font-size: 15px; }
+ .outdated-warning-overlay .outdated-warning-closer {
+ position: absolute;
+ top: calc(50% - 10px);
+ right: 18px;
+ cursor: pointer;
+ width: 12px; }
+ .outdated-warning-overlay a {
+ color: #2e63b8; }
+ .outdated-warning-overlay a:hover {
+ color: #363636; }
+
+.content pre {
+ border: 1px solid #dbdbdb; }
+
+.content code {
+ font-weight: inherit; }
+
+.content a code {
+ color: #2e63b8; }
+
+.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code {
+ color: #222222; }
+
+.content table {
+ display: block;
+ width: initial;
+ max-width: 100%;
+ overflow-x: auto; }
+
+.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child {
+ margin-top: 0; }
+
+pre, code {
+ font-variant-ligatures: no-contextual; }
+
+.breadcrumb a.is-disabled {
+ cursor: default;
+ pointer-events: none; }
+ .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover {
+ color: #222222; }
+
+.hljs {
+ background: initial !important; }
+
+.katex .katex-mathml {
+ top: 0;
+ right: 0; }
+
+.katex-display, mjx-container, .MathJax_Display {
+ margin: 0.5em 0 !important; }
+
+html {
+ -moz-osx-font-smoothing: auto;
+ -webkit-font-smoothing: auto; }
+
+li.no-marker {
+ list-style: none; }
+
+/* This file contain the overall layout.
+ *
+ * The main container is
that is identified by id #documenter.
+ */
+#documenter .docs-main > article {
+ overflow-wrap: break-word; }
+ #documenter .docs-main > article .math-container {
+ overflow-x: auto;
+ overflow-y: hidden; }
+
+@media screen and (min-width: 1056px) {
+ #documenter .docs-main {
+ max-width: 52rem;
+ margin-left: 20rem;
+ padding-right: 1rem; } }
+
+@media screen and (max-width: 1055px) {
+ #documenter .docs-main {
+ width: 100%; }
+ #documenter .docs-main > article {
+ max-width: 52rem;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-main > header, #documenter .docs-main > nav {
+ max-width: 100%;
+ width: 100%;
+ margin: 0; } }
+
+#documenter .docs-main header.docs-navbar {
+ background-color: white;
+ border-bottom: 1px solid #dbdbdb;
+ z-index: 2;
+ min-height: 4rem;
+ margin-bottom: 1rem;
+ display: flex; }
+ #documenter .docs-main header.docs-navbar .breadcrumb {
+ flex-grow: 1; }
+ #documenter .docs-main header.docs-navbar .docs-right {
+ display: flex;
+ white-space: nowrap; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ display: inline-block; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-label {
+ padding: 0;
+ margin-left: 0.3em; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
+ font-size: 1.5rem;
+ margin: auto 0 auto 1rem; }
+ #documenter .docs-main header.docs-navbar > * {
+ margin: auto 0; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main header.docs-navbar {
+ position: sticky;
+ top: 0;
+ padding: 0 1rem;
+ /* For Headroom.js */
+ transition-property: top, box-shadow;
+ -webkit-transition-property: top, box-shadow;
+ /* Safari */
+ transition-duration: 0.3s;
+ -webkit-transition-duration: 0.3s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--not-top {
+ box-shadow: 0.2rem 0rem 0.4rem #bbb;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ }
+ #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
+ top: -4.5rem;
+ transition-duration: 0.7s;
+ -webkit-transition-duration: 0.7s;
+ /* Safari */ } }
+#documenter .docs-main section.footnotes {
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child {
+ margin-right: 1em;
+ margin-bottom: 0.4em; }
+
+#documenter .docs-main .docs-footer {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #dbdbdb;
+ padding-top: 1rem;
+ padding-bottom: 1rem; }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-main .docs-footer {
+ padding-left: 1rem;
+ padding-right: 1rem; } }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage {
+ flex-grow: 1; }
+ #documenter .docs-main .docs-footer .docs-footer-nextpage {
+ text-align: right; }
+ #documenter .docs-main .docs-footer .flexbox-break {
+ flex-basis: 100%;
+ height: 0; }
+ #documenter .docs-main .docs-footer .footer-message {
+ font-size: 0.8em;
+ margin: 0.5em auto 0 auto;
+ text-align: center; }
+
+#documenter .docs-sidebar {
+ display: flex;
+ flex-direction: column;
+ color: #0a0a0a;
+ background-color: whitesmoke;
+ border-right: 1px solid #dbdbdb;
+ padding: 0;
+ flex: 0 0 18rem;
+ z-index: 5;
+ font-size: 1rem;
+ position: fixed;
+ left: -18rem;
+ width: 18rem;
+ height: 100%;
+ transition: left 0.3s;
+ /* Setting up a nicer theme style for the scrollbar */ }
+ #documenter .docs-sidebar.visible {
+ left: 0;
+ box-shadow: 0.4rem 0rem 0.8rem #bbb; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar.visible {
+ box-shadow: none; } }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar {
+ left: 0;
+ top: 0; } }
+ #documenter .docs-sidebar .docs-logo {
+ margin-top: 1rem;
+ padding: 0 1rem; }
+ #documenter .docs-sidebar .docs-logo > img {
+ max-height: 6rem;
+ margin: auto; }
+ #documenter .docs-sidebar .docs-package-name {
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 0.5rem 0; }
+ #documenter .docs-sidebar .docs-package-name .docs-autofit {
+ max-width: 16.2rem; }
+ #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover {
+ color: #0a0a0a; }
+ #documenter .docs-sidebar .docs-version-selector {
+ border-top: 1px solid #dbdbdb;
+ display: none;
+ padding: 0.5rem; }
+ #documenter .docs-sidebar .docs-version-selector.visible {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu {
+ flex-grow: 1;
+ user-select: none;
+ border-top: 1px solid #dbdbdb;
+ padding-bottom: 1.5rem;
+ /* Managing collapsible submenus */ }
+ #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
+ font-weight: bold; }
+ #documenter .docs-sidebar ul.docs-menu > li li {
+ font-size: 0.95rem;
+ margin-left: 1em;
+ border-left: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.collapsed {
+ display: none; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
+ display: block; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem {
+ display: flex; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
+ flex-grow: 2; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ line-height: 1;
+ font-size: 0.75rem;
+ margin-left: 1rem;
+ margin-top: auto;
+ margin-bottom: auto; }
+ #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ content: "\f054"; }
+ #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
+ content: "\f078"; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem {
+ display: block;
+ padding: 0.5rem 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
+ color: #0a0a0a;
+ background: whitesmoke; }
+ #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
+ color: #0a0a0a;
+ background-color: #ebebeb; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active {
+ border-top: 1px solid #dbdbdb;
+ border-bottom: 1px solid #dbdbdb;
+ background-color: white; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
+ background-color: white;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
+ background-color: #ebebeb;
+ color: #0a0a0a; }
+ #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
+ border-top: none; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal {
+ margin: 0 0.5rem 0.5rem;
+ border-top: 1px solid #dbdbdb; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal li {
+ font-size: 0.85rem;
+ border-left: none;
+ margin-left: 0;
+ margin-top: 0.5rem; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
+ width: 100%;
+ padding: 0; }
+ #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
+ content: "⚬";
+ margin-right: 0.4em; }
+ #documenter .docs-sidebar form.docs-search {
+ margin: auto;
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem; }
+ #documenter .docs-sidebar form.docs-search > input {
+ width: 14.4rem; }
+ @media screen and (min-width: 1056px) {
+ #documenter .docs-sidebar ul.docs-menu {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+ @media screen and (max-width: 1055px) {
+ #documenter .docs-sidebar {
+ overflow-y: auto;
+ -webkit-overflow-scroll: touch; }
+ #documenter .docs-sidebar::-webkit-scrollbar {
+ width: .3rem;
+ background: none; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb {
+ border-radius: 5px 0px 0px 5px;
+ background: #e0e0e0; }
+ #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #cccccc; } }
+#documenter .docs-main #documenter-search-info {
+ margin-bottom: 1rem; }
+
+#documenter .docs-main #documenter-search-results {
+ list-style-type: circle;
+ list-style-position: outside; }
+ #documenter .docs-main #documenter-search-results li {
+ margin-left: 2rem; }
+ #documenter .docs-main #documenter-search-results .docs-highlight {
+ background-color: yellow; }
+
+.ansi span.sgr1 {
+ font-weight: bolder; }
+
+.ansi span.sgr2 {
+ font-weight: lighter; }
+
+.ansi span.sgr3 {
+ font-style: italic; }
+
+.ansi span.sgr4 {
+ text-decoration: underline; }
+
+.ansi span.sgr7 {
+ color: white;
+ background-color: #222222; }
+
+.ansi span.sgr8 {
+ color: transparent; }
+ .ansi span.sgr8 span {
+ color: transparent; }
+
+.ansi span.sgr9 {
+ text-decoration: line-through; }
+
+.ansi span.sgr30 {
+ color: #242424; }
+
+.ansi span.sgr31 {
+ color: #a7201f; }
+
+.ansi span.sgr32 {
+ color: #066f00; }
+
+.ansi span.sgr33 {
+ color: #856b00; }
+
+.ansi span.sgr34 {
+ color: #2149b0; }
+
+.ansi span.sgr35 {
+ color: #7d4498; }
+
+.ansi span.sgr36 {
+ color: #007989; }
+
+.ansi span.sgr37 {
+ color: gray; }
+
+.ansi span.sgr40 {
+ background-color: #242424; }
+
+.ansi span.sgr41 {
+ background-color: #a7201f; }
+
+.ansi span.sgr42 {
+ background-color: #066f00; }
+
+.ansi span.sgr43 {
+ background-color: #856b00; }
+
+.ansi span.sgr44 {
+ background-color: #2149b0; }
+
+.ansi span.sgr45 {
+ background-color: #7d4498; }
+
+.ansi span.sgr46 {
+ background-color: #007989; }
+
+.ansi span.sgr47 {
+ background-color: gray; }
+
+.ansi span.sgr90 {
+ color: #616161; }
+
+.ansi span.sgr91 {
+ color: #cb3c33; }
+
+.ansi span.sgr92 {
+ color: #0e8300; }
+
+.ansi span.sgr93 {
+ color: #a98800; }
+
+.ansi span.sgr94 {
+ color: #3c5dcd; }
+
+.ansi span.sgr95 {
+ color: #9256af; }
+
+.ansi span.sgr96 {
+ color: #008fa3; }
+
+.ansi span.sgr97 {
+ color: whitesmoke; }
+
+.ansi span.sgr100 {
+ background-color: #616161; }
+
+.ansi span.sgr101 {
+ background-color: #cb3c33; }
+
+.ansi span.sgr102 {
+ background-color: #0e8300; }
+
+.ansi span.sgr103 {
+ background-color: #a98800; }
+
+.ansi span.sgr104 {
+ background-color: #3c5dcd; }
+
+.ansi span.sgr105 {
+ background-color: #9256af; }
+
+.ansi span.sgr106 {
+ background-color: #008fa3; }
+
+.ansi span.sgr107 {
+ background-color: whitesmoke; }
+
+code.language-julia-repl > span.hljs-meta {
+ color: #066f00;
+ font-weight: bolder; }
+
+/*!
+ Theme: Default
+ Description: Original highlight.js style
+ Author: (c) Ivan Sagalaev
+ Maintainer: @highlightjs/core-team
+ Website: https://highlightjs.org/
+ License: see project LICENSE
+ Touched: 2021
+*/
+/*
+This is left on purpose making default.css the single file that can be lifted
+as-is from the repository directly without the need for a build step
+
+Typically this "required" baseline CSS is added by `makestuff.js` during build.
+*/
+pre code.hljs {
+ display: block;
+ overflow-x: auto; }
+
+code.hljs {
+ padding: 3px 5px; }
+
+/* end baseline CSS */
+.hljs {
+ background: #F0F0F0;
+ color: #444; }
+
+/* Base color: saturation 0; */
+.hljs-subst {
+ /* default */ }
+
+/* purposely ignored */
+.hljs-comment {
+ color: #888888; }
+
+.hljs-tag,
+.hljs-punctuation {
+ color: #444a; }
+
+.hljs-tag .hljs-name,
+.hljs-tag .hljs-attr {
+ color: #444; }
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta .hljs-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold; }
+
+/* User color: hue: 0 */
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000; }
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold; }
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-operator,
+.hljs-selector-pseudo {
+ color: #BC6060; }
+
+/* Language color: hue: 90; */
+.hljs-literal {
+ color: #78A960; }
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #397300; }
+
+/* Meta color: hue: 200 */
+.hljs-meta {
+ color: #1f7199; }
+
+.hljs-meta .hljs-string {
+ color: #4d99bf; }
+
+/* Misc effects */
+.hljs-emphasis {
+ font-style: italic; }
+
+.hljs-strong {
+ font-weight: bold; }
diff --git a/v0.4.1/assets/themeswap.js b/v0.4.1/assets/themeswap.js
new file mode 100644
index 0000000..c58e993
--- /dev/null
+++ b/v0.4.1/assets/themeswap.js
@@ -0,0 +1,66 @@
+// Small function to quickly swap out themes. Gets put into the tag..
+function set_theme_from_local_storage() {
+ // Intialize the theme to null, which means default
+ var theme = null;
+ // If the browser supports the localstorage and is not disabled then try to get the
+ // documenter theme
+ if(window.localStorage != null) {
+ // Get the user-picked theme from localStorage. May be `null`, which means the default
+ // theme.
+ theme = window.localStorage.getItem("documenter-theme");
+ }
+ // Check if the browser supports user color preference
+ var darkPreference = false;
+ // Check if the users preference is for dark color scheme
+ if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) {
+ darkPreference = true;
+ }
+ // Initialize a few variables for the loop:
+ //
+ // - active: will contain the index of the theme that should be active. Note that there
+ // is no guarantee that localStorage contains sane values. If `active` stays `null`
+ // we either could not find the theme or it is the default (primary) theme anyway.
+ // Either way, we then need to stick to the primary theme.
+ //
+ // - disabled: style sheets that should be disabled (i.e. all the theme style sheets
+ // that are not the currently active theme)
+ var active = null; var disabled = []; var darkTheme = null;
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ // The tag of each style sheet is expected to have a data-theme-name attribute
+ // which must contain the name of the theme. The names in localStorage much match this.
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ // attribute not set => non-theme stylesheet => ignore
+ if(themename === null) continue;
+ // To distinguish the default (primary) theme, it needs to have the data-theme-primary
+ // attribute set.
+ var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
+ // Check if the theme is primary dark theme
+ var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null);
+ // If ss is for dark theme then set the value of darkTheme to the name of the theme
+ if(isDarkTheme) darkTheme = themename;
+ // If we find a matching theme (and it's not the default), we'll set active to non-null
+ if(themename === theme) active = i;
+ // Store the style sheets of inactive themes so that we could disable them
+ if(themename !== theme) disabled.push(ss);
+ }
+ if(active !== null) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + theme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ ss.disabled = true;
+ });
+ }
+ else if(darkTheme !== null && darkPreference === true) {
+ // If we did find an active theme, we'll (1) add the theme--$(theme) class to
+ document.getElementsByTagName('html')[0].className = "theme--" + darkTheme;
+ // and (2) disable all the other theme stylesheets
+ disabled.forEach(function(ss){
+ if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) {
+ ss.disabled = true;
+ }
+ });
+ }
+}
+set_theme_from_local_storage();
diff --git a/v0.4.1/assets/warner.js b/v0.4.1/assets/warner.js
new file mode 100644
index 0000000..5531c88
--- /dev/null
+++ b/v0.4.1/assets/warner.js
@@ -0,0 +1,49 @@
+function maybeAddWarning () {
+ // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
+ // in siteinfo.js.
+ // If either of these are undefined something went horribly wrong, so we abort.
+ if (
+ window.DOCUMENTER_NEWEST === undefined ||
+ window.DOCUMENTER_CURRENT_VERSION === undefined ||
+ window.DOCUMENTER_STABLE === undefined
+ ) {
+ return
+ };
+
+ // Current version is not a version number, so we can't tell if it's the newest version. Abort.
+ if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
+ return
+ };
+
+ // Current version is newest version, so no need to add a warning.
+ if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
+ return
+ };
+
+ // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
+ if (document.body.querySelector('meta[name="robots"]') === null) {
+ const meta = document.createElement('meta');
+ meta.name = 'robots';
+ meta.content = 'noindex';
+
+ document.getElementsByTagName('head')[0].appendChild(meta);
+ };
+
+ const div = document.createElement('div');
+ div.classList.add('outdated-warning-overlay');
+ const closer = document.createElement('button');
+ closer.classList.add('outdated-warning-closer', 'delete');
+ closer.addEventListener('click', function () {
+ document.body.removeChild(div);
+ });
+ const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE;
+ div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
+ div.appendChild(closer);
+ document.body.appendChild(div);
+};
+
+if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', maybeAddWarning);
+} else {
+ maybeAddWarning();
+};
diff --git a/v0.4.1/generated/examples/01-tomography.ipynb b/v0.4.1/generated/examples/01-tomography.ipynb
new file mode 100644
index 0000000..45e9b2c
--- /dev/null
+++ b/v0.4.1/generated/examples/01-tomography.ipynb
@@ -0,0 +1,411 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Tomography overview\n",
+ "\n",
+ "This page gives an overview of the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[01-tomography.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/01-tomography.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: fbp\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Tomography\n",
+ "\n",
+ "[Tomography](https://en.wikipedia.org/wiki/Tomography)\n",
+ "is the process of imaging cross sections of an object\n",
+ "without actually slicing the object.\n",
+ "There are many forms of tomography;\n",
+ "the description here\n",
+ "focuses on\n",
+ "[X-ray computed tomography (CT scans)](https://en.wikipedia.org/wiki/CT_scan).\n",
+ "(See\n",
+ "[SPECTrecon.jl](https://github.com/JeffFessler/SPECTrecon.jl)\n",
+ "for a Julia package related to\n",
+ "[SPECT](https://en.wikipedia.org/wiki/Single-photon_emission_computed_tomography)\n",
+ "imaging.)\n",
+ "\n",
+ "In an\n",
+ "[X-ray CT imaging system](http://en.wikipedia.org/wiki/File:Ct-internals.jpg),\n",
+ "X-rays emitted from an X-ray source\n",
+ "are transmitted through an object\n",
+ "(e.g., a patient in medical CT)\n",
+ "towards a detector array.\n",
+ "The source and detector\n",
+ "[rotate rapidly](https://www.youtube.com/watch?v=2CWpZKuy-NE)\n",
+ "around the object.\n",
+ "The signal intensities recorded by the detector\n",
+ "are related\n",
+ "to the sizes and densities\n",
+ "of the object materials\n",
+ "between the source and each detector element.\n",
+ "\n",
+ "\n",
+ "## Radon transform\n",
+ "\n",
+ "The mathematical foundation\n",
+ "for 2D X-ray CT imaging\n",
+ "is the\n",
+ "[Radon transform](https://en.wikipedia.org/wiki/Radon_transform),\n",
+ "an\n",
+ "[integral transform](https://en.wikipedia.org/wiki/Integral_transform)\n",
+ "that maps a 2D function\n",
+ "$f(x,y)$\n",
+ "into the collection of line integrals\n",
+ "through that function.\n",
+ "Here we describe each line\n",
+ "by its angle $\\phi$\n",
+ "measured counter-clockwise from the $y$ axis,\n",
+ "and by the radial distance $r$ of the line from the origin.\n",
+ "The collection of integrals\n",
+ "is called a sinogram.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$ is defined by\n",
+ "$$\n",
+ "p(r,\\phi) = \\int_{-\\infty}^{\\infty}\n",
+ "f(r \\cos \\phi - l \\sin \\phi,\n",
+ "r \\sin \\phi + l \\cos \\phi) \\, \\mathrm{d} l.\n",
+ "$$\n",
+ "\n",
+ "The Radon transform of the object that is 1 inside the unit disk\n",
+ "and 0 elsewhere is given by\n",
+ "$$\n",
+ "p_1(r,\\phi) = 2 \\sqrt{1 - r^2}, \\ \\mathrm{ for } \\ |r| < 1.\n",
+ "$$\n",
+ "\n",
+ "By the Radon transform's translation and scaling properties,\n",
+ "the Radon transform\n",
+ "of a disk of radius $r_0$\n",
+ "centered at $(x_0,y_0)$\n",
+ "is given by\n",
+ "$$\n",
+ "p(r,\\phi) = r_0 \\, p_1\n",
+ "\\left( \\frac{r - (x_0 \\cos \\phi + y_0 \\sin \\phi)}{r_0}, ϕ \\right).\n",
+ "$$\n",
+ "\n",
+ "## Sinogram example\n",
+ "\n",
+ "Here is a display of that Radon transform\n",
+ "for a disk of radius $3$\n",
+ "centered at coordinate $(5,1)$.\n",
+ "Note that maximum value is approximately $6$,\n",
+ "the length of the longest chord\n",
+ "through a disk of radius $3$."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "nr = 128\n",
+ "dr = 20 / nr\n",
+ "r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\n",
+ "na = 130\n",
+ "ϕ = (0:(na-1))/na * π # angular samples\n",
+ "proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\n",
+ "proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\n",
+ "sino = proj2.(r, ϕ', 5, 1, 3)\n",
+ "jimsino = (sino, title) -> jim(\n",
+ " r, ϕ, sino; title, aspect_ratio=:none,\n",
+ " xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n",
+ " yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n",
+ " clim = (0, 6),\n",
+ ")\n",
+ "jimsino(sino, \"Sinogram for one disk\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As this figure illustrates,\n",
+ "the Radon transform of a unit disk\n",
+ "has a somewhat sinusoidal shape.\n",
+ "Indeed every point in the $(x,y)$ plane\n",
+ "traces out a distinct sinusoid\n",
+ "in the sinogram.\n",
+ "\n",
+ "The mapping from the object $f(x,y)$\n",
+ "to data like the sinogram $p(r,\\phi)$\n",
+ "is called the \"forward problem.\"\n",
+ "\n",
+ "\n",
+ "## Image reconstruction\n",
+ "\n",
+ "[Image reconstruction](http://en.wikipedia.org/wiki/Image_reconstruction)\n",
+ "is the process of solving the\n",
+ "[inverse problem](https://en.wikipedia.org/wiki/Inverse_problem)\n",
+ "of recovering an estimate $\\hat{f}(x,y)$\n",
+ "of the object $f(x,y)$\n",
+ "from a measured sinogram,\n",
+ "i.e.,\n",
+ "from (usually noisy) samples of $p(r,\\phi)$.\n",
+ "\n",
+ "\n",
+ "## FBP\n",
+ "\n",
+ "A simple image reconstruction method\n",
+ "is called the\n",
+ "\"filtered back-projection\" (FBP) approach.\n",
+ "It works by filtering each row of the sinogram\n",
+ "with a filter,\n",
+ "called the\n",
+ "[ramp filter](https://en.wikipedia.org/wiki/Radon_transform#Radon_inversion_formula),\n",
+ "whose frequency response\n",
+ "is roughly $|\\nu|$,\n",
+ "where $\\nu$ is the spatial frequency variable\n",
+ "(units cycles / m),\n",
+ "followed by a\n",
+ "[back-projection](https://en.wikipedia.org/wiki/Radon_transform#Dual_transform)\n",
+ "step that is the\n",
+ "[adjoint](https://en.wikipedia.org/wiki/Hermitian_adjoint)\n",
+ "of the Radon transform.\n",
+ "\n",
+ "\n",
+ "### FBP example\n",
+ "\n",
+ "Here is an illustration\n",
+ "of using the `fbp` method\n",
+ "in this package\n",
+ "to perform image reconstruction\n",
+ "from the preceding sinogram."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "image = fbp(sino; dr)\n",
+ "(nx,ny) = size(image)\n",
+ "dx = dr # default\n",
+ "x = ((-(nx-1)/2):((nx-1)/2)) * dr\n",
+ "y = x\n",
+ "jim(x, y, image, \"FBP image\",\n",
+ " xtick=[-10, 0, 2, 5, 8, 10],\n",
+ " ytick=[-10, 0, -2, 1, 4, 10],\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The FBP reconstructed image\n",
+ "looks pretty similar\n",
+ "to a disk of radius $3$\n",
+ "centered at $(5,1)$\n",
+ "as expected.\n",
+ "However,\n",
+ "there are quite a few ripples;\n",
+ "these are\n",
+ "[aliasing](https://en.wikipedia.org/wiki/Aliasing)\n",
+ "artifacts\n",
+ "due to the finite sampling\n",
+ "in $r$ and $\\phi$.\n",
+ "\n",
+ "This is example is what is called\n",
+ "2D parallel-beam tomography,\n",
+ "because for the angles $\\phi$ are equally spaced\n",
+ "and for each angle\n",
+ "the radial samples $r$ are also equally spaced.\n",
+ "This package includes\n",
+ "FBP reconstruction methods\n",
+ "for several other sinogram geometries,\n",
+ "including the well-known fan beam geometries\n",
+ "and the specialized Mojette geometry.\n",
+ "\n",
+ "\n",
+ "## Noise effects on FBP\n",
+ "\n",
+ "Simulating the effects of measurement noise in sinogram\n",
+ "leads to even worse FBP results.\n",
+ "\n",
+ "First note that a practical imaging system\n",
+ "has a finite field of view (FOV):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rmax = maximum(r)\n",
+ "fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\n",
+ "jim(x, y, fovmask, \"FOV mask\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Add noise to the original sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_sinogram = sino + 0.1 * randn(size(sino))\n",
+ "jimsino(noisy_sinogram, \"Noisy sinogram\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Apply FBP to the noisy sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "noisy_fbp_image = fbp(noisy_sinogram; dr)\n",
+ "noisy_fbp_image .*= fovmask # apply FOV mask\n",
+ "jim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The methods in this package\n",
+ "(WIP)\n",
+ "and related methods in the\n",
+ "[JuliaImageRecon](https://github.com/JuliaImageRecon)\n",
+ "suite\n",
+ "are designed\n",
+ "to provide better reconstructions\n",
+ "than the simple FBP method.\n",
+ "In particular,\n",
+ "model-based image reconstruction (MBIR) methods\n",
+ "and methods that use suitable machine-learning approaches\n",
+ "can improve image quality significantly.\n",
+ "See this\n",
+ "[2020 survey paper](http://doi.org/10.1109/JPROC.2019.2936204)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Reproducibility"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This page was generated with the following version of Julia:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "And with the following package versions"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "import Pkg; Pkg.status()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/01-tomography/index.html b/v0.4.1/generated/examples/01-tomography/index.html
new file mode 100644
index 0000000..94be12e
--- /dev/null
+++ b/v0.4.1/generated/examples/01-tomography/index.html
@@ -0,0 +1,4033 @@
+
+Tomography overview · Sinograms.jl This page gives an overview of the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 01-tomography.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb
, and opened in binder here: 01-tomography.ipynb
.
Packages needed here.
using Sinograms: fbp
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans) . (See SPECTrecon.jl for a Julia package related to SPECT imaging.)
In an X-ray CT imaging system , X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.
The mathematical foundation for 2D X-ray CT imaging is the Radon transform , an integral transform that maps a 2D function $f(x,y)$ into the collection of line integrals through that function. Here we describe each line by its angle $\phi$ measured counter-clockwise from the $y$ axis, and by the radial distance $r$ of the line from the origin. The collection of integrals is called a sinogram.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined by
\[p(r,\phi) = \int_{-\infty}^{\infty}
+f(r \cos \phi - l \sin \phi,
+r \sin \phi + l \cos \phi) \, \mathrm{d} l.\]
The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by
\[p_1(r,\phi) = 2 \sqrt{1 - r^2}, \ \mathrm{ for } \ |r| < 1.\]
By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius $r_0$ centered at $(x_0,y_0)$ is given by
\[p(r,\phi) = r_0 \, p_1
+\left( \frac{r - (x_0 \cos \phi + y_0 \sin \phi)}{r_0}, ϕ \right).\]
Here is a display of that Radon transform for a disk of radius $3$ centered at coordinate $(5,1)$ . Note that maximum value is approximately $6$ , the length of the longest chord through a disk of radius $3$ .
nr = 128
+dr = 20 / nr
+r = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations
+na = 130
+ϕ = (0:(na-1))/na * π # angular samples
+proj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.
+proj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)
+sino = proj2.(r, ϕ', 5, 1, 3)
+jimsino = (sino, title) -> jim(
+ r, ϕ, sino; title, aspect_ratio=:none,
+ xlabel = "r", ylabel = "ϕ", ylims=(0,π), yticks=([0, π], ["0", "π"]),
+ yflip=false, xticks = [-10, 0, 2, 5, 8, 10],
+ clim = (0, 6),
+)
+jimsino(sino, "Sinogram for one disk")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the $(x,y)$ plane traces out a distinct sinusoid in the sinogram.
The mapping from the object $f(x,y)$ to data like the sinogram $p(r,\phi)$ is called the "forward problem."
Image reconstruction is the process of solving the inverse problem of recovering an estimate $\hat{f}(x,y)$ of the object $f(x,y)$ from a measured sinogram, i.e., from (usually noisy) samples of $p(r,\phi)$ .
A simple image reconstruction method is called the "filtered back-projection" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter , whose frequency response is roughly $|\nu|$ , where $\nu$ is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.
Here is an illustration of using the fbp
method in this package to perform image reconstruction from the preceding sinogram.
image = fbp(sino; dr)
+(nx,ny) = size(image)
+dx = dr # default
+x = ((-(nx-1)/2):((nx-1)/2)) * dr
+y = x
+jim(x, y, image, "FBP image",
+ xtick=[-10, 0, 2, 5, 8, 10],
+ ytick=[-10, 0, -2, 1, 4, 10],
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The FBP reconstructed image looks pretty similar to a disk of radius $3$ centered at $(5,1)$ as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in $r$ and $\phi$ .
This is example is what is called 2D parallel-beam tomography, because for the angles $\phi$ are equally spaced and for each angle the radial samples $r$ are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.
Simulating the effects of measurement noise in sinogram leads to even worse FBP results.
First note that a practical imaging system has a finite field of view (FOV):
rmax = maximum(r)
+fovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax
+jim(x, y, fovmask, "FOV mask")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Add noise to the original sinogram:
noisy_sinogram = sino + 0.1 * randn(size(sino))
+jimsino(noisy_sinogram, "Noisy sinogram")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Apply FBP to the noisy sinogram:
noisy_fbp_image = fbp(noisy_sinogram; dr)
+noisy_fbp_image .*= fovmask # apply FOV mask
+jim(x, y, noisy_fbp_image, "Noisy FBP image"; clim=(0,1))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper .
This page was generated with the following version of Julia:
io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\n')
10-element Vector{SubString{String}}:
+ "Julia Version 1.8.4"
+ "Commit 00177ebc4fc (2022-12-23 21:32 UTC)"
+ "Platform Info:"
+ " OS: Linux (x86_64-linux-gnu)"
+ " CPU: 2 × Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz"
+ " WORD_SIZE: 64"
+ " LIBM: libopenlibm"
+ " LLVM: libLLVM-13.0.1 (ORCJIT, haswell)"
+ " Threads: 1 on 2 virtual cores"
+ ""
And with the following package versions
import Pkg; Pkg.status()
Status `~/work/Sinograms.jl/Sinograms.jl/docs/Project.toml`
+ [39de3d68] AxisArrays v0.4.6
+ [e30172f5] Documenter v0.27.23
+ [9ee76f2b] ImageGeoms v0.10.0
+ [71a99df6] ImagePhantoms v0.7.2
+ [98b081ad] Literate v2.14.0
+ [170b2178] MIRTjim v0.21.1
+ [6fe1bfb0] OffsetArrays v1.12.8
+ [91a5bcdd] Plots v1.38.0
+ [02a14def] Sinograms v0.4.1 `~/work/Sinograms.jl/Sinograms.jl`
+ [1986cc42] Unitful v1.12.2
This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/generated/examples/02-sino-geom.ipynb b/v0.4.1/generated/examples/02-sino-geom.ipynb
new file mode 100644
index 0000000..57137d3
--- /dev/null
+++ b/v0.4.1/generated/examples/02-sino-geom.ipynb
@@ -0,0 +1,402 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 2D sinogram geometry\n",
+ "\n",
+ "This page describes the 2D sinogram geometries\n",
+ "available in the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[02-sino-geom.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/02-sino-geom.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Unitful: mm, °\n",
+ "using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\n",
+ "using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\n",
+ "using Sinograms: sino_plot_rays, rays, angles\n",
+ "using MIRTjim: jim, prompt\n",
+ "using InteractiveUtils: versioninfo"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### 2D Sinogram geometries\n",
+ "\n",
+ "To perform 2D image reconstruction\n",
+ "from a 2D sinogram,\n",
+ "one must first describe\n",
+ "how the rays in the sinogram are sampled.\n",
+ "\n",
+ "Mathematically,\n",
+ "the Radon transform $p(r,\\phi)$ of $f(x,y)$\n",
+ "is defined for all $r$ and $ϕ$\n",
+ "but practical systems\n",
+ "record $p(r,ϕ)$\n",
+ "only for certain finite sets of samples\n",
+ "of those values.\n",
+ "\n",
+ "\n",
+ "## Parallel-beam geometry\n",
+ "\n",
+ "The simplest form of sinogram sampling\n",
+ "is equally spaced samples\n",
+ "in both $r$ and $ϕ$.\n",
+ "This sampling is called a parallel-beam geometry.\n",
+ "(Very few practical systems have this sampling pattern,\n",
+ "but it is an easy place to start.)\n",
+ "Both FBP and iterative reconstruction methods\n",
+ "need to know which values\n",
+ "of $r$ and $ϕ$\n",
+ "are sampled.\n",
+ "\n",
+ "In this package,\n",
+ "`SinoPar`\n",
+ "is the type that describes\n",
+ "a parallel-beam sinogram geometry.\n",
+ "\n",
+ "The built-in defaults provide helpful reminders about the usage."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "SinoPar()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "This package supports units via the\n",
+ "[Unitful.jl](https://github.com/PainterQubits/Unitful.jl)\n",
+ "and using units is recommended\n",
+ "(but not required).\n",
+ "\n",
+ "Here is an example of how to specify\n",
+ "a parallel-beam geometry.\n",
+ "Everything is a named keyword argument with sensible default values.\n",
+ "\n",
+ "* `orbit` and `orbit_start` must both be unitless (degrees)\n",
+ " or have the same units (e.g., degrees or radians).\n",
+ "* detector spacing `d` (can be unitless or have units e.g., mm).\n",
+ "* The projection angles $ϕ$ are equally space and given by\n",
+ " `orbit_start + (0:(nb-1))/nb * orbit`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoPar( ;\n",
+ " nb = 64, # number of radial samples (\"bins\")\n",
+ " na = 30, # number of angular samples\n",
+ " d = 2mm, # detector spacing\n",
+ " offset = 0.25, # quarter detector offset (unitless)\n",
+ " orbit = 180, # angular range (in degrees)\n",
+ " orbit_start = 0, # starting angle (in degrees)\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The struct `rg` has numerous useful properties;\n",
+ "type `?SinoGeom` to see the full list.\n",
+ "\n",
+ "For example,\n",
+ "to access the angular samples in degrees\n",
+ "type `angles(rg)`"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "angles(rg)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following function visualizes the sampling pattern."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with an arc detector (3rd generation CT)\n",
+ "\n",
+ "For a fan-beam geometry,\n",
+ "the arguments are the same as for `SinoPar`\n",
+ "with the addition of specifying:\n",
+ "* `dsd` distance from source to detector\n",
+ "* `dod` distance from origin (isocenter) to detector\n",
+ "* `dfs` distance from focal point of detector to source\n",
+ " (0 for a 3rd gen arc detector, and `Inf` for a flat detector)\n",
+ "* `source_offset` for misaligned systems\n",
+ " where the ray from the source to the detector center\n",
+ " does not intersect the isocenter.\n",
+ " Not fully supported; submit an issue if you need this feature.\n",
+ "\n",
+ "Here is an example that corresponds to a GE Lightspeed CT system.\n",
+ "These numbers are published in\n",
+ "[IEEE T-MI Oct. 2006, p.1272-1283](http://doi.org/10.1109/TMI.2006.882141)."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( ; nb=888, na=984,\n",
+ " d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a smaller example for plotting the rays."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)\n",
+ "sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for arc detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam CT with a flat detector\n",
+ "\n",
+ "This geometry is the same as the arc detector\n",
+ "except that `dfs=Inf`."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanFlat( ; nb=64, na=30,\n",
+ " d=20mm, offset=0.25, dsd=900mm, dod=400mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n",
+ " title=\"Fan-beam for flat detector\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Mojette sampling\n",
+ "This is a specialized sampling geometry\n",
+ "that is currently incompletely supported."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoMoj( ; nb=60, na=30)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is its sampling plot"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true,\n",
+ " title=\"Mojette sampling\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is a diagram that illustrates how the radial spacing\n",
+ "is a function of the projection view angle for the Mojette geometry.\n",
+ "The key aspect here\n",
+ "is that in each image row\n",
+ "the line intersection lengths are identical."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\n",
+ "default(label=\"\")\n",
+ "for y in -2:2\n",
+ " plot!([-3, 3], [y, y], color=:black)\n",
+ "end\n",
+ "for x in -3:3\n",
+ " plot!([x, x], [-2, 2], color=:black)\n",
+ "end\n",
+ "plot_ray!(r, ϕ) = plot!(\n",
+ " r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n",
+ " r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n",
+ " color = :blue,\n",
+ ")\n",
+ "ia = 4 # pick an angle\n",
+ "i = rays(rg) # iterator\n",
+ "rs = [i[1] for i in i] # radial samples\n",
+ "ϕs = [i[2] for i in i] # projection angle\n",
+ "r = rs[:,ia]\n",
+ "r = r[abs.(r) .< 3]\n",
+ "ϕ = ϕs[1,ia]\n",
+ "plot_ray!.(r, ϕ)\n",
+ "plot!(aspect_ratio=1, title = \"Mojette line integrals\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/02-sino-geom/index.html b/v0.4.1/generated/examples/02-sino-geom/index.html
new file mode 100644
index 0000000..032715c
--- /dev/null
+++ b/v0.4.1/generated/examples/02-sino-geom/index.html
@@ -0,0 +1,8063 @@
+
+2D sinogram geometry · Sinograms.jl This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 02-sino-geom.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb
, and opened in binder here: 02-sino-geom.ipynb
.
Packages needed here.
using Unitful: mm, °
+using Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work
+using Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan
+using Sinograms: sino_plot_rays, rays, angles
+using MIRTjim: jim, prompt
+using InteractiveUtils: versioninfo
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.
Mathematically, the Radon transform $p(r,\phi)$ of $f(x,y)$ is defined for all $r$ and $ϕ$ but practical systems record $p(r,ϕ)$ only for certain finite sets of samples of those values.
The simplest form of sinogram sampling is equally spaced samples in both $r$ and $ϕ$ . This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of $r$ and $ϕ$ are sampled.
In this package, SinoPar
is the type that describes a parallel-beam sinogram geometry.
The built-in defaults provide helpful reminders about the usage.
SinoPar()
SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
This package supports units via the Unitful.jl and using units is recommended (but not required).
Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.
orbit
and orbit_start
must both be unitless (degrees) or have the same units (e.g., degrees or radians).detector spacing d
(can be unitless or have units e.g., mm). The projection angles $ϕ$ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit
. rg = SinoPar( ;
+ nb = 64, # number of radial samples ("bins")
+ na = 30, # number of angular samples
+ d = 2mm, # detector spacing
+ offset = 0.25, # quarter detector offset (unitless)
+ orbit = 180, # angular range (in degrees)
+ orbit_start = 0, # starting angle (in degrees)
+)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
The struct rg
has numerous useful properties; type ?SinoGeom
to see the full list.
For example, to access the angular samples in degrees type angles(rg)
angles(rg)
0.0f0:6.0f0:174.0f0
The following function visualizes the sampling pattern.
sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true, title="Parallel")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
For a fan-beam geometry, the arguments are the same as for SinoPar
with the addition of specifying:
dsd
distance from source to detectordod
distance from origin (isocenter) to detectordfs
distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf
for a flat detector)source_offset
for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 .
rg = SinoFanArc( ; nb=888, na=984,
+ d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 888
+ d::Unit{Float64} 1.0239 mm
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 949.075 mm
+ dod::Unit{Float64} 408.075 mm
+
Here is a smaller example for plotting the rays.
rg = SinoFanArc( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
+sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for arc detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This geometry is the same as the arc detector except that dfs=Inf
.
rg = SinoFanFlat( ; nb=64, na=30,
+ d=20mm, offset=0.25, dsd=900mm, dod=400mm)
SinoFanFlat{Unitful.Quantity{Float32, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 64
+ d::Unit{Float32} 20.0f0 mm
+ offset::Float32 0.25
+ na::Int64 30
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float32} 0.0f0 mm
+ dsd::Unit{Float32} 900.0f0 mm
+ dod::Unit{Float32} 400.0f0 mm
+
Here is its sampling plot
sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,
+ title="Fan-beam for flat detector")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
This is a specialized sampling geometry that is currently incompletely supported.
rg = SinoMoj( ; nb=60, na=30)
SinoMoj{Float32, Float32} :
+ nb::Int64 60
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 30
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Here is its sampling plot
sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true,
+ title="Mojette sampling")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.
plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel="x", ylabel="x")
+default(label="")
+for y in -2:2
+ plot!([-3, 3], [y, y], color=:black)
+end
+for x in -3:3
+ plot!([x, x], [-2, 2], color=:black)
+end
+plot_ray!(r, ϕ) = plot!(
+ r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),
+ r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),
+ color = :blue,
+)
+ia = 4 # pick an angle
+i = rays(rg) # iterator
+rs = [i[1] for i in i] # radial samples
+ϕs = [i[2] for i in i] # projection angle
+r = rs[:,ia]
+r = r[abs.(r) .< 3]
+ϕ = ϕs[1,ia]
+plot_ray!.(r, ϕ)
+plot!(aspect_ratio=1, title = "Mojette line integrals")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/generated/examples/03-parallel-beam.ipynb b/v0.4.1/generated/examples/03-parallel-beam.ipynb
new file mode 100644
index 0000000..9b793cd
--- /dev/null
+++ b/v0.4.1/generated/examples/03-parallel-beam.ipynb
@@ -0,0 +1,239 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Parallel-beam tomography\n",
+ "\n",
+ "This page describes parallel-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[03-parallel-beam.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/03-parallel-beam.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Sinograms: SinoPar, rays, plan_fbp, fbp, fbp_sino_filter\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using Unitful: mm\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Parallel-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a parallel-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoPar` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoPar( ; nb = 130, d = 2mm, na = 100)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Radon transform of Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n",
+ "\n",
+ "# Image reconstruction via FBP"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig)\n",
+ "fbp_image = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For fun, here is the filtered sinogram:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino_filt = fbp_sino_filter(sino, plan.filter)\n",
+ "jim(axes(rg), sino_filt; title=\"Filtered sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/03-parallel-beam/index.html b/v0.4.1/generated/examples/03-parallel-beam/index.html
new file mode 100644
index 0000000..f7049ce
--- /dev/null
+++ b/v0.4.1/generated/examples/03-parallel-beam/index.html
@@ -0,0 +1,2387 @@
+
+Parallel-beam tomography · Sinograms.jl This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 03-parallel-beam.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb
, and opened in binder here: 03-parallel-beam.ipynb
.
Packages needed here.
using Sinograms: SinoPar, rays, plan_fbp, fbp, fbp_sino_filter
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using Unitful: mm
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoPar
to define the sinogram geometry.
rg = SinoPar( ; nb = 130, d = 2mm, na = 100)
SinoPar{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Int64} 2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Radon transform of Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+# Image reconstruction via FBP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(rg, ig)
+fbp_image = fbp(plan, sino)
128×126 Matrix{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}}:
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ ⋮ ⋱ ⋮
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For fun, here is the filtered sinogram:
sino_filt = fbp_sino_filter(sino, plan.filter)
+jim(axes(rg), sino_filt; title="Filtered sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/generated/examples/04-fan-arc.ipynb b/v0.4.1/generated/examples/04-fan-arc.ipynb
new file mode 100644
index 0000000..a4f5dcd
--- /dev/null
+++ b/v0.4.1/generated/examples/04-fan-arc.ipynb
@@ -0,0 +1,257 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: arc detector\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[04-fan-arc.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/04-fan-arc.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig)\n",
+ "fbp_image = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/04-fan-arc/index.html b/v0.4.1/generated/examples/04-fan-arc/index.html
new file mode 100644
index 0000000..42b0d15
--- /dev/null
+++ b/v0.4.1/generated/examples/04-fan-arc/index.html
@@ -0,0 +1,2334 @@
+
+Fan-beam tomography: arc detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 04-fan-arc.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb
, and opened in binder here: 04-fan-arc.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry.
rg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(rg, ig)
+fbp_image = fbp(plan, sino)
128×126 Matrix{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}}:
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ ⋮ ⋱ ⋮
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 … 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
+ 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1 0.0 mm^-1
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/generated/examples/05-fan-flat.ipynb b/v0.4.1/generated/examples/05-fan-flat.ipynb
new file mode 100644
index 0000000..8b53372
--- /dev/null
+++ b/v0.4.1/generated/examples/05-fan-flat.ipynb
@@ -0,0 +1,253 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: flat detector\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page focuses on fan-beam with a \"flat\" detector,\n",
+ "i.e., one row of a flat-panel detector\n",
+ "as used in many cone-beam CT (CBCT) systems.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[05-fan-flat.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/05-fan-flat.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanFlat` to define the sinogram geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "fbp_image = fbp(plan, sino)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/05-fan-flat/index.html b/v0.4.1/generated/examples/05-fan-flat/index.html
new file mode 100644
index 0000000..db2e367
--- /dev/null
+++ b/v0.4.1/generated/examples/05-fan-flat/index.html
@@ -0,0 +1,2194 @@
+
+Fan-beam tomography: flat detector · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
.
This page focuses on fan-beam with a "flat" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.
This page was generated from a single Julia file: 05-fan-flat.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb
, and opened in binder here: 05-fan-flat.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.2 cm, 0.2 cm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanFlat
to define the sinogram geometry.
rg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)
SinoFanFlat{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 0.3 cm
+ offset::Float32 0.0
+ na::Int64 100
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 50.0 cm
+ dod::Unit{Float64} 14.0 cm
+
Examine the geometry to verify the FOV:
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 0.0 cm), (11.776000000000002 cm, 8.694 cm), (1.5707963267948966,), 0.2 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -0.23184000000000002 cm), (11.1872 cm, 8.346240000000002 cm), (1.5707963267948966,), -0.098 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((2.8160000000000003 cm, 0.0 cm), (3.968 cm, 1.3860000000000001 cm), (1.2566370614359172,), -0.002 cm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-2.8160000000000003 cm, 0.0 cm), (5.248 cm, 2.0160000000000005 cm), (1.8849555921538759,), -0.002 cm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 4.41 cm), (3.2 cm, 2.6460000000000004 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, 1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -1.2600000000000002 cm), (0.5888 cm, 0.5796 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((-1.024 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 cm, -7.623 cm), (0.2944 cm, 0.2898 cm), (0.0,), 0.001 cm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 1, Float64}((0.768 cm, -7.623 cm), (0.5888 cm, 0.2898 cm), (1.5707963267948966,), 0.001 cm^-1, (1.0,), (6.123233995736766e-17,))
Arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan sinogram", xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+fbp_image = fbp(plan, sino)
128×126 Matrix{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}}:
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ ⋮ ⋱ ⋮
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 … 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
+ 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1 0.0 cm^-1
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for flat case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/generated/examples/06-fan-short.ipynb b/v0.4.1/generated/examples/06-fan-short.ipynb
new file mode 100644
index 0000000..2562686
--- /dev/null
+++ b/v0.4.1/generated/examples/06-fan-short.ipynb
@@ -0,0 +1,318 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Fan-beam tomography: short scan\n",
+ "\n",
+ "This page describes fan-beam tomographic image reconstruction\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl)\n",
+ "for a \"short\" scan\n",
+ "where the rotation (`orbit`) is 180° plus the fan angle.\n",
+ "This case requires\n",
+ "[Parker weighting](http://doi.org/10.1118/1.595078).\n",
+ "\n",
+ "This page focuses on fan-beam with an \"arc\" detector,\n",
+ "i.e., 3rd-generation CT systems\n",
+ "where the detector is an arc\n",
+ "having a focal point\n",
+ "at the X-ray source.\n",
+ "This geometry is popular\n",
+ "in part because it facilitates\n",
+ "anti-scatter grids.\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[06-fan-short.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/06-fan-short.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: mm\n",
+ "using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\n",
+ "using ImageGeoms: ImageGeom, fovs, MaskCircle\n",
+ "using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Fan-beam sinogram of Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "a fan-beam sinogram\n",
+ "of the Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `SinoFanArc` to define the sinogram geometry,\n",
+ "with the `:short` option for `orbit` to make a short scan.\n",
+ "Note that even though we specify `na = 100`\n",
+ "we end up with `na = 67` views\n",
+ "because of the `:short` option."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = SinoFanArc( :short, ;\n",
+ " nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,\n",
+ ")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV.\n",
+ "The `na=67` blue dots show the `:short` scan."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig), ig.mask; prompt=false)\n",
+ "sino_geom_plot!(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipse parameters for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.01 / mm # typical linear attenuation coefficient\n",
+ "ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Short arc fan-beam sinogram for Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "sino = radon(rays(rg), ob)\n",
+ "jim(axes(rg), sino; title=\"Shepp-Logan 'short' sinogram\",\n",
+ " xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Image reconstruction via FBP\n",
+ "Here we start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine Parker weights:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(rg), plan.view_weight; title = \"Parker weights\",\n",
+ " xlabel=\"r\", ylabel=\"ϕ\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Finally perform FBP:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "fbp_image = fbp(plan, sino);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow color window is needed to see the soft tissue structures:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.9, 1.1) .* μ\n",
+ "jim(axes(ig), fbp_image, \"FBP image for 'short' arc case\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "For comparison, here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "true_image = phantom(axes(ig)..., ob, 2)\n",
+ "jim(axes(ig)..., true_image, \"True phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the difference image.\n",
+ "Better sampling would reduce the errors."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "jim(axes(ig)..., fbp_image - true_image, \"Error image\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/06-fan-short/index.html b/v0.4.1/generated/examples/06-fan-short/index.html
new file mode 100644
index 0000000..fd2e782
--- /dev/null
+++ b/v0.4.1/generated/examples/06-fan-short/index.html
@@ -0,0 +1,3520 @@
+
+Fan-beam tomography: short scan · Sinograms.jl This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl
for a "short" scan where the rotation (orbit
) is 180° plus the fan angle. This case requires Parker weighting .
This page focuses on fan-beam with an "arc" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.
This page was generated from a single Julia file: 06-fan-short.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 06-fan-short.ipynb
, and opened in binder here: 06-fan-short.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: mm
+using Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!
+using ImageGeoms: ImageGeom, fovs, MaskCircle
+using ImagePhantoms: SheppLogan, shepp_logan, radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )
ImageGeoms.ImageGeom{2, NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix}
+ dims::NTuple{2,Int64} (128, 126)
+ deltas::NTuple{2,Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}} (2 mm, 2 mm)
+ offsets::NTuple{2,Float32} (0.0f0, 0.0f0)
+ mask: 128×126 BitMatrix {12096 of 16128}
+
Use SinoFanArc
to define the sinogram geometry, with the :short
option for orbit
to make a short scan. Note that even though we specify na = 100
we end up with na = 67
views because of the :short
option.
rg = SinoFanArc( :short, ;
+ nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,
+)
SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} :
+ nb::Int64 130
+ d::Unit{Float64} 3.2 mm
+ offset::Float32 0.0
+ na::Int64 67
+ orbit::Float32 239.12924
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 mm
+ dsd::Unit{Float64} 400.0 mm
+ dod::Unit{Float64} 140.0 mm
+
Examine the geometry to verify the FOV. The na=67
blue dots show the :short
scan.
jim(axes(ig), ig.mask; prompt=false)
+sino_geom_plot!(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
Ellipse parameters for Shepp-Logan phantom:
μ = 0.01 / mm # typical linear attenuation coefficient
+ob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))
10-element Vector{ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}}:
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 0.0 mm), (117.76 mm, 86.94 mm), (1.5707963267948966,), 0.02 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -2.3184 mm), (111.872 mm, 83.4624 mm), (1.5707963267948966,), -0.0098 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((28.16 mm, 0.0 mm), (39.68 mm, 13.86 mm), (1.2566370614359172,), -0.0002 mm^-1, (0.9510565162951535,), (0.30901699437494745,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-28.16 mm, 0.0 mm), (52.48 mm, 20.16 mm), (1.8849555921538759,), -0.0002 mm^-1, (0.9510565162951536,), (-0.30901699437494734,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 44.099999999999994 mm), (32.0 mm, 26.459999999999997 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, 12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -12.600000000000001 mm), (5.888 mm, 5.796 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((-10.24 mm, -76.23 mm), (5.888 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((0.0 mm, -76.23 mm), (2.944 mm, 2.898 mm), (0.0,), 0.0001 mm^-1, (0.0,), (1.0,))
+ ImagePhantoms.Object2d{ImagePhantoms.Ellipse, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float64, 1, Float64}((7.68 mm, -76.23 mm), (5.888 mm, 2.898 mm), (1.5707963267948966,), 0.0001 mm^-1, (1.0,), (6.123233995736766e-17,))
Short arc fan-beam sinogram for Shepp-Logan phantom:
sino = radon(rays(rg), ob)
+jim(axes(rg), sino; title="Shepp-Logan 'short' sinogram",
+ xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here we start with a "plan", which would save work if we were reconstructing many images.
plan = plan_fbp(rg, ig)
FBPNormalPlan{S,I,H,V} with
+ S = SinoFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Float32} (130, 67)
+ I = ImageGeoms.ImageGeom{2, Tuple{Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}, Unitful.Quantity{Int64, 𝐋, Unitful.FreeUnits{(mm,), 𝐋, nothing}}}, BitMatrix} (128, 126)
+ H = Vector{Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(mm^-1,), 𝐋^-1, nothing}}} with extrema (0.0001541825009936049 mm^-1, 0.38515099184495855 mm^-1)
+ V = Matrix{Float32} (130, 67) with extrema (0.0f0, 0.062292427f0)
+
Examine Parker weights:
jim(axes(rg), plan.view_weight; title = "Parker weights",
+ xlabel="r", ylabel="ϕ")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Finally perform FBP:
fbp_image = fbp(plan, sino);
A narrow color window is needed to see the soft tissue structures:
clim = (0.9, 1.1) .* μ
+jim(axes(ig), fbp_image, "FBP image for 'short' arc case"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+For comparison, here is the ideal phantom image:
true_image = phantom(axes(ig)..., ob, 2)
+jim(axes(ig)..., true_image, "True phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Here is the difference image. Better sampling would reduce the errors.
jim(axes(ig)..., fbp_image - true_image, "Error image")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/generated/examples/07-fdk.ipynb b/v0.4.1/generated/examples/07-fdk.ipynb
new file mode 100644
index 0000000..8b74ee3
--- /dev/null
+++ b/v0.4.1/generated/examples/07-fdk.ipynb
@@ -0,0 +1,369 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# CBCT FDK\n",
+ "\n",
+ "This page describes image reconstruction\n",
+ "for cone-beam computed tomography (CBCT)\n",
+ "with both arc and flat detectors\n",
+ "using the Julia package\n",
+ "[`Sinograms.jl`](https://github.com/JuliaImageRecon/Sinograms.jl).\n",
+ "\n",
+ "This page was generated from a single Julia file:\n",
+ "[07-fdk.jl](https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/07-fdk.jl)."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Packages needed here."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\n",
+ "using Unitful: cm\n",
+ "using Sinograms: CtFanArc, CtFanFlat # CtPar\n",
+ "using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\n",
+ "using ImageGeoms: ImageGeom, MaskCircle, fovs\n",
+ "using ImagePhantoms: ellipsoid_parameters, ellipsoid\n",
+ "using ImagePhantoms: radon, phantom\n",
+ "using MIRTjim: jim, prompt"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following line is helpful when running this file as a script;\n",
+ "this way it will prompt user to hit a key after each figure is displayed."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "isinteractive() ? jim(:prompt, true) : prompt(:draw);"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### CBCT projections of 3D Shepp-Logan phantom\n",
+ "\n",
+ "For illustration,\n",
+ "we start by synthesizing\n",
+ "CBCT projections\n",
+ "of the 3D Shepp-Logan phantom.\n",
+ "\n",
+ "For completeness,\n",
+ "we use units (from Unitful),\n",
+ "but units are optional."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Use `ImageGeom` to define the image geometry."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Ellipsoid parameters for 3D Shepp-Logan phantom:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "μ = 0.1 / cm # typical linear attenuation coefficient\n",
+ "params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\n",
+ "ob = ellipsoid(params)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A narrow grayscale window is needed to see the soft tissue structures"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "clim = (0.95, 1.05) .* μ"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Here is the ideal phantom image:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "oversample = 3\n",
+ "true_image = phantom(axes(ig)..., ob, oversample)\n",
+ "pt = jim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Define the system geometry\n",
+ "(for some explanation use `?CtGeom`):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\n",
+ "rg = CtFanArc( ; p...)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Examine the geometry to verify the FOV\n",
+ "(this is more interesting when interacting via other Plot backends):"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "ct_geom_plot3(rg, ig)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "prompt()"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "CBCT projections\n",
+ "using `Sinogram.rays` and `ImagePhantoms.radon`:"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "proj_arc = radon(rays(rg), ob)\n",
+ "pa = jim(axes(rg)[1:2], proj_arc ;\n",
+ " title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "There is no \"inverse crime\" here\n",
+ "because we compute the projection views\n",
+ "using the analytical phantom geometry,\n",
+ "but then reconstruct\n",
+ "on a discrete grid.\n",
+ "\n",
+ "## Image reconstruction via FBP / FDK\n",
+ "\n",
+ "We start with a \"plan\",\n",
+ "which would save work if we were reconstructing many images.\n",
+ "For illustration we include `Hamming` window."
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_arc = fdk(plan, proj_arc)\n",
+ "par = jim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_arc = fdk_arc - true_image\n",
+ "elim = (-1,1) .* (0.02μ)\n",
+ "pae = jim(axes(ig), err_arc, \"Error image (arc)\"; clim = elim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Repeat with flat detector geometry"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = CtFanFlat( ; p...)\n",
+ "proj_flat = radon(rays(rg), ob)\n",
+ "pfp = jim(axes(rg)[1:2], proj_flat ;\n",
+ " title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n",
+ "\n",
+ "plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "fdk_flat = fdk(plan, proj_flat)\n",
+ "pfr = jim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_flat = fdk_flat - true_image\n",
+ "pfe = jim(axes(ig), err_flat, \"Error image (flat)\"; clim = elim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "As expected for CBCT,\n",
+ "the largest errors are in the end slices."
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Short scan"
+ ],
+ "metadata": {}
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "rg = CtFanFlat(:short ; p..., na = 200)\n",
+ "proj_short = radon(rays(rg), ob)\n",
+ "psp = jim(axes(rg)[1:2], proj_short ;\n",
+ " title=\"Shepp-Logan projections (flat,short)\", xlabel=\"s\", ylabel=\"t\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "plan_short = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\n",
+ "psw = jim(axes(rg)[[1,3]], plan_short.view_weight[:,1,:];\n",
+ " title = \"View weights (including Parker)\",\n",
+ " xlabel=\"s\", ylabel=\"angle\")"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "fdk_short = fdk(plan_short, proj_short)\n",
+ "psr = jim(axes(ig), fdk_short, \"FDK image (flat,short)\"; clim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "outputs": [],
+ "cell_type": "code",
+ "source": [
+ "err_short = fdk_short - true_image\n",
+ "pse = jim(axes(ig), err_flat, \"Error image (flat,short)\"; clim = elim)"
+ ],
+ "metadata": {},
+ "execution_count": null
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "---\n",
+ "\n",
+ "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
+ ],
+ "metadata": {}
+ }
+ ],
+ "nbformat_minor": 3,
+ "metadata": {
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.8.4"
+ },
+ "kernelspec": {
+ "name": "julia-1.8",
+ "display_name": "Julia 1.8.4",
+ "language": "julia"
+ }
+ },
+ "nbformat": 4
+}
diff --git a/v0.4.1/generated/examples/07-fdk/index.html b/v0.4.1/generated/examples/07-fdk/index.html
new file mode 100644
index 0000000..ee7188b
--- /dev/null
+++ b/v0.4.1/generated/examples/07-fdk/index.html
@@ -0,0 +1,31997 @@
+
+CBCT FDK · Sinograms.jl This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl
.
This page was generated from a single Julia file: 07-fdk.jl .
In any such Julia documentation, you can access the source code using the "Edit on GitHub" link in the top right.
The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb
, and opened in binder here: 07-fdk.ipynb
.
Packages needed here.
using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!
+using Unitful: cm
+using Sinograms: CtFanArc, CtFanFlat # CtPar
+using Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3
+using ImageGeoms: ImageGeom, MaskCircle, fovs
+using ImagePhantoms: ellipsoid_parameters, ellipsoid
+using ImagePhantoms: radon, phantom
+using MIRTjim: jim, prompt
The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.
isinteractive() ? jim(:prompt, true) : prompt(:draw);
For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.
For completeness, we use units (from Unitful), but units are optional.
Use ImageGeom
to define the image geometry.
ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)
ImageGeoms.ImageGeom{3, NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}}, BitArray{3}}
+ dims::NTuple{3,Int64} (64, 62, 30)
+ deltas::NTuple{3,Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}} (0.4 cm, 0.4 cm, 0.8 cm)
+ offsets::NTuple{3,Float32} (0.0f0, 0.0f0, 0.0f0)
+ mask: 64×62×30 BitArray{3} {84840 of 119040}
+
Ellipsoid parameters for 3D Shepp-Logan phantom:
μ = 0.1 / cm # typical linear attenuation coefficient
+params = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))
+ob = ellipsoid(params)
12-element Vector{ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}}:
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 0.0 cm, 0.0 cm), (8.831999999999999 cm, 11.408000000000001 cm, 10.8 cm), (0.0, 0.0, 0.0), 0.2 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -0.22816 cm, 0.0 cm), (8.478720000000001 cm, 10.8376 cm, 10.56 cm), (0.0, 0.0, 0.0), -0.098 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-2.8160000000000003 cm, 0.0 cm, -3.0 cm), (5.248 cm, 1.9840000000000002 cm, 2.52 cm), (-1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (-0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((2.8160000000000003 cm, 0.0 cm, -3.0 cm), (3.968 cm, 1.364 cm, 2.64 cm), (1.2566370614359172, 0.0, 0.0), -0.002 cm^-1, (0.9510565162951535, 0.0, 0.0), (0.30901699437494745, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 4.34 cm, -3.0 cm), (2.688 cm, 3.1 cm, 4.199999999999999 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((-1.024 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -1.2400000000000002 cm, -3.0 cm), (0.5888 cm, 0.5704 cm, 0.552 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, -7.502 cm, -3.0 cm), (0.2944 cm, 0.2852 cm, 0.276 cm), (0.0, 0.0, 0.0), 0.001 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -7.502 cm, -3.0 cm), (0.5888 cm, 0.2852 cm, 0.24 cm), (-1.5707963267948966, 0.0, 0.0), 0.001 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.768 cm, -1.302 cm, 0.75 cm), (0.7168000000000001 cm, 0.49600000000000005 cm, 1.2000000000000002 cm), (-1.5707963267948966, 0.0, 0.0), 0.002 cm^-1, (-1.0, 0.0, 0.0), (6.123233995736766e-17, 1.0, 1.0))
+ ImagePhantoms.Object3d{ImagePhantoms.Ellipsoid, Unitful.Quantity{Float64, 𝐋^-1, Unitful.FreeUnits{(cm^-1,), 𝐋^-1, nothing}}, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float64, 3, Float64}((0.0 cm, 1.2400000000000002 cm, 7.5 cm), (0.7168000000000001 cm, 0.6944 cm, 1.2000000000000002 cm), (0.0, 0.0, 0.0), -0.002 cm^-1, (0.0, 0.0, 0.0), (1.0, 1.0, 1.0))
A narrow grayscale window is needed to see the soft tissue structures
clim = (0.95, 1.05) .* μ
(0.095 cm^-1, 0.10500000000000001 cm^-1)
Here is the ideal phantom image:
oversample = 3
+true_image = phantom(axes(ig)..., ob, oversample)
+pt = jim(axes(ig), true_image, "True 3D Shepp-Logan phantom image"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Define the system geometry (for some explanation use ?CtGeom
):
p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)
+rg = CtFanArc( ; p...)
CtFanArc{Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(cm,), 𝐋, nothing}}, Float32, CtSourceCircle} :
+ ns::Int64 130
+ nt::Int64 80
+ ds::Unit{Float64} 0.3 cm
+ dt::Unit{Float64} 0.4 cm
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 50
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Unit{Float64} 0.0 cm
+ dsd::Unit{Float64} 200.0 cm
+ dod::Unit{Float64} 40.0 cm
+ src::CtSourceCircle CtSourceCircle()
+
Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):
ct_geom_plot3(rg, ig)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+prompt()
CBCT projections using Sinogram.rays
and ImagePhantoms.radon
:
proj_arc = radon(rays(rg), ob)
+pa = jim(axes(rg)[1:2], proj_arc ;
+ title="Shepp-Logan projections (arc)", xlabel="s", ylabel="t")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+There is no "inverse crime" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.
We start with a "plan", which would save work if we were reconstructing many images. For illustration we include Hamming
window.
plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+fdk_arc = fdk(plan, proj_arc)
+par = jim(axes(ig), fdk_arc, "FDK image (arc)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_arc = fdk_arc - true_image
+elim = (-1,1) .* (0.02μ)
+pae = jim(axes(ig), err_arc, "Error image (arc)"; clim = elim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rg = CtFanFlat( ; p...)
+proj_flat = radon(rays(rg), ob)
+pfp = jim(axes(rg)[1:2], proj_flat ;
+ title="Shepp-Logan projections (flat)", xlabel="s", ylabel="t")
+
+plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+fdk_flat = fdk(plan, proj_flat)
+pfr = jim(axes(ig), fdk_flat, "FDK image (flat)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_flat = fdk_flat - true_image
+pfe = jim(axes(ig), err_flat, "Error image (flat)"; clim = elim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+As expected for CBCT, the largest errors are in the end slices.
rg = CtFanFlat(:short ; p..., na = 200)
+proj_short = radon(rays(rg), ob)
+psp = jim(axes(rg)[1:2], proj_short ;
+ title="Shepp-Logan projections (flat,short)", xlabel="s", ylabel="t")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+plan_short = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))
+psw = jim(axes(rg)[[1,3]], plan_short.view_weight[:,1,:];
+ title = "View weights (including Parker)",
+ xlabel="s", ylabel="angle")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+fdk_short = fdk(plan_short, proj_short)
+psr = jim(axes(ig), fdk_short, "FDK image (flat,short)"; clim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+err_short = fdk_short - true_image
+pse = jim(axes(ig), err_flat, "Error image (flat,short)"; clim = elim)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This page was generated using Literate.jl .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/index.html b/v0.4.1/index.html
new file mode 100644
index 0000000..d1f800b
--- /dev/null
+++ b/v0.4.1/index.html
@@ -0,0 +1,2 @@
+
+Home · Sinograms.jl Sinograms.jl
is a Julia language package with tools for tomographic image reconstruction, including
describing ray geometries (parallel beam, fan beam, etc.) ✅ performing filtered back-projection (FBP) image reconstruction ✅ system models for iterative reconstruction (WIP) See the examples.
See also:
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/methods/index.html b/v0.4.1/methods/index.html
new file mode 100644
index 0000000..2db5368
--- /dev/null
+++ b/v0.4.1/methods/index.html
@@ -0,0 +1,129 @@
+
+Methods · Sinograms.jl CtFanArc{Td,To,Ts}
3D CBCT geometry for arc detector
source CtFanArc(::Val{:ge1} ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
(see CtFanArc
) out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> CtFanArc(Val(:ge1))
+CtFanArc{Float64, Float32, CtSourceCircle} :
+ ns::Int64 888
+ nt::Int64 64
+ ds::Float64 1.0239
+ dt::Float64 1.0964
+ offset_s::Float32 1.25
+ offset_t::Float32 0.0
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float64 0.0
+ dsd::Float64 949.075
+ dod::Float64 408.075
+ src::CtSourceCircle CtSourceCircle()
source CtFanArc( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
+CtFanArc(:short ; ...)
Constructor with named keywords. See ?CtGeom
for documentation.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well. julia> CtFanArc()
+CtFanArc{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtFanFlat{Td,To,Ts}
3D CTCT geometry for flat detector
source CtFanFlat( ; ns nt ds dt offset_s offset_t
+ na orbit orbit_start
+ dsd = 4ns * ds, dod = ns * ds)
+CtFanFlat(:short ; ...)
Constructor with named keywords. See ?CtGeom
for documentation.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well. julia> CtFanFlat()
+CtFanFlat{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 64
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
+ src::CtSourceCircle CtSourceCircle()
source CtGeom{Td,To,Ts}
Abstract type for representing ray geometries for 3D CT imaging.
The projection view coordinates are (s,t)
where s
denotes the transaxial sampling and t
denotes the axial direction (along z
).
Common fields
ns
size of each projection viewnt
ds
detector pixel spacingdt
offset_s
unitless detector center offset (usually 0 or 0.25)offset_t
unitless, usually 0na
# of projection views, aka nϕ or nβorbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.src::CtSource
describes the X-ray CT source trajectory. Primary support for CtSourceCircle()
.Additional fields for CtFan
types:
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
ds
, dt
, source_offset
, dsd
, dod
must all be unitless or have the same units.Basic methods
angles
(na) in degreesdims (ns, nt, na)
ones = ones(Float32, ns,nt,na)
zeros = zeros(Float32, ns,nt,na)
rays
iterator of (u,v,ϕ,θ)
samplesdownsample(st, down)
reduce sampling by integer factoroversample(st, over)
ct_geom_plot3
plot system geometryNon-exported helper functions for developers:
_s (ns) s
sample locations_t (nt) t
sample locations_ws = (ns-1)/2 + offset_s
"middle" sample position_wt = (nt-1)/2 + offset_t
_ar (na)
source angles [radians]_rfov
max radius within FOV_zfov
axial FOV_xds (nb)
center of detector elements (beta=0)_yds (nb)
""_tau(rg, x, y)
projected s/ds for each (x,y)
pair (length(x), na)
_shape(rg, proj [,:])
reshape proj
into array (ns,nt,na[,:])
_unitv(rg [, (is,it,ia)])
unit 'vector' with single nonzero elementFor fan beam:
_dso = dsd - dod
distance from source to origin (Inf for parallel beam)_dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors)_gamma(rg [,s]) (ns)
gamma sample values radians
, optionally given s
values_gamma_max = max(|γ|)
half of fan angle radians
, if offset_s
== 0_cone_angle
(half) cone angle on axis (s=0): +/- angleNotes
Use sino_geom()
instead for 2D geometries.
source CtPar{Td,To,Ts}
3D parallel-beam projection geometry
source CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)
Constructor with named keywords. See ?CtGeom
for documentation.
julia> CtPar()
+CtPar{Float32, Float32, CtSourceCircle} :
+ ns::Int64 128
+ nt::Int64 64
+ ds::Float32 1.0
+ dt::Float32 1.0
+ offset_s::Float32 0.0
+ offset_t::Float32 0.0
+ na::Int64 60
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
+ src::CtSourceCircle CtSourceCircle()
source CtSource
Abstract type for representing X-ray CT source trajectories.
source CtSourceCircle
Type for representing circular X-ray CT source trajectory.
source CtSourceHelix
Type for representing helical X-ray CT source trajectories having constant pitch.
Fields
pitch
helix pitch (unitless fraction of zFOV, default 0)source_z0
initial z position of x-ray source (default 0) It should have same units as detector pixels etc.source CtSourceHelix( ; pitch = 0, source_z0 = 0)
Constructor with named keywords
source FBPNormalPlan{S,I,H,P}
Struct type for storing "normal" FBP plan.
The view_weight
can include (products of)
Parker weighting for short scans view-wise weighting from fbp_sino_weight
todo dβ
weighting for possibly nonuniform angles from _angle_weights
source FBPplan
Abstract type for FBP plans.
source FDKplan{C,I,H,V}
Struct type for storing FDK plan.
The view_weight
can include (products of)
Parker weighting for short scans view-wise CBCT weighting from fdk_weight_cyl
dβ
weighting for possibly nonuniform angles from _angle_weights
source RayGeom{Td,To}
Parent type for SinoGeom
and CtGeom
source SinoFanArc{Td,To}
2D fan-beam sinogram geometry for arc detector
source SinoFanArc(Val(:ge1) ; kwargs...)
GE Lightspeed system CT geometry.
option
unit::RealU = 1
or use 1mm
nb::Int = 888
# of detector channelsd::RealU = 1.0239
channel spacingoffset::Real = 1.25
for "quarter-detector" offsetna::Int = 984
# of anglesorbit::Union{Symbol,Real} = 360
use :short
for short scandsd::RealU = 949.075
dod::RealU = 408.075
out
These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.
julia> SinoFanArc(Val(:ge1))
+SinoFanArc{Float32, Float32} :
+ nb::Int64 888
+ d::Float32 1.0239
+ offset::Float32 1.25
+ na::Int64 984
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 949.075
+ dod::Float32 408.075
source SinoFanArc( ; nb d offset na orbit orbit_start
+ source_offset, dsd = 4 * nb * d, dod = nb * d)
+SinoFanArc(:short ; ...)
Constructor with named keywords. See ?SinoGeom
for documentation.
d
, source_offset
, dsd
, dod
must all have the same units.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well.
julia> SinoFanArc()
+SinoFanArc{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoFanFlat{Td,To}
2D fan-beam sinogram geometry for flat detector
source SinoFanFlat( ; nb d offset na orbit orbit_start
+ source_offset, dsd= 4 * nb * d, dod = nb * d)
+SinoFanFlat(:short ; ...)
Constructor with named keywords. See ?SinoGeom
for documentation.
Use :short
argument to specify a short scan, in which case na
will be scaled down proportionally as well. julia> SinoFanFlat()
+SinoFanFlat{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 360.0
+ orbit_start::Float32 0.0
+ source_offset::Float32 0.0
+ dsd::Float32 512.0
+ dod::Float32 128.0
source SinoGeom{Td,To}
Abstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.
Common fields
nb
# of "radial" samples, aka nr
or ns
d
aka dr
or ds
, "radial" sample spacingoffset
unitless sample offset (usually 0 or 0.25)na
# of angular samples, aka nϕ
or nβ
default: 2 * floor(Int, nb * π/2 / 2)
orbit
source orbit in degrees (or Unitful)orbit_start
starting angle in degrees (or Unitful) orbit
and orbit_start
must both be unitless (degrees) or have same units.Additional fields for SinoFan
types
dsd
distance from source to detectordod
distance from origin to detectorsource_offset
usually 0Units:
d
, source_offset
, dsd
, dod
must all have the same units.Basic methods
angles
(na) in degreesdims (nb, na)
ones = ones(Float32, nb, na)
zeros = zeros(Float32, nb, na)
rays
iterator of (r, ϕ)
parallel-beam coordinate tuples of size (nb, na)
downsample(st, down)
reduce sampling by integer factoroversample(st, over)
sino_geom_plot!
plot system geometryNon-exported helper functions for developers:
_ds|dr
radial sample spacing (NaN
for :moj
)_s (nb) s
sample locations_w = (nb-1)/2 + offset
"middle" sample position_ar (na)
source angles [radians]_rfov
radial FOV_xds (nb)
center of detector elements (beta=0)_yds (nb)
""_tau(rg, x, y)
projected s/ds for each (x,y)
pair (length(x), na)
_shape(rg, sino [,:])
reshape sino
into array (nb,na[,:])
_unitv(rg [, (ib,ia)])
unit 'vector' with single nonzero elementFor mojette:
_d_ang (na)
angle-dependent radial spacingFor fan beam:
_dso = dsd - dod
distance from source to origin (Inf for parallel beam)_dfs
distance from source to detector focal spot (0 for 3rd gen CT, Inf
for flat detectors)_gamma(rg [,s]) (nb)
gamma sample values radians
, optionally given s
values_gamma_max = max(|γ|)
half of fan angle radians
, if offset_s
== 0Notes
Use ct_geom()
instead for 3D axial or helical cone-beam CT. source SinoMoj{Td,To}
2D Mojette sinogram geometry where d
means dx
(square pixel size)
source SinoMoj( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoMoj()
+SinoMoj{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source SinoPar{Td,To}
2D parallel-beam sinogram geometry
source SinoPar( ; nb d offset na orbit orbit_start)
Constructor with named keywords. See ?SinoGeom
for documentation.
julia> SinoPar()
+SinoPar{Float32, Float32} :
+ nb::Int64 128
+ d::Float32 1.0
+ offset::Float32 0.0
+ na::Int64 200
+ orbit::Float32 180.0
+ orbit_start::Float32 0.0
source Window{S,T}
Data type for FBP apodizing windows, with given window shape::S
and cutoff::T
.
julia> Window(Hamming(), 0.8)
+Window{Hamming, Float64}(Hamming(), 0.8)
source WindowVect{V} <: AbstractWindowShape
A user-specified window vector, constructed via WindowVect(v::V)
, where v
is a AbstractVector
. Caution: length(v)
must be appropriate for the padded sinogram size.
source show(io::IO, ::MIME"text/plain", rg::RayGeom)
source _angle_weights(ar::AbstractVector{<:RealU})
Angular weighting to # scale projections by dβ (aka dϕ or da) for Riemann-like integration.
input
ar (na,)
angles in radians.output
For now, simply the scalar (ar[begin+1]-ar[begin]) / n180
where n180
is the number of full multiples of 180°. This simplifies to π/na
for typical 180° and 360° scans. For a fan-beam short scan (180° + fan angle), it also simplifies to π/na
, where the "excess" is handled by Parker weighting.
Examples
julia> rg = SinoPar(); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na
+(0.015707962f0, 0.015707963267948967)
julia> rg = SinoPar(;orbit=360); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na
+(0.015707962f0, 0.015707963267948967)
julia> rg = SinoFanArc(:short); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na
+(0.04842342f0, 0.04487989505128276)
For now, only equally spaced views are supported, but this is where unequal spacing would be handled, and the output would be of size (na,)
.
source _gamma(rg::RayGeom [, s])
Return gamma (γ: fan angle) values for fan-beam geometry.
source _reale(x ; rtol = …)
Return the real part of x
, but warn if the imaginary part is too large. By default this uses a 100× larger rtol
than isapprox
due to FFT errors.
source _rfov(rg::RayGeom)
Radial FOV.
source _shape(rg, x::AbstractArray [, :])
Reshape x
to dims(rg)
or (dims(rg)..., :)
.
source _show(io::IO, ::MIME"text/plain", st::Any)
Informative way to show fields of a struct (composite type).
source _tau(rg::RayGeom, x, y)
Projected s/ds
, useful for footprint center and support. Returns Matrix
of size length(x) × rg.na
.
source _unitv([T=Float32], rg:RayGeom [, pos::Tuple])
Projection views with a single non-zero ray value at position pos
(default: middle).
source _xds(rg::RayGeom)
Center x
positions of detectors (for beta = 0), for central row of detector.
source _yds(rg::RayGeom)
Center y
positions of detectors (for beta = 0), for central row of detector.
source angles(rg::RayGeom) =
Return vector of angles for this ray geometry, in whatever units the user used to specify orbit
and orbit_start
, typically degrees.
source u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)
Convert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)
Convert from cone-beam flat panel coordinages to parallel-beam coordinates.
in
s,t
detector coordinatesβ
X-ray source angle, measured counter-clockwise from y axisdso,dsd
distances for the geometryout
u,v
transaxial and axial parallel-beam detector coordinatesazim
ϕ transaxial or azimuthal angle (radians)polar
θ polar angle (radians)source cbct_back(proj, rg, ig)
Cone-beam backprojector for feldkamp.jl
in
proj (ns,nt,na)
cone-beam projection viewsrg::CtGeom
ig::ImageGeom
out
img (nx,ny,nz)
back-projection resultsource cbct_back_fan!(...)
This should work even for non-uniformly spaced source angles (for a circular source trajectory).
source ct_geom_plot2!(rg::CtGeom [, ig::ImageGeom])
Plot central 2D portion of the CBCT geometry.
source ct_geom_plot3(rg::CtFan [, ig::ImageGeom])
3D CBCT geometry plot
source downsample(rg, down::Int)
+downsample(rg, down::NTuple{3,Int})
Down-sample CT geometry (for testing with small problems).
source downsample(rg, down)
Down-sample sinogram geometry (for testing with small problems).
source fbp(plan, sino)
Filtered back-projection (FBP) reconstruction.
in
plan::FBPplan
sino::AbstractArray{<:Number} (nb,na,...)
sinogram(s)out
image::Matrix{<:Number} (nx,ny,...)
reconstructed image(s)source fbp!(image, sino ; orbit::Real = 180, kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Writes result into image
matrix.
Input
Options for SinoPar
constructor
dr
: sinogram radial spacing; default 1orbit
: angular range in degrees; default 180orbit_start
: angular range in degrees; default 0Options for ImageGeom
dx
, dy
, deltas
, offset_x
, offset_y
, offsets
rmax
maximum radius for maskOptions
kwargs
: passed to plan_fbp
Output
image::AbstractMatrix
is mutatedsource fbp(sino::AbstractMatrix ; kwargs...)
FBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]
. Returns an image of size [nx × ny]
.
Options
nx
: default nr
ny
: default nx
kwargs
: passed to fbp!
source img = fbp_back(rg, ig, sino ; ia_skip)
2D pixel-driven backprojection for FBP.
in
rg::SinoGeom
ig::ImageGeom
sino::AbstractArray{<:Number}
sinogram(s) (line integrals), usually ramp filteredoption
ia_skip::Int
downsample in angle to save time for quick tests (default: 1)out
img::Array{<:Number}
reconstructed image(s)source fbp_back_fan!(image, sino, sinβ, cosβ,
+ dsd, dso, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd,dso,source_offset::RealU
geometryis_arc::Bool
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_fan(sino, betas,
+ dsd, dso, dfs, source_offset, is_arc,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredbetas::Vector{<:Real}
(na)
in radiansdsd,dso,source_offset::RealU
geometryis_arc::Bool
arc or flat?ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::Type{<:Number}
usually same as eltype(sino)
out
source fbp_back_fan_xy(sino, sinβ, cosβ,
+ dsd_ds, dso_ds, source_offset_ds, is_arc,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a fan-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinβ::Vector{<:Real}
(na)
cosβ::Vector{<:Real}
(na)
dsd_ds,dso_ds,source_offset_ds::Real
geometry, normalizedwb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::Type{<:Number}
typically same as eltype(sino)
out
Returns a scalar of type T
. source fbp_back_par!(image, sino, sinϕ, cosϕ,
+ ds, offset, xc, yc, mask ; ia_skip)
Mutating version of pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It uses Threads
. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
ds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
out
image::Matrix
(nx, ny)
matrix to be mutatedsource fbp_back_par(sino, angles,
+ ds, offset, xc, yc, mask ; ia_skip, T)
Pixel-driven back-projection for a grid of (xc,yc)
pixel center locations for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredangles::Vector{<:Real}
(na)
in radiansds::RealU
ray spacingoffset::Real
detector offset (usually 0)xc::Vector{<:RealU}
(nx)
pixel centersyc::Vector{<:RealU}
(ny)
pixel centersmask::Matrix{Bool}
(nx, ny)
which pixels to reconstructoption
ia_skip::Int
default 1T::Type{<:Number}
usually same as eltype(sino)
out
source fbp_back_par_xy(sino, sinϕ, cosϕ,
+ wb, x, y ; T)
Pixel-driven back-projection for a single (x,y) location for sinogram sino
from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π)
.
in
sino::Matrix{<:Number}
(nb, na)
usually ramp-filteredsinϕ::Vector{<:Real}
(na)
cosϕ::Vector{<:Real}
(na)
wb::Real = (nb+1)/2 + offset
where usually offset=0
x,y::Real
pixel center location, normalized by ray spacingoption
T::Type{<:Number}
typically same as eltype(sino)
out
Returns a scalar of type T
. source Hk = fbp_filter(rg::RayGeom ;
+ npad=0, ds::RealU = rg.d, decon1::Bool=true, window=Window())
Compute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
option
npad::Int
# of padded samples. (default: next power of 2)ds::Td
detector sample spacing (default from st
)decon1::Bool
deconvolve effect of linear interpolator? (default: true)window::Window
apodizer; default: Window()
out
Hk::Vector
apodized ramp filter frequency responsesource h, n = fbp_ramp(rg::SinoGeom, N::Int)
'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.
in
rg::SinoGeom
N::Int
: # of samples (must be even)out
h::Vector{<:RealU}
: samples of band-limited ramp filtern::UnitRange{Int64}
: -(N÷2):(N÷2-1)source sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)
Apply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.
in
sino::AbstractArray{<:Number}
[nb (L)]
sinogramsfilter::AbstractVector
(npad ≥ nb)
apodized ramp filter frequency responseoption
extra::Int
# of extra sinogram radial samples to keep (default: 0)npad::Int
# of padded samples. (default: next power of 2)out
sino::AbstractArray
sinogram with filtered rowssource fbp_sino_weight(rg::SinoFan)
Return 1D sinogram weighting for first step of 2D fan-beam FBP.
source fbp_window(w::Window, N::Int ; T = Float32)
Create an apodizing window of length N
and fftshift
it.
julia> fbp_window(Window(Hamming()), 4)
+4-element Vector{Float32}:
+ 1.0
+ 0.54
+ 0.0
+ 0.54
source image = fdk(plan, proj)
Reconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.
in
plan::FDKplan
proj
(ns,nt,na) projection viewsout
image
(nx,ny,nz) reconstructed imageReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.
source fdk_weight_cyl
FDK projection weighting providing "exact" CBCT reconstruction for cylindrical-like objects that satisfy $f(x,y,z) = f(x,y,0) ∀z$ . The output is a (ns,nt)
matrix.
source fft_filter(data::Array, filter::Vector [, dim])
Apply filter to selected dimensions of array data
using FFT.
in
data::AbstractArray{<:Number} (n, (L))
filter::AbstractVector (n)
apodized ramp filter frequency responseoption
dim
non-singleton dimensions of filter
(typically 1
)out
out::AbstractArray
data filtered along dimension dim
If the input data is real, so will be the output; this assumes filter
frequency response has appropriate symmetry.
source footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)
Unitless maximum footprint size (in detector pixels).
source oversample(rg, over::Int)
Over-sample CT geometry in "radial" dimension.
source oversample(rg, over::Int)
Over-sample sinogram geometry in "radial" dimension. For Mojette sampling, it means that d = dx/over
.
source parker_weight(rg::SinoGeom, T = Float32)
Compute Parker weighting for non-360° orbits. See http://doi.org/10.1118/1.595078. Returns Matrix{T}
of size:
(1,1) for SinoPar
with typical 180 or 360 orbit (1,na) for SinoPar
with atypical orbit (1,1) for SinoFan
with typical 360 orbit (ns,na) for SinoFan
with typical 360 orbit source parker_weight(rg::CtFan; T::Type{<:AbstractFloat} = Float32, kwargs...)
For 3D case, return Array{T,3}
where size is
(1,1,1)
typical fan case with 360° orbit(ns,1,na)
atypical fan case including short scansource plan = plan_fbp(rg, ig; window=Window(), ...)
Plan FDK 3D CBCT image reconstruction, with either flat or arc detector.
To use this method, you first call it with the CT geometry and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FDK reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
rg::CtGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.option
window::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, rg.ns + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)out
plan::FDKplan
initialized plansource plan = plan_fbp(rg, ig; how=:normal, window=Window())
Plan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.
To use this method, you first call it with the sinogram geometry and image geometry. The routine returns the initialized plan
. Thereafter, to to perform FBP reconstruction, call fbp
with the plan
(perhaps numerous times for the same geometry).
in
rg::SinoGeom
ig::ImageGeom
only reconstruct pixels within ig.mask
.option
how::Symbol
how to reconstruct:normal
default:mojette
use mojette rebinning and Gtomo2_tablewindow::Window
e.g., Window(Hamming(), 0.8)
; default Window()
npad::Int
# of radial bins after padding; default nextpow(2, rg.nb + 1)
decon1::Bool
deconvolve interpolator effect? (default true
)T::Type{<:Number}
type of sino
elements (default Float32
)out
plan::FBPplan
initialized plansource (h, n) = ramp_arc(N::Int, ds::RealU, dsd::RealU)
Ramp filter samples for arc fan geometry, for n = -(N÷2):(N÷2-1)
.
source (h, n) = ramp_flat(N::Int, ds::RealU)
Ramp filter samples for flat fan geometry, for n = -(N÷2):(N÷2-1)
.
source i = rays(rg::CtGeom)
Return parallel-beam coordinates of all rays for this CT geometry. Return type of i
is a ProductIterator
that makes tuples of the form (u, v, ϕ, θ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source i = rays(rg::SinoGeom)
Radial r
and angular ϕ
coordinates (in radians) of all sinogram elements for the given geometry. Return type of i
is a ProductIterator
that makes tuples of the form (r, ϕ)
. To make projections call p = [fun(c...) for c in i]
where fun
is radon(...)
.
source sino_geom_plot!(rg, ig)
Picture of the source position / detector geometry.
source sino_geom_plot!(rg)
Picture of the source position / detector geometry.
source sino_plot_rays(rg::SinoGeom ; kwargs...)
Make a scatter plot of the (r, ϕ)
sample locations for all rays. Requires Plots
.
source to_radians(angles::AbstractArray{Unitful.Quantity})
Convert Unitful
quantity array to radians.
source to_radians(angles::AbstractArray{<:AbstractFloat})
When Unitful package not loaded, assume angles
are in degrees and convert to radians.
source output = zwart_powell(r, ϕ)
Analytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r
(normalized by pixel size) and angle ϕ
(in radians).
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/search/index.html b/v0.4.1/search/index.html
new file mode 100644
index 0000000..035e930
--- /dev/null
+++ b/v0.4.1/search/index.html
@@ -0,0 +1,2 @@
+
+Search · Sinograms.jl
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.23 on Monday 2 January 2023 . Using Julia version 1.8.4.
diff --git a/v0.4.1/search_index.js b/v0.4.1/search_index.js
new file mode 100644
index 0000000..7fc24ec
--- /dev/null
+++ b/v0.4.1/search_index.js
@@ -0,0 +1,3 @@
+var documenterSearchIndex = {"docs":
+[{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/07-fdk.jl\"","category":"page"},{"location":"generated/examples/07-fdk/#fdk","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page describes image reconstruction for cone-beam computed tomography (CBCT) with both arc and flat detectors using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated from a single Julia file: 07-fdk.jl.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The corresponding notebook can be viewed in nbviewer here: 07-fdk.ipynb, and opened in binder here: 07-fdk.ipynb.","category":"page"},{"location":"generated/examples/07-fdk/#Setup","page":"CBCT FDK","title":"Setup","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Packages needed here.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: CtFanArc, CtFanFlat # CtPar\nusing Sinograms: rays, plan_fbp, Window, Hamming, fdk, ct_geom_plot3\nusing ImageGeoms: ImageGeom, MaskCircle, fovs\nusing ImagePhantoms: ellipsoid_parameters, ellipsoid\nusing ImagePhantoms: radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/07-fdk/#CBCT-projections-of-3D-Shepp-Logan-phantom","page":"CBCT FDK","title":"CBCT projections of 3D Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For illustration, we start by synthesizing CBCT projections of the 3D Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ig = ImageGeom(MaskCircle(); dims=(64,62,30), deltas = (1,1,2) .* 0.4cm)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Ellipsoid parameters for 3D Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nparams = ellipsoid_parameters( ; fovs = fovs(ig), u = (1, 1, μ))\nob = ellipsoid(params)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"A narrow grayscale window is needed to see the soft tissue structures","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"clim = (0.95, 1.05) .* μ","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Here is the ideal phantom image:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"oversample = 3\ntrue_image = phantom(axes(ig)..., ob, oversample)\npt = jim(axes(ig), true_image, \"True 3D Shepp-Logan phantom image\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Define the system geometry (for some explanation use ?CtGeom):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"p = (ns = 130, ds = 0.3cm, nt = 80, dt = 0.4cm, na = 50, dsd = 200cm, dod = 40cm)\nrg = CtFanArc( ; p...)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"Examine the geometry to verify the FOV (this is more interesting when interacting via other Plot backends):","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"ct_geom_plot3(rg, ig)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"prompt()","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"CBCT projections using Sinogram.rays and ImagePhantoms.radon:","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"proj_arc = radon(rays(rg), ob)\npa = jim(axes(rg)[1:2], proj_arc ;\n title=\"Shepp-Logan projections (arc)\", xlabel=\"s\", ylabel=\"t\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"There is no \"inverse crime\" here because we compute the projection views using the analytical phantom geometry, but then reconstruct on a discrete grid.","category":"page"},{"location":"generated/examples/07-fdk/#Image-reconstruction-via-FBP-/-FDK","page":"CBCT FDK","title":"Image reconstruction via FBP / FDK","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"We start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\nfdk_arc = fdk(plan, proj_arc)\npar = jim(axes(ig), fdk_arc, \"FDK image (arc)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_arc = fdk_arc - true_image\nelim = (-1,1) .* (0.02μ)\npae = jim(axes(ig), err_arc, \"Error image (arc)\"; clim = elim)","category":"page"},{"location":"generated/examples/07-fdk/#Repeat-with-flat-detector-geometry","page":"CBCT FDK","title":"Repeat with flat detector geometry","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"rg = CtFanFlat( ; p...)\nproj_flat = radon(rays(rg), ob)\npfp = jim(axes(rg)[1:2], proj_flat ;\n title=\"Shepp-Logan projections (flat)\", xlabel=\"s\", ylabel=\"t\")\n\nplan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\nfdk_flat = fdk(plan, proj_flat)\npfr = jim(axes(ig), fdk_flat, \"FDK image (flat)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_flat = fdk_flat - true_image\npfe = jim(axes(ig), err_flat, \"Error image (flat)\"; clim = elim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"As expected for CBCT, the largest errors are in the end slices.","category":"page"},{"location":"generated/examples/07-fdk/#Short-scan","page":"CBCT FDK","title":"Short scan","text":"","category":"section"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"rg = CtFanFlat(:short ; p..., na = 200)\nproj_short = radon(rays(rg), ob)\npsp = jim(axes(rg)[1:2], proj_short ;\n title=\"Shepp-Logan projections (flat,short)\", xlabel=\"s\", ylabel=\"t\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"plan_short = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\npsw = jim(axes(rg)[[1,3]], plan_short.view_weight[:,1,:];\n title = \"View weights (including Parker)\",\n xlabel=\"s\", ylabel=\"angle\")","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"fdk_short = fdk(plan_short, proj_short)\npsr = jim(axes(ig), fdk_short, \"FDK image (flat,short)\"; clim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"err_short = fdk_short - true_image\npse = jim(axes(ig), err_flat, \"Error image (flat,short)\"; clim = elim)","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"","category":"page"},{"location":"generated/examples/07-fdk/","page":"CBCT FDK","title":"CBCT FDK","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/02-sino-geom.jl\"","category":"page"},{"location":"generated/examples/02-sino-geom/#sino-geom","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page describes the 2D sinogram geometries available in the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated from a single Julia file: 02-sino-geom.jl.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The corresponding notebook can be viewed in nbviewer here: 02-sino-geom.ipynb, and opened in binder here: 02-sino-geom.ipynb.","category":"page"},{"location":"generated/examples/02-sino-geom/#Setup","page":"2D sinogram geometry","title":"Setup","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Packages needed here.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"using Unitful: mm, °\nusing Plots # these 2 must precede 'using Sinograms' for sino_plot_rays to work\nusing Sinograms: SinoPar, SinoMoj, SinoFanArc, SinoFanFlat, SinoFan\nusing Sinograms: sino_plot_rays, rays, angles\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/02-sino-geom/#D-Sinogram-geometries","page":"2D sinogram geometry","title":"2D Sinogram geometries","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"To perform 2D image reconstruction from a 2D sinogram, one must first describe how the rays in the sinogram are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined for all r and ϕ but practical systems record p(rϕ) only for certain finite sets of samples of those values.","category":"page"},{"location":"generated/examples/02-sino-geom/#Parallel-beam-geometry","page":"2D sinogram geometry","title":"Parallel-beam geometry","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The simplest form of sinogram sampling is equally spaced samples in both r and ϕ. This sampling is called a parallel-beam geometry. (Very few practical systems have this sampling pattern, but it is an easy place to start.) Both FBP and iterative reconstruction methods need to know which values of r and ϕ are sampled.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"In this package, SinoPar is the type that describes a parallel-beam sinogram geometry.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The built-in defaults provide helpful reminders about the usage.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"SinoPar()","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This package supports units via the Unitful.jl and using units is recommended (but not required).","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example of how to specify a parallel-beam geometry. Everything is a named keyword argument with sensible default values.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"orbit and orbit_start must both be unitless (degrees) or have the same units (e.g., degrees or radians).\ndetector spacing d (can be unitless or have units e.g., mm).\nThe projection angles ϕ are equally space and given by orbit_start + (0:(nb-1))/nb * orbit.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoPar( ;\n nb = 64, # number of radial samples (\"bins\")\n na = 30, # number of angular samples\n d = 2mm, # detector spacing\n offset = 0.25, # quarter detector offset (unitless)\n orbit = 180, # angular range (in degrees)\n orbit_start = 0, # starting angle (in degrees)\n)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The struct rg has numerous useful properties; type ?SinoGeom to see the full list.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For example, to access the angular samples in degrees type angles(rg)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"angles(rg)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"The following function visualizes the sampling pattern.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true, title=\"Parallel\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-an-arc-detector-(3rd-generation-CT)","page":"2D sinogram geometry","title":"Fan-beam CT with an arc detector (3rd generation CT)","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"For a fan-beam geometry, the arguments are the same as for SinoPar with the addition of specifying:","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"dsd distance from source to detector\ndod distance from origin (isocenter) to detector\ndfs distance from focal point of detector to source (0 for a 3rd gen arc detector, and Inf for a flat detector)\nsource_offset for misaligned systems where the ray from the source to the detector center does not intersect the isocenter. Not fully supported; submit an issue if you need this feature.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is an example that corresponds to a GE Lightspeed CT system. These numbers are published in IEEE T-MI Oct. 2006, p.1272-1283.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoFanArc( ; nb=888, na=984,\n d=1.0239mm, offset=1.25, dsd=949.075mm, dod=408.075mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a smaller example for plotting the rays.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoFanArc( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)\nsino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for arc detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Fan-beam-CT-with-a-flat-detector","page":"2D sinogram geometry","title":"Fan-beam CT with a flat detector","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This geometry is the same as the arc detector except that dfs=Inf.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoFanFlat( ; nb=64, na=30,\n d=20mm, offset=0.25, dsd=900mm, dod=400mm)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(rg; ylims=(-50,400), yticks=(0:180:360), widen=true,\n title=\"Fan-beam for flat detector\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"prompt()","category":"page"},{"location":"generated/examples/02-sino-geom/#Mojette-sampling","page":"2D sinogram geometry","title":"Mojette sampling","text":"","category":"section"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This is a specialized sampling geometry that is currently incompletely supported.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"rg = SinoMoj( ; nb=60, na=30)","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is its sampling plot","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"sino_plot_rays(rg; ylims=(0,180), yticks=(0:90:180), widen=true,\n title=\"Mojette sampling\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"Here is a diagram that illustrates how the radial spacing is a function of the projection view angle for the Mojette geometry. The key aspect here is that in each image row the line intersection lengths are identical.","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"plot(xlims=(-1,1) .* 3.5, ylims = (-1,1) .* 2.5, xlabel=\"x\", ylabel=\"x\")\ndefault(label=\"\")\nfor y in -2:2\n plot!([-3, 3], [y, y], color=:black)\nend\nfor x in -3:3\n plot!([x, x], [-2, 2], color=:black)\nend\nplot_ray!(r, ϕ) = plot!(\n r*cos(ϕ) .+ [-1, 1] * 4 * sin(ϕ),\n r*sin(ϕ) .+ [1, -1] * 4 * cos(ϕ),\n color = :blue,\n)\nia = 4 # pick an angle\ni = rays(rg) # iterator\nrs = [i[1] for i in i] # radial samples\nϕs = [i[2] for i in i] # projection angle\nr = rs[:,ia]\nr = r[abs.(r) .< 3]\nϕ = ϕs[1,ia]\nplot_ray!.(r, ϕ)\nplot!(aspect_ratio=1, title = \"Mojette line integrals\")","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"","category":"page"},{"location":"generated/examples/02-sino-geom/","page":"2D sinogram geometry","title":"2D sinogram geometry","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/03-parallel-beam.jl\"","category":"page"},{"location":"generated/examples/03-parallel-beam/#parallel-beam","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page describes parallel-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated from a single Julia file: 03-parallel-beam.jl.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The corresponding notebook can be viewed in nbviewer here: 03-parallel-beam.ipynb, and opened in binder here: 03-parallel-beam.ipynb.","category":"page"},{"location":"generated/examples/03-parallel-beam/#Setup","page":"Parallel-beam tomography","title":"Setup","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Packages needed here.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"using Sinograms: SinoPar, rays, plan_fbp, fbp, fbp_sino_filter\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing Unitful: mm\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/03-parallel-beam/#Parallel-beam-sinogram-of-Shepp-Logan-phantom","page":"Parallel-beam tomography","title":"Parallel-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For illustration, we start by synthesizing a parallel-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Use SinoPar to define the sinogram geometry.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"rg = SinoPar( ; nb = 130, d = 2mm, na = 100)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Radon transform of Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")\n\n# Image reconstruction via FBP","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"plan = plan_fbp(rg, ig)\nfbp_image = fbp(plan, sino)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"For fun, here is the filtered sinogram:","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"sino_filt = fbp_sino_filter(sino, plan.filter)\njim(axes(rg), sino_filt; title=\"Filtered sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"","category":"page"},{"location":"generated/examples/03-parallel-beam/","page":"Parallel-beam tomography","title":"Parallel-beam tomography","text":"This page was generated using Literate.jl.","category":"page"},{"location":"methods/#Methods-list","page":"Methods","title":"Methods list","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"","category":"page"},{"location":"methods/#Methods-usage","page":"Methods","title":"Methods usage","text":"","category":"section"},{"location":"methods/","page":"Methods","title":"Methods","text":"Modules = [Sinograms]","category":"page"},{"location":"methods/#Sinograms.Sinograms","page":"Methods","title":"Sinograms.Sinograms","text":"Sinograms module\n\n\n\n\n\n","category":"module"},{"location":"methods/#Sinograms.CtFanArc","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc{Td,To,Ts}\n\n3D CBCT geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc(::Val{:ge1} ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\n(see CtFanArc)\n\nout\n\nCtFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> CtFanArc(Val(:ge1))\nCtFanArc{Float64, Float32, CtSourceCircle} :\n ns::Int64 888\n nt::Int64 64\n ds::Float64 1.0239\n dt::Float64 1.0964\n offset_s::Float32 1.25\n offset_t::Float32 0.0\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float64 0.0\n dsd::Float64 949.075\n dod::Float64 408.075\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanArc-Tuple{}","page":"Methods","title":"Sinograms.CtFanArc","text":"CtFanArc( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\nCtFanArc(:short ; ...)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> CtFanArc()\nCtFanArc{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtFanFlat","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat{Td,To,Ts}\n\n3D CTCT geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtFanFlat-Tuple{}","page":"Methods","title":"Sinograms.CtFanFlat","text":"CtFanFlat( ; ns nt ds dt offset_s offset_t\n na orbit orbit_start\n dsd = 4ns * ds, dod = ns * ds)\nCtFanFlat(:short ; ...)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> CtFanFlat()\nCtFanFlat{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 64\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtGeom","page":"Methods","title":"Sinograms.CtGeom","text":"CtGeom{Td,To,Ts}\n\nAbstract type for representing ray geometries for 3D CT imaging.\n\nThe projection view coordinates are (s,t) where s denotes the transaxial sampling and t denotes the axial direction (along z).\n\nCommon fields\n\nns size of each projection view\nnt\nds detector pixel spacing\ndt\noffset_s unitless detector center offset (usually 0 or 0.25)\noffset_t unitless, usually 0\nna # of projection views, aka nϕ or nβ\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\nsrc::CtSource describes the X-ray CT source trajectory. Primary support for CtSourceCircle().\n\nAdditional fields for CtFan types:\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nds, dt, source_offset, dsd, dod must all be unitless or have the same units.\n\nBasic methods\n\nangles (na) in degrees\ndims (ns, nt, na)\nones = ones(Float32, ns,nt,na)\nzeros = zeros(Float32, ns,nt,na)\nrays iterator of (u,v,ϕ,θ) samples\ndownsample(st, down) reduce sampling by integer factor\noversample(st, over)\nct_geom_plot3 plot system geometry\n\nNon-exported helper functions for developers:\n\n_s (ns) s sample locations\n_t (nt) t sample locations\n_ws = (ns-1)/2 + offset_s \"middle\" sample position\n_wt = (nt-1)/2 + offset_t\n_ar (na) source angles [radians]\n_rfov max radius within FOV\n_zfov axial FOV\n_xds (nb) center of detector elements (beta=0)\n_yds (nb) \"\"\n_tau(rg, x, y) projected s/ds for each (x,y) pair (length(x), na)\n_shape(rg, proj [,:]) reshape proj into array (ns,nt,na[,:])\n_unitv(rg [, (is,it,ia)]) unit 'vector' with single nonzero element\n\nFor fan beam:\n\n_dso = dsd - dod distance from source to origin (Inf for parallel beam)\n_dfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n_gamma(rg [,s]) (ns) gamma sample values radians, optionally given s values\n_gamma_max = max(|γ|) half of fan angle radians, if offset_s == 0\n_cone_angle (half) cone angle on axis (s=0): +/- angle\n\nNotes\n\nUse sino_geom() instead for 2D geometries.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar","page":"Methods","title":"Sinograms.CtPar","text":"CtPar{Td,To,Ts}\n\n3D parallel-beam projection geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtPar-Tuple{}","page":"Methods","title":"Sinograms.CtPar","text":"CtPar( ; ns nt ds dt offset_s offset_t na orbit orbit_start)\n\nConstructor with named keywords. See ?CtGeom for documentation.\n\njulia> CtPar()\nCtPar{Float32, Float32, CtSourceCircle} :\n ns::Int64 128\n nt::Int64 64\n ds::Float32 1.0\n dt::Float32 1.0\n offset_s::Float32 0.0\n offset_t::Float32 0.0\n na::Int64 60\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n src::CtSourceCircle CtSourceCircle()\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.CtSource","page":"Methods","title":"Sinograms.CtSource","text":"CtSource\n\nAbstract type for representing X-ray CT source trajectories.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceCircle","page":"Methods","title":"Sinograms.CtSourceCircle","text":"CtSourceCircle\n\nType for representing circular X-ray CT source trajectory.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix\n\nType for representing helical X-ray CT source trajectories having constant pitch.\n\nFields\n\npitch helix pitch (unitless fraction of zFOV, default 0)\nsource_z0 initial z position of x-ray source (default 0) It should have same units as detector pixels etc.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.CtSourceHelix-Tuple{}","page":"Methods","title":"Sinograms.CtSourceHelix","text":"CtSourceHelix( ; pitch = 0, source_z0 = 0)\n\nConstructor with named keywords\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.FBPNormalPlan","page":"Methods","title":"Sinograms.FBPNormalPlan","text":"FBPNormalPlan{S,I,H,P}\n\nStruct type for storing \"normal\" FBP plan.\n\nThe view_weight can include (products of)\n\nParker weighting for short scans\nview-wise weighting from fbp_sino_weight todo\ndβ weighting for possibly nonuniform angles from _angle_weights\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FBPplan","page":"Methods","title":"Sinograms.FBPplan","text":"FBPplan\n\nAbstract type for FBP plans.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.FDKplan","page":"Methods","title":"Sinograms.FDKplan","text":"FDKplan{C,I,H,V}\n\nStruct type for storing FDK plan.\n\nThe view_weight can include (products of)\n\nParker weighting for short scans\nview-wise CBCT weighting from fdk_weight_cyl\ndβ weighting for possibly nonuniform angles from _angle_weights\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.RayGeom","page":"Methods","title":"Sinograms.RayGeom","text":"RayGeom{Td,To}\n\nParent type for SinoGeom and CtGeom\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc{Td,To}\n\n2D fan-beam sinogram geometry for arc detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{Val{:ge1}}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc(Val(:ge1) ; kwargs...)\n\nGE Lightspeed system CT geometry.\n\noption\n\nunit::RealU = 1 or use 1mm\nnb::Int = 888 # of detector channels\nd::RealU = 1.0239 channel spacing\noffset::Real = 1.25 for \"quarter-detector\" offset\nna::Int = 984 # of angles\norbit::Union{Symbol,Real} = 360 use :short for short scan\ndsd::RealU = 949.075\ndod::RealU = 408.075\n\nout\n\nSinoFanArc\n\nThese numbers are published in IEEE T-MI Oct. 2006, p.1272-1283 wang:06:pwl.\n\njulia> SinoFanArc(Val(:ge1))\nSinoFanArc{Float32, Float32} :\n nb::Int64 888\n d::Float32 1.0239\n offset::Float32 1.25\n na::Int64 984\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 949.075\n dod::Float32 408.075\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanArc-Tuple{}","page":"Methods","title":"Sinograms.SinoFanArc","text":"SinoFanArc( ; nb d offset na orbit orbit_start\n source_offset, dsd = 4 * nb * d, dod = nb * d)\nSinoFanArc(:short ; ...)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\nd, source_offset, dsd, dod must all have the same units.\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> SinoFanArc()\nSinoFanArc{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoFanFlat","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat{Td,To}\n\n2D fan-beam sinogram geometry for flat detector\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoFanFlat-Tuple{}","page":"Methods","title":"Sinograms.SinoFanFlat","text":"SinoFanFlat( ; nb d offset na orbit orbit_start\n source_offset, dsd= 4 * nb * d, dod = nb * d)\nSinoFanFlat(:short ; ...)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\nUse :short argument to specify a short scan, in which case na will be scaled down proportionally as well.\n\njulia> SinoFanFlat()\nSinoFanFlat{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 360.0\n orbit_start::Float32 0.0\n source_offset::Float32 0.0\n dsd::Float32 512.0\n dod::Float32 128.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoGeom","page":"Methods","title":"Sinograms.SinoGeom","text":"SinoGeom{Td,To}\n\nAbstract type for representing ray geometries for 2D sinograms. This describes the sampling characteristics of a given sinogram for a 2D parallel or fan-beam system.\n\nCommon fields\n\nnb # of \"radial\" samples, aka nr or ns\nd aka dr or ds, \"radial\" sample spacing\noffset unitless sample offset (usually 0 or 0.25)\nna # of angular samples, aka nϕ or nβ default: 2 * floor(Int, nb * π/2 / 2)\norbit source orbit in degrees (or Unitful)\norbit_start starting angle in degrees (or Unitful) orbit and orbit_start must both be unitless (degrees) or have same units.\n\nAdditional fields for SinoFan types\n\ndsd distance from source to detector\ndod distance from origin to detector\nsource_offset usually 0\n\nUnits:\n\nd, source_offset, dsd, dod must all have the same units.\n\nBasic methods\n\nangles (na) in degrees\ndims (nb, na)\nones = ones(Float32, nb, na)\nzeros = zeros(Float32, nb, na)\nrays iterator of (r, ϕ) parallel-beam coordinate tuples of size (nb, na)\ndownsample(st, down) reduce sampling by integer factor\noversample(st, over)\nsino_geom_plot! plot system geometry\n\nNon-exported helper functions for developers:\n\n_ds|dr radial sample spacing (NaN for :moj)\n_s (nb) s sample locations\n_w = (nb-1)/2 + offset \"middle\" sample position\n_ar (na) source angles [radians]\n_rfov radial FOV\n_xds (nb) center of detector elements (beta=0)\n_yds (nb) \"\"\n_tau(rg, x, y) projected s/ds for each (x,y) pair (length(x), na)\n_shape(rg, sino [,:]) reshape sino into array (nb,na[,:])\n_unitv(rg [, (ib,ia)]) unit 'vector' with single nonzero element\n\nFor mojette:\n\n_d_ang (na) angle-dependent radial spacing\n\nFor fan beam:\n\n_dso = dsd - dod distance from source to origin (Inf for parallel beam)\n_dfs distance from source to detector focal spot (0 for 3rd gen CT, Inf for flat detectors)\n_gamma(rg [,s]) (nb) gamma sample values radians, optionally given s values\n_gamma_max = max(|γ|) half of fan angle radians, if offset_s == 0\n\nNotes\n\nUse ct_geom() instead for 3D axial or helical cone-beam CT.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj{Td,To}\n\n2D Mojette sinogram geometry where d means dx (square pixel size)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoMoj-Tuple{}","page":"Methods","title":"Sinograms.SinoMoj","text":"SinoMoj( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoMoj()\nSinoMoj{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.SinoPar","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar{Td,To}\n\n2D parallel-beam sinogram geometry\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.SinoPar-Tuple{}","page":"Methods","title":"Sinograms.SinoPar","text":"SinoPar( ; nb d offset na orbit orbit_start)\n\nConstructor with named keywords. See ?SinoGeom for documentation.\n\njulia> SinoPar()\nSinoPar{Float32, Float32} :\n nb::Int64 128\n d::Float32 1.0\n offset::Float32 0.0\n na::Int64 200\n orbit::Float32 180.0\n orbit_start::Float32 0.0\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.Window","page":"Methods","title":"Sinograms.Window","text":"Window{S,T}\n\nData type for FBP apodizing windows, with given window shape::S and cutoff::T.\n\njulia> Window(Hamming(), 0.8)\nWindow{Hamming, Float64}(Hamming(), 0.8)\n\n\n\n\n\n","category":"type"},{"location":"methods/#Sinograms.WindowVect","page":"Methods","title":"Sinograms.WindowVect","text":"WindowVect{V} <: AbstractWindowShape\n\nA user-specified window vector, constructed via WindowVect(v::V), where v is a AbstractVector. Caution: length(v) must be appropriate for the padded sinogram size.\n\n\n\n\n\n","category":"type"},{"location":"methods/#Base.show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Sinograms.RayGeom}","page":"Methods","title":"Base.show","text":"show(io::IO, ::MIME\"text/plain\", rg::RayGeom)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._angle_weights-Tuple{AbstractVector{<:Number}}","page":"Methods","title":"Sinograms._angle_weights","text":"_angle_weights(ar::AbstractVector{<:RealU})\n\nAngular weighting to # scale projections by dβ (aka dϕ or da) for Riemann-like integration.\n\ninput\n\nar (na,) angles in radians.\n\noutput\n\nFor now, simply the scalar (ar[begin+1]-ar[begin]) / n180 where n180 is the number of full multiples of 180°. This simplifies to π/na for typical 180° and 360° scans. For a fan-beam short scan (180° + fan angle), it also simplifies to π/na, where the \"excess\" is handled by Parker weighting.\n\nExamples\n\njulia> rg = SinoPar(); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na\n(0.015707962f0, 0.015707963267948967)\n\njulia> rg = SinoPar(;orbit=360); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na\n(0.015707962f0, 0.015707963267948967)\n\njulia> rg = SinoFanArc(:short); Sinograms._angle_weights(Sinograms._ar(rg)), π/rg.na\n(0.04842342f0, 0.04487989505128276)\n\nFor now, only equally spaced views are supported, but this is where unequal spacing would be handled, and the output would be of size (na,).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._gamma","page":"Methods","title":"Sinograms._gamma","text":"_gamma(rg::RayGeom [, s])\n\nReturn gamma (γ: fan angle) values for fan-beam geometry.\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms._reale-Tuple{Any}","page":"Methods","title":"Sinograms._reale","text":"_reale(x ; rtol = …)\n\nReturn the real part of x, but warn if the imaginary part is too large. By default this uses a 100× larger rtol than isapprox due to FFT errors.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._rfov-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._rfov","text":"_rfov(rg::RayGeom)\n\nRadial FOV.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._shape-Tuple{Sinograms.RayGeom, AbstractArray}","page":"Methods","title":"Sinograms._shape","text":"_shape(rg, x::AbstractArray [, :])\n\nReshape x to dims(rg) or (dims(rg)..., :).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._show-Tuple{IO, MIME{Symbol(\"text/plain\")}, Any}","page":"Methods","title":"Sinograms._show","text":"_show(io::IO, ::MIME\"text/plain\", st::Any)\n\nInformative way to show fields of a struct (composite type).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._tau-Tuple{Sinograms.RayGeom, AbstractArray, AbstractArray}","page":"Methods","title":"Sinograms._tau","text":"_tau(rg::RayGeom, x, y)\n\nProjected s/ds, useful for footprint center and support. Returns Matrix of size length(x) × rg.na.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._unitv","page":"Methods","title":"Sinograms._unitv","text":"_unitv([T=Float32], rg:RayGeom [, pos::Tuple])\n\nProjection views with a single non-zero ray value at position pos (default: middle).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms._xds-Tuple{Union{CtPar, SinoPar}}","page":"Methods","title":"Sinograms._xds","text":"_xds(rg::RayGeom)\n\nCenter x positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms._yds-Union{Tuple{Union{CtPar{Td}, SinoPar{Td}}}, Tuple{Td}} where Td","page":"Methods","title":"Sinograms._yds","text":"_yds(rg::RayGeom)\n\nCenter y positions of detectors (for beta = 0), for central row of detector.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.angles-Tuple{Sinograms.RayGeom}","page":"Methods","title":"Sinograms.angles","text":"angles(rg::RayGeom) =\n\nReturn vector of angles for this ray geometry, in whatever units the user used to specify orbit and orbit_start, typically degrees.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_arc_to_par-Union{Tuple{Ts}, Tuple{Ts, Number, Number, Number, Number}} where Ts<:Number","page":"Methods","title":"Sinograms.cb_arc_to_par","text":"u, v, azim, polar = cb_arc_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam arc (3rd gen CT) coordinates to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cb_flat_to_par-NTuple{5, Number}","page":"Methods","title":"Sinograms.cb_flat_to_par","text":"u, v, azim, polar = cb_flat_to_par(s, t, β, dso, dod)\n\nConvert from cone-beam flat panel coordinages to parallel-beam coordinates.\n\nin\n\ns,t detector coordinates\nβ X-ray source angle, measured counter-clockwise from y axis\ndso,dsd distances for the geometry\n\nout\n\nu,v transaxial and axial parallel-beam detector coordinates\nazim ϕ transaxial or azimuthal angle (radians)\npolar θ polar angle (radians)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back-Tuple{AbstractArray{<:Number, 3}, CtFan, ImageGeoms.ImageGeom{3, S, M} where {S<:Tuple{Number, Number, Number}, M<:AbstractArray{Bool, 3}}}","page":"Methods","title":"Sinograms.cbct_back","text":"cbct_back(proj, rg, ig)\n\nCone-beam backprojector for feldkamp.jl\n\nin\n\nproj (ns,nt,na) cone-beam projection views\nrg::CtGeom\nig::ImageGeom\n\nout\n\nimg (nx,ny,nz) back-projection result\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.cbct_back_fan!-Union{Tuple{Toffset}, Tuple{T}, Tuple{Array{T, 3}, AbstractArray{<:Number, 3}, AbstractVector{<:Number}, Number, Number, Number, Number, Toffset, Toffset, Bool, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractVector{<:Number}, AbstractArray{Bool, 3}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.cbct_back_fan!","text":"cbct_back_fan!(...)\n\nThis should work even for non-uniformly spaced source angles (for a circular source trajectory).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot2!-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot2!","text":"ct_geom_plot2!(rg::CtGeom [, ig::ImageGeom])\n\nPlot central 2D portion of the CBCT geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ct_geom_plot3-Tuple{CtFan, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.ct_geom_plot3","text":"ct_geom_plot3(rg::CtFan [, ig::ImageGeom])\n\n3D CBCT geometry plot\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Tuple{CtGeom, Int64}","page":"Methods","title":"Sinograms.downsample","text":"downsample(rg, down::Int)\ndownsample(rg, down::NTuple{3,Int})\n\nDown-sample CT geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.downsample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.downsample","text":"downsample(rg, down)\n\nDown-sample sinogram geometry (for testing with small problems).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp","page":"Methods","title":"Sinograms.fbp","text":"fbp(plan, sino)\n\nFiltered back-projection (FBP) reconstruction.\n\nin\n\nplan::FBPplan\nsino::AbstractArray{<:Number} (nb,na,...) sinogram(s)\n\nout\n\nimage::Matrix{<:Number} (nx,ny,...) reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp!-Tuple{AbstractMatrix{<:Number}, AbstractMatrix{<:Number}}","page":"Methods","title":"Sinograms.fbp!","text":"fbp!(image, sino ; orbit::Real = 180, kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Writes result into image matrix.\n\nInput\n\nsino::AbstractMatrix\n\nOptions for SinoPar constructor\n\ndr : sinogram radial spacing; default 1\norbit : angular range in degrees; default 180\norbit_start : angular range in degrees; default 0\n\nOptions for ImageGeom\n\ndx, dy, deltas, offset_x, offset_y, offsets\nrmax maximum radius for mask\n\nOptions\n\nkwargs : passed to plan_fbp\n\nOutput\n\nimage::AbstractMatrix is mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp-Union{Tuple{AbstractMatrix{Ts}}, Tuple{Td}, Tuple{Ts}} where {Ts<:Number, Td<:Number}","page":"Methods","title":"Sinograms.fbp","text":"fbp(sino::AbstractMatrix ; kwargs...)\n\nFBP reconstruction from a parallel-beam sinogram of size [nr × nϕ]. Returns an image of size [nx × ny].\n\nOptions\n\nnx : default nr\nny : default nx\nkwargs : passed to fbp!\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back","page":"Methods","title":"Sinograms.fbp_back","text":"img = fbp_back(rg, ig, sino ; ia_skip)\n\n2D pixel-driven backprojection for FBP.\n\nin\n\nrg::SinoGeom\nig::ImageGeom\nsino::AbstractArray{<:Number} sinogram(s) (line integrals), usually ramp filtered\n\noption\n\nia_skip::Int downsample in angle to save time for quick tests (default: 1)\n\nout\n\nimg::Array{<:Number} reconstructed image(s)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_back_fan!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Number, Number, Bool, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan!","text":"fbp_back_fan!(image, sino, sinβ, cosβ,\n dsd, dso, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Number, Number, Number, Bool, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_fan","text":"fbp_back_fan(sino, betas,\n dsd, dso, dfs, source_offset, is_arc,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nbetas::Vector{<:Real} (na) in radians\ndsd,dso,source_offset::RealU geometry\nis_arc::Bool arc or flat?\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::Type{<:Number} usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_fan_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Real, Real, Real, Bool, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_fan_xy","text":"fbp_back_fan_xy(sino, sinβ, cosβ,\n dsd_ds, dso_ds, source_offset_ds, is_arc,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a fan-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinβ::Vector{<:Real} (na)\ncosβ::Vector{<:Real} (na)\ndsd_ds,dso_ds,source_offset_ds::Real geometry, normalized\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::Type{<:Number} typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par!-Union{Tuple{Toffset}, Tuple{T}, Tuple{AbstractMatrix{T}, AbstractMatrix{<:Number}, AbstractVector{<:Real}, AbstractVector{<:Real}, Number, Toffset, AbstractArray{<:Number}, AbstractArray{<:Number}, AbstractMatrix{Bool}}} where {T<:Number, Toffset<:Real}","page":"Methods","title":"Sinograms.fbp_back_par!","text":"fbp_back_par!(image, sino, sinϕ, cosϕ,\n ds, offset, xc, yc, mask ; ia_skip)\n\nMutating version of pixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It uses Threads. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\n\nout\n\nimage::Matrix (nx, ny) matrix to be mutated\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par-Union{Tuple{Tc}, Tuple{Toffset}, Tuple{Tds}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, Tds, Toffset, AbstractArray{Tc}, AbstractArray{Tc}, AbstractMatrix{Bool}}} where {Ts<:Number, To<:Number, Tds<:Number, Toffset<:Real, Tc<:Number}","page":"Methods","title":"Sinograms.fbp_back_par","text":"fbp_back_par(sino, angles,\n ds, offset, xc, yc, mask ; ia_skip, T)\n\nPixel-driven back-projection for a grid of (xc,yc) pixel center locations for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nangles::Vector{<:Real} (na) in radians\nds::RealU ray spacing\noffset::Real detector offset (usually 0)\nxc::Vector{<:RealU} (nx) pixel centers\nyc::Vector{<:RealU} (ny) pixel centers\nmask::Matrix{Bool} (nx, ny) which pixels to reconstruct\n\noption\n\nia_skip::Int default 1\nT::Type{<:Number} usually same as eltype(sino)\n\nout\n\nimage::Matrix (nx, ny)\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_back_par_xy-Union{Tuple{Tx}, Tuple{Tb}, Tuple{To}, Tuple{Ts}, Tuple{AbstractMatrix{Ts}, AbstractVector{To}, AbstractVector{To}, Tb, Tx, Tx}} where {Ts<:Number, To<:Real, Tb<:Real, Tx<:Real}","page":"Methods","title":"Sinograms.fbp_back_par_xy","text":"fbp_back_par_xy(sino, sinϕ, cosϕ,\n wb, x, y ; T)\n\nPixel-driven back-projection for a single (x,y) location for sinogram sino from a parallel-beam geometry. It assumes the angles are equally spaced over [0,π).\n\nin\n\nsino::Matrix{<:Number} (nb, na) usually ramp-filtered\nsinϕ::Vector{<:Real} (na)\ncosϕ::Vector{<:Real} (na)\nwb::Real = (nb+1)/2 + offset where usually offset=0\nx,y::Real pixel center location, normalized by ray spacing\n\noption\n\nT::Type{<:Number} typically same as eltype(sino)\n\nout\n\nReturns a scalar of type T.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_filter-Union{Tuple{}, Tuple{Sinograms.RayGeom{Td}}, Tuple{Td}} where Td<:Number","page":"Methods","title":"Sinograms.fbp_filter","text":"Hk = fbp_filter(rg::RayGeom ;\n npad=0, ds::RealU = rg.d, decon1::Bool=true, window=Window())\n\nCompute frequency response of ramp-like filter used for FBP image reconstruction. Supports parallel-beam and fan-beam tomographic geometries in 2D and 3D. This code samples the band-limited ramp to avoid the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nrg::RayGeom\n\noption\n\nnpad::Int # of padded samples. (default: next power of 2)\nds::Td detector sample spacing (default from st)\ndecon1::Bool deconvolve effect of linear interpolator? (default: true)\nwindow::Window apodizer; default: Window()\n\nout\n\nHk::Vector apodized ramp filter frequency response\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_ramp","page":"Methods","title":"Sinograms.fbp_ramp","text":"h, n = fbp_ramp(rg::SinoGeom, N::Int)\n\n'ramp-like' filters for parallel-beam and fan-beam FBP reconstruction. This sampled band-limited approach avoids the aliasing that would be caused by sampling the ramp directly in the frequency domain.\n\nin\n\nrg::SinoGeom\nN::Int : # of samples (must be even)\n\nout\n\nh::Vector{<:RealU} : samples of band-limited ramp filter\nn::UnitRange{Int64} : -(N÷2):(N÷2-1)\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fbp_sino_filter-Union{Tuple{Ts}, Tuple{AbstractArray{Ts}, AbstractVector{<:Number}}} where Ts<:Number","page":"Methods","title":"Sinograms.fbp_sino_filter","text":"sino = fbp_sino_filter(sino::Array, filter::Vector ; extra=0)\n\nApply ramp-like filters to sinogram(s) for 2D FBP image reconstruction. Supports both parallel-beam and fan-beam tomographic geometries in 2D and 3D.\n\nin\n\nsino::AbstractArray{<:Number} [nb (L)] sinograms\nfilter::AbstractVector (npad ≥ nb) apodized ramp filter frequency response\n\noption\n\nextra::Int # of extra sinogram radial samples to keep (default: 0)\nnpad::Int # of padded samples. (default: next power of 2)\n\nout\n\nsino::AbstractArray sinogram with filtered rows\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_sino_weight-Tuple{SinoFan}","page":"Methods","title":"Sinograms.fbp_sino_weight","text":"fbp_sino_weight(rg::SinoFan)\n\nReturn 1D sinogram weighting for first step of 2D fan-beam FBP.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fbp_window-Tuple{Window, Int64}","page":"Methods","title":"Sinograms.fbp_window","text":"fbp_window(w::Window, N::Int ; T = Float32)\n\nCreate an apodizing window of length N and fftshift it.\n\njulia> fbp_window(Window(Hamming()), 4)\n4-element Vector{Float32}:\n 1.0\n 0.54\n 0.0\n 0.54\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fdk-Tuple{FDKplan, AbstractArray{<:Number, 3}}","page":"Methods","title":"Sinograms.fdk","text":"image = fdk(plan, proj)\n\nReconstruct 3D image from cone-beam computed tomography (CBCT) data collected with a circular source trajectory via FDK method.\n\nin\n\nplan::FDKplan\nproj (ns,nt,na) projection views\n\nout\n\nimage (nx,ny,nz) reconstructed image\n\nReferences: Feldkamp, Davis, Kress, JOSA-A, 1(6):612-9, June 1984.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.fdk_weight_cyl","page":"Methods","title":"Sinograms.fdk_weight_cyl","text":"fdk_weight_cyl\n\nFDK projection weighting providing \"exact\" CBCT reconstruction for cylindrical-like objects that satisfy f(xyz) = f(xy0) z. The output is a (ns,nt) matrix.\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.fft_filter","page":"Methods","title":"Sinograms.fft_filter","text":"fft_filter(data::Array, filter::Vector [, dim])\n\nApply filter to selected dimensions of array data using FFT.\n\nin\n\ndata::AbstractArray{<:Number} (n, (L))\nfilter::AbstractVector (n) apodized ramp filter frequency response\n\noption\n\ndim non-singleton dimensions of filter (typically 1)\n\nout\n\nout::AbstractArray data filtered along dimension dim\n\nIf the input data is real, so will be the output; this assumes filter frequency response has appropriate symmetry.\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.footprint_size","page":"Methods","title":"Sinograms.footprint_size","text":"footprint_size(st::Union{SinoGeom,CtGeom}, ig::ImageGeom)\n\nUnitless maximum footprint size (in detector pixels).\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:CtParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(rg, over::Int)\n\nOver-sample CT geometry in \"radial\" dimension.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.oversample-Union{Tuple{G}, Tuple{G, Int64}} where G<:SinoParallel","page":"Methods","title":"Sinograms.oversample","text":"oversample(rg, over::Int)\n\nOver-sample sinogram geometry in \"radial\" dimension. For Mojette sampling, it means that d = dx/over.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.parker_weight","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(rg::SinoGeom, T = Float32)\n\nCompute Parker weighting for non-360° orbits. See http://doi.org/10.1118/1.595078. Returns Matrix{T} of size:\n\n(1,1) for SinoPar with typical 180 or 360 orbit\n(1,na) for SinoPar with atypical orbit\n(1,1) for SinoFan with typical 360 orbit\n(ns,na) for SinoFan with typical 360 orbit\n\n\n\n\n\n","category":"function"},{"location":"methods/#Sinograms.parker_weight-Tuple{CtFan}","page":"Methods","title":"Sinograms.parker_weight","text":"parker_weight(rg::CtFan; T::Type{<:AbstractFloat} = Float32, kwargs...)\n\nFor 3D case, return Array{T,3} where size is\n\n(1,1,1) typical fan case with 360° orbit\n(ns,1,na) atypical fan case including short scan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{CtGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(rg, ig; window=Window(), ...)\n\nPlan FDK 3D CBCT image reconstruction, with either flat or arc detector.\n\nTo use this method, you first call it with the CT geometry and image geometry. The routine returns the initialized plan. Thereafter, to to perform FDK reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nrg::CtGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noption\n\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, rg.ns + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\n\nout\n\nplan::FDKplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.plan_fbp-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.plan_fbp","text":"plan = plan_fbp(rg, ig; how=:normal, window=Window())\n\nPlan FBP 2D tomographic image reconstruction for parallel-beam & fan-beam cases, with either flat or arc detector for fan-beam case.\n\nTo use this method, you first call it with the sinogram geometry and image geometry. The routine returns the initialized plan. Thereafter, to to perform FBP reconstruction, call fbp with the plan (perhaps numerous times for the same geometry).\n\nin\n\nrg::SinoGeom\nig::ImageGeom only reconstruct pixels within ig.mask.\n\noption\n\nhow::Symbol how to reconstruct\n:normal default\n:mojette use mojette rebinning and Gtomo2_table\nwindow::Window e.g., Window(Hamming(), 0.8); default Window()\nnpad::Int # of radial bins after padding; default nextpow(2, rg.nb + 1)\ndecon1::Bool deconvolve interpolator effect? (default true)\nT::Type{<:Number} type of sino elements (default Float32)\n\nout\n\nplan::FBPplan initialized plan\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ramp_arc-Tuple{Int64, Number, Number}","page":"Methods","title":"Sinograms.ramp_arc","text":"(h, n) = ramp_arc(N::Int, ds::RealU, dsd::RealU)\n\nRamp filter samples for arc fan geometry, for n = -(N÷2):(N÷2-1).\n\nN must be even.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.ramp_flat-Tuple{Int64, Number}","page":"Methods","title":"Sinograms.ramp_flat","text":"(h, n) = ramp_flat(N::Int, ds::RealU)\n\nRamp filter samples for flat fan geometry, for n = -(N÷2):(N÷2-1).\n\nN must be even.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Tuple{CtPar}","page":"Methods","title":"Sinograms.rays","text":"i = rays(rg::CtGeom)\n\nReturn parallel-beam coordinates of all rays for this CT geometry. Return type of i is a ProductIterator that makes tuples of the form (u, v, ϕ, θ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.rays-Tuple{SinoPar}","page":"Methods","title":"Sinograms.rays","text":"i = rays(rg::SinoGeom)\n\nRadial r and angular ϕ coordinates (in radians) of all sinogram elements for the given geometry. Return type of i is a ProductIterator that makes tuples of the form (r, ϕ). To make projections call p = [fun(c...) for c in i] where fun is radon(...).\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom, ImageGeoms.ImageGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(rg, ig)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_geom_plot!-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_geom_plot!","text":"sino_geom_plot!(rg)\n\nPicture of the source position / detector geometry.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.sino_plot_rays-Tuple{SinoGeom}","page":"Methods","title":"Sinograms.sino_plot_rays","text":"sino_plot_rays(rg::SinoGeom ; kwargs...)\n\nMake a scatter plot of the (r, ϕ) sample locations for all rays. Requires Plots.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{<:Unitful.Quantity{T}}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{Unitful.Quantity})\n\nConvert Unitful quantity array to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.to_radians-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T<:AbstractFloat","page":"Methods","title":"Sinograms.to_radians","text":"to_radians(angles::AbstractArray{<:AbstractFloat})\n\nWhen Unitful package not loaded, assume angles are in degrees and convert to radians.\n\n\n\n\n\n","category":"method"},{"location":"methods/#Sinograms.zwart_powell-Tuple{Real, Real}","page":"Methods","title":"Sinograms.zwart_powell","text":"output = zwart_powell(r, ϕ)\n\nAnalytic 2D Radon transform value of Zwart-Powell box spline, for radial distance r (normalized by pixel size) and angle ϕ (in radians).\n\n\n\n\n\n","category":"method"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/05-fan-flat.jl\"","category":"page"},{"location":"generated/examples/05-fan-flat/#fan-flat","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page focuses on fan-beam with a \"flat\" detector, i.e., one row of a flat-panel detector as used in many cone-beam CT (CBCT) systems.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated from a single Julia file: 05-fan-flat.jl.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The corresponding notebook can be viewed in nbviewer here: 05-fan-flat.ipynb, and opened in binder here: 05-fan-flat.ipynb.","category":"page"},{"location":"generated/examples/05-fan-flat/#Setup","page":"Fan-beam tomography: flat detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: cm\nusing Sinograms: SinoFanFlat, rays, plan_fbp, Window, Hamming, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/05-fan-flat/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: flat detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (0.2cm,0.2cm) )","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Use SinoFanFlat to define the sinogram geometry.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"rg = SinoFanFlat( ; nb = 130, d = 0.3cm, na = 100, dsd = 50cm, dod = 14cm)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(rg, ig)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"prompt()","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"μ = 0.1 / cm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/05-fan-flat/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: flat detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images. For illustration we include Hamming window.","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"plan = plan_fbp(rg, ig; window = Window(Hamming(), 1.0))\nfbp_image = fbp(plan, sino)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for flat case\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"","category":"page"},{"location":"generated/examples/05-fan-flat/","page":"Fan-beam tomography: flat detector","title":"Fan-beam tomography: flat detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/04-fan-arc.jl\"","category":"page"},{"location":"generated/examples/04-fan-arc/#fan-arc","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated from a single Julia file: 04-fan-arc.jl.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The corresponding notebook can be viewed in nbviewer here: 04-fan-arc.ipynb, and opened in binder here: 04-fan-arc.ipynb.","category":"page"},{"location":"generated/examples/04-fan-arc/#Setup","page":"Fan-beam tomography: arc detector","title":"Setup","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Packages needed here.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/04-fan-arc/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: arc detector","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Use SinoFanArc to define the sinogram geometry.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"rg = SinoFanArc( ; nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Examine the geometry to verify the FOV:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(rg, ig)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"prompt()","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan sinogram\", xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/04-fan-arc/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: arc detector","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"plan = plan_fbp(rg, ig)\nfbp_image = fbp(plan, sino)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for arc case\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"For comparison, here is the ideal phantom image","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"","category":"page"},{"location":"generated/examples/04-fan-arc/","page":"Fan-beam tomography: arc detector","title":"Fan-beam tomography: arc detector","text":"This page was generated using Literate.jl.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Sinograms","category":"page"},{"location":"#Sinograms.jl-Documentation","page":"Home","title":"Sinograms.jl Documentation","text":"","category":"section"},{"location":"#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Sinograms.jl is a Julia language package with tools for tomographic image reconstruction, including","category":"page"},{"location":"","page":"Home","title":"Home","text":"describing ray geometries (parallel beam, fan beam, etc.) ✅\nperforming filtered back-projection (FBP) image reconstruction ✅\nsystem models for iterative reconstruction (WIP)","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the examples.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See also:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Michigan Image Reconstruction Toolbox (MIRT)\nJuliaImageRecon","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/01-tomography.jl\"","category":"page"},{"location":"generated/examples/01-tomography/#tomography","page":"Tomography overview","title":"Tomography overview","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page gives an overview of the Julia package Sinograms.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated from a single Julia file: 01-tomography.jl.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The corresponding notebook can be viewed in nbviewer here: 01-tomography.ipynb, and opened in binder here: 01-tomography.ipynb.","category":"page"},{"location":"generated/examples/01-tomography/#Setup","page":"Tomography overview","title":"Setup","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Packages needed here.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"using Sinograms: fbp\nusing MIRTjim: jim, prompt\nusing InteractiveUtils: versioninfo","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/01-tomography/#Tomography","page":"Tomography overview","title":"Tomography","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Tomography is the process of imaging cross sections of an object without actually slicing the object. There are many forms of tomography; the description here focuses on X-ray computed tomography (CT scans). (See SPECTrecon.jl for a Julia package related to SPECT imaging.)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"In an X-ray CT imaging system, X-rays emitted from an X-ray source are transmitted through an object (e.g., a patient in medical CT) towards a detector array. The source and detector rotate rapidly around the object. The signal intensities recorded by the detector are related to the sizes and densities of the object materials between the source and each detector element.","category":"page"},{"location":"generated/examples/01-tomography/#Radon-transform","page":"Tomography overview","title":"Radon transform","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mathematical foundation for 2D X-ray CT imaging is the Radon transform, an integral transform that maps a 2D function f(xy) into the collection of line integrals through that function. Here we describe each line by its angle phi measured counter-clockwise from the y axis, and by the radial distance r of the line from the origin. The collection of integrals is called a sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Mathematically, the Radon transform p(rphi) of f(xy) is defined by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = int_-infty^infty\nf(r cos phi - l sin phi\nr sin phi + l cos phi) mathrmd l","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The Radon transform of the object that is 1 inside the unit disk and 0 elsewhere is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p_1(rphi) = 2 sqrt1 - r^2 mathrm for r 1","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"By the Radon transform's translation and scaling properties, the Radon transform of a disk of radius r_0 centered at (x_0y_0) is given by","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"p(rphi) = r_0 p_1\nleft( fracr - (x_0 cos phi + y_0 sin phi)r_0 ϕ right)","category":"page"},{"location":"generated/examples/01-tomography/#Sinogram-example","page":"Tomography overview","title":"Sinogram example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is a display of that Radon transform for a disk of radius 3 centered at coordinate (51). Note that maximum value is approximately 6, the length of the longest chord through a disk of radius 3.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"nr = 128\ndr = 20 / nr\nr = ((-(nr-1)/2):((nr-1)/2)) * dr # radial sample locations\nna = 130\nϕ = (0:(na-1))/na * π # angular samples\nproj1 = r -> abs(r) < 1 ? 2 * sqrt(1 - r^2) : 0.\nproj2 = (r, ϕ, x, y, r0) -> r0 * proj1(r/r0 - (x * cos(ϕ) + y * sin(ϕ))/r0)\nsino = proj2.(r, ϕ', 5, 1, 3)\njimsino = (sino, title) -> jim(\n r, ϕ, sino; title, aspect_ratio=:none,\n xlabel = \"r\", ylabel = \"ϕ\", ylims=(0,π), yticks=([0, π], [\"0\", \"π\"]),\n yflip=false, xticks = [-10, 0, 2, 5, 8, 10],\n clim = (0, 6),\n)\njimsino(sino, \"Sinogram for one disk\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"As this figure illustrates, the Radon transform of a unit disk has a somewhat sinusoidal shape. Indeed every point in the (xy) plane traces out a distinct sinusoid in the sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The mapping from the object f(xy) to data like the sinogram p(rphi) is called the \"forward problem.\"","category":"page"},{"location":"generated/examples/01-tomography/#Image-reconstruction","page":"Tomography overview","title":"Image reconstruction","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Image reconstruction is the process of solving the inverse problem of recovering an estimate hatf(xy) of the object f(xy) from a measured sinogram, i.e., from (usually noisy) samples of p(rphi).","category":"page"},{"location":"generated/examples/01-tomography/#FBP","page":"Tomography overview","title":"FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"A simple image reconstruction method is called the \"filtered back-projection\" (FBP) approach. It works by filtering each row of the sinogram with a filter, called the ramp filter, whose frequency response is roughly nu, where nu is the spatial frequency variable (units cycles / m), followed by a back-projection step that is the adjoint of the Radon transform.","category":"page"},{"location":"generated/examples/01-tomography/#FBP-example","page":"Tomography overview","title":"FBP example","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Here is an illustration of using the fbp method in this package to perform image reconstruction from the preceding sinogram.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"image = fbp(sino; dr)\n(nx,ny) = size(image)\ndx = dr # default\nx = ((-(nx-1)/2):((nx-1)/2)) * dr\ny = x\njim(x, y, image, \"FBP image\",\n xtick=[-10, 0, 2, 5, 8, 10],\n ytick=[-10, 0, -2, 1, 4, 10],\n)","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The FBP reconstructed image looks pretty similar to a disk of radius 3 centered at (51) as expected. However, there are quite a few ripples; these are aliasing artifacts due to the finite sampling in r and phi.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This is example is what is called 2D parallel-beam tomography, because for the angles phi are equally spaced and for each angle the radial samples r are also equally spaced. This package includes FBP reconstruction methods for several other sinogram geometries, including the well-known fan beam geometries and the specialized Mojette geometry.","category":"page"},{"location":"generated/examples/01-tomography/#Noise-effects-on-FBP","page":"Tomography overview","title":"Noise effects on FBP","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Simulating the effects of measurement noise in sinogram leads to even worse FBP results.","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"First note that a practical imaging system has a finite field of view (FOV):","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"rmax = maximum(r)\nfovmask = @. sqrt(abs2(x) + abs2(y)') ≤ rmax\njim(x, y, fovmask, \"FOV mask\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Add noise to the original sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_sinogram = sino + 0.1 * randn(size(sino))\njimsino(noisy_sinogram, \"Noisy sinogram\")","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"Apply FBP to the noisy sinogram:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"noisy_fbp_image = fbp(noisy_sinogram; dr)\nnoisy_fbp_image .*= fovmask # apply FOV mask\njim(x, y, noisy_fbp_image, \"Noisy FBP image\"; clim=(0,1))","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"The methods in this package (WIP) and related methods in the JuliaImageRecon suite are designed to provide better reconstructions than the simple FBP method. In particular, model-based image reconstruction (MBIR) methods and methods that use suitable machine-learning approaches can improve image quality significantly. See this 2020 survey paper.","category":"page"},{"location":"generated/examples/01-tomography/#Reproducibility","page":"Tomography overview","title":"Reproducibility","text":"","category":"section"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated with the following version of Julia:","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"io = IOBuffer(); versioninfo(io); split(String(take!(io)), '\\n')","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"And with the following package versions","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"import Pkg; Pkg.status()","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"","category":"page"},{"location":"generated/examples/01-tomography/","page":"Tomography overview","title":"Tomography overview","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"EditURL = \"https://github.com/JuliaImageRecon/Sinograms.jl/blob/main/docs/lit/examples/docs/lit/examples/06-fan-short.jl\"","category":"page"},{"location":"generated/examples/06-fan-short/#fan-short","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page describes fan-beam tomographic image reconstruction using the Julia package Sinograms.jl for a \"short\" scan where the rotation (orbit) is 180° plus the fan angle. This case requires Parker weighting.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page focuses on fan-beam with an \"arc\" detector, i.e., 3rd-generation CT systems where the detector is an arc having a focal point at the X-ray source. This geometry is popular in part because it facilitates anti-scatter grids.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page was generated from a single Julia file: 06-fan-short.jl.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"In any such Julia documentation, you can access the source code using the \"Edit on GitHub\" link in the top right.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"The corresponding notebook can be viewed in nbviewer here: 06-fan-short.ipynb, and opened in binder here: 06-fan-short.ipynb.","category":"page"},{"location":"generated/examples/06-fan-short/#Setup","page":"Fan-beam tomography: short scan","title":"Setup","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Packages needed here.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"using Plots: plot, gui # these 2 must precede Sinograms for Requires to work!\nusing Unitful: mm\nusing Sinograms: SinoFanArc, rays, plan_fbp, fbp, sino_geom_plot!\nusing ImageGeoms: ImageGeom, fovs, MaskCircle\nusing ImagePhantoms: SheppLogan, shepp_logan, radon, phantom\nusing MIRTjim: jim, prompt","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"The following line is helpful when running this file as a script; this way it will prompt user to hit a key after each figure is displayed.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"isinteractive() ? jim(:prompt, true) : prompt(:draw);\nnothing #hide","category":"page"},{"location":"generated/examples/06-fan-short/#Fan-beam-sinogram-of-Shepp-Logan-phantom","page":"Fan-beam tomography: short scan","title":"Fan-beam sinogram of Shepp-Logan phantom","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For illustration, we start by synthesizing a fan-beam sinogram of the Shepp-Logan phantom.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For completeness, we use units (from Unitful), but units are optional.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Use ImageGeom to define the image geometry.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"ig = ImageGeom(MaskCircle(); dims=(128,126), deltas = (2mm,2mm) )","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Use SinoFanArc to define the sinogram geometry, with the :short option for orbit to make a short scan. Note that even though we specify na = 100 we end up with na = 67 views because of the :short option.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"rg = SinoFanArc( :short, ;\n nb = 130, d = 3.2mm, na = 100, dsd = 400mm, dod = 140mm,\n)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Examine the geometry to verify the FOV. The na=67 blue dots show the :short scan.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(ig), ig.mask; prompt=false)\nsino_geom_plot!(rg, ig)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"prompt()","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Ellipse parameters for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"μ = 0.01 / mm # typical linear attenuation coefficient\nob = shepp_logan(SheppLogan(); fovs = fovs(ig), u = (1, 1, μ))","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Short arc fan-beam sinogram for Shepp-Logan phantom:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"sino = radon(rays(rg), ob)\njim(axes(rg), sino; title=\"Shepp-Logan 'short' sinogram\",\n xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/06-fan-short/#Image-reconstruction-via-FBP","page":"Fan-beam tomography: short scan","title":"Image reconstruction via FBP","text":"","category":"section"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Here we start with a \"plan\", which would save work if we were reconstructing many images.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"plan = plan_fbp(rg, ig)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Examine Parker weights:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(rg), plan.view_weight; title = \"Parker weights\",\n xlabel=\"r\", ylabel=\"ϕ\")","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Finally perform FBP:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"fbp_image = fbp(plan, sino);\nnothing #hide","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"A narrow color window is needed to see the soft tissue structures:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"clim = (0.9, 1.1) .* μ\njim(axes(ig), fbp_image, \"FBP image for 'short' arc case\"; clim)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"For comparison, here is the ideal phantom image:","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"true_image = phantom(axes(ig)..., ob, 2)\njim(axes(ig)..., true_image, \"True phantom image\"; clim)","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"Here is the difference image. Better sampling would reduce the errors.","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"jim(axes(ig)..., fbp_image - true_image, \"Error image\")","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"","category":"page"},{"location":"generated/examples/06-fan-short/","page":"Fan-beam tomography: short scan","title":"Fan-beam tomography: short scan","text":"This page was generated using Literate.jl.","category":"page"}]
+}
diff --git a/v0.4.1/siteinfo.js b/v0.4.1/siteinfo.js
new file mode 100644
index 0000000..091b3b8
--- /dev/null
+++ b/v0.4.1/siteinfo.js
@@ -0,0 +1 @@
+var DOCUMENTER_CURRENT_VERSION = "v0.4.1";
diff --git a/versions.js b/versions.js
new file mode 100644
index 0000000..095cade
--- /dev/null
+++ b/versions.js
@@ -0,0 +1,6 @@
+var DOC_VERSIONS = [
+ "stable",
+ "dev",
+];
+var DOCUMENTER_NEWEST = "v0.4.1";
+var DOCUMENTER_STABLE = "stable";