@font-face {
    font-family: KaTeX_AMS;
    src: url(/static/fonts/KaTeX_AMS-Regular.e78e28b.woff2) format("woff2"), url(/static/fonts/KaTeX_AMS-Regular.7f06b4e.woff) format("woff"), url(/static/fonts/KaTeX_AMS-Regular.aaf4eee.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Caligraphic;
    src: url(/static/fonts/KaTeX_Caligraphic-Bold.4ec58be.woff2) format("woff2"), url(/static/fonts/KaTeX_Caligraphic-Bold.1e802ca.woff) format("woff"), url(/static/fonts/KaTeX_Caligraphic-Bold.021dd4d.ttf) format("truetype");
    font-weight: 700;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Caligraphic;
    src: url(/static/fonts/KaTeX_Caligraphic-Regular.7edb53b.woff2) format("woff2"), url(/static/fonts/KaTeX_Caligraphic-Regular.d3b46c3.woff) format("woff"), url(/static/fonts/KaTeX_Caligraphic-Regular.d49f2d5.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Fraktur;
    src: url(/static/fonts/KaTeX_Fraktur-Bold.d5b59ec.woff2) format("woff2"), url(/static/fonts/KaTeX_Fraktur-Bold.c4c8cab.woff) format("woff"), url(/static/fonts/KaTeX_Fraktur-Bold.a31e7cb.ttf) format("truetype");
    font-weight: 700;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Fraktur;
    src: url(/static/fonts/KaTeX_Fraktur-Regular.32a5339.woff2) format("woff2"), url(/static/fonts/KaTeX_Fraktur-Regular.b7d9c46.woff) format("woff"), url(/static/fonts/KaTeX_Fraktur-Regular.a48dad4.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Main;
    src: url(/static/fonts/KaTeX_Main-Bold.8e1e01c.woff2) format("woff2"), url(/static/fonts/KaTeX_Main-Bold.22086eb.woff) format("woff"), url(/static/fonts/KaTeX_Main-Bold.9ceff51.ttf) format("truetype");
    font-weight: 700;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Main;
    src: url(/static/fonts/KaTeX_Main-BoldItalic.284a17f.woff2) format("woff2"), url(/static/fonts/KaTeX_Main-BoldItalic.4c57dbc.woff) format("woff"), url(/static/fonts/KaTeX_Main-BoldItalic.e8b44b9.ttf) format("truetype");
    font-weight: 700;
    font-style: italic
}

@font-face {
    font-family: KaTeX_Main;
    src: url(/static/fonts/KaTeX_Main-Italic.e533d5a.woff2) format("woff2"), url(/static/fonts/KaTeX_Main-Italic.99be0e1.woff) format("woff"), url(/static/fonts/KaTeX_Main-Italic.29c8639.ttf) format("truetype");
    font-weight: 400;
    font-style: italic
}

@font-face {
    font-family: KaTeX_Main;
    src: url(/static/fonts/KaTeX_Main-Regular.5c734d7.woff2) format("woff2"), url(/static/fonts/KaTeX_Main-Regular.b741441.woff) format("woff"), url(/static/fonts/KaTeX_Main-Regular.5c94aef.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Math;
    src: url(/static/fonts/KaTeX_Math-BoldItalic.d747bd1.woff2) format("woff2"), url(/static/fonts/KaTeX_Math-BoldItalic.b13731e.woff) format("woff"), url(/static/fonts/KaTeX_Math-BoldItalic.9a2834a.ttf) format("truetype");
    font-weight: 700;
    font-style: italic
}

@font-face {
    font-family: KaTeX_Math;
    src: url(/static/fonts/KaTeX_Math-Italic.4ad08b8.woff2) format("woff2"), url(/static/fonts/KaTeX_Math-Italic.f030390.woff) format("woff"), url(/static/fonts/KaTeX_Math-Italic.291e76b.ttf) format("truetype");
    font-weight: 400;
    font-style: italic
}

@font-face {
    font-family: KaTeX_SansSerif;
    src: url(/static/fonts/KaTeX_SansSerif-Bold.6e0830b.woff2) format("woff2"), url(/static/fonts/KaTeX_SansSerif-Bold.3fb4195.woff) format("woff"), url(/static/fonts/KaTeX_SansSerif-Bold.7dc027c.ttf) format("truetype");
    font-weight: 700;
    font-style: normal
}

@font-face {
    font-family: KaTeX_SansSerif;
    src: url(/static/fonts/KaTeX_SansSerif-Italic.fba01c9.woff2) format("woff2"), url(/static/fonts/KaTeX_SansSerif-Italic.727a9b0.woff) format("woff"), url(/static/fonts/KaTeX_SansSerif-Italic.4059868.ttf) format("truetype");
    font-weight: 400;
    font-style: italic
}

@font-face {
    font-family: KaTeX_SansSerif;
    src: url(/static/fonts/KaTeX_SansSerif-Regular.d929cd6.woff2) format("woff2"), url(/static/fonts/KaTeX_SansSerif-Regular.2555754.woff) format("woff"), url(/static/fonts/KaTeX_SansSerif-Regular.5c58d16.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Script;
    src: url(/static/fonts/KaTeX_Script-Regular.755e249.woff2) format("woff2"), url(/static/fonts/KaTeX_Script-Regular.d524c9a.woff) format("woff"), url(/static/fonts/KaTeX_Script-Regular.d12ea9e.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Size1;
    src: url(/static/fonts/KaTeX_Size1-Regular.048c39c.woff2) format("woff2"), url(/static/fonts/KaTeX_Size1-Regular.08b5f00.woff) format("woff"), url(/static/fonts/KaTeX_Size1-Regular.7342d45.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Size2;
    src: url(/static/fonts/KaTeX_Size2-Regular.81d6b8d.woff2) format("woff2"), url(/static/fonts/KaTeX_Size2-Regular.af24b0e.woff) format("woff"), url(/static/fonts/KaTeX_Size2-Regular.eb130dc.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Size3;
    src: url(/static/fonts/KaTeX_Size3-Regular.b311ca0.woff2) format("woff2"), url(/static/fonts/KaTeX_Size3-Regular.0d89264.woff) format("woff"), url(/static/fonts/KaTeX_Size3-Regular.7e02a40.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Size4;
    src: url(/static/fonts/KaTeX_Size4-Regular.6a3255d.woff2) format("woff2"), url(/static/fonts/KaTeX_Size4-Regular.68895bb.woff) format("woff"), url(/static/fonts/KaTeX_Size4-Regular.ad76725.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: KaTeX_Typewriter;
    src: url(/static/fonts/KaTeX_Typewriter-Regular.6cc31ea.woff2) format("woff2"), url(/static/fonts/KaTeX_Typewriter-Regular.3fe216d.woff) format("woff"), url(/static/fonts/KaTeX_Typewriter-Regular.2570235.ttf) format("truetype");
    font-weight: 400;
    font-style: normal
}

.katex {
    font: normal 1.21em KaTeX_Main, Times New Roman, serif;
    line-height: 1.2;
    text-indent: 0;
    text-rendering: auto
}

.katex * {
    -ms-high-contrast-adjust: none !important
}

.katex .katex-version:after {
    content: "0.10.2"
}

.katex .katex-mathml {
    position: absolute;
    clip: rect(1px, 1px, 1px, 1px);
    padding: 0;
    border: 0;
    height: 1px;
    width: 1px;
    overflow: hidden
}

.katex .katex-html>.newline {
    display: block
}

.katex .base {
    position: relative;
    white-space: nowrap;
    width: min-content
}

.katex .base,
.katex .strut {
    display: inline-block
}

.katex .textbf {
    font-weight: 700
}

.katex .textit {
    font-style: italic
}

.katex .textrm {
    font-family: KaTeX_Main
}

.katex .textsf {
    font-family: KaTeX_SansSerif
}

.katex .texttt {
    font-family: KaTeX_Typewriter
}

.katex .mathdefault {
    font-family: KaTeX_Math;
    font-style: italic
}

.katex .mathit {
    font-family: KaTeX_Main;
    font-style: italic
}

.katex .mathrm {
    font-style: normal
}

.katex .mathbf {
    font-family: KaTeX_Main;
    font-weight: 700
}

.katex .boldsymbol {
    font-family: KaTeX_Math;
    font-weight: 700;
    font-style: italic
}

.katex .amsrm,
.katex .mathbb,
.katex .textbb {
    font-family: KaTeX_AMS
}

.katex .mathcal {
    font-family: KaTeX_Caligraphic
}

.katex .mathfrak,
.katex .textfrak {
    font-family: KaTeX_Fraktur
}

.katex .mathtt {
    font-family: KaTeX_Typewriter
}

.katex .mathscr,
.katex .textscr {
    font-family: KaTeX_Script
}

.katex .mathsf,
.katex .textsf {
    font-family: KaTeX_SansSerif
}

.katex .mathboldsf,
.katex .textboldsf {
    font-family: KaTeX_SansSerif;
    font-weight: 700
}

.katex .mathitsf,
.katex .textitsf {
    font-family: KaTeX_SansSerif;
    font-style: italic
}

.katex .mainrm {
    font-family: KaTeX_Main;
    font-style: normal
}

.katex .vlist-t {
    display: inline-table;
    table-layout: fixed
}

.katex .vlist-r {
    display: table-row
}

.katex .vlist {
    display: table-cell;
    vertical-align: bottom;
    position: relative
}

.katex .vlist>span {
    display: block;
    height: 0;
    position: relative
}

.katex .vlist>span>span {
    display: inline-block
}

.katex .vlist>span>.pstrut {
    overflow: hidden;
    width: 0
}

.katex .vlist-t2 {
    margin-right: -2px
}

.katex .vlist-s {
    display: table-cell;
    vertical-align: bottom;
    font-size: 1px;
    width: 2px;
    min-width: 2px
}

.katex .msupsub {
    text-align: left
}

.katex .mfrac>span>span {
    text-align: center
}

.katex .mfrac .frac-line {
    display: inline-block;
    width: 100%;
    border-bottom-style: solid
}

.katex .hdashline,
.katex .hline,
.katex .mfrac .frac-line,
.katex .overline .overline-line,
.katex .rule,
.katex .underline .underline-line {
    min-height: 1px
}

.katex .mspace {
    display: inline-block
}

.katex .clap,
.katex .llap,
.katex .rlap {
    width: 0;
    position: relative
}

.katex .clap>.inner,
.katex .llap>.inner,
.katex .rlap>.inner {
    position: absolute
}

.katex .clap>.fix,
.katex .llap>.fix,
.katex .rlap>.fix {
    display: inline-block
}

.katex .llap>.inner {
    right: 0
}

.katex .clap>.inner,
.katex .rlap>.inner {
    left: 0
}

.katex .clap>.inner>span {
    margin-left: -50%;
    margin-right: 50%
}

.katex .rule {
    display: inline-block;
    border: 0 solid;
    position: relative
}

.katex .hline,
.katex .overline .overline-line,
.katex .underline .underline-line {
    display: inline-block;
    width: 100%;
    border-bottom-style: solid
}

.katex .hdashline {
    display: inline-block;
    width: 100%;
    border-bottom-style: dashed
}

.katex .sqrt>.root {
    margin-left: .27777778em;
    margin-right: -.55555556em
}

.katex .fontsize-ensurer,
.katex .sizing {
    display: inline-block
}

.katex .fontsize-ensurer.reset-size1.size1,
.katex .sizing.reset-size1.size1 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size1.size2,
.katex .sizing.reset-size1.size2 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size1.size3,
.katex .sizing.reset-size1.size3 {
    font-size: 1.4em
}

.katex .fontsize-ensurer.reset-size1.size4,
.katex .sizing.reset-size1.size4 {
    font-size: 1.6em
}

.katex .fontsize-ensurer.reset-size1.size5,
.katex .sizing.reset-size1.size5 {
    font-size: 1.8em
}

.katex .fontsize-ensurer.reset-size1.size6,
.katex .sizing.reset-size1.size6 {
    font-size: 2em
}

.katex .fontsize-ensurer.reset-size1.size7,
.katex .sizing.reset-size1.size7 {
    font-size: 2.4em
}

.katex .fontsize-ensurer.reset-size1.size8,
.katex .sizing.reset-size1.size8 {
    font-size: 2.88em
}

.katex .fontsize-ensurer.reset-size1.size9,
.katex .sizing.reset-size1.size9 {
    font-size: 3.456em
}

.katex .fontsize-ensurer.reset-size1.size10,
.katex .sizing.reset-size1.size10 {
    font-size: 4.148em
}

.katex .fontsize-ensurer.reset-size1.size11,
.katex .sizing.reset-size1.size11 {
    font-size: 4.976em
}

.katex .fontsize-ensurer.reset-size2.size1,
.katex .sizing.reset-size2.size1 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size2.size2,
.katex .sizing.reset-size2.size2 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size2.size3,
.katex .sizing.reset-size2.size3 {
    font-size: 1.16666667em
}

.katex .fontsize-ensurer.reset-size2.size4,
.katex .sizing.reset-size2.size4 {
    font-size: 1.33333333em
}

.katex .fontsize-ensurer.reset-size2.size5,
.katex .sizing.reset-size2.size5 {
    font-size: 1.5em
}

.katex .fontsize-ensurer.reset-size2.size6,
.katex .sizing.reset-size2.size6 {
    font-size: 1.66666667em
}

.katex .fontsize-ensurer.reset-size2.size7,
.katex .sizing.reset-size2.size7 {
    font-size: 2em
}

.katex .fontsize-ensurer.reset-size2.size8,
.katex .sizing.reset-size2.size8 {
    font-size: 2.4em
}

.katex .fontsize-ensurer.reset-size2.size9,
.katex .sizing.reset-size2.size9 {
    font-size: 2.88em
}

.katex .fontsize-ensurer.reset-size2.size10,
.katex .sizing.reset-size2.size10 {
    font-size: 3.45666667em
}

.katex .fontsize-ensurer.reset-size2.size11,
.katex .sizing.reset-size2.size11 {
    font-size: 4.14666667em
}

.katex .fontsize-ensurer.reset-size3.size1,
.katex .sizing.reset-size3.size1 {
    font-size: .71428571em
}

.katex .fontsize-ensurer.reset-size3.size2,
.katex .sizing.reset-size3.size2 {
    font-size: .85714286em
}

.katex .fontsize-ensurer.reset-size3.size3,
.katex .sizing.reset-size3.size3 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size3.size4,
.katex .sizing.reset-size3.size4 {
    font-size: 1.14285714em
}

.katex .fontsize-ensurer.reset-size3.size5,
.katex .sizing.reset-size3.size5 {
    font-size: 1.28571429em
}

.katex .fontsize-ensurer.reset-size3.size6,
.katex .sizing.reset-size3.size6 {
    font-size: 1.42857143em
}

.katex .fontsize-ensurer.reset-size3.size7,
.katex .sizing.reset-size3.size7 {
    font-size: 1.71428571em
}

.katex .fontsize-ensurer.reset-size3.size8,
.katex .sizing.reset-size3.size8 {
    font-size: 2.05714286em
}

.katex .fontsize-ensurer.reset-size3.size9,
.katex .sizing.reset-size3.size9 {
    font-size: 2.46857143em
}

.katex .fontsize-ensurer.reset-size3.size10,
.katex .sizing.reset-size3.size10 {
    font-size: 2.96285714em
}

.katex .fontsize-ensurer.reset-size3.size11,
.katex .sizing.reset-size3.size11 {
    font-size: 3.55428571em
}

.katex .fontsize-ensurer.reset-size4.size1,
.katex .sizing.reset-size4.size1 {
    font-size: .625em
}

.katex .fontsize-ensurer.reset-size4.size2,
.katex .sizing.reset-size4.size2 {
    font-size: .75em
}

.katex .fontsize-ensurer.reset-size4.size3,
.katex .sizing.reset-size4.size3 {
    font-size: .875em
}

.katex .fontsize-ensurer.reset-size4.size4,
.katex .sizing.reset-size4.size4 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size4.size5,
.katex .sizing.reset-size4.size5 {
    font-size: 1.125em
}

.katex .fontsize-ensurer.reset-size4.size6,
.katex .sizing.reset-size4.size6 {
    font-size: 1.25em
}

.katex .fontsize-ensurer.reset-size4.size7,
.katex .sizing.reset-size4.size7 {
    font-size: 1.5em
}

.katex .fontsize-ensurer.reset-size4.size8,
.katex .sizing.reset-size4.size8 {
    font-size: 1.8em
}

.katex .fontsize-ensurer.reset-size4.size9,
.katex .sizing.reset-size4.size9 {
    font-size: 2.16em
}

.katex .fontsize-ensurer.reset-size4.size10,
.katex .sizing.reset-size4.size10 {
    font-size: 2.5925em
}

.katex .fontsize-ensurer.reset-size4.size11,
.katex .sizing.reset-size4.size11 {
    font-size: 3.11em
}

.katex .fontsize-ensurer.reset-size5.size1,
.katex .sizing.reset-size5.size1 {
    font-size: .55555556em
}

.katex .fontsize-ensurer.reset-size5.size2,
.katex .sizing.reset-size5.size2 {
    font-size: .66666667em
}

.katex .fontsize-ensurer.reset-size5.size3,
.katex .sizing.reset-size5.size3 {
    font-size: .77777778em
}

.katex .fontsize-ensurer.reset-size5.size4,
.katex .sizing.reset-size5.size4 {
    font-size: .88888889em
}

.katex .fontsize-ensurer.reset-size5.size5,
.katex .sizing.reset-size5.size5 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size5.size6,
.katex .sizing.reset-size5.size6 {
    font-size: 1.11111111em
}

.katex .fontsize-ensurer.reset-size5.size7,
.katex .sizing.reset-size5.size7 {
    font-size: 1.33333333em
}

.katex .fontsize-ensurer.reset-size5.size8,
.katex .sizing.reset-size5.size8 {
    font-size: 1.6em
}

.katex .fontsize-ensurer.reset-size5.size9,
.katex .sizing.reset-size5.size9 {
    font-size: 1.92em
}

.katex .fontsize-ensurer.reset-size5.size10,
.katex .sizing.reset-size5.size10 {
    font-size: 2.30444444em
}

.katex .fontsize-ensurer.reset-size5.size11,
.katex .sizing.reset-size5.size11 {
    font-size: 2.76444444em
}

.katex .fontsize-ensurer.reset-size6.size1,
.katex .sizing.reset-size6.size1 {
    font-size: .5em
}

.katex .fontsize-ensurer.reset-size6.size2,
.katex .sizing.reset-size6.size2 {
    font-size: .6em
}

.katex .fontsize-ensurer.reset-size6.size3,
.katex .sizing.reset-size6.size3 {
    font-size: .7em
}

.katex .fontsize-ensurer.reset-size6.size4,
.katex .sizing.reset-size6.size4 {
    font-size: .8em
}

.katex .fontsize-ensurer.reset-size6.size5,
.katex .sizing.reset-size6.size5 {
    font-size: .9em
}

.katex .fontsize-ensurer.reset-size6.size6,
.katex .sizing.reset-size6.size6 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size6.size7,
.katex .sizing.reset-size6.size7 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size6.size8,
.katex .sizing.reset-size6.size8 {
    font-size: 1.44em
}

.katex .fontsize-ensurer.reset-size6.size9,
.katex .sizing.reset-size6.size9 {
    font-size: 1.728em
}

.katex .fontsize-ensurer.reset-size6.size10,
.katex .sizing.reset-size6.size10 {
    font-size: 2.074em
}

.katex .fontsize-ensurer.reset-size6.size11,
.katex .sizing.reset-size6.size11 {
    font-size: 2.488em
}

.katex .fontsize-ensurer.reset-size7.size1,
.katex .sizing.reset-size7.size1 {
    font-size: .41666667em
}

.katex .fontsize-ensurer.reset-size7.size2,
.katex .sizing.reset-size7.size2 {
    font-size: .5em
}

.katex .fontsize-ensurer.reset-size7.size3,
.katex .sizing.reset-size7.size3 {
    font-size: .58333333em
}

.katex .fontsize-ensurer.reset-size7.size4,
.katex .sizing.reset-size7.size4 {
    font-size: .66666667em
}

.katex .fontsize-ensurer.reset-size7.size5,
.katex .sizing.reset-size7.size5 {
    font-size: .75em
}

.katex .fontsize-ensurer.reset-size7.size6,
.katex .sizing.reset-size7.size6 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size7.size7,
.katex .sizing.reset-size7.size7 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size7.size8,
.katex .sizing.reset-size7.size8 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size7.size9,
.katex .sizing.reset-size7.size9 {
    font-size: 1.44em
}

.katex .fontsize-ensurer.reset-size7.size10,
.katex .sizing.reset-size7.size10 {
    font-size: 1.72833333em
}

.katex .fontsize-ensurer.reset-size7.size11,
.katex .sizing.reset-size7.size11 {
    font-size: 2.07333333em
}

.katex .fontsize-ensurer.reset-size8.size1,
.katex .sizing.reset-size8.size1 {
    font-size: .34722222em
}

.katex .fontsize-ensurer.reset-size8.size2,
.katex .sizing.reset-size8.size2 {
    font-size: .41666667em
}

.katex .fontsize-ensurer.reset-size8.size3,
.katex .sizing.reset-size8.size3 {
    font-size: .48611111em
}

.katex .fontsize-ensurer.reset-size8.size4,
.katex .sizing.reset-size8.size4 {
    font-size: .55555556em
}

.katex .fontsize-ensurer.reset-size8.size5,
.katex .sizing.reset-size8.size5 {
    font-size: .625em
}

.katex .fontsize-ensurer.reset-size8.size6,
.katex .sizing.reset-size8.size6 {
    font-size: .69444444em
}

.katex .fontsize-ensurer.reset-size8.size7,
.katex .sizing.reset-size8.size7 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size8.size8,
.katex .sizing.reset-size8.size8 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size8.size9,
.katex .sizing.reset-size8.size9 {
    font-size: 1.2em
}

.katex .fontsize-ensurer.reset-size8.size10,
.katex .sizing.reset-size8.size10 {
    font-size: 1.44027778em
}

.katex .fontsize-ensurer.reset-size8.size11,
.katex .sizing.reset-size8.size11 {
    font-size: 1.72777778em
}

.katex .fontsize-ensurer.reset-size9.size1,
.katex .sizing.reset-size9.size1 {
    font-size: .28935185em
}

.katex .fontsize-ensurer.reset-size9.size2,
.katex .sizing.reset-size9.size2 {
    font-size: .34722222em
}

.katex .fontsize-ensurer.reset-size9.size3,
.katex .sizing.reset-size9.size3 {
    font-size: .40509259em
}

.katex .fontsize-ensurer.reset-size9.size4,
.katex .sizing.reset-size9.size4 {
    font-size: .46296296em
}

.katex .fontsize-ensurer.reset-size9.size5,
.katex .sizing.reset-size9.size5 {
    font-size: .52083333em
}

.katex .fontsize-ensurer.reset-size9.size6,
.katex .sizing.reset-size9.size6 {
    font-size: .5787037em
}

.katex .fontsize-ensurer.reset-size9.size7,
.katex .sizing.reset-size9.size7 {
    font-size: .69444444em
}

.katex .fontsize-ensurer.reset-size9.size8,
.katex .sizing.reset-size9.size8 {
    font-size: .83333333em
}

.katex .fontsize-ensurer.reset-size9.size9,
.katex .sizing.reset-size9.size9 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size9.size10,
.katex .sizing.reset-size9.size10 {
    font-size: 1.20023148em
}

.katex .fontsize-ensurer.reset-size9.size11,
.katex .sizing.reset-size9.size11 {
    font-size: 1.43981481em
}

.katex .fontsize-ensurer.reset-size10.size1,
.katex .sizing.reset-size10.size1 {
    font-size: .24108004em
}

.katex .fontsize-ensurer.reset-size10.size2,
.katex .sizing.reset-size10.size2 {
    font-size: .28929605em
}

.katex .fontsize-ensurer.reset-size10.size3,
.katex .sizing.reset-size10.size3 {
    font-size: .33751205em
}

.katex .fontsize-ensurer.reset-size10.size4,
.katex .sizing.reset-size10.size4 {
    font-size: .38572806em
}

.katex .fontsize-ensurer.reset-size10.size5,
.katex .sizing.reset-size10.size5 {
    font-size: .43394407em
}

.katex .fontsize-ensurer.reset-size10.size6,
.katex .sizing.reset-size10.size6 {
    font-size: .48216008em
}

.katex .fontsize-ensurer.reset-size10.size7,
.katex .sizing.reset-size10.size7 {
    font-size: .57859209em
}

.katex .fontsize-ensurer.reset-size10.size8,
.katex .sizing.reset-size10.size8 {
    font-size: .69431051em
}

.katex .fontsize-ensurer.reset-size10.size9,
.katex .sizing.reset-size10.size9 {
    font-size: .83317261em
}

.katex .fontsize-ensurer.reset-size10.size10,
.katex .sizing.reset-size10.size10 {
    font-size: 1em
}

.katex .fontsize-ensurer.reset-size10.size11,
.katex .sizing.reset-size10.size11 {
    font-size: 1.19961427em
}

.katex .fontsize-ensurer.reset-size11.size1,
.katex .sizing.reset-size11.size1 {
    font-size: .20096463em
}

.katex .fontsize-ensurer.reset-size11.size2,
.katex .sizing.reset-size11.size2 {
    font-size: .24115756em
}

.katex .fontsize-ensurer.reset-size11.size3,
.katex .sizing.reset-size11.size3 {
    font-size: .28135048em
}

.katex .fontsize-ensurer.reset-size11.size4,
.katex .sizing.reset-size11.size4 {
    font-size: .32154341em
}

.katex .fontsize-ensurer.reset-size11.size5,
.katex .sizing.reset-size11.size5 {
    font-size: .36173633em
}

.katex .fontsize-ensurer.reset-size11.size6,
.katex .sizing.reset-size11.size6 {
    font-size: .40192926em
}

.katex .fontsize-ensurer.reset-size11.size7,
.katex .sizing.reset-size11.size7 {
    font-size: .48231511em
}

.katex .fontsize-ensurer.reset-size11.size8,
.katex .sizing.reset-size11.size8 {
    font-size: .57877814em
}

.katex .fontsize-ensurer.reset-size11.size9,
.katex .sizing.reset-size11.size9 {
    font-size: .69453376em
}

.katex .fontsize-ensurer.reset-size11.size10,
.katex .sizing.reset-size11.size10 {
    font-size: .83360129em
}

.katex .fontsize-ensurer.reset-size11.size11,
.katex .sizing.reset-size11.size11 {
    font-size: 1em
}

.katex .delimsizing.size1 {
    font-family: KaTeX_Size1
}

.katex .delimsizing.size2 {
    font-family: KaTeX_Size2
}

.katex .delimsizing.size3 {
    font-family: KaTeX_Size3
}

.katex .delimsizing.size4 {
    font-family: KaTeX_Size4
}

.katex .delimsizing.mult .delim-size1>span {
    font-family: KaTeX_Size1
}

.katex .delimsizing.mult .delim-size4>span {
    font-family: KaTeX_Size4
}

.katex .nulldelimiter {
    display: inline-block;
    width: .12em
}

.katex .delimcenter,
.katex .op-symbol {
    position: relative
}

.katex .op-symbol.small-op {
    font-family: KaTeX_Size1
}

.katex .op-symbol.large-op {
    font-family: KaTeX_Size2
}

.katex .accent>.vlist-t,
.katex .op-limits>.vlist-t {
    text-align: center
}

.katex .accent .accent-body {
    position: relative
}

.katex .accent .accent-body:not(.accent-full) {
    width: 0
}

.katex .overlay {
    display: block
}

.katex .mtable .vertical-separator {
    display: inline-block;
    margin: 0 -.025em;
    border-right: .05em solid;
    min-width: 1px
}

.katex .mtable .vs-dashed {
    border-right: .05em dashed
}

.katex .mtable .arraycolsep {
    display: inline-block
}

.katex .mtable .col-align-c>.vlist-t {
    text-align: center
}

.katex .mtable .col-align-l>.vlist-t {
    text-align: left
}

.katex .mtable .col-align-r>.vlist-t {
    text-align: right
}

.katex .svg-align {
    text-align: left
}

.katex svg {
    display: block;
    position: absolute;
    width: 100%;
    height: inherit;
    fill: currentColor;
    stroke: currentColor;
    fill-rule: nonzero;
    fill-opacity: 1;
    stroke-width: 1;
    stroke-linecap: butt;
    stroke-linejoin: miter;
    stroke-miterlimit: 4;
    stroke-dasharray: none;
    stroke-dashoffset: 0;
    stroke-opacity: 1
}

.katex svg path {
    stroke: none
}

.katex img {
    border-style: none;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none
}

.katex .stretchy {
    width: 100%;
    display: block;
    position: relative;
    overflow: hidden
}

.katex .stretchy:after,
.katex .stretchy:before {
    content: ""
}

.katex .hide-tail {
    width: 100%;
    position: relative;
    overflow: hidden
}

.katex .halfarrow-left {
    position: absolute;
    left: 0;
    width: 50.2%;
    overflow: hidden
}

.katex .halfarrow-right {
    position: absolute;
    right: 0;
    width: 50.2%;
    overflow: hidden
}

.katex .brace-left {
    position: absolute;
    left: 0;
    width: 25.1%;
    overflow: hidden
}

.katex .brace-center {
    position: absolute;
    left: 25%;
    width: 50%;
    overflow: hidden
}

.katex .brace-right {
    position: absolute;
    right: 0;
    width: 25.1%;
    overflow: hidden
}

.katex .x-arrow-pad {
    padding: 0 .5em
}

.katex .mover,
.katex .munder,
.katex .x-arrow {
    text-align: center
}

.katex .boxpad {
    padding: 0 .3em
}

.katex .fbox,
.katex .fcolorbox {
    box-sizing: border-box;
    border: .04em solid
}

.katex .cancel-pad {
    padding: 0 .2em
}

.katex .cancel-lap {
    margin-left: -.2em;
    margin-right: -.2em
}

.katex .sout {
    border-bottom-style: solid;
    border-bottom-width: .08em
}

.katex-display {
    display: block;
    margin: 1em 0;
    text-align: center
}

.katex-display>.katex {
    display: block;
    text-align: center;
    white-space: nowrap
}

.katex-display>.katex>.katex-html {
    display: block;
    position: relative
}

.katex-display>.katex>.katex-html>.tag {
    position: absolute;
    right: 0
}

.katex-display.leqno>.katex>.katex-html>.tag {
    left: 0;
    right: auto
}

.katex-display.fleqn>.katex {
    text-align: left
}

@font-face {
    font-family: Lato;
    font-style: normal;
    font-weight: 400;
    src: url(/static/fonts/lato-normal.27bd77b.woff) format("woff")
}

@font-face {
    font-family: Lato;
    font-style: italic;
    font-weight: 400;
    src: url(/static/fonts/lato-normal-italic.f28f2d6.woff) format("woff")
}

@font-face {
    font-family: Lato;
    font-style: normal;
    font-weight: 600;
    src: url(/static/fonts/lato-black.f80bda6.woff) format("woff")
}

@font-face {
    font-family: Lato;
    font-style: italic;
    font-weight: 600;
    src: url(/static/fonts/lato-black-italic.798eafd.woff) format("woff")
}

@font-face {
    font-family: Roboto Mono;
    font-style: normal;
    font-weight: 400;
    src: url(/static/fonts/RobotoMono-Regular.0b6a547.woff) format("woff")
}

@font-face {
    font-family: Roboto Mono;
    font-style: normal;
    font-weight: 600;
    src: url(/static/fonts/RobotoMono-Bold.819f3b2.woff) format("woff")
}

.prism *,
.token.pre.gfm * {
    font-weight: inherit !important
}

.prism .token.cdata,
.prism .token.comment,
.prism .token.doctype,
.prism .token.prolog,
.token.pre.gfm .token.cdata,
.token.pre.gfm .token.comment,
.token.pre.gfm .token.doctype,
.token.pre.gfm .token.prolog {
    color: #708090
}

.prism .token.punctuation,
.token.pre.gfm .token.punctuation {
    color: #999
}

.prism .namespace,
.token.pre.gfm .namespace {
    opacity: .7
}

.prism .token.boolean,
.prism .token.constant,
.prism .token.deleted,
.prism .token.number,
.prism .token.property,
.prism .token.symbol,
.prism .token.tag,
.token.pre.gfm .token.boolean,
.token.pre.gfm .token.constant,
.token.pre.gfm .token.deleted,
.token.pre.gfm .token.number,
.token.pre.gfm .token.property,
.token.pre.gfm .token.symbol,
.token.pre.gfm .token.tag {
    color: #905
}

.prism .token.attr-name,
.prism .token.builtin,
.prism .token.char,
.prism .token.inserted,
.prism .token.selector,
.prism .token.string,
.token.pre.gfm .token.attr-name,
.token.pre.gfm .token.builtin,
.token.pre.gfm .token.char,
.token.pre.gfm .token.inserted,
.token.pre.gfm .token.selector,
.token.pre.gfm .token.string {
    color: #690
}

.prism .language-css .token.string,
.prism .style .token.string,
.prism .token.entity,
.prism .token.operator,
.prism .token.url,
.token.pre.gfm .language-css .token.string,
.token.pre.gfm .style .token.string,
.token.pre.gfm .token.entity,
.token.pre.gfm .token.operator,
.token.pre.gfm .token.url {
    color: #a67f59
}

.prism .token.atrule,
.prism .token.attr-value,
.prism .token.keyword,
.token.pre.gfm .token.atrule,
.token.pre.gfm .token.attr-value,
.token.pre.gfm .token.keyword {
    color: #07a
}

.prism .token.function,
.token.pre.gfm .token.function {
    color: #dd4a68
}

.prism .token.important,
.prism .token.regex,
.prism .token.variable,
.token.pre.gfm .token.important,
.token.pre.gfm .token.regex,
.token.pre.gfm .token.variable {
    color: #e90
}

.prism .token.bold,
.prism .token.important,
.token.pre.gfm .token.bold,
.token.pre.gfm .token.important {
    font-weight: 500
}

.prism .token.italic,
.token.pre.gfm .token.italic {
    font-style: italic
}

.mermaid {
    font-size: 16px
}

.mermaid svg {
    color: rgba(0, 0, 0, .75);
    width: 100%;
    max-width: 100%
}

.app--dark .mermaid svg {
    color: hsla(0, 0%, 100%, .75)
}

.mermaid svg * {
    font-family: Lato, Helvetica Neue, Helvetica, sans-serif
}

.mermaid .mermaid .label {
    color: #333
}

.mermaid .node circle,
.mermaid .node ellipse,
.mermaid .node polygon,
.mermaid .node rect {
    fill: #eee;
    stroke: #999;
    stroke-width: 1px
}

.mermaid .node.clickable {
    cursor: pointer
}

.mermaid .arrowheadPath {
    fill: #333
}

.mermaid .edgePath .path {
    stroke: #666;
    stroke-width: 1.5px
}

.mermaid .edgeLabel {
    background-color: #fff
}

.mermaid .cluster rect {
    fill: #eaf2fb !important;
    stroke: #26a !important;
    stroke-width: 1px !important
}

.mermaid .cluster text {
    fill: #333
}

.mermaid div.mermaidTooltip {
    position: absolute;
    text-align: center;
    max-width: 200px;
    padding: 2px;
    font-family: trebuchet ms, verdana, arial;
    font-size: 12px;
    background: #eaf2fb;
    border: 1px solid #26a;
    border-radius: 2px;
    pointer-events: none;
    z-index: 100
}

.mermaid .actor {
    stroke: #999;
    fill: #eee
}

.mermaid text.actor {
    fill: #333;
    stroke: none
}

.mermaid .actor-line {
    stroke: #666
}

.mermaid .messageLine0 {
    marker-end: "url(#arrowhead)"
}

.mermaid .messageLine0,
.mermaid .messageLine1 {
    stroke-width: 1.5;
    stroke-dasharray: "2 2";
    stroke: #333
}

.mermaid #arrowhead {
    fill: #333
}

.mermaid #crosshead path {
    fill: #333 !important;
    stroke: #333 !important
}

.mermaid .messageText {
    fill: #333;
    stroke: none
}

.mermaid .labelBox {
    stroke: #999;
    fill: #eee
}

.mermaid .labelText,
.mermaid .loopText {
    fill: #fff;
    stroke: none
}

.mermaid .loopLine {
    stroke-width: 2;
    stroke-dasharray: "2 2";
    marker-end: "url(#arrowhead)";
    stroke: #999
}

.mermaid .note {
    stroke: #770;
    fill: #ffa
}

.mermaid .noteText {
    fill: #000;
    stroke: none;
    font-family: trebuchet ms, verdana, arial;
    font-size: 14px
}

.mermaid .section {
    stroke: none;
    opacity: .2
}

.mermaid .section0,
.mermaid .section2 {
    fill: #80b3e6
}

.mermaid .section1,
.mermaid .section3 {
    fill: #fff;
    opacity: .2
}

.mermaid .sectionTitle0,
.mermaid .sectionTitle1,
.mermaid .sectionTitle2,
.mermaid .sectionTitle3 {
    fill: #333
}

.mermaid .sectionTitle {
    text-anchor: start;
    font-size: 11px
}

.mermaid .grid .tick {
    stroke: #e6e6e6;
    opacity: .3;
    shape-rendering: crispEdges
}

.mermaid .grid path {
    stroke-width: 0
}

.mermaid .today {
    fill: none;
    stroke: #d42;
    stroke-width: 2px
}

.mermaid .task {
    stroke-width: 2
}

.mermaid .taskText {
    text-anchor: middle;
    font-size: 11px
}

.mermaid .taskTextOutsideRight {
    fill: #333;
    text-anchor: start;
    font-size: 11px
}

.mermaid .taskTextOutsideLeft {
    fill: #333;
    text-anchor: end;
    font-size: 11px
}

.mermaid .taskText0,
.mermaid .taskText1,
.mermaid .taskText2,
.mermaid .taskText3 {
    fill: #fff
}

.mermaid .task0,
.mermaid .task1,
.mermaid .task2,
.mermaid .task3 {
    fill: #26a;
    stroke: #1a4d80
}

.mermaid .taskTextOutside0,
.mermaid .taskTextOutside1,
.mermaid .taskTextOutside2,
.mermaid .taskTextOutside3 {
    fill: #333
}

.mermaid .active0,
.mermaid .active1,
.mermaid .active2,
.mermaid .active3 {
    fill: #eee;
    stroke: #1a4d80
}

.mermaid .activeText0,
.mermaid .activeText1,
.mermaid .activeText2,
.mermaid .activeText3 {
    fill: #333 !important
}

.mermaid .done0,
.mermaid .done1,
.mermaid .done2,
.mermaid .done3 {
    stroke: #666;
    fill: #bbb;
    stroke-width: 2
}

.mermaid .doneText0,
.mermaid .doneText1,
.mermaid .doneText2,
.mermaid .doneText3 {
    fill: #333 !important
}

.mermaid .crit0,
.mermaid .crit1,
.mermaid .crit2,
.mermaid .crit3 {
    stroke: #b1361b;
    fill: #d42;
    stroke-width: 2
}

.mermaid .activeCrit0,
.mermaid .activeCrit1,
.mermaid .activeCrit2,
.mermaid .activeCrit3 {
    stroke: #b1361b;
    fill: #eee;
    stroke-width: 2
}

.mermaid .doneCrit0,
.mermaid .doneCrit1,
.mermaid .doneCrit2,
.mermaid .doneCrit3 {
    stroke: #b1361b;
    fill: #bbb;
    stroke-width: 2;
    cursor: pointer;
    shape-rendering: crispEdges
}

.mermaid .activeCritText0,
.mermaid .activeCritText1,
.mermaid .activeCritText2,
.mermaid .activeCritText3,
.mermaid .doneCritText0,
.mermaid .doneCritText1,
.mermaid .doneCritText2,
.mermaid .doneCritText3 {
    fill: #333 !important
}

.mermaid .titleText {
    text-anchor: middle;
    font-size: 18px;
    fill: #333
}

.mermaid g.classGroup text {
    fill: #999;
    stroke: none;
    font-family: trebuchet ms, verdana, arial;
    font-size: 10px
}

.mermaid g.classGroup rect {
    fill: #eee;
    stroke: #999
}

.mermaid g.classGroup line {
    stroke: #999;
    stroke-width: 1
}

.mermaid .classLabel .box {
    stroke: none;
    stroke-width: 0;
    fill: #eee;
    opacity: .5
}

.mermaid .classLabel .label {
    fill: #999;
    font-size: 10px
}

.mermaid .relation {
    stroke: #999;
    stroke-width: 1;
    fill: none
}

.mermaid #compositionEnd,
.mermaid #compositionStart {
    fill: #999;
    stroke: #999;
    stroke-width: 1
}

.mermaid #aggregationEnd,
.mermaid #aggregationStart {
    fill: #eee;
    stroke: #999;
    stroke-width: 1
}

.mermaid #dependencyEnd,
.mermaid #dependencyStart,
.mermaid #extensionEnd,
.mermaid #extensionStart {
    fill: #999;
    stroke: #999;
    stroke-width: 1
}

.mermaid .branch-label,
.mermaid .commit-id,
.mermaid .commit-msg {
    fill: #d3d3d3;
    color: #d3d3d3
}

.app--dark .mermaid .label {
    color: #323d47
}

.app--dark .mermaid .node circle,
.app--dark .mermaid .node ellipse,
.app--dark .mermaid .node polygon,
.app--dark .mermaid .node rect {
    fill: #bdd5ea;
    stroke: purple;
    stroke-width: 1px
}

.app--dark .mermaid .node.clickable {
    cursor: pointer
}

.app--dark .mermaid .arrowheadPath {
    fill: #d3d3d3
}

.app--dark .mermaid .edgePath .path {
    stroke: #d3d3d3;
    stroke-width: 1.5px
}

.app--dark .mermaid .edgeLabel {
    background-color: #e8e8e8
}

.app--dark .mermaid .cluster rect {
    fill: #6d6d65 !important;
    stroke: hsla(0, 0%, 100%, .25) !important;
    stroke-width: 1px !important
}

.app--dark .mermaid .cluster text {
    fill: #f9fffe
}

.app--dark .mermaid div.mermaidTooltip {
    position: absolute;
    text-align: center;
    max-width: 200px;
    padding: 2px;
    font-family: trebuchet ms, verdana, arial;
    font-size: 12px;
    background: #6d6d65;
    border: 1px solid hsla(0, 0%, 100%, .25);
    border-radius: 2px;
    pointer-events: none;
    z-index: 100
}

.app--dark .mermaid .actor {
    stroke: #81b1db;
    fill: #bdd5ea
}

.app--dark .mermaid text.actor {
    fill: #000;
    stroke: none
}

.app--dark .mermaid .actor-line {
    stroke: #d3d3d3
}

.app--dark .mermaid .messageLine0 {
    marker-end: "url(#arrowhead)"
}

.app--dark .mermaid .messageLine0,
.app--dark .mermaid .messageLine1 {
    stroke-width: 1.5;
    stroke-dasharray: "2 2";
    stroke: #d3d3d3
}

.app--dark .mermaid #arrowhead {
    fill: #d3d3d3
}

.app--dark .mermaid #crosshead path {
    fill: #d3d3d3 !important;
    stroke: #d3d3d3 !important
}

.app--dark .mermaid .messageText {
    fill: #d3d3d3;
    stroke: none
}

.app--dark .mermaid .labelBox {
    stroke: #81b1db;
    fill: #bdd5ea
}

.app--dark .mermaid .labelText,
.app--dark .mermaid .loopText {
    fill: #d3d3d3;
    stroke: none
}

.app--dark .mermaid .loopLine {
    stroke-width: 2;
    stroke-dasharray: "2 2";
    marker-end: "url(#arrowhead)";
    stroke: #81b1db
}

.app--dark .mermaid .note {
    stroke: hsla(0, 0%, 100%, .25);
    fill: #fff5ad
}

.app--dark .mermaid .noteText {
    fill: #000;
    stroke: none;
    font-family: trebuchet ms, verdana, arial;
    font-size: 14px
}

.app--dark .mermaid .section {
    stroke: none;
    opacity: .2
}

.app--dark .mermaid .section0 {
    fill: hsla(0, 0%, 100%, .3)
}

.app--dark .mermaid .section2 {
    fill: #eae8b9
}

.app--dark .mermaid .section1,
.app--dark .mermaid .section3 {
    fill: #fff;
    opacity: .2
}

.app--dark .mermaid .sectionTitle0,
.app--dark .mermaid .sectionTitle1,
.app--dark .mermaid .sectionTitle2,
.app--dark .mermaid .sectionTitle3 {
    fill: #f9fffe
}

.app--dark .mermaid .sectionTitle {
    text-anchor: start;
    font-size: 11px
}

.app--dark .mermaid .grid .tick {
    stroke: #d3d3d3;
    opacity: .3;
    shape-rendering: crispEdges
}

.app--dark .mermaid .grid path {
    stroke-width: 0
}

.app--dark .mermaid .today {
    fill: none;
    stroke: #db5757;
    stroke-width: 2px
}

.app--dark .mermaid .task {
    stroke-width: 2
}

.app--dark .mermaid .taskText {
    text-anchor: middle;
    font-size: 11px
}

.app--dark .mermaid .taskTextOutsideRight {
    fill: #323d47;
    text-anchor: start;
    font-size: 11px
}

.app--dark .mermaid .taskTextOutsideLeft {
    fill: #323d47;
    text-anchor: end;
    font-size: 11px
}

.app--dark .mermaid .taskText0,
.app--dark .mermaid .taskText1,
.app--dark .mermaid .taskText2,
.app--dark .mermaid .taskText3 {
    fill: #323d47
}

.app--dark .mermaid .task0,
.app--dark .mermaid .task1,
.app--dark .mermaid .task2,
.app--dark .mermaid .task3 {
    fill: #bdd5ea;
    stroke: hsla(0, 0%, 100%, .5)
}

.app--dark .mermaid .taskTextOutside0,
.app--dark .mermaid .taskTextOutside1,
.app--dark .mermaid .taskTextOutside2,
.app--dark .mermaid .taskTextOutside3 {
    fill: #d3d3d3
}

.app--dark .mermaid .active0,
.app--dark .mermaid .active1,
.app--dark .mermaid .active2,
.app--dark .mermaid .active3 {
    fill: #81b1db;
    stroke: hsla(0, 0%, 100%, .5)
}

.app--dark .mermaid .activeText0,
.app--dark .mermaid .activeText1,
.app--dark .mermaid .activeText2,
.app--dark .mermaid .activeText3 {
    fill: #323d47 !important
}

.app--dark .mermaid .done0,
.app--dark .mermaid .done1,
.app--dark .mermaid .done2,
.app--dark .mermaid .done3 {
    stroke: grey;
    fill: #d3d3d3;
    stroke-width: 2
}

.app--dark .mermaid .doneText0,
.app--dark .mermaid .doneText1,
.app--dark .mermaid .doneText2,
.app--dark .mermaid .doneText3 {
    fill: #323d47 !important
}

.app--dark .mermaid .crit0,
.app--dark .mermaid .crit1,
.app--dark .mermaid .crit2,
.app--dark .mermaid .crit3 {
    stroke: #e83737;
    fill: #e83737;
    stroke-width: 2
}

.app--dark .mermaid .activeCrit0,
.app--dark .mermaid .activeCrit1,
.app--dark .mermaid .activeCrit2,
.app--dark .mermaid .activeCrit3 {
    stroke: #e83737;
    fill: #81b1db;
    stroke-width: 2
}

.app--dark .mermaid .doneCrit0,
.app--dark .mermaid .doneCrit1,
.app--dark .mermaid .doneCrit2,
.app--dark .mermaid .doneCrit3 {
    stroke: #e83737;
    fill: #d3d3d3;
    stroke-width: 2;
    cursor: pointer;
    shape-rendering: crispEdges
}

.app--dark .mermaid .activeCritText0,
.app--dark .mermaid .activeCritText1,
.app--dark .mermaid .activeCritText2,
.app--dark .mermaid .activeCritText3,
.app--dark .mermaid .doneCritText0,
.app--dark .mermaid .doneCritText1,
.app--dark .mermaid .doneCritText2,
.app--dark .mermaid .doneCritText3 {
    fill: #323d47 !important
}

.app--dark .mermaid .titleText {
    text-anchor: middle;
    font-size: 18px;
    fill: #323d47
}

.app--dark .mermaid g.classGroup text {
    fill: purple;
    stroke: none;
    font-family: trebuchet ms, verdana, arial;
    font-size: 10px
}

.app--dark .mermaid g.classGroup rect {
    fill: #bdd5ea;
    stroke: purple
}

.app--dark .mermaid g.classGroup line {
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid .classLabel .box {
    stroke: none;
    stroke-width: 0;
    fill: #bdd5ea;
    opacity: .5
}

.app--dark .mermaid .classLabel .label {
    fill: purple;
    font-size: 10px
}

.app--dark .mermaid .relation {
    stroke: purple;
    stroke-width: 1;
    fill: none
}

.app--dark .mermaid #compositionEnd,
.app--dark .mermaid #compositionStart {
    fill: purple;
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid #aggregationEnd,
.app--dark .mermaid #aggregationStart {
    fill: #bdd5ea;
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid #dependencyEnd,
.app--dark .mermaid #dependencyStart,
.app--dark .mermaid #extensionEnd,
.app--dark .mermaid #extensionStart {
    fill: purple;
    stroke: purple;
    stroke-width: 1
}

.app--dark .mermaid .branch-label,
.app--dark .mermaid .commit-id,
.app--dark .mermaid .commit-msg {
    fill: #d3d3d3;
    color: #d3d3d3
}


/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */

html {
    line-height: 1.15;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0
}

article,
aside,
footer,
header,
nav,
section {
    display: block
}

h1 {
    font-size: 2em;
    margin: .67em 0
}

figcaption,
figure {
    display: block
}

figure {
    margin: 1em 40px
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible
}

main {
    display: block
}

pre {
    font-family: monospace, monospace;
    font-size: 1em
}

a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects
}

abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted
}

b,
strong {
    font-weight: inherit;
    font-weight: bolder
}

code,
kbd,
samp {
    font-family: monospace, monospace;
    font-size: 1em
}

dfn {
    font-style: italic
}

mark {
    background-color: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

audio,
video {
    display: inline-block
}

audio:not([controls]) {
    display: none;
    height: 0
}

img {
    border-style: none
}

svg:not(:root) {
    overflow: hidden
}

button,
input,
optgroup,
select,
textarea {
    font-family: sans-serif;
    font-size: 100%;
    line-height: 1.15;
    margin: 0
}

button {
    overflow: visible
}

button,
select {
    text-transform: none
}

[type=reset],
[type=submit],
button,
html [type=button] {
    -webkit-appearance: button
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
    border-style: none;
    padding: 0
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
    outline: 1px dotted ButtonText
}

input {
    overflow: visible
}

[type=checkbox],
[type=radio] {
    box-sizing: border-box;
    padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

fieldset {
    padding: .35em .75em .625em
}

legend {
    box-sizing: border-box;
    display: table;
    max-width: 100%;
    padding: 0;
    color: inherit;
    white-space: normal
}

progress {
    display: inline-block;
    vertical-align: baseline
}

textarea {
    overflow: auto
}

details {
    display: block
}

summary {
    display: list-item
}

menu {
    display: block
}

canvas {
    display: inline-block
}

[hidden],
template {
    display: none
}

body,
html {
    color: rgba(0, 0, 0, .75);
    font-size: 16px;
    font-family: Lato, Helvetica Neue, Helvetica, sans-serif;
    font-variant-ligatures: common-ligatures;
    line-height: 1.67;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

.app--dark .layout__panel--editor,
.app--dark .layout__panel--preview {
    color: hsla(0, 0%, 100%, .75)
}

blockquote,
dl,
ol,
p,
pre,
ul {
    margin: 1.2em 0
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 1.8em 0;
    line-height: 1.33
}

h1:after,
h2:after {
    content: "";
    display: block;
    position: relative;
    top: .33em;
    border-bottom: 1px solid hsla(0, 0%, 50%, .33)
}

ol ol,
ol ul,
ul ol,
ul ul {
    margin: 0
}

dt {
    font-weight: 700
}

a {
    color: #0c93e4;
    text-decoration: underline;
    text-decoration-skip: ink
}

a:focus,
a:hover {
    text-decoration: none
}

code,
pre,
samp {
    font-family: Roboto Mono, Lucida Sans Typewriter, Lucida Console, monaco, Courrier, monospace;
    font-size: .85em
}

code *,
pre *,
samp * {
    font-size: inherit
}

blockquote {
    color: rgba(0, 0, 0, .5);
    padding-left: 1.5em;
    border-left: 5px solid rgba(0, 0, 0, .1)
}

.app--dark .layout__panel--editor blockquote,
.app--dark .layout__panel--preview blockquote {
    color: hsla(0, 0%, 100%, .4);
    border-left-color: hsla(0, 0%, 100%, .1)
}

code {
    background-color: rgba(0, 0, 0, .05);
    border-radius: 3px;
    padding: 2px 4px
}

hr {
    border: 0;
    border-top: 1px solid hsla(0, 0%, 50%, .33);
    margin: 2em 0
}

pre>code {
    background-color: rgba(0, 0, 0, .05);
    display: block;
    padding: .5em;
    -webkit-text-size-adjust: none;
    overflow-x: auto;
    white-space: pre
}

.toc ul {
    list-style-type: none;
    padding-left: 20px
}

table {
    background-color: transparent;
    border-collapse: collapse;
    border-spacing: 0
}

td,
th {
    border-right: 1px solid #dcdcdc;
    padding: 8px 12px
}

td:last-child,
th:last-child {
    border-right: 0
}

td {
    border-top: 1px solid #dcdcdc
}

mark {
    background-color: #f8f840
}

kbd {
    font-family: Lato, Helvetica Neue, Helvetica, sans-serif;
    background-color: #fff;
    border: 1px solid rgba(63, 63, 63, .25);
    border-radius: 3px;
    box-shadow: 0 1px 0 rgba(63, 63, 63, .25);
    color: #333;
    display: inline-block;
    font-size: .8em;
    margin: 0 .1em;
    padding: .1em .6em;
    white-space: nowrap
}

abbr[title] {
    border-bottom: 1px dotted #777;
    cursor: help
}

img {
    max-width: 100%
}

.task-list-item {
    list-style-type: none
}

.task-list-item-checkbox {
    margin: 0 .2em 0 -1.3em
}

.footnote {
    font-size: .8em;
    position: relative;
    top: -.25em;
    vertical-align: top
}

.page-break-after {
    page-break-after: always
}

.abc-notation-block {
    overflow-x: auto !important
}

.stackedit__html {
    margin-bottom: 180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 30px;
    padding-right: 30px;
    max-width: 750px
}

.stackedit__toc ul {
    padding: 0
}

.stackedit__toc ul a {
    margin: .5rem 0;
    padding: .5rem 1rem
}

.stackedit__toc ul ul {
    color: #888;
    font-size: .9em
}

.stackedit__toc ul ul a {
    margin: 0;
    padding: .1rem 1rem
}

.stackedit__toc li {
    display: block
}

.stackedit__toc a {
    display: block;
    color: inherit;
    text-decoration: none
}

.stackedit__toc a:active,
.stackedit__toc a:focus,
.stackedit__toc a:hover {
    background-color: rgba(0, 0, 0, .075);
    border-radius: 3px
}

.stackedit__left {
    position: fixed;
    display: none;
    width: 250px;
    height: 100%;
    top: 0;
    left: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none
}

@media (min-width:1060px) {
    .stackedit__left {
        display: block
    }
}

.stackedit__right {
    position: absolute;
    right: 0;
    top: 0;
    left: 0
}

@media (min-width:1060px) {
    .stackedit__right {
        left: 250px
    }
}

.stackedit--pdf blockquote {
    border-left-color: #ececec
}

.stackedit--pdf .stackedit__html {
    padding-left: 0;
    padding-right: 0;
    max-width: none
}
