From 77aaae6735fb181e0f5c96c5a22dc01589b93e08 Mon Sep 17 00:00:00 2001 From: cuom1999 Date: Mon, 24 Oct 2022 23:59:04 -0500 Subject: [PATCH] Migrate mistune to markdown --- dmoj/settings.py | 36 - judge/jinja2/markdown/__init__.py | 203 +- judge/jinja2/markdown/lazy_load.py | 20 - judge/jinja2/markdown/math.py | 69 - judge/utils/opengraph.py | 4 +- judge/views/blog.py | 2 +- judge/views/problem.py | 1 - judge/widgets/pagedown.py | 3 + requirements.txt | 5 +- resources/content-description.scss | 67 +- resources/markdown.css | 5032 +++++++++++++++++ resources/users.scss | 13 +- templates/base.html | 1 + templates/blog/blog.html | 2 +- templates/blog/content.html | 2 +- templates/blog/preview.html | 2 +- templates/chat/chat.html | 7 - templates/chat/message.html | 2 +- templates/comments/content.html | 2 +- templates/comments/feed.html | 2 +- templates/comments/list.html | 2 +- templates/comments/preview.html | 2 +- templates/comments/revision-ajax.html | 2 +- templates/contest/contest.html | 2 +- templates/contest/preview.html | 2 +- templates/contest/tag-ajax.html | 2 +- templates/flatpages/markdown.html | 2 +- templates/flatpages/markdown_math.html | 2 +- templates/license-preview.html | 2 +- templates/license.html | 2 +- templates/organization/home.html | 2 +- templates/organization/org-right-sidebar.html | 2 +- templates/organization/preview.html | 2 +- templates/problem/editorial.html | 2 +- templates/problem/feed.html | 2 +- templates/problem/preview.html | 2 +- templates/problem/problem.html | 4 +- templates/problem/raw.html | 5 +- templates/solution-preview.html | 2 +- templates/status/language-list.html | 2 +- templates/ticket/feed.html | 2 +- templates/ticket/message.html | 2 +- templates/ticket/preview.html | 2 +- templates/user/preview.html | 2 +- templates/user/user-about.html | 2 +- templates/user/users-table.html | 2 +- 46 files changed, 5112 insertions(+), 420 deletions(-) delete mode 100644 judge/jinja2/markdown/lazy_load.py delete mode 100644 judge/jinja2/markdown/math.py create mode 100644 resources/markdown.css diff --git a/dmoj/settings.py b/dmoj/settings.py index 8e3b27e..61d2aa4 100644 --- a/dmoj/settings.py +++ b/dmoj/settings.py @@ -362,42 +362,6 @@ LANGUAGES = [ ("vi", _("Vietnamese")), ] -MARKDOWN_ADMIN_EDITABLE_STYLE = { - "safe_mode": False, - "use_camo": True, - "texoid": True, - "math": True, -} - -MARKDOWN_DEFAULT_STYLE = { - "safe_mode": True, - "nofollow": True, - "use_camo": True, - "math": True, -} - -MARKDOWN_USER_LARGE_STYLE = { - "safe_mode": True, - "nofollow": True, - "use_camo": True, - "math": True, -} - -MARKDOWN_STYLES = { - "comment": MARKDOWN_ADMIN_EDITABLE_STYLE, - "self-description": MARKDOWN_ADMIN_EDITABLE_STYLE, - "problem": MARKDOWN_ADMIN_EDITABLE_STYLE, - "contest": MARKDOWN_ADMIN_EDITABLE_STYLE, - "language": MARKDOWN_ADMIN_EDITABLE_STYLE, - "license": MARKDOWN_ADMIN_EDITABLE_STYLE, - "judge": MARKDOWN_ADMIN_EDITABLE_STYLE, - "blog": MARKDOWN_ADMIN_EDITABLE_STYLE, - "solution": MARKDOWN_ADMIN_EDITABLE_STYLE, - "contest_tag": MARKDOWN_ADMIN_EDITABLE_STYLE, - "organization-about": MARKDOWN_ADMIN_EDITABLE_STYLE, - "ticket": MARKDOWN_ADMIN_EDITABLE_STYLE, -} - # Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases diff --git a/judge/jinja2/markdown/__init__.py b/judge/jinja2/markdown/__init__.py index e22ae61..3c01de2 100644 --- a/judge/jinja2/markdown/__init__.py +++ b/judge/jinja2/markdown/__init__.py @@ -1,183 +1,36 @@ -import logging -import re -from html.parser import HTMLParser -from urllib.parse import urlparse - -import mistune -from django.conf import settings -from markupsafe import Markup -from lxml import html -from lxml.etree import ParserError, XMLSyntaxError - -from judge.highlight_code import highlight_code -from judge.jinja2.markdown.lazy_load import lazy_load as lazy_load_processor -from judge.jinja2.markdown.math import MathInlineGrammar, MathInlineLexer, MathRenderer -from judge.utils.camo import client as camo_client -from judge.utils.texoid import TEXOID_ENABLED, TexoidRenderer from .. import registry - -logger = logging.getLogger("judge.html") - -NOFOLLOW_WHITELIST = settings.NOFOLLOW_EXCLUDED +import markdown as _markdown +import bleach +from django.utils.html import escape -class CodeSafeInlineGrammar(mistune.InlineGrammar): - double_emphasis = re.compile(r"^\*{2}([\s\S]+?)()\*{2}(?!\*)") # **word** - emphasis = re.compile(r"^\*((?:\*\*|[^\*])+?)()\*(?!\*)") # *word* +EXTENSIONS = [ + "pymdownx.magiclink", + "pymdownx.details", + "pymdownx.emoji", + "pymdownx.inlinehilite", + "pymdownx.superfences", + "pymdownx.tasklist", + "markdown.extensions.footnotes", + "markdown.extensions.attr_list", + "markdown.extensions.def_list", + "markdown.extensions.tables", + "markdown.extensions.admonition", + "pymdownx.arithmatex", +] +ALLOWED_TAGS = bleach.sanitizer.ALLOWED_TAGS + ["img", "center", "iframe"] -class AwesomeInlineGrammar(MathInlineGrammar, CodeSafeInlineGrammar): - pass - - -class AwesomeInlineLexer(MathInlineLexer, mistune.InlineLexer): - grammar_class = AwesomeInlineGrammar - - -class AwesomeRenderer(MathRenderer, mistune.Renderer): - def __init__(self, *args, **kwargs): - self.nofollow = kwargs.pop("nofollow", True) - self.texoid = TexoidRenderer() if kwargs.pop("texoid", False) else None - self.parser = HTMLParser() - super(AwesomeRenderer, self).__init__(*args, **kwargs) - - def _link_rel(self, href): - if href: - try: - url = urlparse(href) - except ValueError: - return ' rel="nofollow"' - else: - if url.netloc and url.netloc not in NOFOLLOW_WHITELIST: - return ' rel="nofollow"' - return "" - - def autolink(self, link, is_email=False): - text = link = mistune.escape(link) - if is_email: - link = "mailto:%s" % link - return '%s' % (link, self._link_rel(link), text) - - def table(self, header, body): - return ( - '\n%s\n' - "\n%s\n
\n" - ) % (header, body) - - def link(self, link, title, text): - link = mistune.escape_link(link) - if not title: - return '%s' % (link, self._link_rel(link), text) - title = mistune.escape(title, quote=True) - return '%s' % ( - link, - title, - self._link_rel(link), - text, - ) - - def block_code(self, code, lang=None): - if not lang: - return "\n
%s
\n" % mistune.escape(code).rstrip() - return highlight_code(code, lang) - - def block_html(self, html): - if self.texoid and html.startswith("")] - latex = html[html.index(">") + 1 : html.rindex("<")] - latex = self.parser.unescape(latex) - result = self.texoid.get_result(latex) - if not result: - return "
%s
" % mistune.escape(latex, smart_amp=False) - elif "error" not in result: - img = ( - '''' - ) % { - "svg": result["svg"], - "png": result["png"], - "width": result["meta"]["width"], - "height": result["meta"]["height"], - "tail": " /" if self.options.get("use_xhtml") else "", - } - style = [ - "max-width: 100%", - "height: %s" % result["meta"]["height"], - "max-height: %s" % result["meta"]["height"], - "width: %s" % result["meta"]["height"], - ] - if "inline" in attr: - tag = "span" - else: - tag = "div" - style += ["text-align: center"] - return '<%s style="%s">%s' % (tag, ";".join(style), img, tag) - else: - return "
%s
" % mistune.escape( - result["error"], smart_amp=False - ) - return super(AwesomeRenderer, self).block_html(html) - - def header(self, text, level, *args, **kwargs): - return super(AwesomeRenderer, self).header(text, level + 2, *args, **kwargs) - - -def create_spoiler(value, style): - respoiler = re.compile(r"(^\|\|(.+)\s+([\s\S]+?)\s*\|\|)", re.MULTILINE) - matches = re.findall(respoiler, value) - html = ( - '
' - + '{summary}' - + "{detail}
" - ) - - for entire, summary, detail in matches: - detail = markdown(detail, style) - new_html = html.format(summary=summary, detail=detail) - value = value.replace(entire, new_html) - return value +ALLOWED_ATTRS = ["src", "width", "height", "href"] @registry.filter -def markdown(value, style, math_engine=None, lazy_load=False, hard_wrap=False): - styles = settings.MARKDOWN_STYLES.get(style, settings.MARKDOWN_DEFAULT_STYLE) - escape = styles.get("safe_mode", True) - nofollow = styles.get("nofollow", True) - texoid = TEXOID_ENABLED and styles.get("texoid", False) - math = hasattr(settings, "MATHOID_URL") and styles.get("math", False) - - value = create_spoiler(value, style) - post_processors = [] - if styles.get("use_camo", False) and camo_client is not None: - post_processors.append(camo_client.update_tree) - if lazy_load: - post_processors.append(lazy_load_processor) - - renderer = AwesomeRenderer( - escape=escape, - nofollow=nofollow, - texoid=texoid, - math=math and math_engine is not None, - math_engine=math_engine, - ) - markdown = mistune.Markdown( - renderer=renderer, - inline=AwesomeInlineLexer, - parse_block_html=1, - parse_inline_html=1, - hard_wrap=hard_wrap, - ) - result = markdown(value) - if post_processors: - try: - tree = html.fromstring(result, parser=html.HTMLParser(recover=True)) - except (XMLSyntaxError, ParserError) as e: - if result and ( - not isinstance(e, ParserError) or e.args[0] != "Document is empty" - ): - logger.exception("Failed to parse HTML string") - tree = html.Element("div") - for processor in post_processors: - processor(tree) - result = html.tostring(tree, encoding="unicode") - return Markup(result) +def markdown(value, hard_wrap=False): + extensions = EXTENSIONS + if hard_wrap: + extensions = EXTENSIONS + ["nl2br"] + html = bleach.clean(value, tags=ALLOWED_TAGS, attributes=ALLOWED_ATTRS) + html = _markdown.markdown(html, extensions=extensions) + if not html: + html = escape(value) + return '
%s
' % html diff --git a/judge/jinja2/markdown/lazy_load.py b/judge/jinja2/markdown/lazy_load.py deleted file mode 100644 index 56f5347..0000000 --- a/judge/jinja2/markdown/lazy_load.py +++ /dev/null @@ -1,20 +0,0 @@ -from copy import deepcopy - -from django.templatetags.static import static -from lxml import html - - -def lazy_load(tree): - blank = static("blank.gif") - for img in tree.xpath(".//img"): - src = img.get("src", "") - if src.startswith("data") or "-math" in img.get("class", ""): - continue - noscript = html.Element("noscript") - copy = deepcopy(img) - copy.tail = "" - noscript.append(copy) - img.addprevious(noscript) - img.set("data-src", src) - img.set("src", blank) - img.set("class", img.get("class") + " unveil" if img.get("class") else "unveil") diff --git a/judge/jinja2/markdown/math.py b/judge/jinja2/markdown/math.py deleted file mode 100644 index d4e3777..0000000 --- a/judge/jinja2/markdown/math.py +++ /dev/null @@ -1,69 +0,0 @@ -import re - -import mistune - -from django.conf import settings - -from judge.utils.mathoid import MathoidMathParser - -mistune._pre_tags.append("latex") - - -class MathInlineGrammar(mistune.InlineGrammar): - block_math = re.compile(r"^\$\$(.*?)\$\$|^\\\[(.*?)\\\]", re.DOTALL) - math = re.compile(r"^~(.*?)~|^\$(.*?)\$|^\\\((.*?)\\\)", re.DOTALL) - text = re.compile(r"^[\s\S]+?(?=[\\%s" % (tag, extra, text, tag) - else: - html = m.group(0) - return self.renderer.inline_html(html) - - -class MathRenderer(mistune.Renderer): - def __init__(self, *args, **kwargs): - if kwargs.pop("math", False) and settings.MATHOID_URL != False: - self.mathoid = MathoidMathParser(kwargs.pop("math_engine", None) or "svg") - else: - self.mathoid = None - super(MathRenderer, self).__init__(*args, **kwargs) - - def block_math(self, math): - if self.mathoid is None or not math: - return r"$$%s$$" % mistune.escape(str(math)) - return self.mathoid.display_math(math) - - def math(self, math): - if self.mathoid is None or not math: - return r"~%s~" % mistune.escape(str(math)) - return self.mathoid.inline_math(math) diff --git a/judge/utils/opengraph.py b/judge/utils/opengraph.py index a323c90..7454415 100644 --- a/judge/utils/opengraph.py +++ b/judge/utils/opengraph.py @@ -5,11 +5,11 @@ from judge.jinja2.markdown import markdown from judge.jinja2.reference import reference -def generate_opengraph(cache_key, data, style): +def generate_opengraph(cache_key, data): metadata = cache.get(cache_key) if metadata is None: description = None - tree = reference(markdown(data, style)).tree + tree = reference(markdown(data)).tree for p in tree.iterfind(".//p"): text = p.text_content().strip() if text: diff --git a/judge/views/blog.py b/judge/views/blog.py index c063062..e49b98e 100644 --- a/judge/views/blog.py +++ b/judge/views/blog.py @@ -207,7 +207,7 @@ class PostView(TitleMixin, CommentedDetailView): context["og_image"] = self.object.og_image context["valid_user_to_show_edit"] = False context["valid_org_to_show_edit"] = [] - + if self.request.profile in self.object.authors.all(): context["valid_user_to_show_edit"] = True diff --git a/judge/views/problem.py b/judge/views/problem.py index 2f87c43..955da5a 100644 --- a/judge/views/problem.py +++ b/judge/views/problem.py @@ -308,7 +308,6 @@ class ProblemDetail(ProblemMixin, SolvedProblemMixin, CommentedDetailView): metadata = generate_opengraph( "generated-meta-problem:%s:%d" % (context["language"], self.object.id), context["description"], - "problem", ) context["meta_description"] = self.object.summary or metadata[0] context["og_image"] = self.object.og_image or metadata[1] diff --git a/judge/widgets/pagedown.py b/judge/widgets/pagedown.py index 27c72e7..25ffd1c 100644 --- a/judge/widgets/pagedown.py +++ b/judge/widgets/pagedown.py @@ -41,6 +41,7 @@ else: css = { "all": [ "pagedown_widget.css", + "markdown.css", ] } @@ -50,6 +51,7 @@ else: "all": [ "content-description.css", "admin/css/pagedown.css", + "markdown.css", ] } js = ["admin/js/pagedown.js"] @@ -114,5 +116,6 @@ else: "pygment-github.css", "table.css", "ranks.css", + "markdown.css", ] } diff --git a/requirements.txt b/requirements.txt index 0743316..e84867a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,6 @@ django-impersonate dmoj-wpadmin @ git+https://github.com/LQDJudge/dmoj-wpadmin.git lxml Pygments -mistune<2 social-auth-app-django pytz django-statici18n @@ -38,4 +37,6 @@ lupa websocket-client python-memcached numpy -pandas \ No newline at end of file +pandas +markdown +bleach diff --git a/resources/content-description.scss b/resources/content-description.scss index 859056d..ec8e64a 100644 --- a/resources/content-description.scss +++ b/resources/content-description.scss @@ -1,80 +1,15 @@ @import "vars"; .content-description { - line-height: 1.5em; + line-height: 1.6em; font-size: 1em; font-family: "Segoe UI", "Lucida Grande", Arial, sans-serif; - p { - margin: 1em 0 !important; - padding: 0 !important; - } - img { max-width: 100%; height: auto; } - h1, h2, h3, h4, h5, h6 { - font-weight: normal; - color: #111; - margin-bottom: 0.75em; - padding: 0; - background: 0; - } - - h3, h4, h5, h6 { - font-weight: bold; - } - - h1 { - font-size: 2.5em; - } - - h2 { - font-size: 2em; - } - - h3 { - font-size: 1.6em; - margin: 0; - padding: 0; - } - - h4 { - font-size: 1.4em; - border-bottom: 1px solid #EEE; - line-height: 1.225; - padding-bottom: 0.3em; - padding-top: 0.5em; - } - - h5 { - font-size: 1.15em; - margin-top: 0; - } - - h6 { - font-size: 0.9em; - } - - blockquote { - color: #666; - margin: 0; - padding-left: 1.5em; - border-left: 0.5em #EEE solid; - } - - hr { - display: block; - height: 0; - border: 0; - font-style: italic; - border-bottom: 1px solid $border_gray; - margin: 25px 0 20px 0; - padding: 0; - } - pre, code, kbd, samp, span.code { color: #000; page-break-inside: avoid; diff --git a/resources/markdown.css b/resources/markdown.css new file mode 100644 index 0000000..f2ffdaf --- /dev/null +++ b/resources/markdown.css @@ -0,0 +1,5032 @@ +@charset "UTF-8"; +:root,[data-md-color-scheme=default]{ + --md-default-fg-color:rgba(0,0,0,.87); + --md-default-fg-color--light:rgba(0,0,0,.54); + --md-default-fg-color--lighter:rgba(0,0,0,.32); + --md-default-fg-color--lightest:rgba(0,0,0,.07); + --md-default-bg-color:#fff; + --md-default-bg-color--light:hsla(0,0%,100%,.7); + --md-default-bg-color--lighter:hsla(0,0%,100%,.3); + --md-default-bg-color--lightest:hsla(0,0%,100%,.12); + --md-primary-fg-color:#4051b5; + --md-primary-fg-color--light:#5d6cc0; + --md-primary-fg-color--dark:#303fa1; + --md-primary-bg-color:#fff; + --md-primary-bg-color--light:hsla(0,0%,100%,.7); + --md-accent-fg-color:#526cfe; + --md-accent-fg-color--transparent:rgba(82,108,254,.1); + --md-accent-bg-color:#fff; + --md-accent-bg-color--light:hsla(0,0%,100%,.7); + --md-code-fg-color:#36464e; + --md-code-bg-color:#f5f5f5; + --md-code-hl-color:rgba(255,255,0,.5); + --md-code-hl-number-color:#d52a2a; + --md-code-hl-special-color:#db1457; + --md-code-hl-function-color:#a846b9; + --md-code-hl-constant-color:#6e59d9; + --md-code-hl-keyword-color:#3f6ec6; + --md-code-hl-string-color:#1c7d4d; + --md-code-hl-name-color:var(--md-code-fg-color); + --md-code-hl-operator-color:var(--md-default-fg-color--light); + --md-code-hl-punctuation-color:var(--md-default-fg-color--light); + --md-code-hl-comment-color:var(--md-default-fg-color--light); + --md-code-hl-generic-color:var(--md-default-fg-color--light); + --md-code-hl-variable-color:var(--md-default-fg-color--light); + --md-typeset-color:var(--md-default-fg-color); + --md-typeset-a-color:var(--md-primary-fg-color); + --md-typeset-mark-color:rgba(255,255,0,.5); + --md-typeset-del-color:rgba(245,80,61,.15); + --md-typeset-ins-color:rgba(11,213,112,.15); + --md-typeset-kbd-color:#fafafa; + --md-typeset-kbd-accent-color:#fff; + --md-typeset-kbd-border-color:#b8b8b8; + --md-typeset-table-color:rgba(0,0,0,.12); + --md-admonition-fg-color:var(--md-default-fg-color); + --md-admonition-bg-color:var(--md-default-bg-color); + --md-footer-fg-color:#fff; + --md-footer-fg-color--light:hsla(0,0%,100%,.7); + --md-footer-fg-color--lighter:hsla(0,0%,100%,.3); + --md-footer-bg-color:rgba(0,0,0,.87); + --md-footer-bg-color--dark:rgba(0,0,0,.32); + --md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.05),0 0 0.05rem rgba(0,0,0,.1); + --md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.1),0 0 0.05rem rgba(0,0,0,.25); + --md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.35) +} +.md-icon svg{ + fill:currentcolor; + display:block; + height:1.2rem; + width:1.2rem +} +body{ + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale; + --md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif; + --md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace +} +:root{ + --md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,'); + --md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,'); + --md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{ + margin-bottom:1em; + margin-top:1em +} +.md-typeset h1{ + color:var(--md-default-fg-color--light); + font-size:2em; + line-height:1.3; + margin:0 0 1.25em +} +.md-typeset h1,.md-typeset h2{ + font-weight:300; + letter-spacing:-.01em +} +.md-typeset h2{ + font-size:1.5625em; + line-height:1.4; + margin:1.6em 0 .64em +} +.md-typeset h3{ + font-size:1.25em; + font-weight:400; + letter-spacing:-.01em; + line-height:1.5; + margin:1.6em 0 .8em +} +.md-typeset h2+h3{ + margin-top:.8em +} +.md-typeset h4{ + font-weight:700; + letter-spacing:-.01em; + margin:1em 0 +} +.md-typeset h5,.md-typeset h6{ + color:var(--md-default-fg-color--light); + font-size:.8em; + font-weight:700; + letter-spacing:-.01em; + margin:1.25em 0 +} +.md-typeset h5{ + text-transform:uppercase +} +.md-typeset hr{ + border-bottom:.05rem solid var(--md-default-fg-color--lightest); + display:flow-root; + margin:1.5em 0 +} +.md-typeset code,.md-typeset kbd,.md-typeset pre{ + color:var(--md-code-fg-color); + direction:ltr; + font-variant-ligatures:none +} +@media print{ + .md-typeset code,.md-typeset kbd,.md-typeset pre{ + white-space:pre-wrap + } +} +.md-typeset kbd{ + background-color:var(--md-typeset-kbd-color); + border-radius:.1rem; + box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset; + color:var(--md-default-fg-color); + display:inline-block; + font-size:.75em; + padding:0 .6666666667em; + vertical-align:text-top; + word-break:break-word +} +.md-typeset mark{ + background-color:var(--md-typeset-mark-color); + -webkit-box-decoration-break:clone; + box-decoration-break:clone; + color:inherit; + word-break:break-word +} +.md-typeset abbr{ + border-bottom:.05rem dotted var(--md-default-fg-color--light); + cursor:help; + text-decoration:none +} +@media (hover:none){ + .md-typeset abbr{ + position:relative + } + .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{ + background-color:var(--md-default-fg-color); + border-radius:.1rem; + box-shadow:var(--md-shadow-z3); + color:var(--md-default-bg-color); + content:attr(title); + display:inline-block; + font-size:.7rem; + margin-top:2em; + max-width:80%; + min-width:-webkit-max-content; + min-width:max-content; + padding:.2rem .3rem; + position:absolute; + width:auto + } + .md-typeset abbr[title]:-moz-any(:focus,:hover):after{ + background-color:var(--md-default-fg-color); + border-radius:.1rem; + box-shadow:var(--md-shadow-z3); + color:var(--md-default-bg-color); + content:attr(title); + display:inline-block; + font-size:.7rem; + margin-top:2em; + max-width:80%; + min-width:-moz-max-content; + min-width:max-content; + padding:.2rem .3rem; + position:absolute; + width:auto + } + .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{ + left:0 + } + .md-typeset abbr[title]:-moz-any(:focus,:hover):after{ + left:0 + } + .md-typeset abbr[title]:is(:focus,:hover):after{ + left:0 + } + [dir=rtl] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{ + right:0 + } + [dir=rtl] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{ + right:0 + } + [dir=rtl] .md-typeset abbr[title]:is(:focus,:hover):after{ + right:0 + } + .md-typeset abbr[title]:is(:focus,:hover):after{ + background-color:var(--md-default-fg-color); + border-radius:.1rem; + box-shadow:var(--md-shadow-z3); + color:var(--md-default-bg-color); + content:attr(title); + display:inline-block; + font-size:.7rem; + margin-top:2em; + max-width:80%; + min-width:-webkit-max-content; + min-width:-moz-max-content; + min-width:max-content; + padding:.2rem .3rem; + position:absolute; + width:auto + } +} +.md-typeset small{ + opacity:.75 +} +.md-typeset sub,.md-typeset sup{ + margin-left:.078125em +} +[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{ + margin-right:.078125em +} +.md-typeset blockquote{ + padding-left:.6rem +} +[dir=rtl] .md-typeset blockquote{ + padding-right:.6rem +} +.md-typeset blockquote{ + border-left:.2rem solid var(--md-default-fg-color--lighter) +} +[dir=rtl] .md-typeset blockquote{ + border-right:.2rem solid var(--md-default-fg-color--lighter) +} +.md-typeset blockquote{ + color:var(--md-default-fg-color--light); + margin-left:0; + margin-right:0 +} +.md-typeset ol,.md-typeset ul{ + padding:0 +} +.md-typeset ol ol,.md-typeset ul ol{ + list-style-type:lower-alpha +} +.md-typeset ol ol ol,.md-typeset ul ol ol{ + list-style-type:lower-roman +} +.md-typeset ol li,.md-typeset ul li{ + margin-bottom:.5em +} +.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{ + margin:.5em 0 +} +.md-typeset ol li:last-child,.md-typeset ul li:last-child{ + margin-bottom:0 +} +.md-typeset ol li :-webkit-any(ul,ol),.md-typeset ul li :-webkit-any(ul,ol){ + margin-bottom:.5em; + margin-top:.5em +} +.md-typeset ol li :-moz-any(ul,ol),.md-typeset ul li :-moz-any(ul,ol){ + margin-bottom:.5em; + margin-top:.5em +} +.md-typeset ol li :is(ul,ol),.md-typeset ul li :is(ul,ol){ + margin-bottom:.5em; + margin-top:.5em +} +.md-typeset dd{ + margin-left:1.875em +} +[dir=rtl] .md-typeset dd{ + margin-right:1.875em +} +.md-typeset dd{ + margin-bottom:1.5em; + margin-top:1em +} +.md-typeset img,.md-typeset svg,.md-typeset video{ + height:auto; + max-width:100% +} +.md-typeset img[align=left]{ + margin:1em 1em 1em 0 +} +.md-typeset img[align=right]{ + margin:1em 0 1em 1em +} +.md-typeset img[align]:only-child{ + margin-top:0 +} +.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{ + display:none +} +.md-typeset figure{ + display:flow-root; + margin:1em auto; + max-width:100%; + text-align:center; + width:-webkit-fit-content; + width:-moz-fit-content; + width:fit-content +} +.md-typeset figure img{ + display:block +} +.md-typeset figcaption{ + font-style:italic; + margin:1em auto; + max-width:24rem +} +.md-typeset iframe{ + max-width:100% +} +.md-typeset table:not([class]){ + background-color:var(--md-default-bg-color); + border:.05rem solid var(--md-typeset-table-color); + border-radius:.1rem; + max-width:100%; + overflow:auto; + touch-action:auto; + margin-left: auto; + margin-right: auto; +} +@media print{ + .md-typeset table:not([class]){ + display:table + } +} +.md-typeset table:not([class])+*{ + margin-top:1.5em +} +.md-typeset table:not([class]) :-webkit-any(th,td)>:first-child{ + margin-top:0 +} +.md-typeset table:not([class]) :-moz-any(th,td)>:first-child{ + margin-top:0 +} +.md-typeset table:not([class]) :is(th,td)>:first-child{ + margin-top:0 +} +.md-typeset table:not([class]) :-webkit-any(th,td)>:last-child{ + margin-bottom:0 +} +.md-typeset table:not([class]) :-moz-any(th,td)>:last-child{ + margin-bottom:0 +} +.md-typeset table:not([class]) :is(th,td)>:last-child{ + margin-bottom:0 +} +.md-typeset table:not([class]) :-webkit-any(th,td):not([align]){ + text-align:left +} +.md-typeset table:not([class]) :-moz-any(th,td):not([align]){ + text-align:left +} +.md-typeset table:not([class]) :is(th,td):not([align]){ + text-align:left +} +[dir=rtl] .md-typeset table:not([class]) :-webkit-any(th,td):not([align]){ + text-align:right +} +[dir=rtl] .md-typeset table:not([class]) :-moz-any(th,td):not([align]){ + text-align:right +} +[dir=rtl] .md-typeset table:not([class]) :is(th,td):not([align]){ + text-align:right +} +.md-typeset table:not([class]) th{ + font-weight:700; + min-width:5rem; + padding:.9375em 1.25em; + vertical-align:top +} +.md-typeset table:not([class]) td{ + padding:.9375em 1.25em; + vertical-align:top; + border-top:.05rem solid var(--md-typeset-table-color); +} +.md-typeset table:not([class]) tbody tr{ + transition:background-color 125ms; +} +.md-typeset table:not([class]) tbody tr:hover{ + background-color:rgba(0,0,0,.035); + box-shadow:0 .05rem 0 var(--md-default-bg-color) inset +} +.md-typeset table:not([class]) a{ + word-break:normal +} +.md-typeset table th[role=columnheader]{ + cursor:pointer +} +.md-typeset table th[role=columnheader]:after{ + margin-left:.5em +} +[dir=rtl] .md-typeset table th[role=columnheader]:after{ + margin-right:.5em +} +.md-typeset table th[role=columnheader]:after{ + content:""; + display:inline-block; + height:1.2em; + -webkit-mask-image:var(--md-typeset-table-sort-icon); + mask-image:var(--md-typeset-table-sort-icon); + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + transition:background-color 125ms; + vertical-align:text-bottom; + width:1.2em +} +.md-typeset table th[role=columnheader]:hover:after{ + background-color:var(--md-default-fg-color--lighter) +} +.md-typeset table th[role=columnheader][aria-sort=ascending]:after{ + background-color:var(--md-default-fg-color--light); + -webkit-mask-image:var(--md-typeset-table-sort-icon--asc); + mask-image:var(--md-typeset-table-sort-icon--asc) +} +.md-typeset table th[role=columnheader][aria-sort=descending]:after{ + background-color:var(--md-default-fg-color--light); + -webkit-mask-image:var(--md-typeset-table-sort-icon--desc); + mask-image:var(--md-typeset-table-sort-icon--desc) +} +.md-typeset__scrollwrap{ + margin:1em -.8rem; + overflow-x:auto; + touch-action:auto +} +.md-typeset__table{ + display:inline-block; + margin-bottom:.5em; + padding:0 .8rem +} +@media print{ + .md-typeset__table{ + display:block + } +} +html .md-typeset__table table{ + display:table; + margin:0; + overflow:hidden; + width:100% +} +@media screen and (max-width:44.9375em){ + .md-content__inner>pre{ + margin:1em -.8rem + } + .md-content__inner>pre code{ + border-radius:0 + } +} +.md-banner{ + background-color:var(--md-footer-bg-color); + color:var(--md-footer-fg-color); + overflow:auto +} +@media print{ + .md-banner{ + display:none + } +} +.md-banner--warning{ + background:var(--md-typeset-mark-color); + color:var(--md-default-fg-color) +} +.md-banner__inner{ + font-size:.7rem; + margin:.6rem auto; + padding:0 .8rem +} +.md-banner__button{ + float:right +} +[dir=rtl] .md-banner__button{ + float:left +} +.md-banner__button{ + color:inherit; + cursor:pointer; + transition:opacity .25s +} +.md-banner__button:hover{ + opacity:.7 +} +.md-grid{ + margin-left:auto; + margin-right:auto; + max-width:61rem +} +.md-container{ + display:flex; + flex-direction:column; + flex-grow:1 +} +@media print{ + .md-container{ + display:block + } +} +.md-main{ + flex-grow:1 +} +.md-main__inner{ + display:flex; + height:100%; + margin-top:1.5rem +} +.md-ellipsis{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap +} +.md-toggle{ + display:none +} +.md-option{ + height:0; + opacity:0; + position:absolute; + width:0 +} +.md-option:checked+label:not([hidden]){ + display:block +} +.md-option.focus-visible+label{ + outline-color:var(--md-accent-fg-color); + outline-style:auto +} +.md-skip{ + background-color:var(--md-default-fg-color); + border-radius:.1rem; + color:var(--md-default-bg-color); + font-size:.64rem; + margin:.5rem; + opacity:0; + outline-color:var(--md-accent-fg-color); + padding:.3rem .5rem; + position:fixed; + transform:translateY(.4rem); + z-index:-1 +} +.md-skip:focus{ + opacity:1; + transform:translateY(0); + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms; + z-index:10 +} +:root{ + --md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-clipboard{ + border-radius:.1rem; + color:var(--md-default-fg-color--lightest); + cursor:pointer; + height:1.5em; + outline-color:var(--md-accent-fg-color); + outline-offset:.1rem; + position:absolute; + right:.5em; + top:.5em; + transition:color .25s; + width:1.5em; + z-index:1 +} +@media print{ + .md-clipboard{ + display:none + } +} +.md-clipboard:not(.focus-visible){ + -webkit-tap-highlight-color:transparent; + outline:none +} +:hover>.md-clipboard{ + color:var(--md-default-fg-color--light) +} +.md-clipboard:-webkit-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-clipboard:-moz-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-clipboard:is(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-clipboard:after{ + background-color:currentcolor; + content:""; + display:block; + height:1.125em; + margin:0 auto; + -webkit-mask-image:var(--md-clipboard-icon); + mask-image:var(--md-clipboard-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + width:1.125em +} +.md-clipboard--inline{ + cursor:pointer +} +.md-clipboard--inline code{ + transition:color .25s,background-color .25s +} +.md-clipboard--inline:-webkit-any(:focus,:hover) code{ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +.md-clipboard--inline:-moz-any(:focus,:hover) code{ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +.md-clipboard--inline:is(:focus,:hover) code{ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +@keyframes consent{ + 0%{ + opacity:0; + transform:translateY(100%) + } + to{ + opacity:1; + transform:translateY(0) + } +} +@keyframes overlay{ + 0%{ + opacity:0 + } + to{ + opacity:1 + } +} +.md-consent__overlay{ + animation:overlay .25s both; + -webkit-backdrop-filter:blur(.1rem); + backdrop-filter:blur(.1rem); + background-color:rgba(0,0,0,.54); + height:100%; + opacity:1; + position:fixed; + top:0; + width:100%; + z-index:5 +} +.md-consent__inner{ + animation:consent .5s cubic-bezier(.1,.7,.1,1) both; + background-color:var(--md-default-bg-color); + border:0; + border-radius:.1rem; + bottom:0; + box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2); + max-height:100%; + overflow:auto; + padding:0; + position:fixed; + width:100%; + z-index:5 +} +.md-consent__form{ + padding:.8rem +} +.md-consent__settings{ + display:none; + margin:1em 0 +} +input:checked+.md-consent__settings{ + display:block +} +.md-consent__controls{ + margin-bottom:.8rem +} +.md-typeset .md-consent__controls .md-button{ + display:inline +} +@media screen and (max-width:44.9375em){ + .md-typeset .md-consent__controls .md-button{ + display:block; + margin-top:.4rem; + text-align:center; + width:100% + } +} +.md-consent label{ + cursor:pointer +} +.md-content{ + flex-grow:1; + min-width:0 +} +.md-content__inner{ + margin:0 .8rem 1.2rem; + padding-top:.6rem +} +@media screen and (min-width:76.25em){ + .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{ + margin-left:1.2rem + } + .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{ + margin-right:1.2rem + } + [dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{ + margin-left:1.2rem + } +} +.md-content__inner:before{ + content:""; + display:block; + height:.4rem +} +.md-content__inner>:last-child{ + margin-bottom:0 +} +.md-content__button{ + float:right +} +[dir=rtl] .md-content__button{ + float:left +} +.md-content__button{ + margin-left:.4rem +} +[dir=rtl] .md-content__button{ + margin-right:.4rem +} +.md-content__button{ + margin:.4rem 0; + padding:0 +} +@media print{ + .md-content__button{ + display:none + } +} +.md-typeset .md-content__button{ + color:var(--md-default-fg-color--lighter) +} +.md-content__button svg{ + display:inline; + vertical-align:top +} +[dir=rtl] .md-content__button svg{ + transform:scaleX(-1) +} +.md-dialog{ + right:.8rem +} +[dir=rtl] .md-dialog{ + left:.8rem +} +.md-dialog{ + background-color:var(--md-default-fg-color); + border-radius:.1rem; + bottom:.8rem; + box-shadow:var(--md-shadow-z3); + min-width:11.1rem; + opacity:0; + padding:.4rem .6rem; + pointer-events:none; + position:fixed; + transform:translateY(100%); + transition:transform 0ms .4s,opacity .4s; + z-index:4 +} +@media print{ + .md-dialog{ + display:none + } +} +.md-dialog--active{ + opacity:1; + pointer-events:auto; + transform:translateY(0); + transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s +} +.md-dialog__inner{ + color:var(--md-default-bg-color); + font-size:.7rem +} +.md-feedback{ + margin:2em 0 1em; + text-align:center +} +.md-feedback fieldset{ + border:none; + margin:0; + padding:0 +} +.md-feedback__title{ + font-weight:700; + margin:1em auto +} +.md-feedback__inner{ + position:relative +} +.md-feedback__list{ + align-content:baseline; + display:flex; + flex-wrap:wrap; + justify-content:center; + position:relative +} +.md-feedback__list:hover .md-icon:not(:disabled){ + color:var(--md-default-fg-color--lighter) +} +:disabled .md-feedback__list{ + min-height:1.8rem +} +.md-feedback__icon{ + color:var(--md-default-fg-color--light); + cursor:pointer; + flex-shrink:0; + margin:0 .1rem; + transition:color 125ms +} +.md-feedback__icon:not(:disabled).md-icon:hover{ + color:var(--md-accent-fg-color) +} +.md-feedback__icon:disabled{ + color:var(--md-default-fg-color--lightest); + pointer-events:none +} +.md-feedback__note{ + opacity:0; + position:relative; + transform:translateY(.4rem); + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s +} +.md-feedback__note>*{ + margin:0 auto; + max-width:16rem +} +:disabled .md-feedback__note{ + opacity:1; + transform:translateY(0) +} +.md-footer{ + background-color:var(--md-footer-bg-color); + color:var(--md-footer-fg-color) +} +@media print{ + .md-footer{ + display:none + } +} +.md-footer__inner{ + justify-content:space-between; + overflow:auto; + padding:.2rem +} +.md-footer__inner:not([hidden]){ + display:flex +} +.md-footer__link{ + display:flex; + flex-grow:0.01; + outline-color:var(--md-accent-fg-color); + overflow:hidden; + padding-bottom:.4rem; + padding-top:1.4rem; + transition:opacity .25s +} +.md-footer__link:-webkit-any(:focus,:hover){ + opacity:.7 +} +.md-footer__link:-moz-any(:focus,:hover){ + opacity:.7 +} +.md-footer__link:is(:focus,:hover){ + opacity:.7 +} +[dir=rtl] .md-footer__link svg{ + transform:scaleX(-1) +} +@media screen and (max-width:44.9375em){ + .md-footer__link--prev .md-footer__title{ + display:none + } +} +.md-footer__link--next{ + margin-left:auto +} +[dir=rtl] .md-footer__link--next{ + margin-right:auto +} +.md-footer__link--next{ + text-align:right +} +[dir=rtl] .md-footer__link--next{ + text-align:left +} +.md-footer__title{ + flex-grow:1; + font-size:.9rem; + line-height:2.4rem; + max-width:calc(100% - 2.4rem); + padding:0 1rem; + position:relative; + white-space:nowrap +} +.md-footer__button{ + margin:.2rem; + padding:.4rem +} +.md-footer__direction{ + left:0; + margin-top:-1rem; + opacity:.7; + padding:0 1rem; + position:absolute; + right:0 +} +.md-footer-meta{ + background-color:var(--md-footer-bg-color--dark) +} +.md-footer-meta__inner{ + display:flex; + flex-wrap:wrap; + justify-content:space-between; + padding:.2rem +} +html .md-footer-meta.md-typeset a{ + color:var(--md-footer-fg-color--light) +} +html .md-footer-meta.md-typeset a:-webkit-any(:focus,:hover){ + color:var(--md-footer-fg-color) +} +html .md-footer-meta.md-typeset a:-moz-any(:focus,:hover){ + color:var(--md-footer-fg-color) +} +html .md-footer-meta.md-typeset a:is(:focus,:hover){ + color:var(--md-footer-fg-color) +} +.md-copyright{ + color:var(--md-footer-fg-color--lighter); + font-size:.64rem; + margin:auto .6rem; + padding:.4rem 0; + width:100% +} +@media screen and (min-width:45em){ + .md-copyright{ + width:auto + } +} +.md-copyright__highlight{ + color:var(--md-footer-fg-color--light) +} +.md-social{ + margin:0 .4rem; + padding:.2rem 0 .6rem +} +@media screen and (min-width:45em){ + .md-social{ + padding:.6rem 0 + } +} +.md-social__link{ + display:inline-block; + height:1.6rem; + text-align:center; + width:1.6rem +} +.md-social__link:before{ + line-height:1.9 +} +.md-social__link svg{ + fill:currentcolor; + max-height:.8rem; + vertical-align:-25% +} +.md-typeset .md-button{ + border:.1rem solid; + border-radius:.1rem; + color:var(--md-primary-fg-color); + cursor:pointer; + display:inline-block; + font-weight:700; + padding:.625em 2em; + transition:color 125ms,background-color 125ms,border-color 125ms +} +.md-typeset .md-button--primary{ + background-color:var(--md-primary-fg-color); + border-color:var(--md-primary-fg-color); + color:var(--md-primary-bg-color) +} +.md-typeset .md-button:-webkit-any(:focus,:hover){ + background-color:var(--md-accent-fg-color); + border-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +.md-typeset .md-button:-moz-any(:focus,:hover){ + background-color:var(--md-accent-fg-color); + border-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +.md-typeset .md-button:is(:focus,:hover){ + background-color:var(--md-accent-fg-color); + border-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +.md-typeset .md-input{ + border-top-left-radius:.1rem +} +.md-typeset .md-input,[dir=rtl] .md-typeset .md-input{ + border-top-right-radius:.1rem +} +[dir=rtl] .md-typeset .md-input{ + border-top-left-radius:.1rem +} +.md-typeset .md-input{ + border-bottom:.1rem solid var(--md-default-fg-color--lighter); + box-shadow:var(--md-shadow-z1); + font-size:.8rem; + height:1.8rem; + padding:0 .6rem; + transition:border .25s,box-shadow .25s +} +.md-typeset .md-input:-webkit-any(:focus,:hover){ + border-bottom-color:var(--md-accent-fg-color); + box-shadow:var(--md-shadow-z2) +} +.md-typeset .md-input:-moz-any(:focus,:hover){ + border-bottom-color:var(--md-accent-fg-color); + box-shadow:var(--md-shadow-z2) +} +.md-typeset .md-input:is(:focus,:hover){ + border-bottom-color:var(--md-accent-fg-color); + box-shadow:var(--md-shadow-z2) +} +.md-typeset .md-input--stretch{ + width:100% +} +.md-header{ + background-color:var(--md-primary-fg-color); + box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent; + color:var(--md-primary-bg-color); + display:block; + left:0; + position:-webkit-sticky; + position:sticky; + right:0; + top:0; + z-index:4 +} +@media print{ + .md-header{ + display:none + } +} +.md-header[hidden]{ + transform:translateY(-100%); + transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s +} +.md-header--shadow{ + box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2); + transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s +} +.md-header__inner{ + align-items:center; + display:flex; + padding:0 .2rem +} +.md-header__button{ + color:currentcolor; + cursor:pointer; + margin:.2rem; + outline-color:var(--md-accent-fg-color); + padding:.4rem; + position:relative; + transition:opacity .25s; + vertical-align:middle; + z-index:1 +} +.md-header__button:hover{ + opacity:.7 +} +.md-header__button:not([hidden]){ + display:inline-block +} +.md-header__button:not(.focus-visible){ + -webkit-tap-highlight-color:transparent; + outline:none +} +.md-header__button.md-logo{ + margin:.2rem; + padding:.4rem +} +@media screen and (max-width:76.1875em){ + .md-header__button.md-logo{ + display:none + } +} +.md-header__button.md-logo :-webkit-any(img,svg){ + fill:currentcolor; + display:block; + height:1.2rem; + width:auto +} +.md-header__button.md-logo :-moz-any(img,svg){ + fill:currentcolor; + display:block; + height:1.2rem; + width:auto +} +.md-header__button.md-logo :is(img,svg){ + fill:currentcolor; + display:block; + height:1.2rem; + width:auto +} +@media screen and (min-width:60em){ + .md-header__button[for=__search]{ + display:none + } +} +.no-js .md-header__button[for=__search]{ + display:none +} +[dir=rtl] .md-header__button[for=__search] svg{ + transform:scaleX(-1) +} +@media screen and (min-width:76.25em){ + .md-header__button[for=__drawer]{ + display:none + } +} +.md-header__topic{ + display:flex; + max-width:100%; + position:absolute; + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s; + white-space:nowrap +} +.md-header__topic+.md-header__topic{ + opacity:0; + pointer-events:none; + transform:translateX(1.25rem); + transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s; + z-index:-1 +} +[dir=rtl] .md-header__topic+.md-header__topic{ + transform:translateX(-1.25rem) +} +.md-header__topic:first-child{ + font-weight:700 +} +.md-header__title{ + margin-right:.4rem +} +[dir=rtl] .md-header__title{ + margin-left:.4rem +} +.md-header__title{ + margin-left:1rem +} +[dir=rtl] .md-header__title{ + margin-right:1rem +} +.md-header__title{ + flex-grow:1; + font-size:.9rem; + height:2.4rem; + line-height:2.4rem +} +.md-header__title--active .md-header__topic{ + opacity:0; + pointer-events:none; + transform:translateX(-1.25rem); + transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s; + z-index:-1 +} +[dir=rtl] .md-header__title--active .md-header__topic{ + transform:translateX(1.25rem) +} +.md-header__title--active .md-header__topic+.md-header__topic{ + opacity:1; + pointer-events:auto; + transform:translateX(0); + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s; + z-index:0 +} +.md-header__title>.md-header__ellipsis{ + height:100%; + position:relative; + width:100% +} +.md-header__option{ + display:flex; + flex-shrink:0; + max-width:100%; + transition:max-width 0ms .25s,opacity .25s .25s; + white-space:nowrap +} +[data-md-toggle=search]:checked~.md-header .md-header__option{ + max-width:0; + opacity:0; + transition:max-width 0ms,opacity 0ms +} +.md-header__source{ + display:none +} +@media screen and (min-width:60em){ + .md-header__source{ + margin-left:1rem + } + [dir=rtl] .md-header__source{ + margin-right:1rem + } + .md-header__source{ + display:block; + max-width:11.7rem; + width:11.7rem + } +} +@media screen and (min-width:76.25em){ + .md-header__source{ + margin-left:1.4rem + } + [dir=rtl] .md-header__source{ + margin-right:1.4rem + } +} +:root{ + --md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,'); + --md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,'); + --md-toc-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-nav{ + font-size:.7rem; + line-height:1.3 +} +.md-nav__title{ + display:block; + font-weight:700; + overflow:hidden; + padding:0 .6rem; + text-overflow:ellipsis +} +.md-nav__title .md-nav__button{ + display:none +} +.md-nav__title .md-nav__button img{ + height:100%; + width:auto +} +.md-nav__title .md-nav__button.md-logo :-webkit-any(img,svg){ + fill:currentcolor; + display:block; + height:2.4rem; + max-width:100%; + object-fit:contain; + width:auto +} +.md-nav__title .md-nav__button.md-logo :-moz-any(img,svg){ + fill:currentcolor; + display:block; + height:2.4rem; + max-width:100%; + object-fit:contain; + width:auto +} +.md-nav__title .md-nav__button.md-logo :is(img,svg){ + fill:currentcolor; + display:block; + height:2.4rem; + max-width:100%; + object-fit:contain; + width:auto +} +.md-nav__list{ + list-style:none; + margin:0; + padding:0 +} +.md-nav__item{ + padding:0 .6rem +} +.md-nav__item .md-nav__item{ + padding-right:0 +} +[dir=rtl] .md-nav__item .md-nav__item{ + padding-left:0 +} +.md-nav__link{ + align-items:center; + cursor:pointer; + display:flex; + justify-content:space-between; + margin-top:.625em; + overflow:hidden; + scroll-snap-align:start; + text-overflow:ellipsis; + transition:color 125ms +} +.md-nav__link--passed{ + color:var(--md-default-fg-color--light) +} +.md-nav__item .md-nav__link--active{ + color:var(--md-typeset-a-color) +} +.md-nav__item .md-nav__link--index [href]{ + width:100% +} +.md-nav__link:-webkit-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-nav__link:-moz-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-nav__link:is(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-nav__link.focus-visible{ + outline-color:var(--md-accent-fg-color); + outline-offset:.2rem +} +.md-nav--primary .md-nav__link[for=__toc]{ + display:none +} +.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{ + background-color:currentcolor; + display:block; + height:100%; + -webkit-mask-image:var(--md-toc-icon); + mask-image:var(--md-toc-icon); + width:100% +} +.md-nav--primary .md-nav__link[for=__toc]~.md-nav{ + display:none +} +.md-nav__link>*{ + cursor:pointer; + display:flex +} +.md-nav__icon{ + flex-shrink:0 +} +.md-nav__source{ + display:none +} +@media screen and (max-width:76.1875em){ + .md-nav--primary,.md-nav--primary .md-nav{ + background-color:var(--md-default-bg-color); + display:flex; + flex-direction:column; + height:100%; + left:0; + position:absolute; + right:0; + top:0; + z-index:1 + } + .md-nav--primary :-webkit-any(.md-nav__title,.md-nav__item){ + font-size:.8rem; + line-height:1.5 + } + .md-nav--primary :-moz-any(.md-nav__title,.md-nav__item){ + font-size:.8rem; + line-height:1.5 + } + .md-nav--primary :is(.md-nav__title,.md-nav__item){ + font-size:.8rem; + line-height:1.5 + } + .md-nav--primary .md-nav__title{ + background-color:var(--md-default-fg-color--lightest); + color:var(--md-default-fg-color--light); + cursor:pointer; + height:5.6rem; + line-height:2.4rem; + padding:3rem .8rem .2rem; + position:relative; + white-space:nowrap + } + .md-nav--primary .md-nav__title .md-nav__icon{ + left:.4rem + } + [dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{ + right:.4rem + } + .md-nav--primary .md-nav__title .md-nav__icon{ + display:block; + height:1.2rem; + margin:.2rem; + position:absolute; + top:.4rem; + width:1.2rem + } + .md-nav--primary .md-nav__title .md-nav__icon:after{ + background-color:currentcolor; + content:""; + display:block; + height:100%; + -webkit-mask-image:var(--md-nav-icon--prev); + mask-image:var(--md-nav-icon--prev); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + width:100% + } + .md-nav--primary .md-nav__title~.md-nav__list{ + background-color:var(--md-default-bg-color); + box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset; + overflow-y:auto; + -ms-scroll-snap-type:y mandatory; + scroll-snap-type:y mandatory; + touch-action:pan-y + } + .md-nav--primary .md-nav__title~.md-nav__list>:first-child{ + border-top:0 + } + .md-nav--primary .md-nav__title[for=__drawer]{ + background-color:var(--md-primary-fg-color); + color:var(--md-primary-bg-color); + font-weight:700 + } + .md-nav--primary .md-nav__title .md-logo{ + display:block; + left:.2rem; + margin:.2rem; + padding:.4rem; + position:absolute; + right:.2rem; + top:.2rem + } + .md-nav--primary .md-nav__list{ + flex:1 + } + .md-nav--primary .md-nav__item{ + border-top:.05rem solid var(--md-default-fg-color--lightest); + padding:0 + } + .md-nav--primary .md-nav__item--active>.md-nav__link{ + color:var(--md-typeset-a-color) + } + .md-nav--primary .md-nav__item--active>.md-nav__link:-webkit-any(:focus,:hover){ + color:var(--md-accent-fg-color) + } + .md-nav--primary .md-nav__item--active>.md-nav__link:-moz-any(:focus,:hover){ + color:var(--md-accent-fg-color) + } + .md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus,:hover){ + color:var(--md-accent-fg-color) + } + .md-nav--primary .md-nav__link{ + margin-top:0; + padding:.6rem .8rem + } + .md-nav--primary .md-nav__link .md-nav__icon{ + margin-right:-.2rem + } + [dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{ + margin-left:-.2rem + } + .md-nav--primary .md-nav__link .md-nav__icon{ + font-size:1.2rem; + height:1.2rem; + width:1.2rem + } + .md-nav--primary .md-nav__link .md-nav__icon:after{ + background-color:currentcolor; + content:""; + display:block; + height:100%; + -webkit-mask-image:var(--md-nav-icon--next); + mask-image:var(--md-nav-icon--next); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + width:100% + } + [dir=rtl] .md-nav--primary .md-nav__icon:after{ + transform:scale(-1) + } + .md-nav--primary .md-nav--secondary .md-nav{ + background-color:initial; + position:static + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{ + padding-left:1.4rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{ + padding-right:1.4rem + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{ + padding-left:2rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{ + padding-right:2rem + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{ + padding-left:2.6rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{ + padding-right:2.6rem + } + .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{ + padding-left:3.2rem + } + [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{ + padding-right:3.2rem + } + .md-nav--secondary{ + background-color:initial + } + .md-nav__toggle~.md-nav{ + display:flex; + opacity:0; + transform:translateX(100%); + transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms + } + [dir=rtl] .md-nav__toggle~.md-nav{ + transform:translateX(-100%) + } + .md-nav__toggle:checked~.md-nav{ + opacity:1; + transform:translateX(0); + transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms + } + .md-nav__toggle:checked~.md-nav>.md-nav__list{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden + } +} +@media screen and (max-width:59.9375em){ + .md-nav--primary .md-nav__link[for=__toc]{ + display:flex + } + .md-nav--primary .md-nav__link[for=__toc] .md-icon:after{ + content:"" + } + .md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{ + display:none + } + .md-nav--primary .md-nav__link[for=__toc]~.md-nav{ + display:flex + } + .md-nav__source{ + background-color:var(--md-primary-fg-color--dark); + color:var(--md-primary-bg-color); + display:block; + padding:0 .2rem + } +} +@media screen and (min-width:60em) and (max-width:76.1875em){ + .md-nav--integrated .md-nav__link[for=__toc]{ + display:flex + } + .md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{ + content:"" + } + .md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{ + display:none + } + .md-nav--integrated .md-nav__link[for=__toc]~.md-nav{ + display:flex + } +} +@media screen and (min-width:60em){ + .md-nav--secondary .md-nav__title{ + background:var(--md-default-bg-color); + box-shadow:0 0 .4rem .4rem var(--md-default-bg-color); + position:-webkit-sticky; + position:sticky; + top:0; + z-index:1 + } + .md-nav--secondary .md-nav__title[for=__toc]{ + scroll-snap-align:start + } + .md-nav--secondary .md-nav__title .md-nav__icon{ + display:none + } +} +@media screen and (min-width:76.25em){ + .md-nav{ + transition:max-height .25s cubic-bezier(.86,0,.07,1) + } + .md-nav--primary .md-nav__title{ + background:var(--md-default-bg-color); + box-shadow:0 0 .4rem .4rem var(--md-default-bg-color); + position:-webkit-sticky; + position:sticky; + top:0; + z-index:1 + } + .md-nav--primary .md-nav__title[for=__drawer]{ + scroll-snap-align:start + } + .md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{ + display:none + } + .md-nav__toggle:-webkit-any(:checked,:indeterminate)~.md-nav{ + display:block + } + .md-nav__toggle:-moz-any(:checked,:indeterminate)~.md-nav{ + display:block + } + .md-nav__toggle:is(:checked,:indeterminate)~.md-nav{ + display:block + } + .md-nav__item--nested>.md-nav>.md-nav__title{ + display:none + } + .md-nav__item--section{ + display:block; + margin:1.25em 0 + } + .md-nav__item--section:last-child{ + margin-bottom:0 + } + .md-nav__item--section>.md-nav__link{ + font-weight:700; + pointer-events:none + } + .md-nav__item--section>.md-nav__link--index [href]{ + pointer-events:auto + } + .md-nav__item--section>.md-nav__link .md-nav__icon{ + display:none + } + .md-nav__item--section>.md-nav{ + display:block + } + .md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{ + padding:0 + } + .md-nav__icon{ + border-radius:100%; + height:.9rem; + transition:background-color .25s,transform .25s; + width:.9rem + } + [dir=rtl] .md-nav__icon{ + transform:rotate(180deg) + } + .md-nav__icon:hover{ + background-color:var(--md-accent-fg-color--transparent) + } + .md-nav__icon:after{ + background-color:currentcolor; + content:""; + display:inline-block; + height:100%; + -webkit-mask-image:var(--md-nav-icon--next); + mask-image:var(--md-nav-icon--next); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + vertical-align:-.1rem; + width:100% + } + .md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{ + transform:rotate(90deg) + } + .md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{ + display:none + } + .md-nav--lifted>.md-nav__list>.md-nav__item--active{ + display:block; + padding:0 + } + .md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{ + background:var(--md-default-bg-color); + box-shadow:0 0 .4rem .4rem var(--md-default-bg-color); + font-weight:700; + margin-top:0; + padding:0 .6rem; + position:-webkit-sticky; + position:sticky; + top:0; + z-index:1 + } + .md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__link--index){ + pointer-events:none + } + .md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{ + display:none + } + .md-nav--lifted .md-nav[data-md-level="1"]{ + display:block + } + .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{ + padding-right:.6rem + } + [dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{ + padding-left:.6rem + } + .md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){ + padding:0 .6rem + } + .md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{ + padding:0 + } + .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{ + border-left:.05rem solid var(--md-primary-fg-color) + } + [dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{ + border-right:.05rem solid var(--md-primary-fg-color) + } + .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{ + display:block; + margin-bottom:1.25em + } + .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{ + display:none + } +} +:root{ + --md-search-result-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-search{ + position:relative +} +@media screen and (min-width:60em){ + .md-search{ + padding:.2rem 0 + } +} +.no-js .md-search{ + display:none +} +.md-search__overlay{ + opacity:0; + z-index:1 +} +@media screen and (max-width:59.9375em){ + .md-search__overlay{ + left:-2.2rem + } + [dir=rtl] .md-search__overlay{ + right:-2.2rem + } + .md-search__overlay{ + background-color:var(--md-default-bg-color); + border-radius:1rem; + height:2rem; + overflow:hidden; + pointer-events:none; + position:absolute; + top:-1rem; + transform-origin:center; + transition:transform .3s .1s,opacity .2s .2s; + width:2rem + } + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + opacity:1; + transition:transform .4s,opacity .1s + } +} +@media screen and (min-width:60em){ + .md-search__overlay{ + left:0 + } + [dir=rtl] .md-search__overlay{ + right:0 + } + .md-search__overlay{ + background-color:rgba(0,0,0,.54); + cursor:pointer; + height:0; + position:fixed; + top:0; + transition:width 0ms .25s,height 0ms .25s,opacity .25s; + width:0 + } + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + height:200vh; + opacity:1; + transition:width 0ms,height 0ms,opacity .25s; + width:100% + } +} +@media screen and (max-width:29.9375em){ + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + transform:scale(45) + } +} +@media screen and (min-width:30em) and (max-width:44.9375em){ + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + transform:scale(60) + } +} +@media screen and (min-width:45em) and (max-width:59.9375em){ + [data-md-toggle=search]:checked~.md-header .md-search__overlay{ + transform:scale(75) + } +} +.md-search__inner{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden +} +@media screen and (max-width:59.9375em){ + .md-search__inner{ + left:0 + } + [dir=rtl] .md-search__inner{ + right:0 + } + .md-search__inner{ + height:0; + opacity:0; + overflow:hidden; + position:fixed; + top:0; + transform:translateX(5%); + transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s; + width:0; + z-index:2 + } + [dir=rtl] .md-search__inner{ + transform:translateX(-5%) + } + [data-md-toggle=search]:checked~.md-header .md-search__inner{ + height:100%; + opacity:1; + transform:translateX(0); + transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s; + width:100% + } +} +@media screen and (min-width:60em){ + .md-search__inner{ + float:right + } + [dir=rtl] .md-search__inner{ + float:left + } + .md-search__inner{ + padding:.1rem 0; + position:relative; + transition:width .25s cubic-bezier(.1,.7,.1,1); + width:11.7rem + } +} +@media screen and (min-width:60em) and (max-width:76.1875em){ + [data-md-toggle=search]:checked~.md-header .md-search__inner{ + width:23.4rem + } +} +@media screen and (min-width:76.25em){ + [data-md-toggle=search]:checked~.md-header .md-search__inner{ + width:34.4rem + } +} +.md-search__form{ + background-color:var(--md-default-bg-color); + box-shadow:0 0 .6rem transparent; + height:2.4rem; + position:relative; + transition:color .25s,background-color .25s; + z-index:2 +} +@media screen and (min-width:60em){ + .md-search__form{ + background-color:rgba(0,0,0,.26); + border-radius:.1rem; + height:1.8rem + } + .md-search__form:hover{ + background-color:hsla(0,0%,100%,.12) + } +} +[data-md-toggle=search]:checked~.md-header .md-search__form{ + background-color:var(--md-default-bg-color); + border-radius:.1rem .1rem 0 0; + box-shadow:0 0 .6rem rgba(0,0,0,.07); + color:var(--md-default-fg-color) +} +.md-search__input{ + padding-left:3.6rem; + padding-right:2.2rem +} +[dir=rtl] .md-search__input{ + padding-left:2.2rem; + padding-right:3.6rem +} +.md-search__input{ + background:transparent; + font-size:.9rem; + height:100%; + position:relative; + text-overflow:ellipsis; + width:100%; + z-index:2 +} +.md-search__input::-ms-input-placeholder{ + -ms-transition:color .25s; + transition:color .25s +} +.md-search__input::placeholder{ + transition:color .25s +} +.md-search__input::-ms-input-placeholder{ + color:var(--md-default-fg-color--light) +} +.md-search__input::placeholder,.md-search__input~.md-search__icon{ + color:var(--md-default-fg-color--light) +} +.md-search__input::-ms-clear{ + display:none +} +@media screen and (max-width:59.9375em){ + .md-search__input{ + font-size:.9rem; + height:2.4rem; + width:100% + } +} +@media screen and (min-width:60em){ + .md-search__input{ + padding-left:2.2rem + } + [dir=rtl] .md-search__input{ + padding-right:2.2rem + } + .md-search__input{ + color:inherit; + font-size:.8rem + } + .md-search__input::-ms-input-placeholder{ + color:var(--md-primary-bg-color--light) + } + .md-search__input::placeholder{ + color:var(--md-primary-bg-color--light) + } + .md-search__input+.md-search__icon{ + color:var(--md-primary-bg-color) + } + [data-md-toggle=search]:checked~.md-header .md-search__input{ + text-overflow:clip + } + [data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{ + color:var(--md-default-fg-color--light) + } + [data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{ + color:var(--md-default-fg-color--light) + } +} +.md-search__icon{ + cursor:pointer; + display:inline-block; + height:1.2rem; + transition:color .25s,opacity .25s; + width:1.2rem +} +.md-search__icon:hover{ + opacity:.7 +} +.md-search__icon[for=__search]{ + left:.5rem +} +[dir=rtl] .md-search__icon[for=__search]{ + right:.5rem +} +.md-search__icon[for=__search]{ + position:absolute; + top:.3rem; + z-index:2 +} +[dir=rtl] .md-search__icon[for=__search] svg{ + transform:scaleX(-1) +} +@media screen and (max-width:59.9375em){ + .md-search__icon[for=__search]{ + left:.8rem + } + [dir=rtl] .md-search__icon[for=__search]{ + right:.8rem + } + .md-search__icon[for=__search]{ + top:.6rem + } + .md-search__icon[for=__search] svg:first-child{ + display:none + } +} +@media screen and (min-width:60em){ + .md-search__icon[for=__search]{ + pointer-events:none + } + .md-search__icon[for=__search] svg:last-child{ + display:none + } +} +.md-search__options{ + right:.5rem +} +[dir=rtl] .md-search__options{ + left:.5rem +} +.md-search__options{ + pointer-events:none; + position:absolute; + top:.3rem; + z-index:2 +} +@media screen and (max-width:59.9375em){ + .md-search__options{ + right:.8rem + } + [dir=rtl] .md-search__options{ + left:.8rem + } + .md-search__options{ + top:.6rem + } +} +.md-search__options>*{ + margin-left:.2rem +} +[dir=rtl] .md-search__options>*{ + margin-right:.2rem +} +.md-search__options>*{ + color:var(--md-default-fg-color--light); + opacity:0; + transform:scale(.75); + transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s +} +.md-search__options>:not(.focus-visible){ + -webkit-tap-highlight-color:transparent; + outline:none +} +[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{ + opacity:1; + pointer-events:auto; + transform:scale(1) +} +[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{ + opacity:.7 +} +.md-search__suggest{ + padding-left:3.6rem; + padding-right:2.2rem +} +[dir=rtl] .md-search__suggest{ + padding-left:2.2rem; + padding-right:3.6rem +} +.md-search__suggest{ + align-items:center; + color:var(--md-default-fg-color--lighter); + display:flex; + font-size:.9rem; + height:100%; + opacity:0; + position:absolute; + top:0; + transition:opacity 50ms; + white-space:nowrap; + width:100% +} +@media screen and (min-width:60em){ + .md-search__suggest{ + padding-left:2.2rem + } + [dir=rtl] .md-search__suggest{ + padding-right:2.2rem + } + .md-search__suggest{ + font-size:.8rem + } +} +[data-md-toggle=search]:checked~.md-header .md-search__suggest{ + opacity:1; + transition:opacity .3s .1s +} +.md-search__output{ + border-bottom-left-radius:.1rem +} +.md-search__output,[dir=rtl] .md-search__output{ + border-bottom-right-radius:.1rem +} +[dir=rtl] .md-search__output{ + border-bottom-left-radius:.1rem +} +.md-search__output{ + overflow:hidden; + position:absolute; + width:100%; + z-index:1 +} +@media screen and (max-width:59.9375em){ + .md-search__output{ + bottom:0; + top:2.4rem + } +} +@media screen and (min-width:60em){ + .md-search__output{ + opacity:0; + top:1.9rem; + transition:opacity .4s + } + [data-md-toggle=search]:checked~.md-header .md-search__output{ + box-shadow:var(--md-shadow-z3); + opacity:1 + } +} +.md-search__scrollwrap{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + background-color:var(--md-default-bg-color); + height:100%; + overflow-y:auto; + touch-action:pan-y +} +@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){ + .md-search__scrollwrap{ + transform:translateZ(0) + } +} +@media screen and (min-width:60em) and (max-width:76.1875em){ + .md-search__scrollwrap{ + width:23.4rem + } +} +@media screen and (min-width:76.25em){ + .md-search__scrollwrap{ + width:34.4rem + } +} +@media screen and (min-width:60em){ + .md-search__scrollwrap{ + max-height:0; + scrollbar-color:var(--md-default-fg-color--lighter) transparent; + scrollbar-width:thin + } + [data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{ + max-height:75vh + } + .md-search__scrollwrap:hover{ + scrollbar-color:var(--md-accent-fg-color) transparent + } + .md-search__scrollwrap::-webkit-scrollbar{ + height:.2rem; + width:.2rem + } + .md-search__scrollwrap::-webkit-scrollbar-thumb{ + background-color:var(--md-default-fg-color--lighter) + } + .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{ + background-color:var(--md-accent-fg-color) + } +} +.md-search-result{ + color:var(--md-default-fg-color); + word-break:break-word +} +.md-search-result__meta{ + background-color:var(--md-default-fg-color--lightest); + color:var(--md-default-fg-color--light); + font-size:.64rem; + line-height:1.8rem; + padding:0 .8rem; + scroll-snap-align:start +} +@media screen and (min-width:60em){ + .md-search-result__meta{ + padding-left:2.2rem + } + [dir=rtl] .md-search-result__meta{ + padding-right:2.2rem + } +} +.md-search-result__list{ + list-style:none; + margin:0; + padding:0; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none +} +.md-search-result__item{ + box-shadow:0 -.05rem var(--md-default-fg-color--lightest) +} +.md-search-result__item:first-child{ + box-shadow:none +} +.md-search-result__link{ + display:block; + outline:none; + scroll-snap-align:start; + transition:background-color .25s +} +.md-search-result__link:-webkit-any(:focus,:hover){ + background-color:var(--md-accent-fg-color--transparent) +} +.md-search-result__link:-moz-any(:focus,:hover){ + background-color:var(--md-accent-fg-color--transparent) +} +.md-search-result__link:is(:focus,:hover){ + background-color:var(--md-accent-fg-color--transparent) +} +.md-search-result__link:last-child p:last-child{ + margin-bottom:.6rem +} +.md-search-result__more summary{ + color:var(--md-typeset-a-color); + cursor:pointer; + display:block; + font-size:.64rem; + outline:none; + padding:.75em .8rem; + scroll-snap-align:start; + transition:color .25s,background-color .25s +} +@media screen and (min-width:60em){ + .md-search-result__more summary{ + padding-left:2.2rem + } + [dir=rtl] .md-search-result__more summary{ + padding-right:2.2rem + } +} +.md-search-result__more summary:-webkit-any(:focus,:hover){ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +.md-search-result__more summary:-moz-any(:focus,:hover){ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +.md-search-result__more summary:is(:focus,:hover){ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +.md-search-result__more summary::marker{ + display:none +} +.md-search-result__more summary::-webkit-details-marker{ + display:none +} +.md-search-result__more summary~*>*{ + opacity:.65 +} +.md-search-result__article{ + overflow:hidden; + padding:0 .8rem; + position:relative +} +@media screen and (min-width:60em){ + .md-search-result__article{ + padding-left:2.2rem + } + [dir=rtl] .md-search-result__article{ + padding-right:2.2rem + } +} +.md-search-result__article--document .md-search-result__title{ + font-size:.8rem; + font-weight:400; + line-height:1.4; + margin:.55rem 0 +} +.md-search-result__icon{ + left:0 +} +[dir=rtl] .md-search-result__icon{ + right:0 +} +.md-search-result__icon{ + color:var(--md-default-fg-color--light); + height:1.2rem; + margin:.5rem; + position:absolute; + width:1.2rem +} +@media screen and (max-width:59.9375em){ + .md-search-result__icon{ + display:none + } +} +.md-search-result__icon:after{ + background-color:currentcolor; + content:""; + display:inline-block; + height:100%; + -webkit-mask-image:var(--md-search-result-icon); + mask-image:var(--md-search-result-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + width:100% +} +[dir=rtl] .md-search-result__icon:after{ + transform:scaleX(-1) +} +.md-search-result__title{ + font-size:.64rem; + font-weight:700; + line-height:1.6; + margin:.5em 0 +} +.md-search-result__teaser{ + -webkit-box-orient:vertical; + -webkit-line-clamp:2; + color:var(--md-default-fg-color--light); + display:-webkit-box; + font-size:.64rem; + line-height:1.6; + margin:.5em 0; + max-height:2rem; + overflow:hidden; + text-overflow:ellipsis +} +@media screen and (max-width:44.9375em){ + .md-search-result__teaser{ + -webkit-line-clamp:3; + max-height:3rem + } +} +@media screen and (min-width:60em) and (max-width:76.1875em){ + .md-search-result__teaser{ + -webkit-line-clamp:3; + max-height:3rem + } +} +.md-search-result__teaser mark{ + background-color:initial; + text-decoration:underline +} +.md-search-result__terms{ + font-size:.64rem; + font-style:italic; + margin:.5em 0 +} +.md-search-result mark{ + background-color:initial; + color:var(--md-accent-fg-color) +} +.md-select{ + position:relative; + z-index:1 +} +.md-select__inner{ + background-color:var(--md-default-bg-color); + border-radius:.1rem; + box-shadow:var(--md-shadow-z2); + color:var(--md-default-fg-color); + left:50%; + margin-top:.2rem; + max-height:0; + opacity:0; + position:absolute; + top:calc(100% - .2rem); + transform:translate3d(-50%,.3rem,0); + transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s +} +.md-select:-webkit-any(:focus-within,:hover) .md-select__inner{ + max-height:10rem; + opacity:1; + transform:translate3d(-50%,0,0); + -webkit-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms; + transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms +} +.md-select:-moz-any(:focus-within,:hover) .md-select__inner{ + max-height:10rem; + opacity:1; + transform:translate3d(-50%,0,0); + -moz-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms; + transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms +} +.md-select:is(:focus-within,:hover) .md-select__inner{ + max-height:10rem; + opacity:1; + transform:translate3d(-50%,0,0); + transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms +} +.md-select__inner:after{ + border-bottom:.2rem solid transparent; + border-bottom-color:var(--md-default-bg-color); + border-left:.2rem solid transparent; + border-right:.2rem solid transparent; + border-top:0; + content:""; + height:0; + left:50%; + margin-left:-.2rem; + margin-top:-.2rem; + position:absolute; + top:0; + width:0 +} +.md-select__list{ + border-radius:.1rem; + font-size:.8rem; + list-style-type:none; + margin:0; + max-height:inherit; + overflow:auto; + padding:0 +} +.md-select__item{ + line-height:1.8rem +} +.md-select__link{ + padding-left:.6rem; + padding-right:1.2rem +} +[dir=rtl] .md-select__link{ + padding-left:1.2rem; + padding-right:.6rem +} +.md-select__link{ + cursor:pointer; + display:block; + outline:none; + scroll-snap-align:start; + transition:background-color .25s,color .25s; + width:100% +} +.md-select__link:-webkit-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-select__link:-moz-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-select__link:is(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-select__link:focus{ + background-color:var(--md-default-fg-color--lightest) +} +.md-sidebar{ + align-self:flex-start; + flex-shrink:0; + padding:1.2rem 0; + position:-webkit-sticky; + position:sticky; + top:2.4rem; + width:12.1rem +} +@media screen and (max-width:76.1875em){ + .md-sidebar--primary{ + left:-12.1rem + } + [dir=rtl] .md-sidebar--primary{ + right:-12.1rem + } + .md-sidebar--primary{ + background-color:var(--md-default-bg-color); + display:block; + height:100%; + position:fixed; + top:0; + transform:translateX(0); + transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s; + width:12.1rem; + z-index:5 + } + [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{ + box-shadow:var(--md-shadow-z3); + transform:translateX(12.1rem) + } + [dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{ + transform:translateX(-12.1rem) + } + .md-sidebar--primary .md-sidebar__scrollwrap{ + bottom:0; + left:0; + margin:0; + overflow:hidden; + position:absolute; + right:0; + -ms-scroll-snap-type:none; + scroll-snap-type:none; + top:0 + } +} +@media screen and (min-width:76.25em){ + .md-sidebar{ + height:0 + } + .no-js .md-sidebar{ + height:auto + } + .md-header--lifted~.md-container .md-sidebar{ + top:4.8rem + } +} +.md-sidebar--secondary{ + display:none; + order:2 +} +@media screen and (min-width:60em){ + .md-sidebar--secondary{ + height:0 + } + .no-js .md-sidebar--secondary{ + height:auto + } + .md-sidebar--secondary:not([hidden]){ + display:block + } + .md-sidebar--secondary .md-sidebar__scrollwrap{ + touch-action:pan-y + } +} +.md-sidebar__scrollwrap{ + scrollbar-gutter:stable; + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + margin:0 .2rem; + overflow-y:auto; + scrollbar-color:var(--md-default-fg-color--lighter) transparent; + scrollbar-width:thin +} +.md-sidebar__scrollwrap:hover{ + scrollbar-color:var(--md-accent-fg-color) transparent +} +.md-sidebar__scrollwrap::-webkit-scrollbar{ + height:.2rem; + width:.2rem +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{ + background-color:var(--md-default-fg-color--lighter) +} +.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{ + background-color:var(--md-accent-fg-color) +} +@supports selector(::-webkit-scrollbar){ + .md-sidebar__scrollwrap{ + scrollbar-gutter:auto + } + .md-sidebar__inner{ + padding-right:calc(100% - 11.5rem) + } + [dir=rtl] .md-sidebar__inner{ + padding-left:calc(100% - 11.5rem) + } +} +@media screen and (max-width:76.1875em){ + .md-overlay{ + background-color:rgba(0,0,0,.54); + height:0; + opacity:0; + position:fixed; + top:0; + transition:width 0ms .25s,height 0ms .25s,opacity .25s; + width:0; + z-index:5 + } + [data-md-toggle=drawer]:checked~.md-overlay{ + height:100%; + opacity:1; + transition:width 0ms,height 0ms,opacity .25s; + width:100% + } +} +@keyframes facts{ + 0%{ + height:0 + } + to{ + height:.65rem + } +} +@keyframes fact{ + 0%{ + opacity:0; + transform:translateY(100%) + } + 50%{ + opacity:0 + } + to{ + opacity:1; + transform:translateY(0) + } +} +:root{ + --md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,'); + --md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,'); + --md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,'); + --md-source-version-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-source{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + display:block; + font-size:.65rem; + line-height:1.2; + outline-color:var(--md-accent-fg-color); + transition:opacity .25s; + white-space:nowrap +} +.md-source:hover{ + opacity:.7 +} +.md-source__icon{ + display:inline-block; + height:2.4rem; + vertical-align:middle; + width:2rem +} +.md-source__icon svg{ + margin-left:.6rem +} +[dir=rtl] .md-source__icon svg{ + margin-right:.6rem +} +.md-source__icon svg{ + margin-top:.6rem +} +.md-source__icon+.md-source__repository{ + margin-left:-2rem +} +[dir=rtl] .md-source__icon+.md-source__repository{ + margin-right:-2rem +} +.md-source__icon+.md-source__repository{ + padding-left:2rem +} +[dir=rtl] .md-source__icon+.md-source__repository{ + padding-right:2rem +} +.md-source__repository{ + margin-left:.6rem +} +[dir=rtl] .md-source__repository{ + margin-right:.6rem +} +.md-source__repository{ + display:inline-block; + max-width:calc(100% - 1.2rem); + overflow:hidden; + text-overflow:ellipsis; + vertical-align:middle +} +.md-source__facts{ + display:flex; + font-size:.55rem; + gap:.4rem; + list-style-type:none; + margin:.1rem 0 0; + opacity:.75; + overflow:hidden; + padding:0; + width:100% +} +.md-source__repository--active .md-source__facts{ + animation:facts .25s ease-in +} +.md-source__fact{ + overflow:hidden; + text-overflow:ellipsis +} +.md-source__repository--active .md-source__fact{ + animation:fact .4s ease-out +} +.md-source__fact:before{ + margin-right:.1rem +} +[dir=rtl] .md-source__fact:before{ + margin-left:.1rem +} +.md-source__fact:before{ + background-color:currentcolor; + content:""; + display:inline-block; + height:.6rem; + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + vertical-align:text-top; + width:.6rem +} +.md-source__fact:nth-child(1n+2){ + flex-shrink:0 +} +.md-source__fact--version:before{ + -webkit-mask-image:var(--md-source-version-icon); + mask-image:var(--md-source-version-icon) +} +.md-source__fact--stars:before{ + -webkit-mask-image:var(--md-source-stars-icon); + mask-image:var(--md-source-stars-icon) +} +.md-source__fact--forks:before{ + -webkit-mask-image:var(--md-source-forks-icon); + mask-image:var(--md-source-forks-icon) +} +.md-source__fact--repositories:before{ + -webkit-mask-image:var(--md-source-repositories-icon); + mask-image:var(--md-source-repositories-icon) +} +.md-tabs{ + background-color:var(--md-primary-fg-color); + color:var(--md-primary-bg-color); + display:block; + line-height:1.3; + overflow:auto; + width:100%; + z-index:3 +} +@media screen and (max-width:76.1875em){ + .md-tabs{ + display:none + } +} +.md-tabs[hidden]{ + pointer-events:none +} +.md-tabs__list{ + margin-left:.2rem +} +[dir=rtl] .md-tabs__list{ + margin-right:.2rem +} +.md-tabs__list{ + contain:content; + list-style:none; + margin:0; + padding:0; + white-space:nowrap +} +.md-tabs__item{ + display:inline-block; + height:2.4rem; + padding-left:.6rem; + padding-right:.6rem +} +.md-tabs__link{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + display:block; + font-size:.7rem; + margin-top:.8rem; + opacity:.7; + outline-color:var(--md-accent-fg-color); + outline-offset:.2rem; + transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s +} +.md-tabs__link--active,.md-tabs__link:-webkit-any(:focus,:hover){ + color:inherit; + opacity:1 +} +.md-tabs__link--active,.md-tabs__link:-moz-any(:focus,:hover){ + color:inherit; + opacity:1 +} +.md-tabs__link--active,.md-tabs__link:is(:focus,:hover){ + color:inherit; + opacity:1 +} +.md-tabs__item:nth-child(2) .md-tabs__link{ + transition-delay:20ms +} +.md-tabs__item:nth-child(3) .md-tabs__link{ + transition-delay:40ms +} +.md-tabs__item:nth-child(4) .md-tabs__link{ + transition-delay:60ms +} +.md-tabs__item:nth-child(5) .md-tabs__link{ + transition-delay:80ms +} +.md-tabs__item:nth-child(6) .md-tabs__link{ + transition-delay:.1s +} +.md-tabs__item:nth-child(7) .md-tabs__link{ + transition-delay:.12s +} +.md-tabs__item:nth-child(8) .md-tabs__link{ + transition-delay:.14s +} +.md-tabs__item:nth-child(9) .md-tabs__link{ + transition-delay:.16s +} +.md-tabs__item:nth-child(10) .md-tabs__link{ + transition-delay:.18s +} +.md-tabs__item:nth-child(11) .md-tabs__link{ + transition-delay:.2s +} +.md-tabs__item:nth-child(12) .md-tabs__link{ + transition-delay:.22s +} +.md-tabs__item:nth-child(13) .md-tabs__link{ + transition-delay:.24s +} +.md-tabs__item:nth-child(14) .md-tabs__link{ + transition-delay:.26s +} +.md-tabs__item:nth-child(15) .md-tabs__link{ + transition-delay:.28s +} +.md-tabs__item:nth-child(16) .md-tabs__link{ + transition-delay:.3s +} +.md-tabs[hidden] .md-tabs__link{ + opacity:0; + transform:translateY(50%); + transition:transform 0ms .1s,opacity .1s +} +:root{ + --md-tag-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset .md-tags{ + margin-bottom:.75em; + margin-top:-.125em +} +.md-typeset .md-tag{ + margin-right:.5em +} +[dir=rtl] .md-typeset .md-tag{ + margin-left:.5em +} +.md-typeset .md-tag{ + background:var(--md-default-fg-color--lightest); + border-radius:2.4rem; + display:inline-block; + font-size:.64rem; + font-weight:700; + letter-spacing:normal; + line-height:1.6; + margin-bottom:.5em; + padding:.3125em .9375em; + vertical-align:middle +} +.md-typeset .md-tag[href]{ + -webkit-tap-highlight-color:transparent; + color:inherit; + outline:none; + transition:color 125ms,background-color 125ms +} +.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{ + background-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +[id]>.md-typeset .md-tag{ + vertical-align:text-top +} +.md-typeset .md-tag-icon:before{ + background-color:var(--md-default-fg-color--lighter); + content:""; + display:inline-block; + height:1.2em; + margin-right:.4em; + -webkit-mask-image:var(--md-tag-icon); + mask-image:var(--md-tag-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + transition:background-color 125ms; + vertical-align:text-bottom; + width:1.2em +} +.md-typeset .md-tag-icon:-webkit-any(a:focus,a:hover):before{ + background-color:var(--md-accent-bg-color) +} +.md-typeset .md-tag-icon:-moz-any(a:focus,a:hover):before{ + background-color:var(--md-accent-bg-color) +} +.md-typeset .md-tag-icon:is(a:focus,a:hover):before{ + background-color:var(--md-accent-bg-color) +} +@keyframes pulse{ + 0%{ + box-shadow:0 0 0 0 var(--md-default-fg-color--lightest); + transform:scale(.95) + } + 75%{ + box-shadow:0 0 0 .625em transparent; + transform:scale(1) + } + to{ + box-shadow:0 0 0 0 transparent; + transform:scale(.95) + } +} +:root{ + --md-tooltip-width:20rem +} +.md-tooltip{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + background-color:var(--md-default-bg-color); + border-radius:.1rem; + box-shadow:var(--md-shadow-z2); + color:var(--md-default-fg-color); + font-family:var(--md-text-font-family); + left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem); + max-width:calc(100vw - 1.6rem); + opacity:0; + position:absolute; + top:var(--md-tooltip-y); + transform:translateY(-.4rem); + transition:transform 0ms .25s,opacity .25s,z-index .25s; + width:var(--md-tooltip-width); + z-index:0 +} +.md-tooltip--active{ + opacity:1; + transform:translateY(0); + transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms; + z-index:2 +} +:-webkit-any(.focus-visible>.md-tooltip,.md-tooltip:target){ + outline:var(--md-accent-fg-color) auto +} +:-moz-any(.focus-visible>.md-tooltip,.md-tooltip:target){ + outline:var(--md-accent-fg-color) auto +} +:is(.focus-visible>.md-tooltip,.md-tooltip:target){ + outline:var(--md-accent-fg-color) auto +} +.md-tooltip__inner{ + font-size:.64rem; + padding:.8rem +} +.md-tooltip__inner.md-typeset>:first-child{ + margin-top:0 +} +.md-tooltip__inner.md-typeset>:last-child{ + margin-bottom:0 +} +.md-annotation{ + font-weight:400; + outline:none; + white-space:normal +} +[dir=rtl] .md-annotation{ + direction:rtl +} +.md-annotation:not([hidden]){ + display:inline-block; + line-height:1.325 +} +.md-annotation__index{ + cursor:pointer; + font-family:var(--md-code-font-family); + font-size:.85em; + margin:0 1ch; + outline:none; + position:relative; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + z-index:0 +} +.md-annotation .md-annotation__index{ + color:#fff; + transition:z-index .25s +} +.md-annotation .md-annotation__index:-webkit-any(:focus,:hover){ + color:#fff +} +.md-annotation .md-annotation__index:-moz-any(:focus,:hover){ + color:#fff +} +.md-annotation .md-annotation__index:is(:focus,:hover){ + color:#fff +} +.md-annotation__index:after{ + background-color:var(--md-default-fg-color--lighter); + border-radius:2ch; + content:""; + height:2.2ch; + left:-.125em; + margin:0 -.4ch; + padding:0 .4ch; + position:absolute; + top:0; + transition:color .25s,background-color .25s; + width:calc(100% + 1.2ch); + width:max(2.2ch,100% + 1.2ch); + z-index:-1 +} +@media not all and (prefers-reduced-motion){ + [data-md-visible]>.md-annotation__index:after{ + animation:pulse 2s infinite + } +} +.md-tooltip--active+.md-annotation__index:after{ + animation:none; + transition:color .25s,background-color .25s +} +code .md-annotation__index{ + font-family:var(--md-code-font-family); + font-size:inherit +} +:-webkit-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index){ + color:var(--md-accent-bg-color) +} +:-moz-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index){ + color:var(--md-accent-bg-color) +} +:is(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index){ + color:var(--md-accent-bg-color) +} +:-webkit-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index):after{ + background-color:var(--md-accent-fg-color) +} +:-moz-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index):after{ + background-color:var(--md-accent-fg-color) +} +:is(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index):after{ + background-color:var(--md-accent-fg-color) +} +.md-tooltip--active+.md-annotation__index{ + animation:none; + transition:none; + z-index:2 +} +.md-annotation__index [data-md-annotation-id]{ + display:inline-block; + line-height:90% +} +.md-annotation__index [data-md-annotation-id]:before{ + content:attr(data-md-annotation-id); + display:inline-block; + padding-bottom:.1em; + transform:scale(1.15); + transition:transform .4s cubic-bezier(.1,.7,.1,1); + vertical-align:.065em +} +@media not print{ + .md-annotation__index [data-md-annotation-id]:before{ + content:"+" + } + :focus-within>.md-annotation__index [data-md-annotation-id]:before{ + transform:scale(1.25) rotate(45deg) + } +} +.md-top{ + margin-left:50% +} +[dir=rtl] .md-top{ + margin-right:50% +} +.md-top{ + background-color:var(--md-default-bg-color); + border-radius:1.6rem; + box-shadow:var(--md-shadow-z2); + color:var(--md-default-fg-color--light); + display:block; + font-size:.7rem; + outline:none; + padding:.4rem .8rem; + position:fixed; + top:3.2rem; + transform:translate(-50%); + transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms; + z-index:2 +} +[dir=rtl] .md-top{ + transform:translate(50%) +} +.md-top[hidden]{ + opacity:0; + pointer-events:none; + transform:translate(-50%,.2rem); + transition-duration:0ms +} +[dir=rtl] .md-top[hidden]{ + transform:translate(50%,.2rem) +} +.md-top:-webkit-any(:focus,:hover){ + background-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +.md-top:-moz-any(:focus,:hover){ + background-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +.md-top:is(:focus,:hover){ + background-color:var(--md-accent-fg-color); + color:var(--md-accent-bg-color) +} +.md-top svg{ + display:inline-block; + vertical-align:-.5em +} +@keyframes hoverfix{ + 0%{ + pointer-events:none + } +} +:root{ + --md-version-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-version{ + flex-shrink:0; + font-size:.8rem; + height:2.4rem +} +.md-version__current{ + margin-left:1.4rem; + margin-right:.4rem +} +[dir=rtl] .md-version__current{ + margin-left:.4rem; + margin-right:1.4rem +} +.md-version__current{ + color:inherit; + cursor:pointer; + outline:none; + position:relative; + top:.05rem +} +.md-version__current:after{ + margin-left:.4rem +} +[dir=rtl] .md-version__current:after{ + margin-right:.4rem +} +.md-version__current:after{ + background-color:currentcolor; + content:""; + display:inline-block; + height:.6rem; + -webkit-mask-image:var(--md-version-icon); + mask-image:var(--md-version-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + width:.4rem +} +.md-version__list{ + background-color:var(--md-default-bg-color); + border-radius:.1rem; + box-shadow:var(--md-shadow-z2); + color:var(--md-default-fg-color); + list-style-type:none; + margin:.2rem .8rem; + max-height:0; + opacity:0; + overflow:auto; + padding:0; + position:absolute; + -ms-scroll-snap-type:y mandatory; + scroll-snap-type:y mandatory; + top:.15rem; + transition:max-height 0ms .5s,opacity .25s .25s; + z-index:3 +} +.md-version:-webkit-any(:focus-within,:hover) .md-version__list{ + max-height:10rem; + opacity:1; + -webkit-transition:max-height 0ms,opacity .25s; + transition:max-height 0ms,opacity .25s +} +.md-version:-moz-any(:focus-within,:hover) .md-version__list{ + max-height:10rem; + opacity:1; + -moz-transition:max-height 0ms,opacity .25s; + transition:max-height 0ms,opacity .25s +} +.md-version:is(:focus-within,:hover) .md-version__list{ + max-height:10rem; + opacity:1; + transition:max-height 0ms,opacity .25s +} +@media (pointer:coarse){ + .md-version:hover .md-version__list{ + animation:hoverfix .25s forwards + } + .md-version:focus-within .md-version__list{ + animation:none + } +} +.md-version__item{ + line-height:1.8rem +} +.md-version__link{ + padding-left:.6rem; + padding-right:1.2rem +} +[dir=rtl] .md-version__link{ + padding-left:1.2rem; + padding-right:.6rem +} +.md-version__link{ + cursor:pointer; + display:block; + outline:none; + scroll-snap-align:start; + transition:color .25s,background-color .25s; + white-space:nowrap; + width:100% +} +.md-version__link:-webkit-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-version__link:-moz-any(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-version__link:is(:focus,:hover){ + color:var(--md-accent-fg-color) +} +.md-version__link:focus{ + background-color:var(--md-default-fg-color--lightest) +} +:root{ + --md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,'); + --md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset .admonition,.md-typeset details{ + background-color:var(--md-admonition-bg-color); + border:.05rem solid #448aff; + border-radius:.2rem; + box-shadow:var(--md-shadow-z1); + color:var(--md-admonition-fg-color); + display:flow-root; + margin:1.5625em 0; + padding:0 .6rem; + page-break-inside:avoid +} +.md-typeset .admonition>*,.md-typeset details>*{ + box-sizing:border-box +} +.md-typeset .admonition :-webkit-any(.admonition,details),.md-typeset details :-webkit-any(.admonition,details){ + margin-bottom:1em; + margin-top:1em +} +.md-typeset .admonition :-moz-any(.admonition,details),.md-typeset details :-moz-any(.admonition,details){ + margin-bottom:1em; + margin-top:1em +} +.md-typeset .admonition :is(.admonition,details),.md-typeset details :is(.admonition,details){ + margin-bottom:1em; + margin-top:1em +} +.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{ + margin:1em -.6rem +} +.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{ + padding:0 .6rem +} +.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{ + margin-top:0 +} +html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{ + margin-bottom:.6rem +} +.md-typeset .admonition-title,.md-typeset summary{ + padding-left:2rem; + padding-right:.6rem +} +[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{ + padding-left:.6rem; + padding-right:2rem +} +.md-typeset .admonition-title,.md-typeset summary{ + border-left-width:.2rem +} +[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{ + border-right-width:.2rem +} +.md-typeset .admonition-title,.md-typeset summary{ + border-top-left-radius:.1rem +} +.md-typeset .admonition-title,.md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{ + border-top-right-radius:.1rem +} +[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{ + border-top-left-radius:.1rem +} +.md-typeset .admonition-title,.md-typeset summary{ + background-color:rgba(68,138,255,.1); + border:none; + font-weight:700; + margin:0 -.6rem; + padding-bottom:.4rem; + padding-top:.4rem; + position:relative +} +html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{ + margin-bottom:0 +} +.md-typeset .admonition-title:before,.md-typeset summary:before{ + left:.6rem +} +[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{ + right:.6rem +} +.md-typeset .admonition-title:before,.md-typeset summary:before{ + background-color:#448aff; + content:""; + height:1rem; + -webkit-mask-image:var(--md-admonition-icon--note); + mask-image:var(--md-admonition-icon--note); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + position:absolute; + top:.625em; + width:1rem +} +.md-typeset .admonition-title code,.md-typeset summary code{ + box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest) +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.note){ + border-color:#448aff +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.note){ + border-color:#448aff +} +.md-typeset :is(.admonition,details):is(.note){ + border-color:#448aff +} +.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(68,138,255,.1) +} +.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary){ + background-color:rgba(68,138,255,.1) +} +.md-typeset :is(.note)>:is(.admonition-title,summary){ + background-color:rgba(68,138,255,.1) +} +.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):before{ + background-color:#448aff; + -webkit-mask-image:var(--md-admonition-icon--note); + mask-image:var(--md-admonition-icon--note) +} +.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):before{ + background-color:#448aff; + mask-image:var(--md-admonition-icon--note) +} +.md-typeset :is(.note)>:is(.admonition-title,summary):before{ + background-color:#448aff; + -webkit-mask-image:var(--md-admonition-icon--note); + mask-image:var(--md-admonition-icon--note) +} +.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):after{ + color:#448aff +} +.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):after{ + color:#448aff +} +.md-typeset :is(.note)>:is(.admonition-title,summary):after{ + color:#448aff +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.abstract,.summary,.tldr){ + border-color:#00b0ff +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.abstract,.summary,.tldr){ + border-color:#00b0ff +} +.md-typeset :is(.admonition,details):is(.abstract,.summary,.tldr){ + border-color:#00b0ff +} +.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(0,176,255,.1) +} +.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary){ + background-color:rgba(0,176,255,.1) +} +.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){ + background-color:rgba(0,176,255,.1) +} +.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):before{ + background-color:#00b0ff; + -webkit-mask-image:var(--md-admonition-icon--abstract); + mask-image:var(--md-admonition-icon--abstract) +} +.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):before{ + background-color:#00b0ff; + mask-image:var(--md-admonition-icon--abstract) +} +.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{ + background-color:#00b0ff; + -webkit-mask-image:var(--md-admonition-icon--abstract); + mask-image:var(--md-admonition-icon--abstract) +} +.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):after{ + color:#00b0ff +} +.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):after{ + color:#00b0ff +} +.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):after{ + color:#00b0ff +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.info,.todo){ + border-color:#00b8d4 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.info,.todo){ + border-color:#00b8d4 +} +.md-typeset :is(.admonition,details):is(.info,.todo){ + border-color:#00b8d4 +} +.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(0,184,212,.1) +} +.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary){ + background-color:rgba(0,184,212,.1) +} +.md-typeset :is(.info,.todo)>:is(.admonition-title,summary){ + background-color:rgba(0,184,212,.1) +} +.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):before{ + background-color:#00b8d4; + -webkit-mask-image:var(--md-admonition-icon--info); + mask-image:var(--md-admonition-icon--info) +} +.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):before{ + background-color:#00b8d4; + mask-image:var(--md-admonition-icon--info) +} +.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):before{ + background-color:#00b8d4; + -webkit-mask-image:var(--md-admonition-icon--info); + mask-image:var(--md-admonition-icon--info) +} +.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):after{ + color:#00b8d4 +} +.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):after{ + color:#00b8d4 +} +.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):after{ + color:#00b8d4 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.tip,.hint,.important){ + border-color:#00bfa5 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.tip,.hint,.important){ + border-color:#00bfa5 +} +.md-typeset :is(.admonition,details):is(.tip,.hint,.important){ + border-color:#00bfa5 +} +.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(0,191,165,.1) +} +.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary){ + background-color:rgba(0,191,165,.1) +} +.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary){ + background-color:rgba(0,191,165,.1) +} +.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):before{ + background-color:#00bfa5; + -webkit-mask-image:var(--md-admonition-icon--tip); + mask-image:var(--md-admonition-icon--tip) +} +.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):before{ + background-color:#00bfa5; + mask-image:var(--md-admonition-icon--tip) +} +.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):before{ + background-color:#00bfa5; + -webkit-mask-image:var(--md-admonition-icon--tip); + mask-image:var(--md-admonition-icon--tip) +} +.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):after{ + color:#00bfa5 +} +.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):after{ + color:#00bfa5 +} +.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):after{ + color:#00bfa5 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.success,.check,.done){ + border-color:#00c853 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.success,.check,.done){ + border-color:#00c853 +} +.md-typeset :is(.admonition,details):is(.success,.check,.done){ + border-color:#00c853 +} +.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(0,200,83,.1) +} +.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary){ + background-color:rgba(0,200,83,.1) +} +.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary){ + background-color:rgba(0,200,83,.1) +} +.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):before{ + background-color:#00c853; + -webkit-mask-image:var(--md-admonition-icon--success); + mask-image:var(--md-admonition-icon--success) +} +.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):before{ + background-color:#00c853; + mask-image:var(--md-admonition-icon--success) +} +.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):before{ + background-color:#00c853; + -webkit-mask-image:var(--md-admonition-icon--success); + mask-image:var(--md-admonition-icon--success) +} +.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):after{ + color:#00c853 +} +.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):after{ + color:#00c853 +} +.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):after{ + color:#00c853 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.question,.help,.faq){ + border-color:#64dd17 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.question,.help,.faq){ + border-color:#64dd17 +} +.md-typeset :is(.admonition,details):is(.question,.help,.faq){ + border-color:#64dd17 +} +.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(100,221,23,.1) +} +.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary){ + background-color:rgba(100,221,23,.1) +} +.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary){ + background-color:rgba(100,221,23,.1) +} +.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):before{ + background-color:#64dd17; + -webkit-mask-image:var(--md-admonition-icon--question); + mask-image:var(--md-admonition-icon--question) +} +.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):before{ + background-color:#64dd17; + mask-image:var(--md-admonition-icon--question) +} +.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):before{ + background-color:#64dd17; + -webkit-mask-image:var(--md-admonition-icon--question); + mask-image:var(--md-admonition-icon--question) +} +.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):after{ + color:#64dd17 +} +.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):after{ + color:#64dd17 +} +.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):after{ + color:#64dd17 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.warning,.caution,.attention){ + border-color:#ff9100 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.warning,.caution,.attention){ + border-color:#ff9100 +} +.md-typeset :is(.admonition,details):is(.warning,.caution,.attention){ + border-color:#ff9100 +} +.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(255,145,0,.1) +} +.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary){ + background-color:rgba(255,145,0,.1) +} +.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary){ + background-color:rgba(255,145,0,.1) +} +.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):before{ + background-color:#ff9100; + -webkit-mask-image:var(--md-admonition-icon--warning); + mask-image:var(--md-admonition-icon--warning) +} +.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):before{ + background-color:#ff9100; + mask-image:var(--md-admonition-icon--warning) +} +.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{ + background-color:#ff9100; + -webkit-mask-image:var(--md-admonition-icon--warning); + mask-image:var(--md-admonition-icon--warning) +} +.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):after{ + color:#ff9100 +} +.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):after{ + color:#ff9100 +} +.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):after{ + color:#ff9100 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.failure,.fail,.missing){ + border-color:#ff5252 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.failure,.fail,.missing){ + border-color:#ff5252 +} +.md-typeset :is(.admonition,details):is(.failure,.fail,.missing){ + border-color:#ff5252 +} +.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(255,82,82,.1) +} +.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary){ + background-color:rgba(255,82,82,.1) +} +.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary){ + background-color:rgba(255,82,82,.1) +} +.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):before{ + background-color:#ff5252; + -webkit-mask-image:var(--md-admonition-icon--failure); + mask-image:var(--md-admonition-icon--failure) +} +.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):before{ + background-color:#ff5252; + mask-image:var(--md-admonition-icon--failure) +} +.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{ + background-color:#ff5252; + -webkit-mask-image:var(--md-admonition-icon--failure); + mask-image:var(--md-admonition-icon--failure) +} +.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):after{ + color:#ff5252 +} +.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):after{ + color:#ff5252 +} +.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):after{ + color:#ff5252 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.danger,.error){ + border-color:#ff1744 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.danger,.error){ + border-color:#ff1744 +} +.md-typeset :is(.admonition,details):is(.danger,.error){ + border-color:#ff1744 +} +.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(255,23,68,.1) +} +.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary){ + background-color:rgba(255,23,68,.1) +} +.md-typeset :is(.danger,.error)>:is(.admonition-title,summary){ + background-color:rgba(255,23,68,.1) +} +.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):before{ + background-color:#ff1744; + -webkit-mask-image:var(--md-admonition-icon--danger); + mask-image:var(--md-admonition-icon--danger) +} +.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):before{ + background-color:#ff1744; + mask-image:var(--md-admonition-icon--danger) +} +.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):before{ + background-color:#ff1744; + -webkit-mask-image:var(--md-admonition-icon--danger); + mask-image:var(--md-admonition-icon--danger) +} +.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):after{ + color:#ff1744 +} +.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):after{ + color:#ff1744 +} +.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):after{ + color:#ff1744 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.bug){ + border-color:#f50057 +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.bug){ + border-color:#f50057 +} +.md-typeset :is(.admonition,details):is(.bug){ + border-color:#f50057 +} +.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(245,0,87,.1) +} +.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary){ + background-color:rgba(245,0,87,.1) +} +.md-typeset :is(.bug)>:is(.admonition-title,summary){ + background-color:rgba(245,0,87,.1) +} +.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):before{ + background-color:#f50057; + -webkit-mask-image:var(--md-admonition-icon--bug); + mask-image:var(--md-admonition-icon--bug) +} +.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):before{ + background-color:#f50057; + mask-image:var(--md-admonition-icon--bug) +} +.md-typeset :is(.bug)>:is(.admonition-title,summary):before{ + background-color:#f50057; + -webkit-mask-image:var(--md-admonition-icon--bug); + mask-image:var(--md-admonition-icon--bug) +} +.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):after{ + color:#f50057 +} +.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):after{ + color:#f50057 +} +.md-typeset :is(.bug)>:is(.admonition-title,summary):after{ + color:#f50057 +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.example){ + border-color:#7c4dff +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.example){ + border-color:#7c4dff +} +.md-typeset :is(.admonition,details):is(.example){ + border-color:#7c4dff +} +.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary){ + background-color:rgba(124,77,255,.1) +} +.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary){ + background-color:rgba(124,77,255,.1) +} +.md-typeset :is(.example)>:is(.admonition-title,summary){ + background-color:rgba(124,77,255,.1) +} +.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):before{ + background-color:#7c4dff; + -webkit-mask-image:var(--md-admonition-icon--example); + mask-image:var(--md-admonition-icon--example) +} +.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):before{ + background-color:#7c4dff; + mask-image:var(--md-admonition-icon--example) +} +.md-typeset :is(.example)>:is(.admonition-title,summary):before{ + background-color:#7c4dff; + -webkit-mask-image:var(--md-admonition-icon--example); + mask-image:var(--md-admonition-icon--example) +} +.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):after{ + color:#7c4dff +} +.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):after{ + color:#7c4dff +} +.md-typeset :is(.example)>:is(.admonition-title,summary):after{ + color:#7c4dff +} +.md-typeset :-webkit-any(.admonition,details):-webkit-any(.quote,.cite){ + border-color:#9e9e9e +} +.md-typeset :-moz-any(.admonition,details):-moz-any(.quote,.cite){ + border-color:#9e9e9e +} +.md-typeset :is(.admonition,details):is(.quote,.cite){ + border-color:#9e9e9e +} +.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary){ + background-color:hsla(0,0%,62%,.1) +} +.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary){ + background-color:hsla(0,0%,62%,.1) +} +.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary){ + background-color:hsla(0,0%,62%,.1) +} +.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):before{ + background-color:#9e9e9e; + -webkit-mask-image:var(--md-admonition-icon--quote); + mask-image:var(--md-admonition-icon--quote) +} +.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):before{ + background-color:#9e9e9e; + mask-image:var(--md-admonition-icon--quote) +} +.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):before{ + background-color:#9e9e9e; + -webkit-mask-image:var(--md-admonition-icon--quote); + mask-image:var(--md-admonition-icon--quote) +} +.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):after{ + color:#9e9e9e +} +.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):after{ + color:#9e9e9e +} +.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):after{ + color:#9e9e9e +} +:root{ + --md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset .footnote{ + color:var(--md-default-fg-color--light); +} +.md-typeset .footnote>ol{ + margin-left:0 +} +[dir=rtl] .md-typeset .footnote>ol{ + margin-right:0 +} +.md-typeset .footnote>ol>li{ + transition:color 125ms +} +.md-typeset .footnote>ol>li:target{ + color:var(--md-default-fg-color) +} +.md-typeset .footnote>ol>li:focus-within .footnote-backref{ + opacity:1; + transform:translateX(0); + transition:none +} +.md-typeset .footnote>ol>li:-webkit-any(:hover,:target) .footnote-backref{ + opacity:1; + transform:translateX(0) +} +.md-typeset .footnote>ol>li:-moz-any(:hover,:target) .footnote-backref{ + opacity:1; + transform:translateX(0) +} +.md-typeset .footnote>ol>li:is(:hover,:target) .footnote-backref{ + opacity:1; + transform:translateX(0) +} +.md-typeset .footnote>ol>li>:first-child{ + margin-top:0 +} +.md-typeset .footnote-ref{ + font-size:.75em; + font-weight:700 +} +html .md-typeset .footnote-ref{ + outline-offset:.1rem +} +.md-typeset [id^="fnref:"]:target>.footnote-ref{ + outline:auto +} +.md-typeset .footnote-backref{ + color:var(--md-typeset-a-color); + display:inline-block; + font-size:0; + opacity:0; + transform:translateX(.25rem); + transition:color .25s,transform .25s .25s,opacity 125ms .25s; + vertical-align:text-bottom +} +@media print{ + .md-typeset .footnote-backref{ + color:var(--md-typeset-a-color); + opacity:1; + transform:translateX(0) + } +} +[dir=rtl] .md-typeset .footnote-backref{ + transform:translateX(-.25rem) +} +.md-typeset .footnote-backref:hover{ + color:var(--md-accent-fg-color) +} +.md-typeset .footnote-backref:before{ + background-color:currentcolor; + content:""; + display:inline-block; + height:.8rem; + -webkit-mask-image:var(--md-footnotes-icon); + mask-image:var(--md-footnotes-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + width:.8rem +} +[dir=rtl] .md-typeset .footnote-backref:before svg{ + transform:scaleX(-1) +} +.md-typeset .headerlink{ + margin-left:.5rem +} +[dir=rtl] .md-typeset .headerlink{ + margin-right:.5rem +} +.md-typeset .headerlink{ + color:var(--md-default-fg-color--lighter); + display:inline-block; + opacity:0; + transition:color .25s,opacity 125ms +} +@media print{ + .md-typeset .headerlink{ + display:none + } +} +.md-typeset .headerlink:focus,.md-typeset :-webkit-any(:hover,:target)>.headerlink{ + opacity:1; + -webkit-transition:color .25s,opacity 125ms; + transition:color .25s,opacity 125ms +} +.md-typeset .headerlink:focus,.md-typeset :-moz-any(:hover,:target)>.headerlink{ + opacity:1; + -moz-transition:color .25s,opacity 125ms; + transition:color .25s,opacity 125ms +} +.md-typeset .headerlink:focus,.md-typeset :is(:hover,:target)>.headerlink{ + opacity:1; + transition:color .25s,opacity 125ms +} +.md-typeset .headerlink:-webkit-any(:focus,:hover),.md-typeset :target>.headerlink{ + color:var(--md-accent-fg-color) +} +.md-typeset .headerlink:-moz-any(:focus,:hover),.md-typeset :target>.headerlink{ + color:var(--md-accent-fg-color) +} +.md-typeset .headerlink:is(:focus,:hover),.md-typeset :target>.headerlink{ + color:var(--md-accent-fg-color) +} +.md-typeset :target{ + --md-scroll-margin:3.6rem; + --md-scroll-offset:0rem; + scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset)) +} +@media screen and (min-width:76.25em){ + .md-header--lifted~.md-container .md-typeset :target{ + --md-scroll-margin:6rem + } +} +.md-typeset :-webkit-any(h1,h2,h3):target{ + --md-scroll-offset:0.2rem +} +.md-typeset :-moz-any(h1,h2,h3):target{ + --md-scroll-offset:0.2rem +} +.md-typeset :is(h1,h2,h3):target{ + --md-scroll-offset:0.2rem +} +.md-typeset h4:target{ + --md-scroll-offset:0.15rem +} +.md-typeset div.arithmatex{ + overflow:auto +} +@media screen and (max-width:44.9375em){ + .md-typeset div.arithmatex{ + margin:0 -.8rem + } +} +.md-typeset div.arithmatex>*{ + margin-left:auto!important; + margin-right:auto!important; + padding:0 .8rem; + touch-action:auto; + width:-webkit-min-content; + width:-moz-min-content; + width:min-content +} +.md-typeset div.arithmatex>* mjx-container{ + margin:0!important +} +.md-typeset :-webkit-any(del,ins,.comment).critic{ + -webkit-box-decoration-break:clone; + box-decoration-break:clone +} +.md-typeset :-moz-any(del,ins,.comment).critic{ + box-decoration-break:clone +} +.md-typeset :is(del,ins,.comment).critic{ + -webkit-box-decoration-break:clone; + box-decoration-break:clone +} +.md-typeset del.critic{ + background-color:var(--md-typeset-del-color) +} +.md-typeset ins.critic{ + background-color:var(--md-typeset-ins-color) +} +.md-typeset .critic.comment{ + color:var(--md-code-hl-comment-color) +} +.md-typeset .critic.block{ + box-shadow:none; + display:block; + margin:1em 0; + overflow:auto; + padding-left:.8rem; + padding-right:.8rem +} +.md-typeset .critic.block>:first-child{ + margin-top:.5em +} +.md-typeset .critic.block>:last-child{ + margin-bottom:.5em +} +:root{ + --md-details-icon:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset details{ + display:flow-root; + overflow:visible; + padding-top:0 +} +.md-typeset details[open]>summary:after{ + transform:rotate(90deg) +} +.md-typeset details:not([open]){ + box-shadow:none; + padding-bottom:0 +} +.md-typeset details:not([open])>summary{ + border-radius:.1rem +} +.md-typeset summary{ + padding-right:1.8rem +} +[dir=rtl] .md-typeset summary{ + padding-left:1.8rem +} +.md-typeset summary{ + border-top-left-radius:.1rem +} +.md-typeset summary,[dir=rtl] .md-typeset summary{ + border-top-right-radius:.1rem +} +[dir=rtl] .md-typeset summary{ + border-top-left-radius:.1rem +} +.md-typeset summary{ + cursor:pointer; + display:block; + min-height:1rem +} +.md-typeset summary.focus-visible{ + outline-color:var(--md-accent-fg-color); + outline-offset:.2rem +} +.md-typeset summary:not(.focus-visible){ + -webkit-tap-highlight-color:transparent; + outline:none +} +.md-typeset summary:after{ + right:.4rem +} +[dir=rtl] .md-typeset summary:after{ + left:.4rem +} +.md-typeset summary:after{ + background-color:currentcolor; + content:""; + height:1rem; + -webkit-mask-image:var(--md-details-icon); + mask-image:var(--md-details-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + position:absolute; + top:.625em; + transform:rotate(0deg); + transition:transform .25s; + width:1rem +} +[dir=rtl] .md-typeset summary:after{ + transform:rotate(180deg) +} +.md-typeset summary::marker{ + display:none +} +.md-typeset summary::-webkit-details-marker{ + display:none +} +.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji){ + display:inline-flex; + height:1.125em; + vertical-align:text-top +} +.md-typeset :-moz-any(.emojione,.twemoji,.gemoji){ + display:inline-flex; + height:1.125em; + vertical-align:text-top +} +.md-typeset :is(.emojione,.twemoji,.gemoji){ + display:inline-flex; + height:1.125em; + vertical-align:text-top +} +.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji) svg{ + fill:currentcolor; + max-height:100%; + width:1.125em +} +.md-typeset :-moz-any(.emojione,.twemoji,.gemoji) svg{ + fill:currentcolor; + max-height:100%; + width:1.125em +} +.md-typeset :is(.emojione,.twemoji,.gemoji) svg{ + fill:currentcolor; + max-height:100%; + width:1.125em +} +.highlight :-webkit-any(.o,.ow){ + color:var(--md-code-hl-operator-color) +} +.highlight :-moz-any(.o,.ow){ + color:var(--md-code-hl-operator-color) +} +.highlight :is(.o,.ow){ + color:var(--md-code-hl-operator-color) +} +.highlight .p{ + color:var(--md-code-hl-punctuation-color) +} +.highlight :-webkit-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){ + color:var(--md-code-hl-string-color) +} +.highlight :-moz-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){ + color:var(--md-code-hl-string-color) +} +.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){ + color:var(--md-code-hl-string-color) +} +.highlight :-webkit-any(.cp,.se,.sh,.sr,.sx){ + color:var(--md-code-hl-special-color) +} +.highlight :-moz-any(.cp,.se,.sh,.sr,.sx){ + color:var(--md-code-hl-special-color) +} +.highlight :is(.cp,.se,.sh,.sr,.sx){ + color:var(--md-code-hl-special-color) +} +.highlight :-webkit-any(.m,.mb,.mf,.mh,.mi,.il,.mo){ + color:var(--md-code-hl-number-color) +} +.highlight :-moz-any(.m,.mb,.mf,.mh,.mi,.il,.mo){ + color:var(--md-code-hl-number-color) +} +.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){ + color:var(--md-code-hl-number-color) +} +.highlight :-webkit-any(.k,.kd,.kn,.kp,.kr,.kt){ + color:var(--md-code-hl-keyword-color) +} +.highlight :-moz-any(.k,.kd,.kn,.kp,.kr,.kt){ + color:var(--md-code-hl-keyword-color) +} +.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){ + color:var(--md-code-hl-keyword-color) +} +.highlight :-webkit-any(.kc,.n){ + color:var(--md-code-hl-name-color) +} +.highlight :-moz-any(.kc,.n){ + color:var(--md-code-hl-name-color) +} +.highlight :is(.kc,.n){ + color:var(--md-code-hl-name-color) +} +.highlight :-webkit-any(.no,.nb,.bp){ + color:var(--md-code-hl-constant-color) +} +.highlight :-moz-any(.no,.nb,.bp){ + color:var(--md-code-hl-constant-color) +} +.highlight :is(.no,.nb,.bp){ + color:var(--md-code-hl-constant-color) +} +.highlight :-webkit-any(.nc,.ne,.nf,.nn){ + color:var(--md-code-hl-function-color) +} +.highlight :-moz-any(.nc,.ne,.nf,.nn){ + color:var(--md-code-hl-function-color) +} +.highlight :is(.nc,.ne,.nf,.nn){ + color:var(--md-code-hl-function-color) +} +.highlight :-webkit-any(.nd,.ni,.nl,.nt){ + color:var(--md-code-hl-keyword-color) +} +.highlight :-moz-any(.nd,.ni,.nl,.nt){ + color:var(--md-code-hl-keyword-color) +} +.highlight :is(.nd,.ni,.nl,.nt){ + color:var(--md-code-hl-keyword-color) +} +.highlight :-webkit-any(.c,.cm,.c1,.ch,.cs,.sd){ + color:var(--md-code-hl-comment-color) +} +.highlight :-moz-any(.c,.cm,.c1,.ch,.cs,.sd){ + color:var(--md-code-hl-comment-color) +} +.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){ + color:var(--md-code-hl-comment-color) +} +.highlight :-webkit-any(.na,.nv,.vc,.vg,.vi){ + color:var(--md-code-hl-variable-color) +} +.highlight :-moz-any(.na,.nv,.vc,.vg,.vi){ + color:var(--md-code-hl-variable-color) +} +.highlight :is(.na,.nv,.vc,.vg,.vi){ + color:var(--md-code-hl-variable-color) +} +.highlight :-webkit-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){ + color:var(--md-code-hl-generic-color) +} +.highlight :-moz-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){ + color:var(--md-code-hl-generic-color) +} +.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){ + color:var(--md-code-hl-generic-color) +} +.highlight :-webkit-any(.gd,.gi){ + border-radius:.1rem; + margin:0 -.125em; + padding:0 .125em +} +.highlight :-moz-any(.gd,.gi){ + border-radius:.1rem; + margin:0 -.125em; + padding:0 .125em +} +.highlight :is(.gd,.gi){ + border-radius:.1rem; + margin:0 -.125em; + padding:0 .125em +} +.highlight .gd{ + background-color:var(--md-typeset-del-color) +} +.highlight .gi{ + background-color:var(--md-typeset-ins-color) +} +.highlight .hll{ + background-color:var(--md-code-hl-color); + display:block; + margin:0 -1.1764705882em; + padding:0 1.1764705882em +} +.highlight span.filename{ + background-color:var(--md-code-bg-color); + border-bottom:.05rem solid var(--md-default-fg-color--lightest); + border-top-left-radius:.1rem; + border-top-right-radius:.1rem; + display:flow-root; + font-size:.85em; + font-weight:700; + margin-top:1em; + padding:.6617647059em 1.1764705882em; + position:relative +} +.highlight span.filename+pre{ + margin-top:0 +} +.highlight span.filename+pre>code{ + border-top-left-radius:0; + border-top-right-radius:0 +} +.highlight [data-linenos]:before{ + background-color:var(--md-code-bg-color); + box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset; + color:var(--md-default-fg-color--light); + content:attr(data-linenos); + float:left; + left:-1.1764705882em; + margin-left:-1.1764705882em; + margin-right:1.1764705882em; + padding-left:1.1764705882em; + position:-webkit-sticky; + position:sticky; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + z-index:3 +} +.highlight code a[id]{ + position:absolute; + visibility:hidden +} +.highlight code[data-md-copying] .hll{ + display:contents +} +.highlight code[data-md-copying] .md-annotation{ + display:none +} +.highlighttable{ + display:flow-root +} +.highlighttable :-webkit-any(tbody,td){ + display:block; + padding:0 +} +.highlighttable :-moz-any(tbody,td){ + display:block; + padding:0 +} +.highlighttable :is(tbody,td){ + display:block; + padding:0 +} +.highlighttable tr{ + display:flex +} +.highlighttable pre{ + margin:0 +} +.highlighttable th.filename{ + flex-grow:1; + padding:0; + text-align:left +} +.highlighttable th.filename span.filename{ + margin-top:0 +} +.highlighttable .linenos{ + background-color:var(--md-code-bg-color); + border-bottom-left-radius:.1rem; + border-top-left-radius:.1rem; + font-size:.85em; + padding:.7720588235em 0 .7720588235em 1.1764705882em; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none +} +.highlighttable .linenodiv{ + box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset; + padding-right:.5882352941em +} +.highlighttable .linenodiv pre{ + color:var(--md-default-fg-color--light); + text-align:right +} +.highlighttable .code{ + flex:1; + min-width:0 +} +.linenodiv a{ + color:inherit +} +.md-typeset .highlighttable{ + direction:ltr; + margin:1em 0 +} +.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{ + border-bottom-left-radius:0; + border-top-left-radius:0 +} +.md-typeset .highlight+.result{ + border:.05rem solid var(--md-code-bg-color); + border-bottom-left-radius:.1rem; + border-bottom-right-radius:.1rem; + border-top-width:.1rem; + margin-top:-1.125em; + overflow:visible; + padding:0 1em +} +.md-typeset .highlight+.result:after{ + clear:both; + content:""; + display:block +} +@media screen and (max-width:44.9375em){ + .md-content__inner>.highlight{ + margin:1em -.8rem + } + .md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{ + border-radius:0 + } + .md-content__inner>.highlight+.result{ + border-left-width:0; + border-radius:0; + border-right-width:0; + margin-left:-.8rem; + margin-right:-.8rem + } +} +.md-typeset .keys kbd:-webkit-any(:before,:after){ + -moz-osx-font-smoothing:initial; + -webkit-font-smoothing:initial; + color:inherit; + margin:0; + position:relative +} +.md-typeset .keys kbd:-moz-any(:before,:after){ + -moz-osx-font-smoothing:initial; + -webkit-font-smoothing:initial; + color:inherit; + margin:0; + position:relative +} +.md-typeset .keys kbd:is(:before,:after){ + -moz-osx-font-smoothing:initial; + -webkit-font-smoothing:initial; + color:inherit; + margin:0; + position:relative +} +.md-typeset .keys span{ + color:var(--md-default-fg-color--light); + padding:0 .2em +} +.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{ + content:"⎇"; + padding-right:.4em +} +.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{ + content:"⌘"; + padding-right:.4em +} +.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{ + content:"⌃"; + padding-right:.4em +} +.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{ + content:"◆"; + padding-right:.4em +} +.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{ + content:"⌥"; + padding-right:.4em +} +.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{ + content:"⇧"; + padding-right:.4em +} +.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{ + content:"❖"; + padding-right:.4em +} +.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{ + content:"⊞"; + padding-right:.4em +} +.md-typeset .keys .key-arrow-down:before{ + content:"↓"; + padding-right:.4em +} +.md-typeset .keys .key-arrow-left:before{ + content:"←"; + padding-right:.4em +} +.md-typeset .keys .key-arrow-right:before{ + content:"→"; + padding-right:.4em +} +.md-typeset .keys .key-arrow-up:before{ + content:"↑"; + padding-right:.4em +} +.md-typeset .keys .key-backspace:before{ + content:"⌫"; + padding-right:.4em +} +.md-typeset .keys .key-backtab:before{ + content:"⇤"; + padding-right:.4em +} +.md-typeset .keys .key-caps-lock:before{ + content:"⇪"; + padding-right:.4em +} +.md-typeset .keys .key-clear:before{ + content:"⌧"; + padding-right:.4em +} +.md-typeset .keys .key-context-menu:before{ + content:"☰"; + padding-right:.4em +} +.md-typeset .keys .key-delete:before{ + content:"⌦"; + padding-right:.4em +} +.md-typeset .keys .key-eject:before{ + content:"⏏"; + padding-right:.4em +} +.md-typeset .keys .key-end:before{ + content:"⤓"; + padding-right:.4em +} +.md-typeset .keys .key-escape:before{ + content:"⎋"; + padding-right:.4em +} +.md-typeset .keys .key-home:before{ + content:"⤒"; + padding-right:.4em +} +.md-typeset .keys .key-insert:before{ + content:"⎀"; + padding-right:.4em +} +.md-typeset .keys .key-page-down:before{ + content:"⇟"; + padding-right:.4em +} +.md-typeset .keys .key-page-up:before{ + content:"⇞"; + padding-right:.4em +} +.md-typeset .keys .key-print-screen:before{ + content:"⎙"; + padding-right:.4em +} +.md-typeset .keys .key-tab:after{ + content:"⇥"; + padding-left:.4em +} +.md-typeset .keys .key-num-enter:after{ + content:"⌤"; + padding-left:.4em +} +.md-typeset .keys .key-enter:after{ + content:"⏎"; + padding-left:.4em +} +:root{ + --md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,'); + --md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset .tabbed-set{ + border-radius:.1rem; + display:flex; + flex-flow:column wrap; + margin:1em 0; + position:relative +} +.md-typeset .tabbed-set>input{ + height:0; + opacity:0; + position:absolute; + width:0 +} +.md-typeset .tabbed-set>input:target{ + --md-scroll-offset:0.625em +} +.md-typeset .tabbed-labels{ + -ms-overflow-style:none; + box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset; + display:flex; + max-width:100%; + overflow:auto; + scrollbar-width:none +} +@media print{ + .md-typeset .tabbed-labels{ + display:contents + } +} +@media screen{ + .js .md-typeset .tabbed-labels{ + position:relative + } + .js .md-typeset .tabbed-labels:before{ + background:var(--md-accent-fg-color); + bottom:0; + content:""; + display:block; + height:2px; + left:0; + position:absolute; + transform:translateX(var(--md-indicator-x)); + transition:width 225ms,transform .25s; + transition-timing-function:cubic-bezier(.4,0,.2,1); + width:var(--md-indicator-width) + } +} +.md-typeset .tabbed-labels::-webkit-scrollbar{ + display:none +} +.md-typeset .tabbed-labels>label{ + border-bottom:.1rem solid transparent; + border-radius:.1rem .1rem 0 0; + color:var(--md-default-fg-color--light); + cursor:pointer; + flex-shrink:0; + font-size:.64rem; + font-weight:700; + padding:.78125em 1.25em .625em; + scroll-margin-inline-start:1rem; + transition:background-color .25s,color .25s; + white-space:nowrap; + width:auto +} +@media print{ + .md-typeset .tabbed-labels>label:first-child{ + order:1 + } + .md-typeset .tabbed-labels>label:nth-child(2){ + order:2 + } + .md-typeset .tabbed-labels>label:nth-child(3){ + order:3 + } + .md-typeset .tabbed-labels>label:nth-child(4){ + order:4 + } + .md-typeset .tabbed-labels>label:nth-child(5){ + order:5 + } + .md-typeset .tabbed-labels>label:nth-child(6){ + order:6 + } + .md-typeset .tabbed-labels>label:nth-child(7){ + order:7 + } + .md-typeset .tabbed-labels>label:nth-child(8){ + order:8 + } + .md-typeset .tabbed-labels>label:nth-child(9){ + order:9 + } + .md-typeset .tabbed-labels>label:nth-child(10){ + order:10 + } + .md-typeset .tabbed-labels>label:nth-child(11){ + order:11 + } + .md-typeset .tabbed-labels>label:nth-child(12){ + order:12 + } + .md-typeset .tabbed-labels>label:nth-child(13){ + order:13 + } + .md-typeset .tabbed-labels>label:nth-child(14){ + order:14 + } + .md-typeset .tabbed-labels>label:nth-child(15){ + order:15 + } + .md-typeset .tabbed-labels>label:nth-child(16){ + order:16 + } + .md-typeset .tabbed-labels>label:nth-child(17){ + order:17 + } + .md-typeset .tabbed-labels>label:nth-child(18){ + order:18 + } + .md-typeset .tabbed-labels>label:nth-child(19){ + order:19 + } + .md-typeset .tabbed-labels>label:nth-child(20){ + order:20 + } +} +.md-typeset .tabbed-labels>label:hover{ + color:var(--md-accent-fg-color) +} +.md-typeset .tabbed-content{ + width:100% +} +@media print{ + .md-typeset .tabbed-content{ + display:contents + } +} +.md-typeset .tabbed-block{ + display:none +} +@media print{ + .md-typeset .tabbed-block{ + display:block + } + .md-typeset .tabbed-block:first-child{ + order:1 + } + .md-typeset .tabbed-block:nth-child(2){ + order:2 + } + .md-typeset .tabbed-block:nth-child(3){ + order:3 + } + .md-typeset .tabbed-block:nth-child(4){ + order:4 + } + .md-typeset .tabbed-block:nth-child(5){ + order:5 + } + .md-typeset .tabbed-block:nth-child(6){ + order:6 + } + .md-typeset .tabbed-block:nth-child(7){ + order:7 + } + .md-typeset .tabbed-block:nth-child(8){ + order:8 + } + .md-typeset .tabbed-block:nth-child(9){ + order:9 + } + .md-typeset .tabbed-block:nth-child(10){ + order:10 + } + .md-typeset .tabbed-block:nth-child(11){ + order:11 + } + .md-typeset .tabbed-block:nth-child(12){ + order:12 + } + .md-typeset .tabbed-block:nth-child(13){ + order:13 + } + .md-typeset .tabbed-block:nth-child(14){ + order:14 + } + .md-typeset .tabbed-block:nth-child(15){ + order:15 + } + .md-typeset .tabbed-block:nth-child(16){ + order:16 + } + .md-typeset .tabbed-block:nth-child(17){ + order:17 + } + .md-typeset .tabbed-block:nth-child(18){ + order:18 + } + .md-typeset .tabbed-block:nth-child(19){ + order:19 + } + .md-typeset .tabbed-block:nth-child(20){ + order:20 + } +} +.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{ + margin:0 +} +.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{ + border-top-left-radius:0; + border-top-right-radius:0 +} +.md-typeset .tabbed-block>.highlight:first-child>.filename{ + border-top-left-radius:0; + border-top-right-radius:0; + margin:0 +} +.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{ + margin:0 +} +.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{ + border-top-left-radius:0; + border-top-right-radius:0; + margin:0 +} +.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{ + border-top-left-radius:0; + border-top-right-radius:0 +} +.md-typeset .tabbed-block>.highlight:first-child+.result{ + margin-top:-.125em +} +.md-typeset .tabbed-block>.tabbed-set{ + margin:0 +} +.md-typeset .tabbed-button{ + align-self:center; + border-radius:100%; + color:var(--md-default-fg-color--light); + cursor:pointer; + display:block; + height:.9rem; + margin-top:.1rem; + pointer-events:auto; + transition:background-color .25s; + width:.9rem +} +.md-typeset .tabbed-button:hover{ + background-color:var(--md-accent-fg-color--transparent); + color:var(--md-accent-fg-color) +} +.md-typeset .tabbed-button:after{ + background-color:currentcolor; + content:""; + display:block; + height:100%; + -webkit-mask-image:var(--md-tabbed-icon--prev); + mask-image:var(--md-tabbed-icon--prev); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + transition:background-color .25s,transform .25s; + width:100% +} +.md-typeset .tabbed-control{ + background:linear-gradient(to right,var(--md-default-bg-color) 60%,transparent); + display:flex; + height:1.9rem; + justify-content:start; + pointer-events:none; + position:absolute; + transition:opacity 125ms; + width:1.2rem +} +[dir=rtl] .md-typeset .tabbed-control{ + transform:rotate(180deg) +} +.md-typeset .tabbed-control[hidden]{ + opacity:0 +} +.md-typeset .tabbed-control--next{ + background:linear-gradient(to left,var(--md-default-bg-color) 60%,transparent); + justify-content:end; + right:0 +} +.md-typeset .tabbed-control--next .tabbed-button:after{ + -webkit-mask-image:var(--md-tabbed-icon--next); + mask-image:var(--md-tabbed-icon--next) +} +@media screen and (max-width:44.9375em){ + .md-content__inner>.tabbed-set .tabbed-labels{ + padding-left:.8rem + } + [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{ + padding-right:.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels{ + margin:0 -.8rem; + max-width:100vw; + scroll-padding-inline-start:.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels:after{ + padding-right:.8rem + } + [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{ + padding-left:.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels:after{ + content:"" + } + .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{ + margin-left:-.8rem + } + [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{ + margin-right:-.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{ + padding-left:.8rem + } + [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{ + padding-right:.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{ + width:2rem + } + .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{ + margin-right:-.8rem + } + [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{ + margin-left:-.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{ + padding-right:.8rem + } + [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{ + padding-left:.8rem + } + .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{ + width:2rem + } +} +@media screen{ + .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){ + color:var(--md-accent-fg-color) + } + .md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){ + border-color:var(--md-accent-fg-color) + } +} +.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){ + background-color:var(--md-accent-fg-color--transparent) +} +.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){ + display:block +} +:root{ + --md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,'); + --md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,') +} +.md-typeset .task-list-item{ + list-style-type:none; + position:relative +} +.md-typeset .task-list-item [type=checkbox]{ + left:-2em +} +[dir=rtl] .md-typeset .task-list-item [type=checkbox]{ + right:-2em +} +.md-typeset .task-list-item [type=checkbox]{ + position:absolute; + top:.45em +} +.md-typeset .task-list-control [type=checkbox]{ + opacity:0; + z-index:-1 +} +.md-typeset .task-list-indicator:before{ + left:-1.5em +} +[dir=rtl] .md-typeset .task-list-indicator:before{ + right:-1.5em +} +.md-typeset .task-list-indicator:before{ + background-color:var(--md-default-fg-color--lightest); + content:""; + height:1.25em; + -webkit-mask-image:var(--md-tasklist-icon); + mask-image:var(--md-tasklist-icon); + -webkit-mask-position:center; + mask-position:center; + -webkit-mask-repeat:no-repeat; + mask-repeat:no-repeat; + -webkit-mask-size:contain; + mask-size:contain; + position:absolute; + top:.15em; + width:1.25em +} +.md-typeset [type=checkbox]:checked+.task-list-indicator:before{ + background-color:#00e676; + -webkit-mask-image:var(--md-tasklist-icon--checked); + mask-image:var(--md-tasklist-icon--checked) +} +:root>*{ + --md-mermaid-font-family:var(--md-text-font-family),sans-serif; + --md-mermaid-edge-color:var(--md-code-fg-color); + --md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent); + --md-mermaid-node-fg-color:var(--md-accent-fg-color); + --md-mermaid-label-bg-color:var(--md-default-bg-color); + --md-mermaid-label-fg-color:var(--md-code-fg-color) +} +.mermaid{ + line-height:normal; + margin:1em 0 +} +@media screen and (min-width:45em){ + .md-typeset .inline{ + float:left + } + [dir=rtl] .md-typeset .inline{ + float:right + } + .md-typeset .inline{ + margin-right:.8rem + } + [dir=rtl] .md-typeset .inline{ + margin-left:.8rem + } + .md-typeset .inline{ + margin-bottom:.8rem; + margin-top:0; + width:11.7rem + } + .md-typeset .inline.end{ + float:right + } + [dir=rtl] .md-typeset .inline.end{ + float:left + } + .md-typeset .inline.end{ + margin-left:.8rem; + margin-right:0 + } + [dir=rtl] .md-typeset .inline.end{ + margin-left:0; + margin-right:.8rem + } +} diff --git a/resources/users.scss b/resources/users.scss index 9d7df85..2eecaa8 100644 --- a/resources/users.scss +++ b/resources/users.scss @@ -26,14 +26,6 @@ td.user-name { text-align: left; } -tr { - padding-bottom: 96px; - - &:target { - background: #fff897; - } -} - th.header.rank { padding-left: 5px; } @@ -84,6 +76,11 @@ th.header.rank { &.highlight { background: #fff897; } + padding-bottom: 96px; + + &:target { + background: #fff897; + } } } diff --git a/templates/base.html b/templates/base.html index d9f86c8..f8842db 100644 --- a/templates/base.html +++ b/templates/base.html @@ -57,6 +57,7 @@ + {% endcompress %} diff --git a/templates/blog/blog.html b/templates/blog/blog.html index 9cbfecb..b861da1 100644 --- a/templates/blog/blog.html +++ b/templates/blog/blog.html @@ -36,7 +36,7 @@
{% cache 86400 'post_content' post.id MATH_ENGINE %} - {{ post.content|markdown('blog', MATH_ENGINE)|reference|str|safe}} + {{ post.content|markdown|reference|str|safe}} {% endcache %}
diff --git a/templates/blog/content.html b/templates/blog/content.html index 32e1f32..ec82a28 100644 --- a/templates/blog/content.html +++ b/templates/blog/content.html @@ -38,7 +38,7 @@
{% cache 86400 'post_summary' post.id %} - {{ post.summary|default(post.content, true)|markdown('blog', 'svg', lazy_load=True)|reference|str|safe }} + {{ post.summary|default(post.content, true)|markdown|reference|str|safe }} {% endcache %}
\ No newline at end of file diff --git a/templates/blog/preview.html b/templates/blog/preview.html index 802f8b3..14c643e 100644 --- a/templates/blog/preview.html +++ b/templates/blog/preview.html @@ -1 +1 @@ -{{ preview_data|markdown('blog', MATH_ENGINE)|reference|str|safe }} \ No newline at end of file +{{ preview_data|markdown|reference|str|safe }} \ No newline at end of file diff --git a/templates/chat/chat.html b/templates/chat/chat.html index c652002..46dcde9 100644 --- a/templates/chat/chat.html +++ b/templates/chat/chat.html @@ -66,7 +66,6 @@ let META_HEADER = [ } $('.body-block').slice(0, window.messages_per_page).each(function() { - resize_emoji($(this)); }); register_time($('.time-with-rel')); @@ -153,7 +152,6 @@ let META_HEADER = [ function add_message(data) { var $data = $(data); - resize_emoji($data.find('.body-block')); $('#chat-log').append($data); $('#chat-box').scrollTop($('#chat-box')[0].scrollHeight); @@ -212,7 +210,6 @@ let META_HEADER = [ else { add_new_message(message, room, true); } - resize_emoji($body_block); MathJax.Hub.Queue(["Typeset",MathJax.Hub]); register_time($('.time-with-rel')); remove_unread_current_user(); @@ -439,10 +436,6 @@ let META_HEADER = [ }); {% endif %} - $('.body-block').each(function() { - resize_emoji($(this)); - }); - $("#chat-log").show(); $("#chat-log").change(function() { $('#chat-log').scrollTop($('#chat-log')[0].scrollHeight); diff --git a/templates/chat/message.html b/templates/chat/message.html index 15ed977..cd09571 100644 --- a/templates/chat/message.html +++ b/templates/chat/message.html @@ -21,7 +21,7 @@ {% endif %}
- {{message.body | markdown('comment', MATH_ENGINE, hard_wrap=True)|reference|str|safe }} + {{message.body|markdown(hard_wrap=True)|reference|str|safe }}
diff --git a/templates/comments/content.html b/templates/comments/content.html index 7adbf60..29e7dfd 100644 --- a/templates/comments/content.html +++ b/templates/comments/content.html @@ -1 +1 @@ -{{ comment.body|markdown('comment', MATH_ENGINE)|reference|str|safe }} \ No newline at end of file +{{ comment.body|markdown|reference|str|safe }} \ No newline at end of file diff --git a/templates/comments/feed.html b/templates/comments/feed.html index 385c65d..db4d079 100644 --- a/templates/comments/feed.html +++ b/templates/comments/feed.html @@ -13,6 +13,6 @@ {% endif %} {% endwith %}
- {{ comment.body |markdown("comment", MATH_ENGINE)|reference|str|safe }} + {{ comment.body |markdown|reference|str|safe }}
\ No newline at end of file diff --git a/templates/comments/list.html b/templates/comments/list.html index fc775c1..eaf1f6b 100644 --- a/templates/comments/list.html +++ b/templates/comments/list.html @@ -93,7 +93,7 @@
{% if node.score <= vote_hide_threshold %}
diff --git a/templates/comments/preview.html b/templates/comments/preview.html index 9d61008..65935f9 100644 --- a/templates/comments/preview.html +++ b/templates/comments/preview.html @@ -1,4 +1,4 @@ -{{ preview_data|markdown('comment', MATH_ENGINE)|reference|str|safe }} +{{ preview_data|markdown|reference|str|safe }} {% if REQUIRE_JAX %}
{% endif %} \ No newline at end of file diff --git a/templates/comments/revision-ajax.html b/templates/comments/revision-ajax.html index 4dd2c1b..720cd72 100644 --- a/templates/comments/revision-ajax.html +++ b/templates/comments/revision-ajax.html @@ -1,3 +1,3 @@ {% with node=revision.field_dict %} -
{{ node.body|markdown('comment', MATH_ENGINE)|reference|str|safe }}
+
{{ node.body|markdown|reference|str|safe }}
{% endwith %} diff --git a/templates/contest/contest.html b/templates/contest/contest.html index c0f3157..ad024f6 100644 --- a/templates/contest/contest.html +++ b/templates/contest/contest.html @@ -69,7 +69,7 @@
{% cache 3600 'contest_html' contest.id MATH_ENGINE %} - {{ contest.description|markdown('contest', MATH_ENGINE)|reference|str|safe }} + {{ contest.description|markdown|reference|str|safe }} {% endcache %}
diff --git a/templates/contest/preview.html b/templates/contest/preview.html index fca7ab2..65935f9 100644 --- a/templates/contest/preview.html +++ b/templates/contest/preview.html @@ -1,4 +1,4 @@ -{{ preview_data|markdown('contest', MATH_ENGINE)|reference|str|safe }} +{{ preview_data|markdown|reference|str|safe }} {% if REQUIRE_JAX %}
{% endif %} \ No newline at end of file diff --git a/templates/contest/tag-ajax.html b/templates/contest/tag-ajax.html index 96dbaa8..2aa38be 100644 --- a/templates/contest/tag-ajax.html +++ b/templates/contest/tag-ajax.html @@ -4,4 +4,4 @@
{% endif %} -{{ tag.description|markdown('contest_tag') }} +{{ tag.description|markdown }} diff --git a/templates/flatpages/markdown.html b/templates/flatpages/markdown.html index ab7867f..62b3015 100644 --- a/templates/flatpages/markdown.html +++ b/templates/flatpages/markdown.html @@ -10,5 +10,5 @@ {% block header %}{% include "flatpages/admin_link.html" %}{% endblock %} {% block body %} -
{{ flatpage.content|markdown('solution')|reference|str|safe }}
+
{{ flatpage.content|markdown|reference|str|safe }}
{% endblock %} \ No newline at end of file diff --git a/templates/flatpages/markdown_math.html b/templates/flatpages/markdown_math.html index 01bb593..a959e50 100644 --- a/templates/flatpages/markdown_math.html +++ b/templates/flatpages/markdown_math.html @@ -1,7 +1,7 @@ {% extends "flatpages/markdown.html" %} {% block body %} -
{{ flatpage.content|markdown('solution', MATH_ENGINE)|reference }}
+
{{ flatpage.content|markdown|reference }}
{% endblock %} {% block bodyend %} diff --git a/templates/license-preview.html b/templates/license-preview.html index b3f8b89..90a27ba 100644 --- a/templates/license-preview.html +++ b/templates/license-preview.html @@ -1 +1 @@ -{{ preview_data|markdown('license') }} \ No newline at end of file +{{ preview_data|markdown }} \ No newline at end of file diff --git a/templates/license.html b/templates/license.html index 04e1e54..b7830a8 100644 --- a/templates/license.html +++ b/templates/license.html @@ -1,7 +1,7 @@ {% extends "common-content.html" %} {% block description %} {% cache 3600 'license_html' license.id %} - {{ license.text|markdown('license') }} + {{ license.text|markdown }} {% endcache %} {% endblock %} diff --git a/templates/organization/home.html b/templates/organization/home.html index e445bfb..49b1d15 100644 --- a/templates/organization/home.html +++ b/templates/organization/home.html @@ -39,7 +39,7 @@ diff --git a/templates/organization/org-right-sidebar.html b/templates/organization/org-right-sidebar.html index 2ab489e..bf74949 100644 --- a/templates/organization/org-right-sidebar.html +++ b/templates/organization/org-right-sidebar.html @@ -71,7 +71,7 @@ diff --git a/templates/organization/preview.html b/templates/organization/preview.html index abb14a6..65935f9 100644 --- a/templates/organization/preview.html +++ b/templates/organization/preview.html @@ -1,4 +1,4 @@ -{{ preview_data|markdown('organization-about', MATH_ENGINE)|reference|str|safe }} +{{ preview_data|markdown|reference|str|safe }} {% if REQUIRE_JAX %}
{% endif %} \ No newline at end of file diff --git a/templates/problem/editorial.html b/templates/problem/editorial.html index afcebc6..52f4792 100644 --- a/templates/problem/editorial.html +++ b/templates/problem/editorial.html @@ -26,7 +26,7 @@

Authors: {{ link_users(authors) }}

{% endif %} {% endwith %} - {{ solution.content|markdown('solution', MATH_ENGINE)|reference|str|safe }} + {{ solution.content|markdown|reference|str|safe }}

{% include "comments/list.html" %} diff --git a/templates/problem/feed.html b/templates/problem/feed.html index 9dfcc00..4d08dcf 100644 --- a/templates/problem/feed.html +++ b/templates/problem/feed.html @@ -54,7 +54,7 @@ {% endif %}
{% cache 86400 'problem_html' problem.id MATH_ENGINE LANGUAGE_CODE %} - {{ problem.description|markdown("problem", MATH_ENGINE)|reference|str|safe }} + {{ problem.description|markdown|reference|str|safe }} {% endcache %} {% if problem.pdf_description %} diff --git a/templates/problem/preview.html b/templates/problem/preview.html index cd6a093..65935f9 100644 --- a/templates/problem/preview.html +++ b/templates/problem/preview.html @@ -1,4 +1,4 @@ -{{ preview_data|markdown('problem', MATH_ENGINE)|reference|str|safe }} +{{ preview_data|markdown|reference|str|safe }} {% if REQUIRE_JAX %}
{% endif %} \ No newline at end of file diff --git a/templates/problem/problem.html b/templates/problem/problem.html index ea9e1f8..ef56884 100644 --- a/templates/problem/problem.html +++ b/templates/problem/problem.html @@ -376,7 +376,7 @@ {% endif %} {% cache 86400 'problem_html' problem.id MATH_ENGINE LANGUAGE_CODE %} - {{ description|markdown("problem", MATH_ENGINE)|reference|str|safe }} + {{ description|markdown|reference|str|safe }} {% endcache %} {% if problem.pdf_description %} @@ -426,7 +426,7 @@
{{ relative_time(clarification.date) }}
- {{ clarification.description|markdown('problem', MATH_ENGINE)|reference }} + {{ clarification.description|markdown|reference }}
{% endfor %} diff --git a/templates/problem/raw.html b/templates/problem/raw.html index 591bedb..4444cf2 100644 --- a/templates/problem/raw.html +++ b/templates/problem/raw.html @@ -3,8 +3,11 @@ + + +