zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

commit e5d91c68ffe68ecd9c590578be8dd7bc54c4d6bd
parent 249aa7309fc1aed26096feeb3d0bf413ec1d5f00
Author: srfsh <dev@srf.sh>
Date:   Thu, 20 Oct 2022 20:24:20 +0300

dep update ex_doc v0.29.0

Diffstat:
M.deps/earmark_parser/.hex | 0
M.deps/earmark_parser/README.md | 230++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
M.deps/earmark_parser/RELEASE.md | 41+++++++++++++++++++++++++++++++++++++++--
M.deps/earmark_parser/hex_metadata.config | 81+++++++++++++++++++++++++++++++++++++++----------------------------------------
M.deps/earmark_parser/lib/earmark_parser.ex | 212++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
M.deps/earmark_parser/lib/earmark_parser/ast/inline.ex | 187+++++++++++++++++++++++++++++++++++++++++++------------------------------------
M.deps/earmark_parser/lib/earmark_parser/context.ex | 14++++++++------
M.deps/earmark_parser/lib/earmark_parser/helpers/html_parser.ex | 11++++++++---
M.deps/earmark_parser/lib/earmark_parser/helpers/lookahead_helpers.ex | 1-
M.deps/earmark_parser/lib/earmark_parser/line_scanner.ex | 6++----
M.deps/earmark_parser/lib/earmark_parser/options.ex | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
D.deps/earmark_parser/lib/earmark_parser/types.ex | 19-------------------
M.deps/earmark_parser/mix.exs | 4++--
M.deps/ex_doc/.hex | 0
M.deps/ex_doc/CHANGELOG.md | 32++++++++++++++++++++++++++++++++
A.deps/ex_doc/Cheatsheet.cheatmd | 264+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M.deps/ex_doc/LICENSE | 44++------------------------------------------
M.deps/ex_doc/README.md | 14++++++++------
D.deps/ex_doc/formatters/epub/dist/app-db64fcdc429a9b460caa.js | 2--
D.deps/ex_doc/formatters/epub/dist/elixir-257fc85e711659d9c43e.css | 2--
A.deps/ex_doc/formatters/epub/dist/epub-75RCTLK3.js | 1+
A.deps/ex_doc/formatters/epub/dist/epub-elixir-27JESMVP.css | 1+
A.deps/ex_doc/formatters/epub/dist/epub-erlang-BLRVQJT7.css | 1+
D.deps/ex_doc/formatters/epub/dist/erlang-911a33d8b2a887045389.css | 2--
D.deps/ex_doc/formatters/html/dist/app-bd1cb213813bf4825aa2.js | 3---
D.deps/ex_doc/formatters/html/dist/app-bd1cb213813bf4825aa2.js.LICENSE.txt | 61-------------------------------------------------------------
D.deps/ex_doc/formatters/html/dist/elixir-b6f1ed5df9b1d42a7309.css | 3---
D.deps/ex_doc/formatters/html/dist/erlang-2594865b45a067e279f6.css | 3---
A.deps/ex_doc/formatters/html/dist/handlebars.runtime-NWIB6V2M.js | 30++++++++++++++++++++++++++++++
A.deps/ex_doc/formatters/html/dist/handlebars.templates-X7YVL3G2.js | 185+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.deps/ex_doc/formatters/html/dist/html-XN2TSG4M.js | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
A.deps/ex_doc/formatters/html/dist/html-elixir-2YOS5DIE.css | 2++
A.deps/ex_doc/formatters/html/dist/html-erlang-4XYKNH4U.css | 2++
A.deps/ex_doc/formatters/html/dist/inconsolata-all-400-normal-HMVRHNDU.woff | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-all-700-normal-WFUKXZPS.woff | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-latin-400-normal-RGKDDNDD.woff2 | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-latin-700-normal-DTS2D7TO.woff2 | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-latin-ext-400-normal-K7HVGTP7.woff2 | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-latin-ext-700-normal-4MPBLFZC.woff2 | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-vietnamese-400-normal-IGQPHHJH.woff2 | 0
A.deps/ex_doc/formatters/html/dist/inconsolata-vietnamese-700-normal-LHEGSN35.woff2 | 0
A.deps/ex_doc/formatters/html/dist/lato-all-300-normal-GIV56FBX.woff | 0
A.deps/ex_doc/formatters/html/dist/lato-all-700-normal-XMT5XFBS.woff | 0
A.deps/ex_doc/formatters/html/dist/lato-latin-300-normal-YUMVEFOL.woff2 | 0
A.deps/ex_doc/formatters/html/dist/lato-latin-700-normal-2XVSBPG4.woff2 | 0
A.deps/ex_doc/formatters/html/dist/lato-latin-ext-300-normal-VPGGJKJL.woff2 | 0
A.deps/ex_doc/formatters/html/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-all-300-italic-CMQNB6FA.woff | 0
A.deps/ex_doc/formatters/html/dist/merriweather-all-300-normal-VL6BT3UN.woff | 0
A.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-300-normal-7PAAHU3N.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-latin-300-italic-353COS6Q.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-latin-300-normal-RWDJH4FN.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2 | 0
A.deps/ex_doc/formatters/html/dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 | 0
R.deps/ex_doc/formatters/html/fonts/remixicon.woff2 -> .deps/ex_doc/formatters/html/dist/remixicon-E5UFLALU.woff2 | 0
D.deps/ex_doc/formatters/html/fonts/remixicon.eot | 0
D.deps/ex_doc/formatters/html/fonts/remixicon.svg | 37-------------------------------------
D.deps/ex_doc/formatters/html/fonts/remixicon.ttf | 0
D.deps/ex_doc/formatters/html/fonts/remixicon.woff | 0
M.deps/ex_doc/hex_metadata.config | 57++++++++++++++++++++++++++++++++++++++++-----------------
M.deps/ex_doc/lib/ex_doc/cli.ex | 26+++++++++++++-------------
M.deps/ex_doc/lib/ex_doc/config.ex | 56++++++++++++++++++++++++++++----------------------------
M.deps/ex_doc/lib/ex_doc/doc_ast.ex | 16++++++++++------
M.deps/ex_doc/lib/ex_doc/formatter/epub.ex | 14++++++++++++--
M.deps/ex_doc/lib/ex_doc/formatter/epub/assets.ex | 4++--
M.deps/ex_doc/lib/ex_doc/formatter/epub/templates/head_template.eex | 8++++----
M.deps/ex_doc/lib/ex_doc/formatter/html.ex | 52++++++++++++++++++++++++++++++++++------------------
M.deps/ex_doc/lib/ex_doc/formatter/html/assets.ex | 6+++---
M.deps/ex_doc/lib/ex_doc/formatter/html/templates.ex | 10++++++----
D.deps/ex_doc/lib/ex_doc/formatter/html/templates/bottom_actions_template.eex | 26--------------------------
M.deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex | 33++++++++++++++++++++++++++++++---
M.deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex | 2+-
M.deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex | 10++++++----
M.deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex | 7+++----
M.deps/ex_doc/lib/ex_doc/language.ex | 4++--
M.deps/ex_doc/lib/ex_doc/language/elixir.ex | 39+++++++++++++++++++++++++--------------
M.deps/ex_doc/lib/ex_doc/markdown.ex | 30++++++++++++++++++++++++++++++
M.deps/ex_doc/lib/ex_doc/markdown/earmark.ex | 14++++++++++++++
M.deps/ex_doc/lib/ex_doc/nodes.ex | 95++++++++++++++++++++++++++++++++++++++++++-------------------------------------
M.deps/ex_doc/lib/ex_doc/retriever.ex | 13++-----------
M.deps/ex_doc/lib/ex_doc/utils.ex | 8+++++++-
M.deps/ex_doc/lib/mix/tasks/docs.ex | 29+++++++++++++++++++++++------
M.deps/ex_doc/mix.exs | 7++++---
Mmix.exs | 2+-
Mmix.lock | 4++--
90 files changed, 1499 insertions(+), 712 deletions(-)

diff --git a/.deps/earmark_parser/.hex b/.deps/earmark_parser/.hex Binary files differ. diff --git a/.deps/earmark_parser/README.md b/.deps/earmark_parser/README.md @@ -24,10 +24,14 @@ - [Additional link parsing via options](#additional-link-parsing-via-options) - [Pure links](#pure-links) - [Wikilinks...](#wikilinks) + - [Sub and Sup HTML Elements](#sub-and-sup-html-elements) - [Github Flavored Markdown](#github-flavored-markdown) - [Strike Through](#strike-through) + - [GFM Tables](#gfm-tables) - [Syntax Highlighting](#syntax-highlighting) - [Footnotes](#footnotes) + - [Breaks](#breaks) + - [Enabling **all** options that are disabled by default](#enabling-all-options-that-are-disabled-by-default) - [Tables](#tables) - [HTML Blocks](#html-blocks) - [HTML Comments](#html-comments) @@ -148,6 +152,23 @@ But can be deactivated ``` +### Sub and Sup HTML Elements + +This feature is not enabled by default but can be enabled with the option `sub_sup: true` + +Therefore we will get + +```elixir + iex(9)> EarmarkParser.as_ast("H~2~O or a^n^ + b^n^ = c^n^") + {:ok, [{"p", [], ["H~2~O or a^n^ + b^n^ = c^n^"], %{}}], []} +``` + +But by specifying `sub_sup: true` + +```elixir + iex(10)> EarmarkParser.as_ast("H~2~O or a^n^ + b^n^ = c^n^", sub_sup: true) + {:ok, [{"p", [], ["H", {"sub", [], ["2"], %{}}, "O or a", {"sup", [], ["n"], %{}}, " + b", {"sup", [], ["n"], %{}}, " = c", {"sup", [], ["n"], %{}}], %{}}], []} +``` ### Github Flavored Markdown @@ -156,10 +177,38 @@ GFM is supported by default, however as GFM is a moving target and all GFM exten #### Strike Through ```elixir - iex(9)> EarmarkParser.as_ast("~~hello~~") + iex(11)> EarmarkParser.as_ast("~~hello~~") {:ok, [{"p", [], [{"del", [], ["hello"], %{}}], %{}}], []} ``` +#### GFM Tables + +Are not enabled by default + +```elixir + iex(12)> as_ast("a|b\\n-|-\\nc|d\\n") + {:ok, [{"p", [], ["a|b\\n-|-\\nc|d\\n"], %{}}], []} +``` + +But can be enabled with `gfm_tables: true` + +```elixir + iex(13)> as_ast("a|b\n-|-\nc|d\n", gfm_tables: true) + {:ok, + [ + { + "table", + [], + [ + {"thead", [], [{"tr", [], [{"th", [{"style", "text-align: left;"}], ["a"], %{}}, {"th", [{"style", "text-align: left;"}], ["b"], %{}}], %{}}], %{}}, + {"tbody", [], [{"tr", [], [{"td", [{"style", "text-align: left;"}], ["c"], %{}}, {"td", [{"style", "text-align: left;"}], ["d"], %{}}], %{}}], %{}} + ], + %{} + } + ], + []} +``` + #### Syntax Highlighting All backquoted or fenced code blocks with a language string are rendered with the given @@ -168,11 +217,11 @@ language as a _class_ attribute of the _code_ tag. For example: ```elixir - iex(10)> [ - ...(10)> "```elixir", - ...(10)> " @tag :hello", - ...(10)> "```" - ...(10)> ] |> as_ast() + iex(14)> [ + ...(14)> "```elixir", + ...(14)> " @tag :hello", + ...(14)> "```" + ...(14)> ] |> as_ast() {:ok, [{"pre", [], [{"code", [{"class", "elixir"}], [" @tag :hello"], %{}}], %{}}], []} ``` @@ -187,11 +236,11 @@ as a `code_class_prefix` to `EarmarkParser.Options`. In the following example we want more than one additional class, so we add more prefixes. ```elixir - iex(11)> [ - ...(11)> "```elixir", - ...(11)> " @tag :hello", - ...(11)> "```" - ...(11)> ] |> as_ast(%EarmarkParser.Options{code_class_prefix: "lang- language-"}) + iex(15)> [ + ...(15)> "```elixir", + ...(15)> " @tag :hello", + ...(15)> "```" + ...(15)> ] |> as_ast(%EarmarkParser.Options{code_class_prefix: "lang- language-"}) {:ok, [{"pre", [], [{"code", [{"class", "elixir lang-elixir language-elixir"}], [" @tag :hello"], %{}}], %{}}], []} ``` @@ -200,7 +249,6 @@ In the following example we want more than one additional class, so we add more **N.B.** Footnotes are disabled by default, use `as_ast(..., footnotes: true)` to enable them - Footnotes are now a **superset** of GFM Footnotes. This implies some changes - Footnote definitions (`[^footnote_id]`) must come at the end of your document (_GFM_) @@ -208,13 +256,13 @@ Footnotes are now a **superset** of GFM Footnotes. This implies some changes - Footnote definitions can contain any markup with the exception of footnote definitions ```elixir - iex(12)> markdown = [ - ...(12)> "My reference[^to_footnote]", - ...(12)> "", - ...(12)> "[^1]: I am not rendered", - ...(12)> "[^to_footnote]: Important information"] - ...(12)> {:ok, ast, []} = as_ast(markdown, footnotes: true) - ...(12)> ast + iex(16)> markdown = [ + ...(16)> "My reference[^to_footnote]", + ...(16)> "", + ...(16)> "[^1]: I am not rendered", + ...(16)> "[^to_footnote]: Important information"] + ...(16)> {:ok, ast, []} = as_ast(markdown, footnotes: true) + ...(16)> ast [ {"p", [], ["My reference", {"a", @@ -235,6 +283,42 @@ Footnotes are now a **superset** of GFM Footnotes. This implies some changes For more complex examples of footnotes, please refer to [these tests](https://github.com/RobertDober/earmark_parser/tree/master/test/acceptance/ast/footnotes/multiple_fn_test.exs) +#### Breaks + + Hard linebreaks are disabled by default + +```elixir + iex(17)> ["* a"," b", "c"] + ...(17)> |> as_ast() + {:ok, + [{"ul", [], [{"li", [], ["a\nb\nc"], %{}}], %{}}], + []} +``` + + But can be enabled with `breaks: true` + +```elixir + iex(18)> ["* a"," b", "c"] + ...(18)> |> as_ast(breaks: true) + {:ok, [{"ul", [], [{"li", [], ["a", {"br", [], [], %{}}, "b", {"br", [], [], %{}}, "c"], %{}}], %{}}], []} +``` + +#### Enabling **all** options that are disabled by default + + Can be achieved with the `all: true` option + +```elixir + iex(19)> [ + ...(19)> "a^n^", + ...(19)> "b~2~", + ...(19)> "[[wikilink]]"] + ...(19)> |> as_ast(all: true) + {:ok, [ + {"p", [], ["a", {"sup", [], ["n"], %{}}, {"br", [], [], %{}}, "b", {"sub", [], ["2"], %{}}, {"br", [], [], %{}}, {"a", [{"href", "wikilink"}], ["wikilink"], %{wikilink: true}}], %{}} + ], + []} +``` + #### Tables Are supported as long as they are preceded by an empty line. @@ -288,8 +372,8 @@ as one HTML AST node, marked with %{verbatim: true} E.g. ```elixir - iex(13)> lines = [ "<div><span>", "some</span><text>", "</div>more text" ] - ...(13)> EarmarkParser.as_ast(lines) + iex(20)> lines = [ "<div><span>", "some</span><text>", "</div>more text" ] + ...(20)> EarmarkParser.as_ast(lines) {:ok, [{"div", [], ["<span>", "some</span><text>"], %{verbatim: true}}, "more text"], []} ``` @@ -297,7 +381,7 @@ And a line starting with an opening tag and ending with the corresponding closin fashion ```elixir - iex(14)> EarmarkParser.as_ast(["<span class=\"superspan\">spaniel</span>"]) + iex(21)> EarmarkParser.as_ast(["<span class=\"superspan\">spaniel</span>"]) {:ok, [{"span", [{"class", "superspan"}], ["spaniel"], %{verbatim: true}}], []} ``` @@ -306,8 +390,8 @@ What is HTML? We differ from strict GFM by allowing **all** tags not only HTML5 tags this holds for one liners.... ```elixir - iex(15)> {:ok, ast, []} = EarmarkParser.as_ast(["<stupid />", "<not>better</not>"]) - ...(15)> ast + iex(22)> {:ok, ast, []} = EarmarkParser.as_ast(["<stupid />", "<not>better</not>"]) + ...(22)> ast [ {"stupid", [], [], %{verbatim: true}}, {"not", [], ["better"], %{verbatim: true}}] @@ -316,8 +400,8 @@ We differ from strict GFM by allowing **all** tags not only HTML5 tags this hold and for multi line blocks ```elixir - iex(16)> {:ok, ast, []} = EarmarkParser.as_ast([ "<hello>", "world", "</hello>"]) - ...(16)> ast + iex(23)> {:ok, ast, []} = EarmarkParser.as_ast([ "<hello>", "world", "</hello>"]) + ...(23)> ast [{"hello", [], ["world"], %{verbatim: true}}] ``` @@ -329,7 +413,7 @@ all text after the next '-->' is ignored E.g. ```elixir - iex(17)> EarmarkParser.as_ast(" <!-- Comment\ncomment line\ncomment --> text -->\nafter") + iex(24)> EarmarkParser.as_ast(" <!-- Comment\ncomment line\ncomment --> text -->\nafter") {:ok, [{:comment, [], [" Comment", "comment line", "comment "], %{comment: true}}, {"p", [], ["after"], %{}}], []} ``` @@ -349,26 +433,26 @@ and definitely not useful GFM's own interpretation can get. Therefore we stick to a more predictable approach. ```elixir - iex(18)> markdown = [ - ...(18)> "* aa", - ...(18)> " ```", - ...(18)> "Second", - ...(18)> " ```" ] - ...(18)> as_ast(markdown) + iex(25)> markdown = [ + ...(25)> "* aa", + ...(25)> " ```", + ...(25)> "Second", + ...(25)> " ```" ] + ...(25)> as_ast(markdown) {:ok, [{"ul", [], [{"li", [], ["aa", {"pre", [], [{"code", [], ["Second"], %{}}], %{}}], %{}}], %{}}], []} ``` Also we do support the immediate style of block content inside lists ```elixir - iex(19)> as_ast("* > Nota Bene!") + iex(26)> as_ast("* > Nota Bene!") {:ok, [{"ul", [], [{"li", [], [{"blockquote", [], [{"p", [], ["Nota Bene!"], %{}}], %{}}], %{}}], %{}}], []} ``` or ```elixir - iex(20)> as_ast("1. # Breaking...") + iex(27)> as_ast("1. # Breaking...") {:ok, [{"ol", [], [{"li", [], [{"h1", [], ["Breaking..."], %{}}], %{}}], %{}}], []} ``` @@ -381,16 +465,16 @@ HTML attributes can be added to any block-level element. We use the Kramdown syntax: add the line `{:` _attrs_ `}` following the block. ```elixir - iex(21)> markdown = ["# Headline", "{:.from-next-line}"] - ...(21)> as_ast(markdown) + iex(28)> markdown = ["# Headline", "{:.from-next-line}"] + ...(28)> as_ast(markdown) {:ok, [{"h1", [{"class", "from-next-line"}], ["Headline"], %{}}], []} ``` Headers can also have the IAL string at the end of the line ```elixir - iex(22)> markdown = ["# Headline{:.from-same-line}"] - ...(22)> as_ast(markdown) + iex(29)> markdown = ["# Headline{:.from-same-line}"] + ...(29)> as_ast(markdown) {:ok, [{"h1", [{"class", "from-same-line"}], ["Headline"], %{}}], []} ``` @@ -399,24 +483,24 @@ see [this PR](https://github.com/elixir-lang/ex_doc/pull/1400) if you are intere details ```elixir - iex(23)> markdown = ["> # Headline{:.warning}"] - ...(23)> as_ast(markdown) + iex(30)> markdown = ["> # Headline{:.warning}"] + ...(30)> as_ast(markdown) {:ok, [{"blockquote", [], [{"h1", [{"class", "warning"}], ["Headline"], %{}}], %{}}], []} ``` This also works for headers inside lists ```elixir - iex(24)> markdown = ["- # Headline{:.warning}"] - ...(24)> as_ast(markdown) + iex(31)> markdown = ["- # Headline{:.warning}"] + ...(31)> as_ast(markdown) {:ok, [{"ul", [], [{"li", [], [{"h1", [{"class", "warning"}], ["Headline"], %{}}], %{}}], %{}}], []} ``` It still works for inline code, as it did before ```elixir - iex(25)> markdown = "`Enum.map`{:lang=elixir}" - ...(25)> as_ast(markdown) + iex(32)> markdown = "`Enum.map`{:lang=elixir}" + ...(32)> as_ast(markdown) {:ok, [{"p", [], [{"code", [{"class", "inline"}, {"lang", "elixir"}], ["Enum.map"], %{}}], %{}}], []} ``` @@ -442,23 +526,23 @@ It is possible to add IAL attributes to generated links or images in the followi format. ```elixir - iex(26)> markdown = "[link](url) {: .classy}" - ...(26)> EarmarkParser.as_ast(markdown) + iex(33)> markdown = "[link](url) {: .classy}" + ...(33)> EarmarkParser.as_ast(markdown) { :ok, [{"p", [], [{"a", [{"class", "classy"}, {"href", "url"}], ["link"], %{}}], %{}}], []} ``` For both cases, malformed attributes are ignored and warnings are issued. ```elixir - iex(27)> [ "Some text", "{:hello}" ] |> Enum.join("\n") |> EarmarkParser.as_ast() + iex(34)> [ "Some text", "{:hello}" ] |> Enum.join("\n") |> EarmarkParser.as_ast() {:error, [{"p", [], ["Some text"], %{}}], [{:warning, 2,"Illegal attributes [\"hello\"] ignored in IAL"}]} ``` It is possible to escape the IAL in both forms if necessary ```elixir - iex(28)> markdown = "[link](url)\\{: .classy}" - ...(28)> EarmarkParser.as_ast(markdown) + iex(35)> markdown = "[link](url)\\{: .classy}" + ...(35)> EarmarkParser.as_ast(markdown) {:ok, [{"p", [], [{"a", [{"href", "url"}], ["link"], %{}}, "{: .classy}"], %{}}], []} ``` @@ -466,8 +550,8 @@ This of course is not necessary in code blocks or text lines containing an IAL-like string, as in the following example ```elixir - iex(29)> markdown = "hello {:world}" - ...(29)> EarmarkParser.as_ast(markdown) + iex(36)> markdown = "hello {:world}" + ...(36)> EarmarkParser.as_ast(markdown) {:ok, [{"p", [], ["hello {:world}"], %{}}], []} ``` @@ -554,14 +638,14 @@ Let us show some examples now: ### Annotated Paragraphs ```elixir - iex(30)> as_ast("hello %> annotated", annotations: "%>") + iex(37)> as_ast("hello %> annotated", annotations: "%>") {:ok, [{"p", [], ["hello "], %{annotation: "%> annotated"}}], []} ``` If we annotate more than one line in a para the first annotation takes precedence ```elixir - iex(31)> as_ast("hello %> annotated\nworld %> discarded", annotations: "%>") + iex(38)> as_ast("hello %> annotated\nworld %> discarded", annotations: "%>") {:ok, [{"p", [], ["hello \nworld "], %{annotation: "%> annotated"}}], []} ``` @@ -570,18 +654,18 @@ If we annotate more than one line in a para the first annotation takes precedenc In one line ```elixir - iex(32)> as_ast("<span>One Line</span> // a span", annotations: "//") + iex(39)> as_ast("<span>One Line</span> // a span", annotations: "//") {:ok, [{"span", [], ["One Line"], %{annotation: "// a span", verbatim: true}}], []} ``` or block elements ```elixir - iex(33)> [ - ...(33)> "<div> : annotation", - ...(33)> " <span>text</span>", - ...(33)> "</div> : discarded" - ...(33)> ] |> as_ast(annotations: " : ") + iex(40)> [ + ...(40)> "<div> : annotation", + ...(40)> " <span>text</span>", + ...(40)> "</div> : discarded" + ...(40)> ] |> as_ast(annotations: " : ") {:ok, [{"div", [], [" <span>text</span>"], %{annotation: " : annotation", verbatim: true}}], []} ``` @@ -591,13 +675,13 @@ Although many markdown elements do not support annotations yet, they can be used the generated AST with comments ```elixir - iex(34)> [ - ...(34)> "# Headline --> first line", - ...(34)> "- item1 --> a list item", - ...(34)> "- item2 --> another list item", - ...(34)> "", - ...(34)> "<http://somewhere/to/go> --> do not go there" - ...(34)> ] |> as_ast(annotations: "-->") + iex(41)> [ + ...(41)> "# Headline --> first line", + ...(41)> "- item1 --> a list item", + ...(41)> "- item2 --> another list item", + ...(41)> "", + ...(41)> "<http://somewhere/to/go> --> do not go there" + ...(41)> ] |> as_ast(annotations: "-->") {:ok, [ {"h1", [], ["Headline"], %{}}, {"ul", [], [{"li", [], ["item1 "], %{}}, {"li", [], ["item2 "], %{}}], %{}}, @@ -609,17 +693,17 @@ the generated AST with comments ### EarmarkParser.as_ast/2 - iex(35)> markdown = "My `code` is **best**" - ...(35)> {:ok, ast, []} = EarmarkParser.as_ast(markdown) - ...(35)> ast + iex(42)> markdown = "My `code` is **best**" + ...(42)> {:ok, ast, []} = EarmarkParser.as_ast(markdown) + ...(42)> ast [{"p", [], ["My ", {"code", [{"class", "inline"}], ["code"], %{}}, " is ", {"strong", [], ["best"], %{}}], %{}}] ```elixir - iex(36)> markdown = "```elixir\nIO.puts 42\n```" - ...(36)> {:ok, ast, []} = EarmarkParser.as_ast(markdown, code_class_prefix: "lang-") - ...(36)> ast + iex(43)> markdown = "```elixir\nIO.puts 42\n```" + ...(43)> {:ok, ast, []} = EarmarkParser.as_ast(markdown, code_class_prefix: "lang-") + ...(43)> ast [{"pre", [], [{"code", [{"class", "elixir lang-elixir"}], ["IO.puts 42"], %{}}], %{}}] ``` diff --git a/.deps/earmark_parser/RELEASE.md b/.deps/earmark_parser/RELEASE.md @@ -3,6 +3,41 @@ - [Depreacting message to be passed in as an array in options, and fixing it](https://github.com/robertdober/earmark_parser/issues/86) +## 1.4.29 2022-10-20 + +- Bugfix for [Strike Through Only Working on start of line #115](https://github.com/RobertDober/earmark_parser/issues/115) + +## 1.4.28 2022-10-01 + +- [Do not wrap labelled wikilinks in `<p>` tags](https://github.com/RobertDober/earmark_parser/pull/112) + + Kudos to [Ben Olive](https://github.com/sionide21) + +- Add option `all: true` enabling all options which are disabled by default, which are: + `breaks`, `footnotes`, `gfm_tables`, `sub_sup`, `wikilinks` + +- Fix bug for `a^n^` not being parsed as sup + +## 1.4.27 2022-09-30 + +- [Nice addition of sub and sup elements](https://github.com/RobertDober/earmark_parser/tree/i108-sub-and-sup) + + Needs to be enabled with the option `sub_sup: true` renders `~x~` inside `<sub>` and `^x^` inside `<sup>` + + Kudos to [manuel-rubio](https://github.com/manuel-rubio) + +- Optimisation in the inline renderer + +- Removal of compiler warnings + +## 1.4.26 2022-06-15 + +- Allow unquoted values for HTML attributes + +- [Accept valueless HTML attributes](https://github.com/RobertDober/earmark_parser/pull/106) + + Kudos to [Tom Conroy](https://github.com/tomconroy) + ## 1.4.25 2022-03-24 - [Two PRs to assure lookahead scanning is applied on the top level, where needed most](https://github.com/robertdober/earmark_parser/issues/100) @@ -13,10 +48,12 @@ ## 1.4.24 2022-03-20 -- Single worded footnote definitions where shadowed by ID Definitions, they tiebreak was resolved in favor of - Footnotes as ID Definitions do not need, and might as a matter of fact almost never, start with a `^` +- Single worded footnote definitions where shadowed by ID Definitions, the tiebreak was resolved in favor of + Footnotes as ID Definitions do not need, and might as a matter of fact almost never, to start with a `^` [Related Issue](https://github.com/RobertDober/earmark_parser/issues/99) +- Unused import warning removed + ## 1.4.23 2022-03-16 Two more list regressions fixed diff --git a/.deps/earmark_parser/hex_metadata.config b/.deps/earmark_parser/hex_metadata.config @@ -4,55 +4,54 @@ <<"Earmark AST the parser and AST Generator for\nDave Thomas' Earmark.\n\nThe parser generates\nan Abstract Syntax Tree from Markdown.\n\nThe original Earmark will still provide the HTML Transformation and\nthe CLI, however its Scanner, Parser and AST Renderer have been\nextracted into this library.">>}. {<<"elixir">>,<<"~> 1.11">>}. {<<"files">>, - [<<"lib">>,<<"lib/earmark_parser.ex">>,<<"lib/earmark_parser">>, - <<"lib/earmark_parser/helpers">>, - <<"lib/earmark_parser/helpers/leex_helpers.ex">>, - <<"lib/earmark_parser/helpers/string_helpers.ex">>, - <<"lib/earmark_parser/helpers/lookahead_helpers.ex">>, - <<"lib/earmark_parser/helpers/attr_parser.ex">>, - <<"lib/earmark_parser/helpers/html_parser.ex">>, - <<"lib/earmark_parser/helpers/ast_helpers.ex">>, - <<"lib/earmark_parser/helpers/pure_link_helpers.ex">>, - <<"lib/earmark_parser/helpers/line_helpers.ex">>, - <<"lib/earmark_parser/helpers/yecc_helpers.ex">>, - <<"lib/earmark_parser/helpers/reparse_helpers.ex">>, + [<<"lib">>,<<"lib/earmark_parser">>,<<"lib/earmark_parser/line.ex">>, + <<"lib/earmark_parser/message.ex">>,<<"lib/earmark_parser/options.ex">>, <<"lib/earmark_parser/enum">>,<<"lib/earmark_parser/enum/ext.ex">>, - <<"lib/earmark_parser/line.ex">>,<<"lib/earmark_parser/message.ex">>, - <<"lib/earmark_parser/context.ex">>,<<"lib/earmark_parser/ast">>, - <<"lib/earmark_parser/ast/emitter.ex">>, - <<"lib/earmark_parser/ast/renderer">>, - <<"lib/earmark_parser/ast/renderer/table_renderer.ex">>, - <<"lib/earmark_parser/ast/renderer/ast_walker.ex">>, - <<"lib/earmark_parser/ast/renderer/footnote_renderer.ex">>, - <<"lib/earmark_parser/ast/renderer/html_renderer.ex">>, - <<"lib/earmark_parser/ast/inline.ex">>,<<"lib/earmark_parser/types.ex">>, <<"lib/earmark_parser/parser">>, - <<"lib/earmark_parser/parser/link_parser.ex">>, - <<"lib/earmark_parser/parser/list_info.ex">>, <<"lib/earmark_parser/parser/footnote_parser.ex">>, + <<"lib/earmark_parser/parser/list_info.ex">>, <<"lib/earmark_parser/parser/list_parser.ex">>, - <<"lib/earmark_parser/ast_renderer.ex">>, - <<"lib/earmark_parser/options.ex">>,<<"lib/earmark_parser/block">>, - <<"lib/earmark_parser/block/ial.ex">>, - <<"lib/earmark_parser/block/list.ex">>, - <<"lib/earmark_parser/block/heading.ex">>, - <<"lib/earmark_parser/block/html_comment.ex">>, - <<"lib/earmark_parser/block/list_item.ex">>, - <<"lib/earmark_parser/block/table.ex">>, + <<"lib/earmark_parser/parser/link_parser.ex">>, + <<"lib/earmark_parser/helpers.ex">>,<<"lib/earmark_parser/ast">>, + <<"lib/earmark_parser/ast/renderer">>, + <<"lib/earmark_parser/ast/renderer/table_renderer.ex">>, + <<"lib/earmark_parser/ast/renderer/html_renderer.ex">>, + <<"lib/earmark_parser/ast/renderer/footnote_renderer.ex">>, + <<"lib/earmark_parser/ast/renderer/ast_walker.ex">>, + <<"lib/earmark_parser/ast/emitter.ex">>, + <<"lib/earmark_parser/ast/inline.ex">>,<<"lib/earmark_parser/parser.ex">>, + <<"lib/earmark_parser/context.ex">>, + <<"lib/earmark_parser/line_scanner.ex">>, + <<"lib/earmark_parser/ast_renderer.ex">>,<<"lib/earmark_parser/helpers">>, + <<"lib/earmark_parser/helpers/yecc_helpers.ex">>, + <<"lib/earmark_parser/helpers/line_helpers.ex">>, + <<"lib/earmark_parser/helpers/ast_helpers.ex">>, + <<"lib/earmark_parser/helpers/string_helpers.ex">>, + <<"lib/earmark_parser/helpers/reparse_helpers.ex">>, + <<"lib/earmark_parser/helpers/html_parser.ex">>, + <<"lib/earmark_parser/helpers/leex_helpers.ex">>, + <<"lib/earmark_parser/helpers/attr_parser.ex">>, + <<"lib/earmark_parser/helpers/lookahead_helpers.ex">>, + <<"lib/earmark_parser/helpers/pure_link_helpers.ex">>, + <<"lib/earmark_parser/block">>,<<"lib/earmark_parser/block/list_item.ex">>, + <<"lib/earmark_parser/block/html.ex">>, <<"lib/earmark_parser/block/ruler.ex">>, + <<"lib/earmark_parser/block/html_oneline.ex">>, + <<"lib/earmark_parser/block/code.ex">>, + <<"lib/earmark_parser/block/id_def.ex">>, <<"lib/earmark_parser/block/para.ex">>, - <<"lib/earmark_parser/block/block_quote.ex">>, <<"lib/earmark_parser/block/fn_list.ex">>, + <<"lib/earmark_parser/block/ial.ex">>, + <<"lib/earmark_parser/block/list.ex">>, + <<"lib/earmark_parser/block/table.ex">>, + <<"lib/earmark_parser/block/heading.ex">>, <<"lib/earmark_parser/block/fn_def.ex">>, - <<"lib/earmark_parser/block/html.ex">>, + <<"lib/earmark_parser/block/html_comment.ex">>, <<"lib/earmark_parser/block/text.ex">>, - <<"lib/earmark_parser/block/code.ex">>, - <<"lib/earmark_parser/block/id_def.ex">>, - <<"lib/earmark_parser/block/html_oneline.ex">>, - <<"lib/earmark_parser/parser.ex">>,<<"lib/earmark_parser/line_scanner.ex">>, - <<"lib/earmark_parser/helpers.ex">>,<<"src/link_text_lexer.xrl">>, - <<"src/string_lexer.xrl">>,<<"src/link_text_parser.yrl">>,<<"mix.exs">>, - <<"README.md">>,<<"RELEASE.md">>,<<"LICENSE">>]}. + <<"lib/earmark_parser/block/block_quote.ex">>,<<"lib/earmark_parser.ex">>, + <<"src/link_text_lexer.xrl">>,<<"src/string_lexer.xrl">>, + <<"src/link_text_parser.yrl">>,<<"mix.exs">>,<<"README.md">>, + <<"RELEASE.md">>,<<"LICENSE">>]}. {<<"licenses">>,[<<"Apache-2.0">>]}. {<<"links">>, [{<<"Changelog">>, @@ -60,4 +59,4 @@ {<<"GitHub">>,<<"https://github.com/RobertDober/earmark_parser">>}]}. {<<"name">>,<<"earmark_parser">>}. {<<"requirements">>,[]}. -{<<"version">>,<<"1.4.25">>}. +{<<"version">>,<<"1.4.29">>}. diff --git a/.deps/earmark_parser/lib/earmark_parser.ex b/.deps/earmark_parser/lib/earmark_parser.ex @@ -92,6 +92,19 @@ defmodule EarmarkParser do {:ok, [{"p", [], [{"a", [{"href", "page"}], ["page"], %{wikilink: true}}], %{}}], []} + ### Sub and Sup HTML Elements + + This feature is not enabled by default but can be enabled with the option `sub_sup: true` + + Therefore we will get + + iex(9)> EarmarkParser.as_ast("H~2~O or a^n^ + b^n^ = c^n^") + {:ok, [{"p", [], ["H~2~O or a^n^ + b^n^ = c^n^"], %{}}], []} + + But by specifying `sub_sup: true` + + iex(10)> EarmarkParser.as_ast("H~2~O or a^n^ + b^n^ = c^n^", sub_sup: true) + {:ok, [{"p", [], ["H", {"sub", [], ["2"], %{}}, "O or a", {"sup", [], ["n"], %{}}, " + b", {"sup", [], ["n"], %{}}, " = c", {"sup", [], ["n"], %{}}], %{}}], []} ### Github Flavored Markdown @@ -99,9 +112,33 @@ defmodule EarmarkParser do #### Strike Through - iex(9)> EarmarkParser.as_ast("~~hello~~") + iex(11)> EarmarkParser.as_ast("~~hello~~") {:ok, [{"p", [], [{"del", [], ["hello"], %{}}], %{}}], []} + #### GFM Tables + + Are not enabled by default + + iex(12)> as_ast("a|b\\n-|-\\nc|d\\n") + {:ok, [{"p", [], ["a|b\\n-|-\\nc|d\\n"], %{}}], []} + + But can be enabled with `gfm_tables: true` + + iex(13)> as_ast("a|b\n-|-\nc|d\n", gfm_tables: true) + {:ok, + [ + { + "table", + [], + [ + {"thead", [], [{"tr", [], [{"th", [{"style", "text-align: left;"}], ["a"], %{}}, {"th", [{"style", "text-align: left;"}], ["b"], %{}}], %{}}], %{}}, + {"tbody", [], [{"tr", [], [{"td", [{"style", "text-align: left;"}], ["c"], %{}}, {"td", [{"style", "text-align: left;"}], ["d"], %{}}], %{}}], %{}} + ], + %{} + } + ], + []} + #### Syntax Highlighting All backquoted or fenced code blocks with a language string are rendered with the given @@ -109,11 +146,11 @@ defmodule EarmarkParser do For example: - iex(10)> [ - ...(10)> "```elixir", - ...(10)> " @tag :hello", - ...(10)> "```" - ...(10)> ] |> as_ast() + iex(14)> [ + ...(14)> "```elixir", + ...(14)> " @tag :hello", + ...(14)> "```" + ...(14)> ] |> as_ast() {:ok, [{"pre", [], [{"code", [{"class", "elixir"}], [" @tag :hello"], %{}}], %{}}], []} will be rendered as shown in the doctest above. @@ -126,11 +163,11 @@ defmodule EarmarkParser do In the following example we want more than one additional class, so we add more prefixes. - iex(11)> [ - ...(11)> "```elixir", - ...(11)> " @tag :hello", - ...(11)> "```" - ...(11)> ] |> as_ast(%EarmarkParser.Options{code_class_prefix: "lang- language-"}) + iex(15)> [ + ...(15)> "```elixir", + ...(15)> " @tag :hello", + ...(15)> "```" + ...(15)> ] |> as_ast(%EarmarkParser.Options{code_class_prefix: "lang- language-"}) {:ok, [{"pre", [], [{"code", [{"class", "elixir lang-elixir language-elixir"}], [" @tag :hello"], %{}}], %{}}], []} @@ -138,20 +175,19 @@ defmodule EarmarkParser do **N.B.** Footnotes are disabled by default, use `as_ast(..., footnotes: true)` to enable them - Footnotes are now a **superset** of GFM Footnotes. This implies some changes - Footnote definitions (`[^footnote_id]`) must come at the end of your document (_GFM_) - Footnotes that are not referenced are not rendered anymore (_GFM_) - Footnote definitions can contain any markup with the exception of footnote definitions - iex(12)> markdown = [ - ...(12)> "My reference[^to_footnote]", - ...(12)> "", - ...(12)> "[^1]: I am not rendered", - ...(12)> "[^to_footnote]: Important information"] - ...(12)> {:ok, ast, []} = as_ast(markdown, footnotes: true) - ...(12)> ast + iex(16)> markdown = [ + ...(16)> "My reference[^to_footnote]", + ...(16)> "", + ...(16)> "[^1]: I am not rendered", + ...(16)> "[^to_footnote]: Important information"] + ...(16)> {:ok, ast, []} = as_ast(markdown, footnotes: true) + ...(16)> ast [ {"p", [], ["My reference", {"a", @@ -171,6 +207,36 @@ defmodule EarmarkParser do For more complex examples of footnotes, please refer to [these tests](https://github.com/RobertDober/earmark_parser/tree/master/test/acceptance/ast/footnotes/multiple_fn_test.exs) + #### Breaks + + Hard linebreaks are disabled by default + + iex(17)> ["* a"," b", "c"] + ...(17)> |> as_ast() + {:ok, + [{"ul", [], [{"li", [], ["a\nb\nc"], %{}}], %{}}], + []} + + But can be enabled with `breaks: true` + + iex(18)> ["* a"," b", "c"] + ...(18)> |> as_ast(breaks: true) + {:ok, [{"ul", [], [{"li", [], ["a", {"br", [], [], %{}}, "b", {"br", [], [], %{}}, "c"], %{}}], %{}}], []} + + #### Enabling **all** options that are disabled by default + + Can be achieved with the `all: true` option + + iex(19)> [ + ...(19)> "a^n^", + ...(19)> "b~2~", + ...(19)> "[[wikilink]]"] + ...(19)> |> as_ast(all: true) + {:ok, [ + {"p", [], ["a", {"sup", [], ["n"], %{}}, {"br", [], [], %{}}, "b", {"sub", [], ["2"], %{}}, {"br", [], [], %{}}, {"a", [{"href", "wikilink"}], ["wikilink"], %{wikilink: true}}], %{}} + ], + []} + #### Tables Are supported as long as they are preceded by an empty line. @@ -223,30 +289,30 @@ defmodule EarmarkParser do E.g. - iex(13)> lines = [ "<div><span>", "some</span><text>", "</div>more text" ] - ...(13)> EarmarkParser.as_ast(lines) + iex(20)> lines = [ "<div><span>", "some</span><text>", "</div>more text" ] + ...(20)> EarmarkParser.as_ast(lines) {:ok, [{"div", [], ["<span>", "some</span><text>"], %{verbatim: true}}, "more text"], []} And a line starting with an opening tag and ending with the corresponding closing tag is parsed in similar fashion - iex(14)> EarmarkParser.as_ast(["<span class=\"superspan\">spaniel</span>"]) + iex(21)> EarmarkParser.as_ast(["<span class=\"superspan\">spaniel</span>"]) {:ok, [{"span", [{"class", "superspan"}], ["spaniel"], %{verbatim: true}}], []} What is HTML? We differ from strict GFM by allowing **all** tags not only HTML5 tags this holds for one liners.... - iex(15)> {:ok, ast, []} = EarmarkParser.as_ast(["<stupid />", "<not>better</not>"]) - ...(15)> ast + iex(22)> {:ok, ast, []} = EarmarkParser.as_ast(["<stupid />", "<not>better</not>"]) + ...(22)> ast [ {"stupid", [], [], %{verbatim: true}}, {"not", [], ["better"], %{verbatim: true}}] and for multi line blocks - iex(16)> {:ok, ast, []} = EarmarkParser.as_ast([ "<hello>", "world", "</hello>"]) - ...(16)> ast + iex(23)> {:ok, ast, []} = EarmarkParser.as_ast([ "<hello>", "world", "</hello>"]) + ...(23)> ast [{"hello", [], ["world"], %{verbatim: true}}] #### HTML Comments @@ -256,7 +322,7 @@ defmodule EarmarkParser do E.g. - iex(17)> EarmarkParser.as_ast(" <!-- Comment\ncomment line\ncomment --> text -->\nafter") + iex(24)> EarmarkParser.as_ast(" <!-- Comment\ncomment line\ncomment --> text -->\nafter") {:ok, [{:comment, [], [" Comment", "comment line", "comment "], %{comment: true}}, {"p", [], ["after"], %{}}], []} @@ -274,22 +340,22 @@ defmodule EarmarkParser do Therefore we stick to a more predictable approach. - iex(18)> markdown = [ - ...(18)> "* aa", - ...(18)> " ```", - ...(18)> "Second", - ...(18)> " ```" ] - ...(18)> as_ast(markdown) + iex(25)> markdown = [ + ...(25)> "* aa", + ...(25)> " ```", + ...(25)> "Second", + ...(25)> " ```" ] + ...(25)> as_ast(markdown) {:ok, [{"ul", [], [{"li", [], ["aa", {"pre", [], [{"code", [], ["Second"], %{}}], %{}}], %{}}], %{}}], []} Also we do support the immediate style of block content inside lists - iex(19)> as_ast("* > Nota Bene!") + iex(26)> as_ast("* > Nota Bene!") {:ok, [{"ul", [], [{"li", [], [{"blockquote", [], [{"p", [], ["Nota Bene!"], %{}}], %{}}], %{}}], %{}}], []} or - iex(20)> as_ast("1. # Breaking...") + iex(27)> as_ast("1. # Breaking...") {:ok, [{"ol", [], [{"li", [], [{"h1", [], ["Breaking..."], %{}}], %{}}], %{}}], []} @@ -300,34 +366,34 @@ defmodule EarmarkParser do HTML attributes can be added to any block-level element. We use the Kramdown syntax: add the line `{:` _attrs_ `}` following the block. - iex(21)> markdown = ["# Headline", "{:.from-next-line}"] - ...(21)> as_ast(markdown) + iex(28)> markdown = ["# Headline", "{:.from-next-line}"] + ...(28)> as_ast(markdown) {:ok, [{"h1", [{"class", "from-next-line"}], ["Headline"], %{}}], []} Headers can also have the IAL string at the end of the line - iex(22)> markdown = ["# Headline{:.from-same-line}"] - ...(22)> as_ast(markdown) + iex(29)> markdown = ["# Headline{:.from-same-line}"] + ...(29)> as_ast(markdown) {:ok, [{"h1", [{"class", "from-same-line"}], ["Headline"], %{}}], []} A special use case is headers inside blockquotes which allow for some nifty styling in `ex_doc`* see [this PR](https://github.com/elixir-lang/ex_doc/pull/1400) if you are interested in the technical details - iex(23)> markdown = ["> # Headline{:.warning}"] - ...(23)> as_ast(markdown) + iex(30)> markdown = ["> # Headline{:.warning}"] + ...(30)> as_ast(markdown) {:ok, [{"blockquote", [], [{"h1", [{"class", "warning"}], ["Headline"], %{}}], %{}}], []} This also works for headers inside lists - iex(24)> markdown = ["- # Headline{:.warning}"] - ...(24)> as_ast(markdown) + iex(31)> markdown = ["- # Headline{:.warning}"] + ...(31)> as_ast(markdown) {:ok, [{"ul", [], [{"li", [], [{"h1", [{"class", "warning"}], ["Headline"], %{}}], %{}}], %{}}], []} It still works for inline code, as it did before - iex(25)> markdown = "`Enum.map`{:lang=elixir}" - ...(25)> as_ast(markdown) + iex(32)> markdown = "`Enum.map`{:lang=elixir}" + ...(32)> as_ast(markdown) {:ok, [{"p", [], [{"code", [{"class", "inline"}, {"lang", "elixir"}], ["Enum.map"], %{}}], %{}}], []} @@ -351,26 +417,26 @@ defmodule EarmarkParser do It is possible to add IAL attributes to generated links or images in the following format. - iex(26)> markdown = "[link](url) {: .classy}" - ...(26)> EarmarkParser.as_ast(markdown) + iex(33)> markdown = "[link](url) {: .classy}" + ...(33)> EarmarkParser.as_ast(markdown) { :ok, [{"p", [], [{"a", [{"class", "classy"}, {"href", "url"}], ["link"], %{}}], %{}}], []} For both cases, malformed attributes are ignored and warnings are issued. - iex(27)> [ "Some text", "{:hello}" ] |> Enum.join("\n") |> EarmarkParser.as_ast() + iex(34)> [ "Some text", "{:hello}" ] |> Enum.join("\n") |> EarmarkParser.as_ast() {:error, [{"p", [], ["Some text"], %{}}], [{:warning, 2,"Illegal attributes [\"hello\"] ignored in IAL"}]} It is possible to escape the IAL in both forms if necessary - iex(28)> markdown = "[link](url)\\{: .classy}" - ...(28)> EarmarkParser.as_ast(markdown) + iex(35)> markdown = "[link](url)\\{: .classy}" + ...(35)> EarmarkParser.as_ast(markdown) {:ok, [{"p", [], [{"a", [{"href", "url"}], ["link"], %{}}, "{: .classy}"], %{}}], []} This of course is not necessary in code blocks or text lines containing an IAL-like string, as in the following example - iex(29)> markdown = "hello {:world}" - ...(29)> EarmarkParser.as_ast(markdown) + iex(36)> markdown = "hello {:world}" + ...(36)> EarmarkParser.as_ast(markdown) {:ok, [{"p", [], ["hello {:world}"], %{}}], []} ## Limitations @@ -455,28 +521,28 @@ defmodule EarmarkParser do ### Annotated Paragraphs - iex(30)> as_ast("hello %> annotated", annotations: "%>") + iex(37)> as_ast("hello %> annotated", annotations: "%>") {:ok, [{"p", [], ["hello "], %{annotation: "%> annotated"}}], []} If we annotate more than one line in a para the first annotation takes precedence - iex(31)> as_ast("hello %> annotated\nworld %> discarded", annotations: "%>") + iex(38)> as_ast("hello %> annotated\nworld %> discarded", annotations: "%>") {:ok, [{"p", [], ["hello \nworld "], %{annotation: "%> annotated"}}], []} ### Annotated HTML elements In one line - iex(32)> as_ast("<span>One Line</span> // a span", annotations: "//") + iex(39)> as_ast("<span>One Line</span> // a span", annotations: "//") {:ok, [{"span", [], ["One Line"], %{annotation: "// a span", verbatim: true}}], []} or block elements - iex(33)> [ - ...(33)> "<div> : annotation", - ...(33)> " <span>text</span>", - ...(33)> "</div> : discarded" - ...(33)> ] |> as_ast(annotations: " : ") + iex(40)> [ + ...(40)> "<div> : annotation", + ...(40)> " <span>text</span>", + ...(40)> "</div> : discarded" + ...(40)> ] |> as_ast(annotations: " : ") {:ok, [{"div", [], [" <span>text</span>"], %{annotation: " : annotation", verbatim: true}}], []} ### Commenting your Markdown @@ -484,13 +550,13 @@ defmodule EarmarkParser do Although many markdown elements do not support annotations yet, they can be used to comment your markdown, w/o cluttering the generated AST with comments - iex(34)> [ - ...(34)> "# Headline --> first line", - ...(34)> "- item1 --> a list item", - ...(34)> "- item2 --> another list item", - ...(34)> "", - ...(34)> "<http://somewhere/to/go> --> do not go there" - ...(34)> ] |> as_ast(annotations: "-->") + iex(41)> [ + ...(41)> "# Headline --> first line", + ...(41)> "- item1 --> a list item", + ...(41)> "- item2 --> another list item", + ...(41)> "", + ...(41)> "<http://somewhere/to/go> --> do not go there" + ...(41)> ] |> as_ast(annotations: "-->") {:ok, [ {"h1", [], ["Headline"], %{}}, {"ul", [], [{"li", [], ["item1 "], %{}}, {"li", [], ["item2 "], %{}}], %{}}, @@ -504,16 +570,16 @@ defmodule EarmarkParser do import EarmarkParser.Message, only: [sort_messages: 1] @doc """ - iex(35)> markdown = "My `code` is **best**" - ...(35)> {:ok, ast, []} = EarmarkParser.as_ast(markdown) - ...(35)> ast + iex(42)> markdown = "My `code` is **best**" + ...(42)> {:ok, ast, []} = EarmarkParser.as_ast(markdown) + ...(42)> ast [{"p", [], ["My ", {"code", [{"class", "inline"}], ["code"], %{}}, " is ", {"strong", [], ["best"], %{}}], %{}}] - iex(36)> markdown = "```elixir\\nIO.puts 42\\n```" - ...(36)> {:ok, ast, []} = EarmarkParser.as_ast(markdown, code_class_prefix: "lang-") - ...(36)> ast + iex(43)> markdown = "```elixir\\nIO.puts 42\\n```" + ...(43)> {:ok, ast, []} = EarmarkParser.as_ast(markdown, code_class_prefix: "lang-") + ...(43)> ast [{"pre", [], [{"code", [{"class", "elixir lang-elixir"}], ["IO.puts 42"], %{}}], %{}}] **Rationale**: diff --git a/.deps/earmark_parser/lib/earmark_parser/ast/inline.ex b/.deps/earmark_parser/lib/earmark_parser/ast/inline.ex @@ -37,24 +37,23 @@ defmodule EarmarkParser.Ast.Inline do _convert(src1, lnb1, context1, use_linky1?) end - @linky_converter_names [ - :converter_for_link_and_image, - :converter_for_reflink, - :converter_for_footnote, - :converter_for_nolink - ] - defp all_converters do [ converter_for_escape: &converter_for_escape/1, converter_for_autolink: &converter_for_autolink/1, + # only if use_linky? converter_for_link_and_image: &converter_for_link_and_image/1, converter_for_reflink: &converter_for_reflink/1, converter_for_footnote: &converter_for_footnote/1, converter_for_nolink: &converter_for_nolink/1, + # converter_for_strikethrough_gfm: &converter_for_strikethrough_gfm/1, converter_for_strong: &converter_for_strong/1, converter_for_em: &converter_for_em/1, + # only for option sub_sup + converter_for_sub: &converter_for_sub/1, + converter_for_sup: &converter_for_sup/1, + # converter_for_code: &converter_for_code/1, converter_for_br: &converter_for_br/1, converter_for_inline_ial: &converter_for_inline_ial/1, @@ -64,19 +63,11 @@ defmodule EarmarkParser.Ast.Inline do end defp _convert_next(src, lnb, context, use_linky?) do - converters = - if use_linky? do - all_converters() - else - all_converters() |> Keyword.drop(@linky_converter_names) - end - - _find_and_execute_converter({src, lnb, context, use_linky?}, converters) + _find_and_execute_converter({src, lnb, context, use_linky?}) end - @spec _find_and_execute_converter(conversion_data(), list) :: conversion_data() - defp _find_and_execute_converter({src, lnb, context, use_linky?}, converters) do - converters + defp _find_and_execute_converter({src, lnb, context, use_linky?}) do + all_converters() |> Enum.find_value(fn {_converter_name, converter} -> converter.({src, lnb, context, use_linky?}) end) @@ -88,7 +79,7 @@ defmodule EarmarkParser.Ast.Inline do # ###################### @escape_rule ~r{^\\([\\`*\{\}\[\]()\#+\-.!_>])} - defp converter_for_escape({src, lnb, context, use_linky?}) do + def converter_for_escape({src, lnb, context, use_linky?}) do if match = Regex.run(@escape_rule, src) do [match, escaped] = match {behead(src, match), lnb, prepend(context, escaped), use_linky?} @@ -96,7 +87,7 @@ defmodule EarmarkParser.Ast.Inline do end @autolink_rgx ~r{^<([^ >]+(@|:\/)[^ >]+)>} - defp converter_for_autolink({src, lnb, context, use_linky?}) do + def converter_for_autolink({src, lnb, context, use_linky?}) do if match = Regex.run(@autolink_rgx, src) do [match, link, protocol] = match {href, text} = convert_autolink(link, protocol) @@ -105,7 +96,7 @@ defmodule EarmarkParser.Ast.Inline do end end - defp converter_for_pure_link({src, lnb, context, use_linky?}) do + def converter_for_pure_link({src, lnb, context, use_linky?}) do if context.options.pure_links do case PureLinkHelpers.convert_pure_link(src) do {ast, length} -> {behead(src, length), lnb, prepend(context, ast), use_linky?} @@ -114,75 +105,83 @@ defmodule EarmarkParser.Ast.Inline do end end - defp converter_for_link_and_image({src, lnb, context, use_linky?}) do - match = LinkParser.parse_link(src, lnb) + def converter_for_link_and_image({src, lnb, context, use_linky?}) do + if use_linky? do + match = LinkParser.parse_link(src, lnb) - if match do - {match1, text, href, title, link_or_img} = match + if match do + {match1, text, href, title, link_or_img} = match - out = - case link_or_img do - :link -> output_link(context, text, href, title, lnb) - :wikilink -> maybe_output_wikilink(context, text, href, title, lnb) - :image -> render_image(text, href, title) - end + out = + case link_or_img do + :link -> output_link(context, text, href, title, lnb) + :wikilink -> maybe_output_wikilink(context, text, href, title, lnb) + :image -> render_image(text, href, title) + end - if out do - {behead(src, match1), lnb, prepend(context, out), use_linky?} + if out do + {behead(src, match1), lnb, prepend(context, out), use_linky?} + end end end end @link_text ~S{(?:\[[^]]*\]|[^][]|\])*} @reflink ~r{^!?\[(#{@link_text})\]\s*\[([^]]*)\]}x - defp converter_for_reflink({src, lnb, context, use_linky?}) do - if match = Regex.run(@reflink, src) do - {match_, alt_text, id} = - case match do - [match__, id, ""] -> {match__, id, id} - [match__, alt_text, id] -> {match__, alt_text, id} + def converter_for_reflink({src, lnb, context, use_linky?}) do + if use_linky? do + if match = Regex.run(@reflink, src) do + {match_, alt_text, id} = + case match do + [match__, id, ""] -> {match__, id, id} + [match__, alt_text, id] -> {match__, alt_text, id} + end + + case reference_link(context, match_, alt_text, id, lnb) do + {:ok, out} -> {behead(src, match_), lnb, prepend(context, out), use_linky?} + _ -> nil end - - case reference_link(context, match_, alt_text, id, lnb) do - {:ok, out} -> {behead(src, match_), lnb, prepend(context, out), use_linky?} - _ -> nil end end end - defp converter_for_footnote({src, lnb, context, use_linky?}) do - case Regex.run(context.rules.footnote, src) do - [match, id] -> - case footnote_link(context, match, id) do - {:ok, out} -> - {behead(src, match), lnb, _prepend_footnote(context, out, id), use_linky?} - - _ -> - converter_for_text( - {src, lnb, - Message.add_message( - context, - {:error, lnb, "footnote #{id} undefined, reference to it ignored"} - ), use_linky?} - ) - end - - _ -> - nil + def converter_for_footnote({src, lnb, context, use_linky?}) do + if use_linky? do + case Regex.run(context.rules.footnote, src) do + [match, id] -> + case footnote_link(context, match, id) do + {:ok, out} -> + {behead(src, match), lnb, _prepend_footnote(context, out, id), use_linky?} + + _ -> + converter_for_text( + {src, lnb, + Message.add_message( + context, + {:error, lnb, "footnote #{id} undefined, reference to it ignored"} + ), use_linky?} + ) + end + + _ -> + nil + end end end @nolink ~r{^!?\[((?:\[[^]]*\]|[^][])*)\]} - defp converter_for_nolink({src, lnb, context, use_linky?}) do - case Regex.run(@nolink, src) do - [match, id] -> - case reference_link(context, match, id, id, lnb) do - {:ok, out} -> {behead(src, match), lnb, prepend(context, out), use_linky?} - _ -> nil - end - - _ -> - nil + def converter_for_nolink({src, lnb, context, use_linky?}) do + if use_linky? do + case Regex.run(@nolink, src) do + [match, id] -> + case reference_link(context, match, id, id, lnb) do + {:ok, out} -> {behead(src, match), lnb, prepend(context, out), use_linky?} + _ -> nil + end + + _ -> + nil + end end end @@ -190,35 +189,53 @@ defmodule EarmarkParser.Ast.Inline do # Simple Tags: em, strong, del # ################################ @strikethrough_rgx ~r{\A~~(?=\S)([\s\S]*?\S)~~} - defp converter_for_strikethrough_gfm({src, _, _, _} = conv_tuple) do + def converter_for_strikethrough_gfm({src, _, _, _} = conv_tuple) do if match = Regex.run(@strikethrough_rgx, src) do _converter_for_simple_tag(conv_tuple, match, "del") end end @strong_rgx ~r{\A__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)} - defp converter_for_strong({src, _, _, _} = conv_tuple) do + def converter_for_strong({src, _, _, _} = conv_tuple) do if match = Regex.run(@strong_rgx, src) do _converter_for_simple_tag(conv_tuple, match, "strong") end end @emphasis_rgx ~r{\A\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)} - defp converter_for_em({src, _, _, _} = conv_tuple) do + def converter_for_em({src, _, _, _} = conv_tuple) do if match = Regex.run(@emphasis_rgx, src) do _converter_for_simple_tag(conv_tuple, match, "em") end end + @sub_rgx ~r{\A~(?=\S)(.*?\S)~} + def converter_for_sub({src, _, %{options: %{sub_sup: true}}, _} = conv_tuple) do + if match = Regex.run(@sub_rgx, src) do + _converter_for_simple_tag(conv_tuple, match, "sub") + end + end + + def converter_for_sub(_), do: nil + + @sup_rgx ~r{\A\^(?=\S)(.*?\S)\^} + def converter_for_sup({src, _, %{options: %{sub_sup: true}}, _} = conv_tuple) do + if match = Regex.run(@sup_rgx, src) do + _converter_for_simple_tag(conv_tuple, match, "sup") + end + end + + def converter_for_sup(_), do: nil + @squash_ws ~r{\s+} @code ~r{^ - (`+) # $1 = Opening run of ` - (.+?) # $2 = The code block - (?<!`) - \1 # Matching closer - (?!`) - }xs - defp converter_for_code({src, lnb, context, use_linky?}) do + (`+) # $1 = Opening run of ` + (.+?) # $2 = The code block + (?<!`) + \1 # Matching closer + (?!`) +}xs + def converter_for_code({src, lnb, context, use_linky?}) do if match = Regex.run(@code, src) do [match, _, content] = match # Commonmark @@ -234,7 +251,7 @@ defmodule EarmarkParser.Ast.Inline do @inline_ial ~r<^\s*\{:\s*(.*?)\s*}> - defp converter_for_inline_ial({src, lnb, context, use_linky?}) do + def converter_for_inline_ial({src, lnb, context, use_linky?}) do if match = Regex.run(@inline_ial, src) do [match, ial] = match {context1, ial_attrs} = parse_attrs(context, ial, lnb) @@ -243,7 +260,7 @@ defmodule EarmarkParser.Ast.Inline do end end - defp converter_for_br({src, lnb, context, use_linky?}) do + def converter_for_br({src, lnb, context, use_linky?}) do if match = Regex.run(context.rules.br, src, return: :index) do [{0, match_len}] = match {behead(src, match_len), lnb, prepend(context, emit("br")), use_linky?} @@ -252,7 +269,7 @@ defmodule EarmarkParser.Ast.Inline do @line_ending ~r{\r\n?|\n} @spec converter_for_text(conversion_data()) :: conversion_data() - defp converter_for_text({src, lnb, context, _}) do + def converter_for_text({src, lnb, context, _}) do matched = case Regex.run(context.rules.text, src) do [match] -> match diff --git a/.deps/earmark_parser/lib/earmark_parser/context.ex b/.deps/earmark_parser/lib/earmark_parser/context.ex @@ -1,6 +1,5 @@ defmodule EarmarkParser.Context do @moduledoc false - use EarmarkParser.Types alias EarmarkParser.Options @type t :: %__MODULE__{ @@ -105,19 +104,22 @@ defmodule EarmarkParser.Context do end defp rules_for(options) do + subsup = + if options.sub_sup do + "~^" + else + "" + end rule_updates = if options.gfm do rules = [ - escape: ~r{^\\([\\`*\{\}\[\]()\#+\-.!_>~|])}, - url: ~r{^(https?:\/\/[^\s<]+[^<.,:;\"\')\]\s])}, - strikethrough: ~r{^~~(?=\S)([\s\S]*?\S)~~}, - text: ~r{^[\s\S]+?(?=[\\<!\[_*`~]|https?://| \{2,\}\n|$)} + text: ~r{^[\s\S]+?(?=~~|[\\<!\[_*`#{subsup}]|https?://| \{2,\}\n|$)} ] if options.breaks do break_updates = [ br: ~r{^ *\n(?!\s*$)}, - text: ~r{^[\s\S]+?(?=[\\<!\[_*`~]|https?://| *\n|$)} + text: ~r{^[\s\S]+?(?=[\\<!\[_*`#{subsup}]|https?://| *\n|$)} ] Keyword.merge(rules, break_updates) diff --git a/.deps/earmark_parser/lib/earmark_parser/helpers/html_parser.ex b/.deps/earmark_parser/lib/earmark_parser/helpers/html_parser.ex @@ -18,11 +18,16 @@ defmodule EarmarkParser.Helpers.HtmlParser do # Parse One Tag # ------------- - @attribute ~r{\A ([-\w]+) = (["']) (.*?) \2 \s*}x + @quoted_attr ~r{\A ([-\w]+) \s* = \s* (["']) (.*?) \2 \s*}x + @unquoted_attr ~r{\A ([-\w]+) (?: \s* = \s* ([^&\s]*))? \s*}x defp _parse_atts(string, tag, atts) do - case Regex.run(@attribute, string) do + case Regex.run(@quoted_attr, string) do [all, name, _delim, value] -> _parse_atts(behead(string, all), tag, [{name, value}|atts]) - _ -> _parse_tag_tail(string, tag, atts) + _ -> case Regex.run(@unquoted_attr, string) do + [all, name, value] -> _parse_atts(behead(string, all), tag, [{name, value}|atts]) + [all, name] -> _parse_atts(behead(string, all), tag, [{name, name}|atts]) + _ -> _parse_tag_tail(string, tag, atts) + end end end diff --git a/.deps/earmark_parser/lib/earmark_parser/helpers/lookahead_helpers.ex b/.deps/earmark_parser/lib/earmark_parser/helpers/lookahead_helpers.ex @@ -1,7 +1,6 @@ defmodule EarmarkParser.Helpers.LookaheadHelpers do @moduledoc false - use EarmarkParser.Types import EarmarkParser.Helpers.LeexHelpers diff --git a/.deps/earmark_parser/lib/earmark_parser/line_scanner.ex b/.deps/earmark_parser/lib/earmark_parser/line_scanner.ex @@ -1,8 +1,6 @@ defmodule EarmarkParser.LineScanner do @moduledoc false - use EarmarkParser.Types - alias EarmarkParser.{Helpers, Line, Options} # This is the re that matches the ridiculous "[id]: url title" syntax @@ -182,7 +180,7 @@ defmodule EarmarkParser.LineScanner do line: line } - Regex.run(~r/\A (\s*) .* \s \| \s /x, line) -> + line |> String.replace(~r/\[\[ .*? \]\]/x, "") |> String.match?(~r/\A (\s*) .* \s \| \s /x) -> columns = _split_table_columns(line) %Line.TableLine{ @@ -193,7 +191,7 @@ defmodule EarmarkParser.LineScanner do line: line } - options.gfm_tables && Regex.run(~r/\A (\s*) .* \| /x, line) -> + options.gfm_tables && line |> String.replace(~r/\[\[ .*? \]\]/x, "") |> String.match?(~r/\A (\s*) .* \| /x) -> columns = _split_table_columns(line) %Line.TableLine{ diff --git a/.deps/earmark_parser/lib/earmark_parser/options.ex b/.deps/earmark_parser/lib/earmark_parser/options.ex @@ -1,10 +1,8 @@ defmodule EarmarkParser.Options do - - use EarmarkParser.Types - # What we use to render defstruct renderer: EarmarkParser.HtmlRenderer, # Inline style options + all: false, gfm: true, gfm_tables: false, breaks: false, @@ -25,27 +23,49 @@ defmodule EarmarkParser.Options do # [{:error|:warning, lnb, text},...] messages: MapSet.new([]), pure_links: true, + sub_sup: false, # deprecated pedantic: false, smartypants: false, timeout: nil - @doc false def add_deprecations(options, messages) - def add_deprecations(%__MODULE__{smartypants: true}=options, messages) do - add_deprecations(%{options|smartypants: false}, - [{:deprecated, 0, "The smartypants option has no effect anymore and will be removed in EarmarkParser 1.5"}|messages]) + + def add_deprecations(%__MODULE__{smartypants: true} = options, messages) do + add_deprecations( + %{options | smartypants: false}, + [ + {:deprecated, 0, + "The smartypants option has no effect anymore and will be removed in EarmarkParser 1.5"} + | messages + ] + ) end - def add_deprecations(%__MODULE__{timeout: timeout}=options, messages) when timeout != nil do - add_deprecations(%{options|timeout: nil}, - [{:deprecated, 0, "The timeout option has no effect anymore and will be removed in EarmarkParser 1.5"}|messages]) + + def add_deprecations(%__MODULE__{timeout: timeout} = options, messages) when timeout != nil do + add_deprecations( + %{options | timeout: nil}, + [ + {:deprecated, 0, + "The timeout option has no effect anymore and will be removed in EarmarkParser 1.5"} + | messages + ] + ) end - def add_deprecations(%__MODULE__{pedantic: true}=options, messages) do - add_deprecations(%{options|pedantic: false}, - [{:deprecated, 0, "The pedantic option has no effect anymore and will be removed in EarmarkParser 1.5"}|messages]) + + def add_deprecations(%__MODULE__{pedantic: true} = options, messages) do + add_deprecations( + %{options | pedantic: false}, + [ + {:deprecated, 0, + "The pedantic option has no effect anymore and will be removed in EarmarkParser 1.5"} + | messages + ] + ) end + def add_deprecations(_options, messages), do: messages @doc ~S""" @@ -56,22 +76,48 @@ defmodule EarmarkParser.Options do ~r{\A(.*)(%%.*)} """ def normalize(options) - def normalize(%__MODULE__{}=options) do + + def normalize(%__MODULE__{} = options) do case options.annotations do - %Regex{} -> options - nil -> options - _ -> %{options | annotations: Regex.compile!("\\A(.*)(#{Regex.escape(options.annotations)}.*)")} - end |> _deprecate_old_messages() + %Regex{} -> + options + + nil -> + options + + _ -> + %{ + options + | annotations: Regex.compile!("\\A(.*)(#{Regex.escape(options.annotations)}.*)") + } + end + |> _set_all_if_applicable() + |> _deprecate_old_messages() end + def normalize(options), do: struct(__MODULE__, options) |> normalize() defp _deprecate_old_messages(opitons) - defp _deprecate_old_messages(%__MODULE__{messages: %MapSet{}}=options), do: options - defp _deprecate_old_messages(%__MODULE__{}=options) do - %{ options | - messages: - MapSet.new([{:deprecated, 0, "messages is an internal option that is ignored and will be removed from the API in v1.5.1"}])} + defp _deprecate_old_messages(%__MODULE__{messages: %MapSet{}} = options), do: options + + defp _deprecate_old_messages(%__MODULE__{} = options) do + %{ + options + | messages: + MapSet.new([ + {:deprecated, 0, + "messages is an internal option that is ignored and will be removed from the API in v1.5.1"} + ]) + } end + + defp _set_all_if_applicable(options) + + defp _set_all_if_applicable(%{all: true} = options) do + %{options | breaks: true, footnotes: true, gfm_tables: true, sub_sup: true, wikilinks: true} + end + + defp _set_all_if_applicable(options), do: options end # SPDX-License-Identifier: Apache-2.0 diff --git a/.deps/earmark_parser/lib/earmark_parser/types.ex b/.deps/earmark_parser/lib/earmark_parser/types.ex @@ -1,19 +0,0 @@ -defmodule EarmarkParser.Types do - - @moduledoc false - - defmacro __using__(_options \\ []) do - quote do - @type token :: {atom, String.t} - @type tokens :: list(token) - @type numbered_line :: %{required(:line) => String.t, required(:lnb) => number} - @type message_type :: :warning | :error - @type message :: {message_type, number, String.t} - @type maybe(t) :: t | nil - @type inline_code_continuation :: {nil | String.t, number} - end - end - -end - -# SPDX-License-Identifier: Apache-2.0 diff --git a/.deps/earmark_parser/mix.exs b/.deps/earmark_parser/mix.exs @@ -1,11 +1,11 @@ defmodule EarmarkParser.MixProject do use Mix.Project - @version "1.4.25" + @version "1.4.29" @url "https://github.com/RobertDober/earmark_parser" @deps [ - {:earmark_ast_dsl, "~> 0.3.6", only: [:test]}, + {:earmark_ast_dsl, "~> 0.3.7", only: [:test]}, {:excoveralls, "~> 0.14.4", only: [:test]}, {:extractly, "~> 0.5.3", only: [:dev]}, {:floki, "~> 0.32", only: [:dev, :test]} diff --git a/.deps/ex_doc/.hex b/.deps/ex_doc/.hex Binary files differ. diff --git a/.deps/ex_doc/CHANGELOG.md b/.deps/ex_doc/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## v0.29.0 (2022-10-19) + + * Enhancements + * Support cheatsheets as `.cheatmd` files + + * Bug fix + * Collapse sidebar when resizing page even if stored in the session as opened + +## v0.28.6 (2022-10-13) + + * Enhancements + * Add Elixir special punctuation ! and ? to natural sort + * Add night mode to settings pane + * Support --proglang in mix docs + * Save sidebar state per session + * Distinguish output code blocks in Livebooks + + * Bug fixes + * Prevent sidebar button scrolling out of view + * Prevent unreadable text when using inline code with admonition headers + +## v0.28.5 (2022-08-18) + + * Enhancements + * Do not preserve spaces from spec declaration in signature rendering + * Index hyphens in search + * Index `@` in search + * Change minimal package search length to 2 + + * Bug fixes + * Remove extra `term()` argument at start of `@macrocallback` + ## v0.28.4 (2022-04-28) * Enhancements diff --git a/.deps/ex_doc/Cheatsheet.cheatmd b/.deps/ex_doc/Cheatsheet.cheatmd @@ -0,0 +1,263 @@ +# Cheatsheet User Guide + +This document is a cheatsheet on how to use cheatsheets. +Cheatsheets are Markdown files with the `.cheatmd` extension. You may also check the source of this document as a reference. + +## I'm a H2 title with 2 columns +{: .col-2} + +### I'm a H3 title + +#### I'm a H4 title. + +And this is a paragraph. + +### Code + +```elixir +# hello.exs +defmodule Greeter do + def greet(name) do + message = "Hello, " <> name <> "!" + IO.puts message + end +end + +Greeter.greet("world") +``` + +### Paragraphs + +Paragraphs are also supported and can quote `code`. + +Several paragraphs are visually distinct. + +### Lists + +- Element 1 +- Element 2 +- `piece of code` + + +### Table + +#### Date + +| Example | Output | +| --- | --- | +| `%m/%d/%Y` | `06/05/2013` | +| `%A, %B %e, %Y` | `Sunday, June 5, 2013` | +| `%b %e %a` | `Jun 5 Sun` | + +This is a basic table with a h4 header. + +## Variants +{: .col-2} + +### Adding variants + +``` +## H2 +{: .col-2} + +### H3 +{: .list-6} + +* example 1 +* example 2 +``` + +Variants customize how your cheatsheet looks like via Markdown's inline attribute notation. + +### Header variants + +#### H2 + +| `.col-2` | two-columns | +| `.col-3` | three-columns | +| `.col-2-left` | two-columns (1/3 - 2/3) | + +#### H3 + +| `.list-4` | four-columns for lists | +| `.list-6` | six-columns for lists | + +## Code +{: .col-3} + +### Code with headings + +#### index.ex + +``` +Path.join(["~", "foo"]) +"~/foo" +``` + +#### other.ex + +``` +Path.join(["foo"]) +"foo" +``` + +Code blocks can have headings. + +### Long lines + +```elixir +defmodule MyTracer do + def trace({:remote_function, _meta, module, name, arity}, env) do + IO.puts "#{env.file}:#{env.line} #{inspect(module)}.#{name}/#{arity}" + :ok + end + + def trace(_event, _env) do + :ok + end +end +``` + +Long lines will have scrollbars on hover. + +### Line wrapping + +```elixir +defmodule MyTracer do + def trace({:remote_function, _meta, module, name, arity}, env) do + IO.puts "#{env.file}:#{env.line} #{inspect(module)}.#{name}/#{arity}" + :ok + end + + def trace(_event, _env) do + :ok + end +end +``` +{: .wrap} + +Add `wrap` to wrap long lines. + +## Lists +{: .col-2} + +### Bullet lists + +- This is +- a list +- with a few items + +### Ordered lists + +1. I'm first; +2. You are second; +3. We are third; + +Here's an extra paragraph after the list. + +### With headings and code links + +#### Part 1 + +- `is_atom/1` +- `is_binary/1` +- `is_number/1` + +#### Part 2 + +- `length/1` +- `elem/2` + +## List columns + +### Six columns +{: .list-6} + +- One +- Two +- Three +- Four +- Five +- Six +- Seven +- Eight +- Nine +- Ten +- Eleven + +Add `{: .list-6}` after the H3 title to make large lists. + +### Four columns +{: .list-4} + +- One +- Two +- Three +- Four +- Five +- Six +- Seven +- Eight +- Nine +- Ten +- Eleven + +Add `{: .list-4}` after the H3 title to make large lists. + +## Full page + +This is the default. + +## Half width +{: .width-50} + +### I make tables look nicer + +#### Time + +| Example | Output | +| --- | --- | +| `%H:%M` | `23:05` | +| `%I:%M %p` | `11:05 PM` | + +Add `{: .width-50}` after the H2 title to use only half width. + +## Column left reference +{: .col-2-left} + +### One + +```elixir +# hello.exs +defmodule Greeter do + def greet(name) do + message = "Hello, " <> name <> "!" + IO.puts message + end +end + +Greeter.greet("world") +``` + +### Two + +```elixir +user = %{ + name: "John", + city: "Melbourne" +} +``` + +```elixir +IO.puts "Hello, " <> user.name +``` + +### Three + +* Yet +* Another +* List + +### Four + +I'm a grid, with 1/3 - 2/3 width. +\ No newline at end of file diff --git a/.deps/ex_doc/LICENSE b/.deps/ex_doc/LICENSE @@ -16,45 +16,5 @@ https://github.com/elixir-lang/ex_doc/ ========================================================================== -normalize.css -Copyright (c) Nicolas Gallagher and Jonathan Neal -https://necolas.github.io/normalize.css/ - - Released under the MIT License. - https://github.com/necolas/normalize.css/blob/master/LICENSE.md - -========================================================================== - -webpack -Copyright (c) 2012, Tobias Koppers -https://github.com/webpack/webpack - - Released under the MIT License. - http://www.opensource.org/licenses/mit-license.php - -========================================================================== - -lodash -https://lodash.com/ -Copyright 2012, The Dojo Foundation -http://dojofoundation.org/ - - Available under MIT license - https://github.com/lodash/lodash/blob/master/LICENSE - -Based on Underscore.js -Copyright 2009, Jeremy Ashkenas, DocumentCloud and -Investigative Reporters & Editors - - http://underscorejs.org/LICENSE - -========================================================================== - -IcoMoon -https://icomoon.io/ - - Released under the GPL version 3 and the Creative Commons Attribution 4.0 licenses. - https://www.gnu.org/licenses/gpl.html - https://creativecommons.org/licenses/by/4.0/ - -========================================================================== +Dependencies are externally maintained and have their own licenses; we +recommend you read them as their terms may differ from the terms above. diff --git a/.deps/ex_doc/README.md b/.deps/ex_doc/README.md @@ -117,11 +117,11 @@ ExDoc uses [the makeup project](https://github.com/elixir-makeup/makeup) for syn {:makeup_html, ">= 0.0.0", only: :dev, runtime: false} ``` -You can find all support languages [under the Makeup organization on GitHub](https://github.com/elixir-makeup). +You can find all support languages [under the Makeup organization on GitHub](https://github.com/elixir-makeup) and [view them on Makeup's website](https://elixir-makeup.github.io/makeup_demo/). ## Metadata -ExDoc supports certain metadata keys in your documentation. For example, the `since` metadata is used to annotate from when a given module/function is available. In Elixir, you can add metadata to modules and functions, respectively, like this: +ExDoc supports metadata keys in your documentation. For example, the `since` metadata is used to annotate from when a given module/function is available. In Elixir, you can add metadata to modules and functions, respectively, like this: ```elixir @moduledoc since: "1.10.0" @@ -174,7 +174,7 @@ The result for the previous syntax is as follows: > > This syntax will render an error block -For example, if you change the class name to `neutral`, you get: +For example, if you change the class name to `neutral`, you get the same admonition block in neutral style: > #### Error {: .neutral} > @@ -276,14 +276,16 @@ The easiest way to test changes to ExDoc is to locally rebuild the app and its o 1. Run `mix setup` to install all dependencies 2. Run `mix build` to generate docs. This is a custom alias that will build assets, recompile ExDoc, and output fresh docs into the `doc/` directory - 3. If you want to contribute a pull request, please do not add to your commits the files generated in the `assets/` and `formatters/` folders + 3. If you want to contribute a pull request, please do not add to your commits the files generated in the `formatters/` directory 4. Run `mix lint` to check if the Elixir and JavaScript files are properly formatted. You can run `mix fix` to let the JavaScript linter and Elixir formatter fix the code automatically before submitting your pull request -Note that Node 17 or later is not supported due to [API breaking changes with Webpack](https://github.com/webpack/webpack/issues/14532). +If working on the assets, please see the README in the `assets/` directory. + +The build process is currently tested in Node 16 LTS. ## License -ExDoc source code is released under [Apache 2 License](LICENSE). The generated contents, however, are under different licenses based on projects used to help render HTML, including CSS, JS, and other assets. +ExDoc source code is released under Apache 2 License. The generated contents, however, are under different licenses based on projects used to help render HTML, including CSS, JS, and other assets. Any documentation generated by ExDoc, or any documentation generated by any "Derivative Works" (as specified in the Apache 2 License), must include a direct, readable, and visible link to the [ExDoc repository](https://github.com/elixir-lang/ex_doc) on each rendered material. For HTML pages, a rendered material represents every single page. For PDF, EPUB and other ebook formats, it means one entry for the whole material. diff --git a/.deps/ex_doc/formatters/epub/dist/app-db64fcdc429a9b460caa.js b/.deps/ex_doc/formatters/epub/dist/app-db64fcdc429a9b460caa.js @@ -1 +0,0 @@ -!function(n){var t={};function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)e.d(r,o,function(t){return n[t]}.bind(null,o));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="",e(e.s=24)}({0:function(n,t,e){"use strict";function r(n){if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(n=function(n,t){if(!n)return;if("string"==typeof n)return o(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);"Object"===e&&n.constructor&&(e=n.constructor.name);if("Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return o(n,t)}(n))){var t=0,e=function(){};return{s:e,n:function(){return t>=n.length?{done:!0}:{done:!1,value:n[t++]}},e:function(n){throw n},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,u,i=!0,c=!1;return{s:function(){r=n[Symbol.iterator]()},n:function(){var n=r.next();return i=n.done,n},e:function(n){c=!0,u=n},f:function(){try{i||null==r.return||r.return()}finally{if(c)throw u}}}}function o(n,t){(null==t||t>n.length)&&(t=n.length);for(var e=0,r=new Array(t);e<t;e++)r[e]=n[e];return r}e.d(t,"l",(function(){return u})),e.d(t,"m",(function(){return i})),e.d(t,"d",(function(){return c})),e.d(t,"c",(function(){return a})),e.d(t,"f",(function(){return f})),e.d(t,"e",(function(){return l})),e.d(t,"g",(function(){return d})),e.d(t,"i",(function(){return s})),e.d(t,"a",(function(){return p})),e.d(t,"k",(function(){return y})),e.d(t,"j",(function(){return m})),e.d(t,"b",(function(){return b})),e.d(t,"h",(function(){return v}));var u=document.querySelector.bind(document),i=document.querySelectorAll.bind(document);function c(n){return n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function a(n){return String(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function f(){return document.body.dataset.type}function l(n,t){if(n){var e,o=r(n);try{for(o.s();!(e=o.n()).done;){var u=e.value,i=u.nodeGroups&&u.nodeGroups.find((function(n){return n.nodes.some((function(n){return n.anchor===t}))}));if(i)return i.key}}catch(n){o.e(n)}finally{o.f()}return null}}function d(){return window.location.hash.replace(/^#/,"")}function s(n){return new URLSearchParams(window.location.search).get(n)}function p(n){return fetch(n).then((function(n){return n.ok})).catch((function(){return!1}))}function y(n){"loading"!==document.readyState?n():document.addEventListener("DOMContentLoaded",n)}function m(n){return!n||""===n.trim()}function b(n,t){var e;return function(){for(var r=arguments.length,o=new Array(r),u=0;u<r;u++)o[u]=arguments[u];clearTimeout(e),e=setTimeout((function(){e=null,n.apply(void 0,o)}),t)}}function v(){return document.head.querySelector("meta[name=project][content]").content}},24:function(n,t,e){"use strict";e.r(t);var r=e(5);Object(r.a)()},5:function(n,t,e){"use strict";e.d(t,"a",(function(){return o}));var r=e(0);function o(){Object(r.m)("[data-group-id]").forEach((function(n){var t=n.getAttribute("data-group-id");n.addEventListener("mouseenter",(function(n){u(t,!0)})),n.addEventListener("mouseleave",(function(n){u(t,!1)}))}))}function u(n,t){Object(r.m)('[data-group-id="'.concat(n,'"]')).forEach((function(n){n.classList.toggle("hll",t)}))}}}); -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/epub/dist/elixir-257fc85e711659d9c43e.css b/.deps/ex_doc/formatters/epub/dist/elixir-257fc85e711659d9c43e.css @@ -1 +0,0 @@ -code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#f8f8f2}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#f8f8f2}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#f8f8f2}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#f8f8f2}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#f8f8f2}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#f8f8f2}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#f8f8f2}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#f8f8f2}body{display:block;font-size:1em;line-height:1.2;padding-left:0;padding-right:0;margin:0 5pt}nav>ol{list-style-type:square}nav>ol ol{list-style-type:disc}img[src*="#gh-dark-mode-only"]{display:none}.title-container{text-align:center}a.no-underline,pre a{color:#6951de;text-shadow:none;text-decoration:none;background-image:none}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a.no-underline:visited,pre a:active,pre a:focus,pre a:hover,pre a:visited{color:#4528d4;text-decoration:none}code{background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid #d2ddee;text-transform:none}pre{margin:1.5em 0}pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:#f7f9fc}@-webkit-keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}@keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}.detail:target .detail-header{-webkit-animation-duration:.55s;animation-duration:.55s;-webkit-animation-name:blink-background;animation-name:blink-background;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.detail-header{margin:2em 0 1em;padding:.5em 1em;background:#f7f7f7;border-left:3px solid #8e7ce6;font-size:1em;font-family:Inconsolata,Menlo,Courier,monospace;position:relative}.detail-header .note{float:right}.detail-header .signature{display:inline-block;font-family:Inconsolata,Menlo,Courier,monospace;font-size:1rem;font-weight:700}.detail-header:hover a.detail-link{opacity:1;text-decoration:none}.detail-header a.detail-link{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.specs pre{font-family:Inconsolata,Menlo,Courier,monospace;font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.specs .attribute{color:#767676}.docstring{margin:1.2em 0 3em 1.2em}.docstring h2,.docstring h3,.docstring h4,.docstring h5{font-weight:700}.docstring h2{font-size:1.1em}.docstring h3{font-size:1em}.docstring h4{font-size:.95em}.docstring h5{font-size:.9em}div.deprecated{display:block;padding:9px 15px;background-color:#ffff9d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/epub/dist/epub-75RCTLK3.js b/.deps/ex_doc/formatters/epub/dist/epub-75RCTLK3.js @@ -0,0 +1 @@ +(()=>{var s=document.querySelector.bind(document),o=document.querySelectorAll.bind(document);var a="hll";function c(){u()}function u(){o("[data-group-id]").forEach(e=>{let t=e.getAttribute("data-group-id");e.addEventListener("mouseenter",n=>{i(t,!0)}),e.addEventListener("mouseleave",n=>{i(t,!1)})})}function i(r,e){o(`[data-group-id="${r}"]`).forEach(n=>{n.classList.toggle(a,e)})}c();})(); diff --git a/.deps/ex_doc/formatters/epub/dist/epub-elixir-27JESMVP.css b/.deps/ex_doc/formatters/epub/dist/epub-elixir-27JESMVP.css @@ -0,0 +1 @@ +:root{--main: hsl(250, 68%, 69%);--main-darkened-10: hsl(250, 68%, 59%);--main-darkened-20: hsl(250, 68%, 49%);--main-lightened-05: hsl(250, 68%, 74%);--main-lightened-10: hsl(250, 68%, 79%)}:root{--serifFontFamily: "Merriweather", "Book Antiqua", Georgia, "Century Schoolbook", serif;--sansFontFamily: "Lato", sans-serif;--monoFontFamily: "Inconsolata", Menlo, Courier, monospace;--baseFontSize: 18px;--baseLineHeight: 1.5em;--gray50-lightened-2: hsl(207, 43%, 98% );--gray50: hsl(207, 43%, 96% );--gray100: hsl(212, 33%, 91% );--gray200: hsl(210, 26%, 84% );--gray300: hsl(210, 21%, 64% );--gray500: hsl(210, 21%, 34% );--gray600: hsl(210, 27%, 26% );--gray700: hsl(212, 35%, 17% );--gray800: hsl(216, 52%, 11% );--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray900: hsl(218, 73%, 4% );--coldGrayFaint: hsl(240, 5%, 97% );--coldGrayLight: hsl(240, 5%, 88% );--coldGray-lightened-10: hsl(240, 5%, 56% );--coldGray: hsl(240, 5%, 46% );--coldGrayDark: hsl(240, 5%, 28% );--coldGrayDim: hsl(240, 5%, 18% );--yellowLight: hsl( 60, 100%, 81% );--yellowDark: hsl(60deg 100% 43% / 62%);--yellow: hsl( 60, 100%, 43% );--green-lightened-10: hsl( 90, 100%, 45% );--green: hsl( 90, 100%, 35% );--white: hsl( 0, 0%, 100% );--white-opacity-10: hsla( 0, 0%, 100%, 10%);--black: hsl( 0, 0%, 0% );--black-opacity-10: hsla( 0, 0%, 0%, 10%);--black-opacity-50: hsla( 0, 0%, 0%, 50%)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray700);--textHeaders: var(--gray800);--textDetailBackground: var(--coldGrayFaint);--textFooter: var(--coldGray);--links: var(--black);--linksVisited: var(--black);--linksNoUnderline: var(--main-darkened-10);--linksNoUnderlineVisited: var(--main-darkened-20);--viewSource: var(--coldGray);--viewSourceHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray50-lightened-2);--codeBorder: var(--gray100);--inlineCodeBackground: var(--codeBackground);--inlineCodeBorder: var(--codeBorder);--codeScrollThumb: var(--gray300);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnSubheader: var(--main-darkened-10);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray200);--settingsSectionBorder: var(--gray200);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--sidebarButton: var(--gray100)}.content-inner :is(a.no-underline,pre a){color:var(--linksNoUnderline);text-shadow:none;text-decoration:none;background-image:none}.content-inner :is(a.no-underline,pre a):is(:visited,:active,:focus,:hover){color:var(--linksNoUnderlineVisited)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:var(--codeBackground)}.content-inner pre code::-webkit-scrollbar{width:.4rem;height:.4rem}.content-inner pre code::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--codeScrollThumb)}.content-inner pre code::-webkit-scrollbar-track{background-color:var(--codeScrollBackground)}.content-inner pre code::-webkit-scrollbar-corner{background-color:var(--codeScrollBackground)}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:12px;font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@keyframes blink-background{0%{background-color:var(--textDetailBackground)}to{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--main);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:var(--monoFontFamily);font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:var(--fnDeprecated)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}body{display:block;font-size:1em;line-height:1.2;padding-left:0;padding-right:0;margin:0 5pt}nav>ol{list-style-type:square}nav>ol ol{list-style-type:disc}.title-container{text-align:center}img[src*="#gh-dark-mode-only"]{display:none} diff --git a/.deps/ex_doc/formatters/epub/dist/epub-erlang-BLRVQJT7.css b/.deps/ex_doc/formatters/epub/dist/epub-erlang-BLRVQJT7.css @@ -0,0 +1 @@ +:root{--main: hsl(0, 100%, 64%);--main-darkened-10: hsl(0, 100%, 54%);--main-darkened-20: hsl(0, 100%, 44%);--main-lightened-05: hsl(0, 100%, 69%);--main-lightened-10: hsl(0, 100%, 74%)}:root{--serifFontFamily: "Merriweather", "Book Antiqua", Georgia, "Century Schoolbook", serif;--sansFontFamily: "Lato", sans-serif;--monoFontFamily: "Inconsolata", Menlo, Courier, monospace;--baseFontSize: 18px;--baseLineHeight: 1.5em;--gray50-lightened-2: hsl(207, 43%, 98% );--gray50: hsl(207, 43%, 96% );--gray100: hsl(212, 33%, 91% );--gray200: hsl(210, 26%, 84% );--gray300: hsl(210, 21%, 64% );--gray500: hsl(210, 21%, 34% );--gray600: hsl(210, 27%, 26% );--gray700: hsl(212, 35%, 17% );--gray800: hsl(216, 52%, 11% );--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray900: hsl(218, 73%, 4% );--coldGrayFaint: hsl(240, 5%, 97% );--coldGrayLight: hsl(240, 5%, 88% );--coldGray-lightened-10: hsl(240, 5%, 56% );--coldGray: hsl(240, 5%, 46% );--coldGrayDark: hsl(240, 5%, 28% );--coldGrayDim: hsl(240, 5%, 18% );--yellowLight: hsl( 60, 100%, 81% );--yellowDark: hsl(60deg 100% 43% / 62%);--yellow: hsl( 60, 100%, 43% );--green-lightened-10: hsl( 90, 100%, 45% );--green: hsl( 90, 100%, 35% );--white: hsl( 0, 0%, 100% );--white-opacity-10: hsla( 0, 0%, 100%, 10%);--black: hsl( 0, 0%, 0% );--black-opacity-10: hsla( 0, 0%, 0%, 10%);--black-opacity-50: hsla( 0, 0%, 0%, 50%)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray700);--textHeaders: var(--gray800);--textDetailBackground: var(--coldGrayFaint);--textFooter: var(--coldGray);--links: var(--black);--linksVisited: var(--black);--linksNoUnderline: var(--main-darkened-10);--linksNoUnderlineVisited: var(--main-darkened-20);--viewSource: var(--coldGray);--viewSourceHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray50-lightened-2);--codeBorder: var(--gray100);--inlineCodeBackground: var(--codeBackground);--inlineCodeBorder: var(--codeBorder);--codeScrollThumb: var(--gray300);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnSubheader: var(--main-darkened-10);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray200);--settingsSectionBorder: var(--gray200);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--sidebarButton: var(--gray100)}.content-inner :is(a.no-underline,pre a){color:var(--linksNoUnderline);text-shadow:none;text-decoration:none;background-image:none}.content-inner :is(a.no-underline,pre a):is(:visited,:active,:focus,:hover){color:var(--linksNoUnderlineVisited)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:var(--codeBackground)}.content-inner pre code::-webkit-scrollbar{width:.4rem;height:.4rem}.content-inner pre code::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--codeScrollThumb)}.content-inner pre code::-webkit-scrollbar-track{background-color:var(--codeScrollBackground)}.content-inner pre code::-webkit-scrollbar-corner{background-color:var(--codeScrollBackground)}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:12px;font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@keyframes blink-background{0%{background-color:var(--textDetailBackground)}to{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--main);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:var(--monoFontFamily);font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:var(--fnDeprecated)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}body{display:block;font-size:1em;line-height:1.2;padding-left:0;padding-right:0;margin:0 5pt}nav>ol{list-style-type:square}nav>ol ol{list-style-type:disc}.title-container{text-align:center}img[src*="#gh-dark-mode-only"]{display:none} diff --git a/.deps/ex_doc/formatters/epub/dist/erlang-911a33d8b2a887045389.css b/.deps/ex_doc/formatters/epub/dist/erlang-911a33d8b2a887045389.css @@ -1 +0,0 @@ -code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#f8f8f2}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#f8f8f2}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#f8f8f2}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#f8f8f2}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#f8f8f2}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#f8f8f2}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#f8f8f2}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#f8f8f2}body{display:block;font-size:1em;line-height:1.2;padding-left:0;padding-right:0;margin:0 5pt}nav>ol{list-style-type:square}nav>ol ol{list-style-type:disc}img[src*="#gh-dark-mode-only"]{display:none}.title-container{text-align:center}a.no-underline,pre a{color:#ff1515;text-shadow:none;text-decoration:none;background-image:none}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a.no-underline:visited,pre a:active,pre a:focus,pre a:hover,pre a:visited{color:#e10000;text-decoration:none}code{background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid #d2ddee;text-transform:none}pre{margin:1.5em 0}pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:#f7f9fc}@-webkit-keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}@keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}.detail:target .detail-header{-webkit-animation-duration:.55s;animation-duration:.55s;-webkit-animation-name:blink-background;animation-name:blink-background;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.detail-header{margin:2em 0 1em;padding:.5em 1em;background:#f7f7f7;border-left:3px solid #ff4848;font-size:1em;font-family:Inconsolata,Menlo,Courier,monospace;position:relative}.detail-header .note{float:right}.detail-header .signature{display:inline-block;font-family:Inconsolata,Menlo,Courier,monospace;font-size:1rem;font-weight:700}.detail-header:hover a.detail-link{opacity:1;text-decoration:none}.detail-header a.detail-link{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.specs pre{font-family:Inconsolata,Menlo,Courier,monospace;font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.specs .attribute{color:#767676}.docstring{margin:1.2em 0 3em 1.2em}.docstring h2,.docstring h3,.docstring h4,.docstring h5{font-weight:700}.docstring h2{font-size:1.1em}.docstring h3{font-size:1em}.docstring h4{font-size:.95em}.docstring h5{font-size:.9em}div.deprecated{display:block;padding:9px 15px;background-color:#ffff9d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/html/dist/app-bd1cb213813bf4825aa2.js b/.deps/ex_doc/formatters/html/dist/app-bd1cb213813bf4825aa2.js @@ -1,2 +0,0 @@ -/*! For license information please see app-bd1cb213813bf4825aa2.js.LICENSE.txt */ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=49)}([function(e,t,n){"use strict";function r(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i,a=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,"l",(function(){return i})),n.d(t,"m",(function(){return a})),n.d(t,"d",(function(){return l})),n.d(t,"c",(function(){return s})),n.d(t,"f",(function(){return u})),n.d(t,"e",(function(){return c})),n.d(t,"g",(function(){return d})),n.d(t,"i",(function(){return f})),n.d(t,"a",(function(){return p})),n.d(t,"k",(function(){return h})),n.d(t,"j",(function(){return m})),n.d(t,"b",(function(){return y})),n.d(t,"h",(function(){return v}));var i=document.querySelector.bind(document),a=document.querySelectorAll.bind(document);function l(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function s(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function u(){return document.body.dataset.type}function c(e,t){if(e){var n,o=r(e);try{for(o.s();!(n=o.n()).done;){var i=n.value,a=i.nodeGroups&&i.nodeGroups.find((function(e){return e.nodes.some((function(e){return e.anchor===t}))}));if(a)return a.key}}catch(e){o.e(e)}finally{o.f()}return null}}function d(){return window.location.hash.replace(/^#/,"")}function f(e){return new URLSearchParams(window.location.search).get(e)}function p(e){return fetch(e).then((function(e){return e.ok})).catch((function(){return!1}))}function h(e){"loading"!==document.readyState?e():document.addEventListener("DOMContentLoaded",e)}function m(e){return!e||""===e.trim()}function y(e,t){var n;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];clearTimeout(n),n=setTimeout((function(){n=null,e.apply(void 0,o)}),t)}}function v(){return document.head.querySelector("meta[name=project][content]").content}},function(e,t,n){e.exports=n(27).default},function(e,t,n){"use strict";t.__esModule=!0,t.extend=l,t.indexOf=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},t.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}if(!i.test(e))return e;return e.replace(o,a)},t.isEmpty=function(e){return!e&&0!==e||!(!c(e)||0!==e.length)},t.createFrame=function(e){var t=l({},e);return t._parent=e,t},t.blockParams=function(e,t){return e.path=t,e},t.appendContextPath=function(e,t){return(e?e+".":"")+t};var r={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},o=/[&<>"'`=]/g,i=/[&<>"'`=]/;function a(e){return r[e]}function l(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var s=Object.prototype.toString;t.toString=s;var u=function(e){return"function"==typeof e};u(/x/)&&(t.isFunction=u=function(e){return"function"==typeof e&&"[object Function]"===s.call(e)}),t.isFunction=u;var c=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===s.call(e)};t.isArray=c},function(e,t,n){"use strict";t.__esModule=!0;var r=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function o(e,t){var n=t&&t.loc,i=void 0,a=void 0,l=void 0,s=void 0;n&&(i=n.start.line,a=n.end.line,l=n.start.column,s=n.end.column,e+=" - "+i+":"+l);for(var u=Error.prototype.constructor.call(this,e),c=0;c<r.length;c++)this[r[c]]=u[r[c]];Error.captureStackTrace&&Error.captureStackTrace(this,o);try{n&&(this.lineNumber=i,this.endLineNumber=a,Object.defineProperty?(Object.defineProperty(this,"column",{value:l,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:s,enumerable:!0})):(this.column=l,this.endColumn=s))}catch(e){}}o.prototype=new Error,t.default=o,e.exports=t.default},function(e,t,n){var r,o;!function(){var i,a,l,s,u,c,d,f,p,h,m,y,v,g,b,w,x,O,k,P,j,S,E,L,_,T,I=function(e){var t=new I.Builder;return t.pipeline.add(I.trimmer,I.stopWordFilter,I.stemmer),t.searchPipeline.add(I.stemmer),e.call(t,t),t.build()};I.version="2.3.8",I.utils={},I.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),I.utils.asString=function(e){return null==e?"":e.toString()},I.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var o=n[r],i=e[o];if(Array.isArray(i))t[o]=i.slice();else{if("string"!=typeof i&&"number"!=typeof i&&"boolean"!=typeof i)throw new TypeError("clone is not deep and does not support nested objects");t[o]=i}}return t},I.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},I.FieldRef.joiner="/",I.FieldRef.fromString=function(e){var t=e.indexOf(I.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new I.FieldRef(r,n,e)},I.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+I.FieldRef.joiner+this.docRef),this._stringValue},I.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},I.Set.complete={intersect:function(e){return e},union:function(e){return e},contains:function(){return!0}},I.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},I.Set.prototype.contains=function(e){return!!this.elements[e]},I.Set.prototype.intersect=function(e){var t,n,r,o=[];if(e===I.Set.complete)return this;if(e===I.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var i=0;i<r.length;i++){var a=r[i];a in n.elements&&o.push(a)}return new I.Set(o)},I.Set.prototype.union=function(e){return e===I.Set.complete?I.Set.complete:e===I.Set.empty?this:new I.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},I.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var o=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(o))},I.Token=function(e,t){this.str=e||"",this.metadata=t||{}},I.Token.prototype.toString=function(){return this.str},I.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},I.Token.prototype.clone=function(e){return e=e||function(e){return e},new I.Token(e(this.str,this.metadata),this.metadata)},I.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new I.Token(I.utils.asString(e).toLowerCase(),I.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,o=[],i=0,a=0;i<=r;i++){var l=i-a;if(n.charAt(i).match(I.tokenizer.separator)||i==r){if(l>0){var s=I.utils.clone(t)||{};s.position=[a,l],s.index=o.length,o.push(new I.Token(n.slice(a,i),s))}a=i+1}}return o},I.tokenizer.separator=/[\s\-]+/,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var n=I.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},I.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],o=[],i=0;i<e.length;i++){var a=r(e[i],i,e);if(null!=a&&""!==a)if(Array.isArray(a))for(var l=0;l<a.length;l++)o.push(a[l]);else o.push(a)}e=o}return e},I.Pipeline.prototype.runString=function(e,t){var n=new I.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},I.Pipeline.prototype.reset=function(){this._stack=[]},I.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return I.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},I.Vector=function(e){this._magnitude=0,this.elements=e||[]},I.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,o=Math.floor(r/2),i=this.elements[2*o];r>1&&(i<e&&(t=o),i>e&&(n=o),i!=e);)r=n-t,o=t+Math.floor(r/2),i=this.elements[2*o];return i==e||i>e?2*o:i<e?2*(o+1):void 0},I.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},I.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},I.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},I.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,o=n.length,i=r.length,a=0,l=0,s=0,u=0;s<o&&u<i;)(a=n[s])<(l=r[u])?s+=2:a>l?u+=2:a==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},I.Vector.prototype.toJSON=function(){return this.elements},I.stemmer=(a={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},s="[aeiouy]",u="[^aeiou][^aeiouy]*",c=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),d=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),f=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),p=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),h=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,v=/^(.+?)(ed|ing)$/,g=/.$/,b=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+u+s+"[^aeiouwxy]$"),O=/^(.+?[^aeiou])y$/,k=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,P=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,j=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,S=/^(.+?)(s|t)(ion)$/,E=/^(.+?)e$/,L=/ll$/,_=new RegExp("^"+u+s+"[^aeiouwxy]$"),T=function(e){var t,n,r,o,i,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),i=m,(o=h).test(e)?e=e.replace(o,"$1$2"):i.test(e)&&(e=e.replace(i,"$1$2")),i=v,(o=y).test(e)){var T=o.exec(e);(o=c).test(T[1])&&(o=g,e=e.replace(o,""))}else i.test(e)&&(t=(T=i.exec(e))[1],(i=p).test(t)&&(s=w,u=x,(i=b).test(e=t)?e+="e":s.test(e)?(o=g,e=e.replace(o,"")):u.test(e)&&(e+="e")));return(o=O).test(e)&&(e=(t=(T=o.exec(e))[1])+"i"),(o=k).test(e)&&(t=(T=o.exec(e))[1],n=T[2],(o=c).test(t)&&(e=t+a[n])),(o=P).test(e)&&(t=(T=o.exec(e))[1],n=T[2],(o=c).test(t)&&(e=t+l[n])),i=S,(o=j).test(e)?(t=(T=o.exec(e))[1],(o=d).test(t)&&(e=t)):i.test(e)&&(t=(T=i.exec(e))[1]+T[2],(i=d).test(t)&&(e=t)),(o=E).test(e)&&(t=(T=o.exec(e))[1],i=f,s=_,((o=d).test(t)||i.test(t)&&!s.test(t))&&(e=t)),i=d,(o=L).test(e)&&i.test(e)&&(o=g,e=e.replace(o,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(T)}),I.Pipeline.registerFunction(I.stemmer,"stemmer"),I.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},I.stopWordFilter=I.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),I.Pipeline.registerFunction(I.stopWordFilter,"stopWordFilter"),I.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},I.Pipeline.registerFunction(I.trimmer,"trimmer"),I.TokenSet=function(){this.final=!1,this.edges={},this.id=I.TokenSet._nextId,I.TokenSet._nextId+=1},I.TokenSet._nextId=1,I.TokenSet.fromArray=function(e){for(var t=new I.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},I.TokenSet.fromClause=function(e){return"editDistance"in e?I.TokenSet.fromFuzzyString(e.term,e.editDistance):I.TokenSet.fromString(e.term)},I.TokenSet.fromFuzzyString=function(e,t){for(var n=new I.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var o=r.pop();if(o.str.length>0){var i,a=o.str.charAt(0);a in o.node.edges?i=o.node.edges[a]:(i=new I.TokenSet,o.node.edges[a]=i),1==o.str.length&&(i.final=!0),r.push({node:i,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new I.TokenSet;o.node.edges["*"]=l}if(0==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new I.TokenSet;o.node.edges["*"]=s}1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var u,c=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?u=o.node.edges[d]:(u=new I.TokenSet,o.node.edges[d]=u),1==o.str.length&&(u.final=!0),r.push({node:u,editsRemaining:o.editsRemaining-1,str:c+o.str.slice(2)})}}}return n},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,n=t,r=0,o=e.length;r<o;r++){var i=e[r],a=r==o-1;if("*"==i)t.edges[i]=t,t.final=a;else{var l=new I.TokenSet;l.final=a,t.edges[i]=l,t=l}}return n},I.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),o=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var i=0;i<o;i++){var a=r[i];t.push({prefix:n.prefix.concat(a),node:n.node.edges[a]})}}return e},I.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var o=t[r];e=e+o+this.edges[o].id}return e},I.TokenSet.prototype.intersect=function(e){for(var t=new I.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var o=Object.keys(n.qNode.edges),i=o.length,a=Object.keys(n.node.edges),l=a.length,s=0;s<i;s++)for(var u=o[s],c=0;c<l;c++){var d=a[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new I.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},I.TokenSet.Builder=function(){this.previousWord="",this.root=new I.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},I.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var o=new I.TokenSet,i=e[r];t.edges[i]=o,this.uncheckedNodes.push({parent:t,char:i,child:o}),t=o}t.final=!0,this.previousWord=e},I.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},I.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),i=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new I.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=I.Set.complete;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=I.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===I.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){i[C=s.fields[m]]=I.Set.empty}break}for(var y=0;y<h.length;y++){var v=h[y],g=this.invertedIndex[v],b=g._index;for(m=0;m<s.fields.length;m++){var w=g[C=s.fields[m]],x=Object.keys(w),O=v+"/"+C,k=new I.Set(x);if(s.presence==I.Query.presence.REQUIRED&&(c=c.union(k),void 0===i[C]&&(i[C]=I.Set.complete)),s.presence!=I.Query.presence.PROHIBITED){if(r[C].upsert(b,s.boost,(function(e,t){return e+t})),!o[O]){for(var P=0;P<x.length;P++){var j,S=x[P],E=new I.FieldRef(S,C),L=w[S];void 0===(j=n[E])?n[E]=new I.MatchData(v,C,L):j.add(v,C,L)}o[O]=!0}}else void 0===a[C]&&(a[C]=I.Set.empty),a[C]=a[C].union(k)}}}if(s.presence===I.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){i[C=s.fields[m]]=i[C].intersect(c)}}var _=I.Set.complete,T=I.Set.empty;for(l=0;l<this.fields.length;l++){var C;i[C=this.fields[l]]&&(_=_.intersect(i[C])),a[C]&&(T=T.union(a[C]))}var A=Object.keys(n),Q=[],M=Object.create(null);if(t.isNegated()){A=Object.keys(this.fieldVectors);for(l=0;l<A.length;l++){E=A[l];var R=I.FieldRef.fromString(E);n[E]=new I.MatchData}}for(l=0;l<A.length;l++){var D=(R=I.FieldRef.fromString(A[l])).docRef;if(_.contains(D)&&!T.contains(D)){var F,N=this.fieldVectors[R],H=r[R.fieldName].similarity(N);if(void 0!==(F=M[D]))F.score+=H,F.matchData.combine(n[R]);else{var q={ref:D,score:H,matchData:n[R]};M[D]=q,Q.push(q)}}}return Q.sort((function(e,t){return t.score-e.score}))},I.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:I.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},I.Index.load=function(e){var t={},n={},r=e.fieldVectors,o=Object.create(null),i=e.invertedIndex,a=new I.TokenSet.Builder,l=I.Pipeline.load(e.pipeline);e.version!=I.version&&I.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+I.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new I.Vector(c)}for(s=0;s<i.length;s++){var d,f=(d=i[s])[0],p=d[1];a.insert(f),o[f]=p}return a.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=o,t.tokenSet=a.root,t.pipeline=l,new I.Index(t)},I.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=I.tokenizer,this.pipeline=new I.Pipeline,this.searchPipeline=new I.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},I.Builder.prototype.ref=function(e){this._ref=e},I.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},I.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o<r.length;o++){var i=r[o],a=this._fields[i].extractor,l=a?a(e):e[i],s=this.tokenizer(l,{fields:[i]}),u=this.pipeline.run(s),c=new I.FieldRef(n,i),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][i][n]&&(this.invertedIndex[p][i][n]=Object.create(null));for(var y=0;y<this.metadataWhitelist.length;y++){var v=this.metadataWhitelist[y],g=p.metadata[v];null==this.invertedIndex[p][i][n][v]&&(this.invertedIndex[p][i][n][v]=[]),this.invertedIndex[p][i][n][v].push(g)}}}},I.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},o=0;o<t;o++){var i=I.FieldRef.fromString(e[o]),a=i.fieldName;r[a]||(r[a]=0),r[a]+=1,n[a]||(n[a]=0),n[a]+=this.fieldLengths[i]}var l=Object.keys(this._fields);for(o=0;o<l.length;o++){var s=l[o];n[s]=n[s]/r[s]}this.averageFieldLength=n},I.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),o=0;o<n;o++){for(var i=I.FieldRef.fromString(t[o]),a=i.fieldName,l=this.fieldLengths[i],s=new I.Vector,u=this.fieldTermFrequencies[i],c=Object.keys(u),d=c.length,f=this._fields[a].boost||1,p=this._documents[i.docRef].boost||1,h=0;h<d;h++){var m,y,v,g=c[h],b=u[g],w=this.invertedIndex[g]._index;void 0===r[g]?(m=I.idf(this.invertedIndex[g],this.documentCount),r[g]=m):m=r[g],y=m*((this._k1+1)*b)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+b),y*=f,y*=p,v=Math.round(1e3*y)/1e3,s.insert(w,v)}e[i]=s}this.fieldVectors=e},I.Builder.prototype.createTokenSet=function(){this.tokenSet=I.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},I.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new I.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},I.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},I.MatchData=function(e,t,n){for(var r=Object.create(null),o=Object.keys(n||{}),i=0;i<o.length;i++){var a=o[i];r[a]=n[a].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},I.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],o=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var i=0;i<o.length;i++){var a=o[i],l=Object.keys(e.metadata[r][a]);null==this.metadata[r][a]&&(this.metadata[r][a]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][a][u]?this.metadata[r][a][u]=e.metadata[r][a][u]:this.metadata[r][a][u]=this.metadata[r][a][u].concat(e.metadata[r][a][u])}}}},I.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),o=0;o<r.length;o++){var i=r[o];i in this.metadata[e][t]?this.metadata[e][t][i]=this.metadata[e][t][i].concat(n[i]):this.metadata[e][t][i]=n[i]}else this.metadata[e][t]=n},I.Query=function(e){this.clauses=[],this.allFields=e},I.Query.wildcard=new String("*"),I.Query.wildcard.NONE=0,I.Query.wildcard.LEADING=1,I.Query.wildcard.TRAILING=2,I.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},I.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=I.Query.wildcard.NONE),e.wildcard&I.Query.wildcard.LEADING&&e.term.charAt(0)!=I.Query.wildcard&&(e.term="*"+e.term),e.wildcard&I.Query.wildcard.TRAILING&&e.term.slice(-1)!=I.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=I.Query.presence.OPTIONAL),this.clauses.push(e),this},I.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=I.Query.presence.PROHIBITED)return!1;return!0},I.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,I.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},I.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},I.QueryParseError.prototype=new Error,I.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},I.QueryLexer.prototype.run=function(){for(var e=I.QueryLexer.lexText;e;)e=e(this)},I.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},I.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},I.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},I.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos<this.length},I.QueryLexer.EOS="EOS",I.QueryLexer.FIELD="FIELD",I.QueryLexer.TERM="TERM",I.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",I.QueryLexer.BOOST="BOOST",I.QueryLexer.PRESENCE="PRESENCE",I.QueryLexer.lexField=function(e){return e.backup(),e.emit(I.QueryLexer.FIELD),e.ignore(),I.QueryLexer.lexText},I.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new I.QueryParseError(n,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new I.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(r.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new I.QueryParseError(n,r.start,r.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new I.QueryParseError(r,t.start,t.end)}switch(o.type){case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:r="expecting term, found '"+o.type+"'";throw new I.QueryParseError(r,o.start,o.end)}}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new I.QueryParseError(r,n.start,n.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new I.QueryParseError(r,o.start,o.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new I.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return I})?r.call(t,n,t,e):r)||(e.exports=o)}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0);function o(){Object(r.m)("[data-group-id]").forEach((function(e){var t=e.getAttribute("data-group-id");e.addEventListener("mouseenter",(function(e){i(t,!0)})),e.addEventListener("mouseleave",(function(e){i(t,!1)}))}))}function i(e,t){Object(r.m)('[data-group-id="'.concat(e,'"]')).forEach((function(e){e.classList.toggle("hll",t)}))}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){return Array.isArray(e)?t.fn(this):t.inverse(this)}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){return e+".html"===window.location.pathname.split("/").pop()?t.fn(this):t.inverse(this)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.HandlebarsEnvironment=c;var o=n(2),i=r(n(3)),a=n(10),l=n(35),s=r(n(11)),u=n(12);t.VERSION="4.7.7";t.COMPILER_REVISION=8;t.LAST_COMPATIBLE_COMPILER_REVISION=7;t.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};function c(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},a.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}c.prototype={constructor:c,logger:s.default,log:s.default.log,registerHelper:function(e,t){if("[object Object]"===o.toString.call(e)){if(t)throw new i.default("Arg not supported with multiple helpers");o.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("[object Object]"===o.toString.call(e))o.extend(this.partials,e);else{if(void 0===t)throw new i.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if("[object Object]"===o.toString.call(e)){if(t)throw new i.default("Arg not supported with multiple decorators");o.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){u.resetLoggedProperties()}};var d=s.default.log;t.log=d,t.createFrame=o.createFrame,t.logger=s.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.registerDefaultHelpers=function(e){o.default(e),i.default(e),a.default(e),l.default(e),s.default(e),u.default(e),c.default(e)},t.moveHelperToHooks=function(e,t,n){e.helpers[t]&&(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])};var o=r(n(28)),i=r(n(29)),a=r(n(30)),l=r(n(31)),s=r(n(32)),u=r(n(33)),c=r(n(34))},function(e,t,n){"use strict";t.__esModule=!0;var r=n(2),o={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var t=r.indexOf(o.methodMap,e.toLowerCase());e=t>=0?t:parseInt(e,10)}return e},log:function(e){if(e=o.lookupLevel(e),"undefined"!=typeof console&&o.lookupLevel(o.level)<=e){var t=o.methodMap[e];console[t]||(t="log");for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];console[t].apply(console,r)}}};t.default=o,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.createProtoAccessControl=function(e){var t=Object.create(null);t.constructor=!1,t.__defineGetter__=!1,t.__defineSetter__=!1,t.__lookupGetter__=!1;var n=Object.create(null);return n.__proto__=!1,{properties:{whitelist:r.createNewLookupObject(n,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:r.createNewLookupObject(t,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}},t.resultIsAllowed=function(e,t,n){return a("function"==typeof e?t.methods:t.properties,n)},t.resetLoggedProperties=function(){Object.keys(i).forEach((function(e){delete i[e]}))};var r=n(37),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(11)),i=Object.create(null);function a(e,t){return void 0!==e.whitelist[t]?!0===e.whitelist[t]:void 0!==e.defaultValue?e.defaultValue:(function(e){!0!==i[e]&&(i[e]=!0,o.log("error",'Handlebars: Access has been denied to resolve the property "'+e+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'))}(t),!1)}},function(e,t,n){(function(t){var n=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,a=parseInt,l="object"==typeof t&&t&&t.Object===Object&&t,s="object"==typeof self&&self&&self.Object===Object&&self,u=l||s||Function("return this")(),c=Object.prototype.toString,d=Math.max,f=Math.min,p=function(){return u.Date.now()};function h(e,t,n){var r,o,i,a,l,s,u=0,c=!1,h=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,i=o;return r=o=void 0,u=t,a=e.apply(i,n)}function b(e){return u=e,l=setTimeout(x,t),c?g(e):a}function w(e){var n=e-s;return void 0===s||n>=t||n<0||h&&e-u>=i}function x(){var e=p();if(w(e))return O(e);l=setTimeout(x,function(e){var n=t-(e-s);return h?f(n,i-(e-u)):n}(e))}function O(e){return l=void 0,v&&r?g(e):(r=o=void 0,a)}function k(){var e=p(),n=w(e);if(r=arguments,o=this,s=e,n){if(void 0===l)return b(s);if(h)return l=setTimeout(x,t),g(s)}return void 0===l&&(l=setTimeout(x,t)),a}return t=y(t)||0,m(n)&&(c=!!n.leading,i=(h="maxWait"in n)?d(y(n.maxWait)||0,t):i,v="trailing"in n?!!n.trailing:v),k.cancel=function(){void 0!==l&&clearTimeout(l),u=0,r=s=o=l=void 0},k.flush=function(){return void 0===l?a:O(p())},k}function m(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==c.call(e)}(e))return NaN;if(m(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=m(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var l=o.test(e);return l||i.test(e)?a(e.slice(2),l?2:8):r.test(e)?NaN:+e}e.exports=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return m(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),h(e,t,{leading:r,maxWait:t,trailing:o})}}).call(this,n(7))},function(e,t,n){var r=n(1);function o(e){return e&&(e.__esModule?e.default:e)}e.exports=(r.default||r).template({1:function(e,t,r,i,a,l,s){var u,c=null!=t?t:e.nullContext||{},d=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(u=o(n(42)).call(c,s[1],null!=(u=l[0][0])?d(u,"group"):u,{name:"groupChanged",hash:{},fn:e.program(2,a,0,l,s),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:2,column:2},end:{line:6,column:19}}}))?u:"")+"\n"+(null!=(u=o(n(43)).call(c,s[1],l[0][0],{name:"nestingChanged",hash:{},fn:e.program(7,a,0,l,s),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:8,column:2},end:{line:10,column:21}}}))?u:"")+'\n <li class="'+(null!=(u=o(n(8)).call(c,null!=(u=l[0][0])?d(u,"id"):u,{name:"isLocal",hash:{},fn:e.program(9,a,0,l,s),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:12,column:13},end:{line:12,column:62}}}))?u:"")+'">\n <a href="'+e.escapeExpression(e.lambda(null!=(u=l[0][0])?d(u,"id"):u,t))+".html"+(null!=(u=o(n(8)).call(c,null!=(u=l[0][0])?d(u,"id"):u,{name:"isLocal",hash:{},fn:e.program(11,a,0,l,s),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:13,column:29},end:{line:13,column:69}}}))?u:"")+'" class="expand" '+(null!=(u=o(n(6)).call(c,null!=(u=l[0][0])?d(u,"headers"):u,{name:"isArray",hash:{},fn:e.program(3,a,0,l,s),inverse:e.program(5,a,0,l,s),data:a,blockParams:l,loc:{start:{line:13,column:86},end:{line:13,column:145}}}))?u:"")+">\n"+(null!=(u=d(r,"if").call(c,null!=(u=l[0][0])?d(u,"nested_title"):u,{name:"if",hash:{},fn:e.program(13,a,0,l,s),inverse:e.program(15,a,0,l,s),data:a,blockParams:l,loc:{start:{line:14,column:6},end:{line:18,column:13}}}))?u:"")+' <span class="icon-expand"></span>\n </a>\n\n <ul>\n'+(null!=(u=o(n(6)).call(c,null!=(u=l[0][0])?d(u,"headers"):u,{name:"isArray",hash:{},fn:e.program(17,a,0,l,s),inverse:e.program(20,a,0,l,s),data:a,blockParams:l,loc:{start:{line:23,column:6},end:{line:65,column:18}}}))?u:"")+" </ul>\n </li>\n"},2:function(e,t,r,i,a,l){var s,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li class="group" '+(null!=(s=o(n(6)).call(null!=t?t:e.nullContext||{},null!=(s=l[1][0])?u(s,"headers"):s,{name:"isArray",hash:{},fn:e.program(3,a,0,l),inverse:e.program(5,a,0,l),data:a,blockParams:l,loc:{start:{line:3,column:22},end:{line:3,column:81}}}))?s:"")+">\n "+e.escapeExpression(e.lambda(null!=(s=l[1][0])?u(s,"group"):s,t))+"\n </li>\n"},3:function(e,t,n,r,o){return""},5:function(e,t,n,r,o){return'translate="no"'},7:function(e,t,n,r,o,i){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li class="nesting-context" aria-hidden="true" translate="no">'+e.escapeExpression(e.lambda(null!=(a=i[1][0])?l(a,"nested_context"):a,t))+"</li>\n"},9:function(e,t,n,r,o){return"current-page open"},11:function(e,t,n,r,o){return"#content"},13:function(e,t,n,r,o,i){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" "+(null!=(a=e.lambda(null!=(a=i[1][0])?l(a,"nested_title"):a,t))?a:"")+"\n"},15:function(e,t,n,r,o,i){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" "+(null!=(a=e.lambda(null!=(a=i[1][0])?l(a,"title"):a,t))?a:"")+"\n"},17:function(e,t,n,r,o,i){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},null!=(a=i[1][0])?l(a,"headers"):a,{name:"each",hash:{},fn:e.program(18,o,0,i),inverse:e.noop,data:o,blockParams:i,loc:{start:{line:24,column:8},end:{line:28,column:17}}}))?a:""},18:function(e,t,n,r,o,i){var a,l=e.lambda,s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li>\n <a href="'+e.escapeExpression(l(null!=(a=i[2][0])?s(a,"id"):a,t))+".html#"+(null!=(a=l(null!=t?s(t,"anchor"):t,t))?a:"")+'">'+(null!=(a=l(null!=t?s(t,"id"):t,t))?a:"")+"</a>\n </li>\n"},20:function(e,t,r,i,a,l){var s,u=null!=t?t:e.nullContext||{},c=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(s=o(n(44)).call(u,l[1][0],{name:"showSections",hash:{},fn:e.program(21,a,0,l),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:30,column:8},end:{line:44,column:25}}}))?s:"")+(null!=(s=o(n(45)).call(u,l[1][0],{name:"showSummary",hash:{},fn:e.program(26,a,0,l),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:45,column:8},end:{line:49,column:24}}}))?s:"")+(null!=(s=c(r,"each").call(u,null!=(s=l[1][0])?c(s,"nodeGroups"):s,{name:"each",hash:{},fn:e.program(28,a,1,l),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:50,column:8},end:{line:64,column:17}}}))?s:"")},21:function(e,t,r,i,a,l){var s,u=null!=t?t:e.nullContext||{},c=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li class="docs '+(null!=(s=o(n(8)).call(u,null!=(s=l[2][0])?c(s,"id"):s,{name:"isLocal",hash:{},fn:e.program(22,a,0,l),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:31,column:26},end:{line:31,column:62}}}))?s:"")+'">\n <a href="'+e.escapeExpression(e.lambda(null!=(s=l[2][0])?c(s,"id"):s,t))+'.html#content" class="expand">\n Sections\n <span class="icon-expand"></span>\n </a>\n <ul class="sections-list deflist">\n'+(null!=(s=c(r,"each").call(u,null!=t?c(t,"sections"):t,{name:"each",hash:{},fn:e.program(24,a,0,l),inverse:e.noop,data:a,blockParams:l,loc:{start:{line:37,column:14},end:{line:41,column:23}}}))?s:"")+" </ul>\n </li>\n"},22:function(e,t,n,r,o){return"open"},24:function(e,t,n,r,o,i){var a,l=e.lambda,s=e.escapeExpression,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li>\n <a href="'+s(l(null!=(a=i[3][0])?u(a,"id"):a,t))+".html#"+s(l(null!=t?u(t,"anchor"):t,t))+'">'+(null!=(a=l(null!=t?u(t,"id"):t,t))?a:"")+"</a>\n </li>\n"},26:function(e,t,n,r,o,i){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li>\n <a href="'+e.escapeExpression(e.lambda(null!=(a=i[2][0])?l(a,"id"):a,t))+'.html#summary" class="summary">Summary</a>\n </li>\n'},28:function(e,t,n,r,o,i){var a,l=e.lambda,s=e.escapeExpression,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li class="docs">\n <a href="'+s(l(null!=(a=i[2][0])?u(a,"id"):a,t))+".html#"+s(l(null!=(a=i[0][0])?u(a,"key"):a,t))+'" class="expand">\n '+s(l(null!=(a=i[0][0])?u(a,"name"):a,t))+'\n <span class="icon-expand"></span>\n </a>\n <ul class="'+s(l(null!=(a=i[0][0])?u(a,"key"):a,t))+'-list deflist">\n'+(null!=(a=u(n,"each").call(null!=t?t:e.nullContext||{},null!=(a=i[0][0])?u(a,"nodes"):a,{name:"each",hash:{},fn:e.program(29,o,0,i),inverse:e.noop,data:o,blockParams:i,loc:{start:{line:57,column:14},end:{line:61,column:23}}}))?a:"")+" </ul>\n </li>\n"},29:function(e,t,n,r,o,i){var a,l=e.lambda,s=e.escapeExpression,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <li>\n <a href="'+s(l(null!=(a=i[3][0])?u(a,"id"):a,t))+".html#"+s(l(null!=t?u(t,"anchor"):t,t))+'" translate="no">'+s(l(null!=t?u(t,"id"):t,t))+"</a>\n </li>\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o,i,a){var l,s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(l=s(n,"each").call(null!=t?t:e.nullContext||{},null!=t?s(t,"nodes"):t,{name:"each",hash:{},fn:e.program(1,o,2,i,a),inverse:e.noop,data:o,blockParams:i,loc:{start:{line:1,column:0},end:{line:68,column:9}}}))?l:""},useData:!0,useDepths:!0,useBlockParams:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i,a,l=null!=t?t:e.nullContext||{},s=e.hooks.helperMissing,u=e.escapeExpression,c=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <a href="'+u("function"==typeof(a=null!=(a=c(n,"link")||(null!=t?c(t,"link"):t))?a:s)?a.call(l,{name:"link",hash:{},data:o,loc:{start:{line:7,column:13},end:{line:7,column:21}}}):a)+'" class="autocomplete-suggestion" data-index="'+u("function"==typeof(a=null!=(a=c(n,"index")||o&&c(o,"index"))?a:s)?a.call(l,{name:"index",hash:{},data:o,loc:{start:{line:7,column:67},end:{line:7,column:77}}}):a)+'" tabindex="-1">\n <div class="title">\n <span translate="no">'+(null!=(i="function"==typeof(a=null!=(a=c(n,"title")||(null!=t?c(t,"title"):t))?a:s)?a.call(l,{name:"title",hash:{},data:o,loc:{start:{line:9,column:29},end:{line:9,column:40}}}):a)?i:"")+"</span>\n"+(null!=(i=c(n,"if").call(l,null!=t?c(t,"label"):t,{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:10,column:8},end:{line:12,column:15}}}))?i:"")+" </div>\n\n"+(null!=(i=c(n,"if").call(l,null!=t?c(t,"description"):t,{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:15,column:6},end:{line:19,column:13}}}))?i:"")+" </a>\n"},2:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <span class="label">('+e.escapeExpression("function"==typeof(i=null!=(i=a(n,"label")||(null!=t?a(t,"label"):t))?i:e.hooks.helperMissing)?i.call(null!=t?t:e.nullContext||{},{name:"label",hash:{},data:o,loc:{start:{line:11,column:31},end:{line:11,column:40}}}):i)+")</span>\n"},4:function(e,t,n,r,o){var i,a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <div class="description" translate="no">\n '+(null!=(i="function"==typeof(a=null!=(a=l(n,"description")||(null!=t?l(t,"description"):t))?a:e.hooks.helperMissing)?a.call(null!=t?t:e.nullContext||{},{name:"description",hash:{},data:o,loc:{start:{line:17,column:10},end:{line:17,column:27}}}):a)?i:"")+"\n </div>\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i,a,l=null!=t?t:e.nullContext||{},s=e.hooks.helperMissing,u=e.escapeExpression,c=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return'<div class="autocomplete-suggestions">\n <a class="autocomplete-suggestion" href="search.html?q='+u("function"==typeof(a=null!=(a=c(n,"term")||(null!=t?c(t,"term"):t))?a:s)?a.call(l,{name:"term",hash:{},data:o,loc:{start:{line:2,column:57},end:{line:2,column:65}}}):a)+'" data-index="-1" tabindex="-1">\n <div class="title">"<em>'+u("function"==typeof(a=null!=(a=c(n,"term")||(null!=t?c(t,"term"):t))?a:s)?a.call(l,{name:"term",hash:{},data:o,loc:{start:{line:3,column:28},end:{line:3,column:36}}}):a)+'</em>"</div>\n <div class="description">Search the documentation</div>\n </a>\n'+(null!=(i=c(n,"each").call(l,null!=t?c(t,"suggestions"):t,{name:"each",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:2},end:{line:21,column:11}}}))?i:"")+"</div>\n"},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i,a,l=null!=t?t:e.nullContext||{},s=e.hooks.helperMissing,u=e.escapeExpression,c=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <option translate="no" value="'+u("function"==typeof(a=null!=(a=c(n,"url")||(null!=t?c(t,"url"):t))?a:s)?a.call(l,{name:"url",hash:{},data:o,loc:{start:{line:4,column:36},end:{line:4,column:43}}}):a)+'"'+(null!=(i=c(n,"if").call(l,null!=t?c(t,"isCurrentVersion"):t,{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:4,column:44},end:{line:4,column:93}}}))?i:"")+">\n "+u("function"==typeof(a=null!=(a=c(n,"version")||(null!=t?c(t,"version"):t))?a:s)?a.call(l,{name:"version",hash:{},data:o,loc:{start:{line:5,column:8},end:{line:5,column:19}}}):a)+"\n </option>\n"},2:function(e,t,n,r,o){return" selected disabled"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return'<form autocomplete="off">\n <select class="sidebar-projectVersionsDropdown">\n'+(null!=(i=a(n,"each").call(null!=t?t:e.nullContext||{},null!=t?a(t,"nodes"):t,{name:"each",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:4},end:{line:7,column:13}}}))?i:"")+" </select>\n</form>\n"},useData:!0})},function(e,t,n){var r=n(1);function o(e){return e&&(e.__esModule?e.default:e)}e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" Search results for <em>"+e.escapeExpression(e.lambda(null!=t?i(t,"value"):t,t))+"</em>\n"},3:function(e,t,n,r,o){return" Invalid search\n"},5:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(i=a(n,"each").call(null!=t?t:e.nullContext||{},null!=t?a(t,"results"):t,{name:"each",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:15,column:2},end:{line:26,column:11}}}))?i:""},6:function(e,t,n,r,o){var i,a=e.lambda,l=e.escapeExpression,s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <div class="result">\n <h2 class="result-id">\n <a href="'+l(a(null!=t?s(t,"ref"):t,t))+'">\n <span translate="no">'+l(a(null!=t?s(t,"title"):t,t))+"</span> <small>("+l(a(null!=t?s(t,"type"):t,t))+")</small>\n </a>\n </h2>\n"+(null!=(i=s(n,"each").call(null!=t?t:e.nullContext||{},null!=t?s(t,"excerpts"):t,{name:"each",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:22,column:8},end:{line:24,column:17}}}))?i:"")+" </div>\n"},7:function(e,t,n,r,o){var i;return' <p class="result-elem">'+(null!=(i=e.lambda(t,t))?i:"")+"</p>\n"},9:function(e,t,r,i,a){var l,s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(l=o(n(6)).call(null!=t?t:e.nullContext||{},null!=t?s(t,"results"):t,{name:"isArray",hash:{},fn:e.program(10,a,0),inverse:e.program(12,a,0),data:a,loc:{start:{line:28,column:2},end:{line:34,column:14}}}))?l:"")+"\n <p>The search functionality is full-text based. Here are some tips:</p>\n\n <ul>\n <li>Multiple words (such as <code>foo bar</code>) are searched as <code>OR</code></li>\n <li>Use <code>*</code> anywhere (such as <code>fo*</code>) as wildcard</li>\n <li>Use <code>+</code> before a word (such as <code>+foo</code>) to make its presence required</li>\n <li>Use <code>-</code> before a word (such as <code>-foo</code>) to make its absence required</li>\n <li>Use <code>:</code> to search on a particular field (such as <code>field:word</code>). The available fields are <code>title</code> and <code>doc</code></li>\n <li>Use <code>WORD^NUMBER</code> (such as <code>foo^2</code>) to boost the given word</li>\n <li>Use <code>WORD~NUMBER</code> (such as <code>foo~2</code>) to do a search with edit distance on word</li>\n </ul>\n\n <p>To quickly go to a module, type, or function, use the autocompletion feature in the sidebar search.</p>\n"},10:function(e,t,n,r,o){var i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" <p>Sorry, we couldn't find anything for <em>"+e.escapeExpression(e.lambda(null!=t?i(t,"value"):t,t))+"</em>.</p>\n"},12:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(i=a(n,"if").call(null!=t?t:e.nullContext||{},null!=t?a(t,"value"):t,{name:"if",hash:{},fn:e.program(13,o,0),inverse:e.program(15,o,0),data:o,loc:{start:{line:30,column:2},end:{line:34,column:2}}}))?i:""},13:function(e,t,n,r,o){var i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" <p>Invalid search: "+e.escapeExpression(e.lambda(null!=t?i(t,"errorMessage"):t,t))+".</p>\n"},15:function(e,t,n,r,o){return" <p>Please type something into the search bar to perform a search.</p>\n "},compiler:[8,">= 4.3.0"],main:function(e,t,r,i,a){var l,s=null!=t?t:e.nullContext||{},u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"<h1>\n"+(null!=(l=u(r,"if").call(s,null!=t?u(t,"value"):t,{name:"if",hash:{},fn:e.program(1,a,0),inverse:e.program(3,a,0),data:a,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))?l:"")+'\n <button class="settings display-settings">\n <i class="ri-settings-3-line"></i>\n <span class="sr-only">Settings</span>\n </button>\n</h1>\n\n'+(null!=(l=o(n(46)).call(s,null!=t?u(t,"results"):t,{name:"isNonEmptyArray",hash:{},fn:e.program(5,a,0),inverse:e.program(9,a,0),data:a,loc:{start:{line:14,column:0},end:{line:49,column:20}}}))?l:"")},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return'<div id="modal" class="modal" tabindex="-1">\n <div class="modal-contents">\n <div class="modal-header">\n <div class="modal-title"></div>\n <button class="modal-close">×</button>\n </div>\n <div class="modal-body">\n </div>\n </div>\n</div>\n'},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return'<div id="quick-switch-modal-body">\n <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>\n <input type="text" id="quick-switch-input" class="search-input" placeholder="Jump to..." autocomplete="off">\n <div id="quick-switch-results"></div>\n</div>\n'},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i,a=null!=t?t:e.nullContext||{},l=e.hooks.helperMissing,s=e.escapeExpression,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <div class="quick-switch-result" data-index="'+s("function"==typeof(i=null!=(i=u(n,"index")||o&&u(o,"index"))?i:l)?i.call(a,{name:"index",hash:{},data:o,loc:{start:{line:2,column:47},end:{line:2,column:57}}}):i)+'">\n '+s("function"==typeof(i=null!=(i=u(n,"name")||(null!=t?u(t,"name"):t))?i:l)?i.call(a,{name:"name",hash:{},data:o,loc:{start:{line:3,column:4},end:{line:3,column:12}}}):i)+"\n </div>\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(i=a(n,"each").call(null!=t?t:e.nullContext||{},null!=t?a(t,"results"):t,{name:"each",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))?i:""},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(i=a(n,"if").call(null!=t?t:e.nullContext||{},null!=t?a(t,"description"):t,{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:40,column:7},end:{line:53,column:14}}}))?i:""},2:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <dl class="shortcut-row">\n <dd class="shortcut-description">\n '+e.escapeExpression(e.lambda(null!=t?a(t,"description"):t,t))+'\n </dd>\n <dt class="shortcut-keys">\n'+(null!=(i=a(n,"if").call(null!=t?t:e.nullContext||{},null!=t?a(t,"displayAs"):t,{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.program(5,o,0),data:o,loc:{start:{line:46,column:13},end:{line:50,column:20}}}))?i:"")+" </dt>\n </dl>\n"},3:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" "+(null!=(i=e.lambda(null!=t?a(t,"displayAs"):t,t))?i:"")+"\n"},5:function(e,t,n,r,o){var i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" <kbd><kbd>"+e.escapeExpression(e.lambda(null!=t?i(t,"key"):t,t))+"</kbd></kbd>\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return'<div id="settings-modal-content">\n <div id="settings-content">\n <label class="switch-button-container">\n <div>\n <span>Theme</span>\n <p>Use the documentation UI in a theme.</p>\n </div>\n <div>\n <select name="theme" class="settings-select">\n <option value="dark">Dark</option>\n <option value="light">Light</option>\n <option value="system">System</option>\n </select>\n </div>\n </label>\n <label class="switch-button-container">\n <div>\n <span>Show tooltips</span>\n <p>Show tooltips when mousing over code references.</p>\n </div>\n <div class="switch-button">\n <input class="switch-button__checkbox" type="checkbox" name="tooltips" />\n <div class="switch-button__bg"></div>\n </div>\n </label>\n <label class="switch-button-container">\n <div>\n <span>Run in Livebook</span>\n <p>Use Direct Address for “Run in Livebook” badges.</p>\n </div>\n <div class="switch-button">\n <input class="switch-button__checkbox" type="checkbox" name="direct_livebook_url" />\n <div class="switch-button__bg"></div>\n </div>\n </label>\n <input class="input" type="url" name="livebook_url" placeholder="Enter Livebook instance URL" aria-label="Enter Livebook instance URL" />\n </div>\n <div id="keyboard-shortcuts" class="hidden">\n'+(null!=(i=a(n,"each").call(null!=t?t:e.nullContext||{},null!=t?a(t,"shortcuts"):t,{name:"each",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:39,column:5},end:{line:54,column:14}}}))?i:"")+" </div>\n</div>\n"},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <section class="docstring docstring-plain">\n '+e.escapeExpression(e.lambda(null!=(i=null!=t?a(t,"hint"):t)?a(i,"description"):i,t))+"\n </section>\n"},3:function(e,t,n,r,o){var i,a=e.lambda,l=e.escapeExpression,s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <div class="detail-header">\n <h1 class="signature">\n <span translate="no">'+l(a(null!=(i=null!=t?s(t,"hint"):t)?s(i,"title"):i,t))+'</span>\n <div class="version-info" translate="no">'+l(a(null!=(i=null!=t?s(t,"hint"):t)?s(i,"version"):i,t))+"</div>\n </h1>\n </div>\n"+(null!=(i=s(n,"if").call(null!=t?t:e.nullContext||{},null!=(i=null!=t?s(t,"hint"):t)?s(i,"description"):i,{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:12,column:2},end:{line:16,column:9}}}))?i:"")},4:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <section class="docstring">\n '+e.escapeExpression(e.lambda(null!=(i=null!=t?a(t,"hint"):t)?a(i,"description"):i,t))+"\n </section>\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i,a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(i=a(n,"if").call(null!=t?t:e.nullContext||{},null!=t?a(t,"isPlain"):t,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:1,column:0},end:{line:17,column:7}}}))?i:""},useData:!0})},function(e,t,n){var r=n(1);e.exports=(r.default||r).template({compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return'<div id="tooltip">\n <div class="tooltip-body"></div>\n</div>\n'},useData:!0})},,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.__esModule=!0;var i=o(n(9)),a=r(n(38)),l=r(n(3)),s=o(n(2)),u=o(n(39)),c=r(n(41));function d(){var e=new i.HandlebarsEnvironment;return s.extend(e,i),e.SafeString=a.default,e.Exception=l.default,e.Utils=s,e.escapeExpression=s.escapeExpression,e.VM=u,e.template=function(t){return u.template(t,e)},e}var f=d();f.create=d,c.default(f),f.default=f,t.default=f,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r=n(2);t.default=function(e){e.registerHelper("blockHelperMissing",(function(t,n){var o=n.inverse,i=n.fn;if(!0===t)return i(this);if(!1===t||null==t)return o(this);if(r.isArray(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):o(this);if(n.data&&n.ids){var a=r.createFrame(n.data);a.contextPath=r.appendContextPath(n.data.contextPath,n.name),n={data:a}}return i(t,n)}))},e.exports=t.default},function(e,t,n){"use strict";(function(r){t.__esModule=!0;var o,i=n(2),a=n(3),l=(o=a)&&o.__esModule?o:{default:o};t.default=function(e){e.registerHelper("each",(function(e,t){if(!t)throw new l.default("Must pass iterator to #each");var n,o=t.fn,a=t.inverse,s=0,u="",c=void 0,d=void 0;function f(t,n,r){c&&(c.key=t,c.index=n,c.first=0===n,c.last=!!r,d&&(c.contextPath=d+t)),u+=o(e[t],{data:c,blockParams:i.blockParams([e[t],t],[d+t,null])})}if(t.data&&t.ids&&(d=i.appendContextPath(t.data.contextPath,t.ids[0])+"."),i.isFunction(e)&&(e=e.call(this)),t.data&&(c=i.createFrame(t.data)),e&&"object"==typeof e)if(i.isArray(e))for(var p=e.length;s<p;s++)s in e&&f(s,s,s===e.length-1);else if(r.Symbol&&e[r.Symbol.iterator]){for(var h=[],m=e[r.Symbol.iterator](),y=m.next();!y.done;y=m.next())h.push(y.value);for(p=(e=h).length;s<p;s++)f(s,s,s===e.length-1)}else n=void 0,Object.keys(e).forEach((function(e){void 0!==n&&f(n,s-1),n=e,s++})),void 0!==n&&f(n,s-1,!0);return 0===s&&(u=a(this)),u}))},e.exports=t.default}).call(this,n(7))},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(3),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e){e.registerHelper("helperMissing",(function(){if(1!==arguments.length)throw new i.default('Missing helper: "'+arguments[arguments.length-1].name+'"')}))},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(2),i=n(3),a=(r=i)&&r.__esModule?r:{default:r};t.default=function(e){e.registerHelper("if",(function(e,t){if(2!=arguments.length)throw new a.default("#if requires exactly one argument");return o.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||o.isEmpty(e)?t.inverse(this):t.fn(this)})),e.registerHelper("unless",(function(t,n){if(2!=arguments.length)throw new a.default("#unless requires exactly one argument");return e.helpers.if.call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})}))},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("log",(function(){for(var t=[void 0],n=arguments[arguments.length-1],r=0;r<arguments.length-1;r++)t.push(arguments[r]);var o=1;null!=n.hash.level?o=n.hash.level:n.data&&null!=n.data.level&&(o=n.data.level),t[0]=o,e.log.apply(e,t)}))},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("lookup",(function(e,t,n){return e?n.lookupProperty(e,t):e}))},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(2),i=n(3),a=(r=i)&&r.__esModule?r:{default:r};t.default=function(e){e.registerHelper("with",(function(e,t){if(2!=arguments.length)throw new a.default("#with requires exactly one argument");o.isFunction(e)&&(e=e.call(this));var n=t.fn;if(o.isEmpty(e))return t.inverse(this);var r=t.data;return t.data&&t.ids&&((r=o.createFrame(t.data)).contextPath=o.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:r,blockParams:o.blockParams([e],[r&&r.contextPath])})}))},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.registerDefaultDecorators=function(e){i.default(e)};var r,o=n(36),i=(r=o)&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(2);t.default=function(e){e.registerDecorator("inline",(function(e,t,n,o){var i=e;return t.partials||(t.partials={},i=function(o,i){var a=n.partials;n.partials=r.extend({},a,t.partials);var l=e(o,i);return n.partials=a,l}),t.partials[o.args[0]]=o.fn,i}))},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.createNewLookupObject=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.extend.apply(void 0,[Object.create(null)].concat(t))};var r=n(2)},function(e,t,n){"use strict";function r(e){this.string=e}t.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},t.default=r,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.checkRevision=function(e){var t=e&&e[0]||1,n=l.COMPILER_REVISION;if(t>=l.LAST_COMPATIBLE_COMPILER_REVISION&&t<=l.COMPILER_REVISION)return;if(t<l.LAST_COMPATIBLE_COMPILER_REVISION){var r=l.REVISION_CHANGES[n],o=l.REVISION_CHANGES[t];throw new a.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+r+") or downgrade your runtime to an older version ("+o+").")}throw new a.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")},t.template=function(e,t){if(!t)throw new a.default("No environment passed to template");if(!e||!e.main)throw new a.default("Unknown template object: "+typeof e);e.main.decorator=e.main_d,t.VM.checkRevision(e.compiler);var n=e.compiler&&7===e.compiler[0];var r={strict:function(e,t,n){if(!e||!(t in e))throw new a.default('"'+t+'" not defined in '+e,{loc:n});return r.lookupProperty(e,t)},lookupProperty:function(e,t){var n=e[t];return null==n||Object.prototype.hasOwnProperty.call(e,t)||c.resultIsAllowed(n,r.protoAccessControl,t)?n:void 0},lookup:function(e,t){for(var n=e.length,o=0;o<n;o++){if(null!=(e[o]&&r.lookupProperty(e[o],t)))return e[o][t]}},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:o.escapeExpression,invokePartial:function(n,r,i){i.hash&&(r=o.extend({},r,i.hash),i.ids&&(i.ids[0]=!0)),n=t.VM.resolvePartial.call(this,n,r,i);var l=o.extend({},i,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),s=t.VM.invokePartial.call(this,n,r,l);if(null==s&&t.compile&&(i.partials[i.name]=t.compile(n,e.compilerOptions,t),s=i.partials[i.name](r,l)),null!=s){if(i.indent){for(var u=s.split("\n"),c=0,d=u.length;c<d&&(u[c]||c+1!==d);c++)u[c]=i.indent+u[c];s=u.join("\n")}return s}throw new a.default("The partial "+i.name+" could not be compiled when running in runtime-only mode")},fn:function(t){var n=e[t];return n.decorator=e[t+"_d"],n},programs:[],program:function(e,t,n,r,o){var i=this.programs[e],a=this.fn(e);return t||o||r||n?i=d(this,e,a,t,n,r,o):i||(i=this.programs[e]=d(this,e,a)),i},data:function(e,t){for(;e&&t--;)e=e._parent;return e},mergeIfNeeded:function(e,t){var n=e||t;return e&&t&&e!==t&&(n=o.extend({},t,e)),n},nullContext:Object.seal({}),noop:t.VM.noop,compilerInfo:e.compiler};function i(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=n.data;i._setup(n),!n.partial&&e.useData&&(o=p(t,o));var a=void 0,l=e.useBlockParams?[]:void 0;function s(t){return""+e.main(r,t,r.helpers,r.partials,o,l,a)}return e.useDepths&&(a=n.depths?t!=n.depths[0]?[t].concat(n.depths):n.depths:[t]),(s=h(e.main,s,r,n.depths||[],o,l))(t,n)}return i.isTop=!0,i._setup=function(i){if(i.partial)r.protoAccessControl=i.protoAccessControl,r.helpers=i.helpers,r.partials=i.partials,r.decorators=i.decorators,r.hooks=i.hooks;else{var a=o.extend({},t.helpers,i.helpers);!function(e,t){Object.keys(e).forEach((function(n){var r=e[n];e[n]=function(e,t){var n=t.lookupProperty;return u.wrapHelper(e,(function(e){return o.extend({lookupProperty:n},e)}))}(r,t)}))}(a,r),r.helpers=a,e.usePartial&&(r.partials=r.mergeIfNeeded(i.partials,t.partials)),(e.usePartial||e.useDecorators)&&(r.decorators=o.extend({},t.decorators,i.decorators)),r.hooks={},r.protoAccessControl=c.createProtoAccessControl(i);var l=i.allowCallsToHelperMissing||n;s.moveHelperToHooks(r,"helperMissing",l),s.moveHelperToHooks(r,"blockHelperMissing",l)}},i._child=function(t,n,o,i){if(e.useBlockParams&&!o)throw new a.default("must pass block params");if(e.useDepths&&!i)throw new a.default("must pass parent depths");return d(r,t,e[t],n,0,o,i)},i},t.wrapProgram=d,t.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e="@partial-block"===n.name?n.data["partial-block"]:n.partials[n.name];return e},t.invokePartial=function(e,t,n){var r=n.data&&n.data["partial-block"];n.partial=!0,n.ids&&(n.data.contextPath=n.ids[0]||n.data.contextPath);var i=void 0;n.fn&&n.fn!==f&&function(){n.data=l.createFrame(n.data);var e=n.fn;i=n.data["partial-block"]=function(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return n.data=l.createFrame(n.data),n.data["partial-block"]=r,e(t,n)},e.partials&&(n.partials=o.extend({},n.partials,e.partials))}();void 0===e&&i&&(e=i);if(void 0===e)throw new a.default("The partial "+n.name+" could not be found");if(e instanceof Function)return e(t,n)},t.noop=f;var r,o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),i=n(3),a=(r=i)&&r.__esModule?r:{default:r},l=n(9),s=n(10),u=n(40),c=n(12);function d(e,t,n,r,o,i,a){function l(t){var o=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=a;return!a||t==a[0]||t===e.nullContext&&null===a[0]||(l=[t].concat(a)),n(e,t,e.helpers,e.partials,o.data||r,i&&[o.blockParams].concat(i),l)}return(l=h(n,l,e,a,r,i)).program=t,l.depth=a?a.length:0,l.blockParams=o||0,l}function f(){return""}function p(e,t){return t&&"root"in t||((t=t?l.createFrame(t):{}).root=e),t}function h(e,t,n,r,i,a){if(e.decorator){var l={};t=e.decorator(t,l,n,r&&r[0],i,a,r),o.extend(t,l)}return t}},function(e,t,n){"use strict";t.__esModule=!0,t.wrapHelper=function(e,t){if("function"!=typeof e)return e;return function(){var n=arguments[arguments.length-1];return arguments[arguments.length-1]=t(n),e.apply(this,arguments)}}},function(e,t,n){"use strict";(function(n){t.__esModule=!0,t.default=function(e){var t=void 0!==n?n:window,r=t.Handlebars;e.noConflict=function(){return t.Handlebars===e&&(t.Handlebars=r),e}},e.exports=t.default}).call(this,n(7))},function(e,t,n){"use strict";n.r(t),t.default=function(e,t,n){var r=t||"";if(e.group!==r)return delete e.nestedContext,e.group=r,n.fn(this)}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t,n){if(t.nested_context&&t.nested_context!==e.nestedContext){if(e.nestedContext=t.nested_context,e.lastModuleSeenInGroup!==t.nested_context)return n.fn(this)}else e.lastModuleSeenInGroup=t.title}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){if(e.sections.length>0)return t.fn(this)}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){if(e.nodeGroups)return t.fn(this)}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){return Array.isArray(e)&&e.length>0?t.fn(this):t.inverse(this)}},,,function(e,t,n){"use strict";n.r(t);var r=n(0);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s={tooltips:!0,theme:null,livebookUrl:null},u=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._subscribers=[],this._settings=s,this._loadSettings()}var t,n,r;return t=e,(n=[{key:"get",value:function(){return this._settings}},{key:"update",value:function(e){var t=this,n=this._settings;this._settings=i({},this._settings,{},e),this._subscribers.forEach((function(e){return e(t._settings,n)})),this._storeSettings()}},{key:"getAndSubscribe",value:function(e){this._subscribers.push(e),e(this._settings)}},{key:"_loadSettings",value:function(){try{var e=localStorage.getItem("ex_doc:settings");if(e){var t=JSON.parse(e);this._settings=i({},this._settings,{},t)}this._loadSettingsLegacy()}catch(e){console.error("Failed to load settings: ".concat(e))}}},{key:"_storeSettings",value:function(){try{this._storeSettingsLegacy(),localStorage.setItem("ex_doc:settings",JSON.stringify(this._settings))}catch(e){console.error("Failed to persist settings: ".concat(e))}}},{key:"_loadSettingsLegacy",value:function(){null!==localStorage.getItem("tooltipsDisabled")&&(this._settings=i({},this._settings,{tooltips:!1})),"true"===localStorage.getItem("night-mode")&&(this._settings=i({},this._settings,{nightMode:!0})),!0===this._settings.nightMode&&(this._settings=i({},this._settings,{theme:"dark"}))}},{key:"_storeSettingsLegacy",value:function(){this._settings.tooltips?localStorage.removeItem("tooltipsDisabled"):localStorage.setItem("tooltipsDisabled","true"),null!==this._settings.nightMode?localStorage.setItem("night-mode",!0===this._settings.nightMode?"true":"false"):localStorage.removeItem("night-mode"),null!==this._settings.theme?(localStorage.setItem("night-mode","dark"===this._settings.theme?"true":"false"),this._settings.nightMode="dark"===this._settings.theme):(delete this._settings.nightMode,localStorage.removeItem("night-mode"))}}])&&l(t.prototype,n),r&&l(t,r),e}());function c(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o,i=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw o}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(){var e,t;Object(r.l)(".content").querySelectorAll("a").forEach((function(e){e.querySelector("code, img")&&e.classList.add("no-underline")})),Object(r.l)(".content-inner").setAttribute("tabindex",-1),Object(r.l)(".content-inner").focus(),e=window.location.pathname.replace(/\.html$/,".livemd"),t=new URL(e,window.location.href).toString(),u.getAndSubscribe((function(e){var n,o=e.livebookUrl?function(e,t){return"".concat(e,"/import?url=").concat(encodeURIComponent(t))}(e.livebookUrl,t):function(e){return"https://livebook.dev/run?url=".concat(encodeURIComponent(e))}(t),i=c(Object(r.m)(".livebook-badge"));try{for(i.s();!(n=i.n()).done;)n.value.href=o}catch(e){i.e(e)}finally{i.f()}})),["warning","info","error","neutral","tip"].forEach((function(e){Object(r.m)("blockquote h3.".concat(e,", blockquote h4.").concat(e)).forEach((function(t){t.closest("blockquote").classList.add(e)}))}))}var p=n(13),h=n.n(p);function m(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var v="closed",g="open",b="no_pref",w={opened:"sidebar-opened",opening:"sidebar-opening",closed:"sidebar-closed",closing:"sidebar-closing"},x=Object.values(w),O={togglingTimeout:null,lastWindowWidth:window.innerWidth,sidebarPreference:b};function k(){P(),Object(r.l)(".sidebar-toggle").addEventListener("click",(function(e){E(),function(){switch(O.sidebarPreference){case g:O.sidebarPreference=v;break;case v:O.sidebarPreference=g;break;case b:L()?O.sidebarPreference=g:O.sidebarPreference=v}}()})),Object(r.l)(".content").addEventListener("click",(function(e){j()&&L()&&T()})),window.addEventListener("resize",h()((function(e){O.lastWindowWidth!==window.innerWidth&&(O.lastWindowWidth=window.innerWidth,O.sidebarPreference!==g&&O.sidebarPreference!==b||P())}),100))}function P(){S(j()?w.closed:w.opened)}function j(){return window.matchMedia("screen and (max-width: ".concat(768,"px)")).matches}function S(){var e,t;(e=document.body.classList).remove.apply(e,m(x)),(t=document.body.classList).add.apply(t,arguments)}function E(){return L()?T():_()}function L(){return document.body.classList.contains(w.opened)||document.body.classList.contains(w.opening)}function _(){return I(),S(w.opening),new Promise((function(e,t){O.togglingTimeout=setTimeout((function(){S(w.opened),e()}),300)}))}function T(){return I(),S(w.closing),new Promise((function(e,t){O.togglingTimeout=setTimeout((function(){S(w.closed),e()}),300)}))}function I(){O.togglingTimeout&&(clearTimeout(O.togglingTimeout),O.togglingTimeout=null)}var C=n(14),A=n.n(C);function Q(){return window.sidebarNodes||{}}var M=["extras","modules","tasks"];function R(){D(Q(),Object(r.f)()),N(),F(),M.forEach((function(e){var t=Object(r.l)("#".concat(e,"-list-link"));t&&t.addEventListener("click",(function(t){t.preventDefault(),D(Q(),e),F()}))})),window.addEventListener("hashchange",(function(e){var t=Object(r.l)("#full-list").querySelector("li.current-page li.current-hash");t&&t.classList.remove("current-hash"),N()}))}function D(e,t){var n,o=e[t]||[],i=Object(r.l)("#full-list"),a=A()({nodes:o,group:""});i.innerHTML=a,n=t,M.forEach((function(e){var t=Object(r.l)("#".concat(e,"-list-link"));t&&t.parentElement.classList.toggle("selected",e===n)})),i.querySelectorAll("ul").forEach((function(e){if(""===e.innerHTML.trim()){var t=e.previousElementSibling;t.classList.contains("expand")&&t.classList.remove("expand")}})),i.querySelectorAll("li a").forEach((function(e){e.addEventListener("click",(function(t){var n=t.target,r=n.closest("li"),o=i.querySelector(".current-section");if(n.matches(".icon-expand"))return t.preventDefault(),void r.classList.toggle("open");o&&o.classList.remove("current-section"),e.matches(".expand")&&e.pathname===window.location.pathname&&r.classList.add("open")}))}))}function F(){var e=Object(r.l)("#full-list"),t=e.querySelector("li.current-page");t&&(t.scrollIntoView(),e.scrollTop-=40)}function N(){var e=Object(r.g)()||"content",t=Q()[Object(r.f)()]||[],n=Object(r.e)(t,e),o=Object(r.l)("#full-list"),i=o.querySelector('li.current-page a.expand[href$="#'.concat(n,'"]'));i&&i.closest("li").classList.add("open");var a=o.querySelector('li.current-page a[href$="#'.concat(e,'"]'));if(a){var l=a.closest("ul");l.classList.contains("deflist")&&l.closest("li").classList.add("current-section"),a.closest("li").classList.add("current-hash")}}var H=n(15),q=n.n(H);function V(e,t){return U(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}(e,t)||W(e,t)||B()}function B(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function U(e){if(Array.isArray(e))return e}function $(e){return function(e){if(Array.isArray(e))return G(e)}(e)||z(e)||W(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e,t){if(e){if("string"==typeof e)return G(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?G(e,t):void 0}}function z(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var J="module",K="module-child",Y="mix-task",Z="extra";function X(e,t,n){return e.map((function(e){return function(e,t,n){if(!re(e.title,t))return null;return{link:"".concat(e.id,".html"),title:le(e.title,t),label:null,description:null,matchQuality:ie(e.title,t),category:n}}(e,t,n)})).filter((function(e){return null!==e}))}function ee(e,t,n){return e.filter((function(e){return e.nodeGroups})).flatMap((function(e){return e.nodeGroups.flatMap((function(r){var o=r.key,i=r.nodes,a=function(e){switch(e){case"callbacks":return"callback";case"types":return"type";default:return null}}(o);return i.map((function(r){return function(e,t,n,r,o){if(!re(e.id,n))return null;return{link:"".concat(t,".html#").concat(e.anchor),title:le(e.id,n),label:o,description:t,matchQuality:ie(e.id,n),category:r}}(r,e.id,t,n,a)||function(e,t,n,r,o){var i="".concat(t,".").concat(e.id);if(!re(i,n))return null;var a=n.replace(/\./g," ");return function(e,t){return ae(t).some((function(t){return oe(e,t)}))}(e.id,a)?{link:"".concat(t,".html#").concat(e.anchor),title:le(e.id,a),label:o,description:t,matchQuality:ie(i,n),category:r}:null}(r,e.id,t,n,a)}))}))})).filter((function(e){return null!==e}))}function te(e){return e.slice().sort((function(e,t){return e.matchQuality!==t.matchQuality?t.matchQuality-e.matchQuality:ne(e.category)-ne(t.category)}))}function ne(e){switch(e){case J:return 1;case K:return 2;case Y:return 3;default:return 4}}function re(e,t){return ae(t).every((function(t){return oe(e,t)}))}function oe(e,t){return e.toLowerCase().includes(t.toLowerCase())}function ie(e,t){var n=ae(t);return n.map((function(e){return e.length})).reduce((function(e,t){return e+t}),0)/e.length+(function(e,t){return e.toLowerCase().startsWith(t.toLowerCase())}(e,n[0])?1:0)}function ae(e){return e.trim().split(/\s+/)}function le(e,t){return function e(t,n){if(0===n.length)return t;var o=(s=n,U(s)||z(s)||W(s)||B()),i=o[0],a=o.slice(1),l=t.match(new RegExp("(.*)(".concat(Object(r.d)(i),")(.*)"),"i"));var s;if(l){var u=V(l,4),c=u[1],d=u[2],f=u[3];return e(c,n)+"<em>"+Object(r.c)(d)+"</em>"+e(f,n)}return e(t,a)}(e,ae(t).sort((function(e,t){return t.length-e.length})))}var se={autocompleteSuggestions:[],selectedIdx:-1};function ue(){Object(r.l)(".autocomplete").classList.remove("shown")}function ce(e){var t,n,o,i;se.autocompleteSuggestions=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;if(Object(r.j)(e))return[];var n=Q(),o=[].concat($(X(n.modules,e,J)),$(ee(n.modules,e,K)),$(X(n.tasks,e,Y)),$(X(n.extras,e,Z)));return te(o).slice(0,t)}(e),se.selectedIdx=-1,Object(r.j)(e)?ue():(t={term:e,suggestions:se.autocompleteSuggestions},n=t.term,o=t.suggestions,i=q()({suggestions:o,term:n}),Object(r.l)(".autocomplete").innerHTML=i,de(0),Object(r.l)(".autocomplete").classList.add("shown"))}function de(e){se.selectedIdx=function(e){var t=se.autocompleteSuggestions.length+1;return(se.selectedIdx+e+1+t)%t-1}(e);var t=Object(r.l)("".concat(".autocomplete-suggestion",".selected")),n=Object(r.l)("".concat(".autocomplete-suggestion",'[data-index="').concat(se.selectedIdx,'"]'));t&&t.classList.remove("selected"),n&&n.classList.add("selected")}function fe(){var e;(e=Object(r.l)("form.sidebar-search input")).addEventListener("keydown",(function(t){"Escape"===t.key?(pe(),e.blur()):"Enter"===t.key?function(e){var t=Object(r.l)("form.sidebar-search input"),n=e.shiftKey||e.ctrlKey,o=-1===se.selectedIdx?null:se.autocompleteSuggestions[se.selectedIdx];e.preventDefault();var i=n?"_blank":"_self",a=document.createElement("a");a.setAttribute("target",i),o?a.setAttribute("href",o.link):a.setAttribute("href","search.html?q=".concat(encodeURIComponent(t.value))),a.click(),n||(pe(),he())}(t):"ArrowUp"===t.key?(de(-1),t.preventDefault()):"ArrowDown"===t.key&&(de(1),t.preventDefault())})),e.addEventListener("input",(function(e){ce(e.target.value)})),e.addEventListener("focus",(function(e){document.body.classList.add("search-focused"),ce(e.target.value)})),e.addEventListener("blur",(function(t){var n=t.relatedTarget;if(n){if(n.matches(".autocomplete-suggestion"))return setTimeout((function(){Object(r.l)(".autocomplete").classList.contains("shown")&&e.focus()}),1e3),null;n.matches("form.sidebar-search .search-close-button")&&pe()}he()})),Object(r.l)(".autocomplete").addEventListener("click",(function(t){t.shiftKey||t.ctrlKey?e.focus():(pe(),he())}))}function pe(){Object(r.l)("form.sidebar-search input").value=""}function he(){document.body.classList.remove("search-focused"),ue()}var me=n(16),ye=n.n(me);function ve(e){return function(e){if(Array.isArray(e))return ge(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ge(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ge(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function we(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xe(){var e=window.versionNodes||[];e.length>0&&function(e){var t=e.nodes,n=Object(r.l)(".sidebar-projectVersion"),o=ye()({nodes:t});n.innerHTML=o,Object(r.l)(".sidebar-projectVersionsDropdown").addEventListener("change",Oe)}({nodes:function(e,t){return function(e,t){return e.some((function(e){return e.version===t}))?e:[{version:t,url:"#"}].concat(ve(e))}(e,t).map((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){we(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e,{isCurrentVersion:e.version===t})}))}(e,Object(r.l)(".sidebar-projectVersion").textContent.trim())})}function Oe(e){var t=e.target.value,n=window.location.pathname.split("/").pop()+window.location.hash,o="".concat(t,"/").concat(n);Object(r.a)(o).then((function(e){window.location.href=e?o:t}))}var ke=n(4),Pe=n.n(ke),je=n(17),Se=n.n(je);function Ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}(e,t)||Ie(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Te(e){return function(e){if(Array.isArray(e))return Ce(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||Ie(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ie(e,t){if(e){if("string"==typeof e)return Ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ce(e,t):void 0}}function Ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ae(){window.location.pathname.endsWith("/search.html")&&function(e){if(Object(r.j)(e))Qe({value:e});else{!function(e){Object(r.l)("form.sidebar-search input").value=e}(e);var t=function(){var e=function(){try{var e=sessionStorage.getItem(Me());return e?Pe.a.Index.load(JSON.parse(e)):null}catch(e){return console.error("Failed to load index: ",e),null}}();if(e)return e;var t=Pe()((function(){var e=this;this.ref("ref"),this.field("title",{boost:3}),this.field("doc"),this.metadataWhitelist=["position"],this.pipeline.remove(Pe.a.stopWordFilter),this.use(Re),searchNodes.forEach((function(t){e.add(t)}))}));return function(e){try{var t=JSON.stringify(e);sessionStorage.setItem(Me(),t)}catch(e){console.error("Failed to save index: ",e)}}(t),t}();try{var n=function(e){return e.filter((function(e){return De(e.ref)})).map((function(e){var t=De(e.ref),n=e.matchData.metadata;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Le(Object(n),!0).forEach((function(t){_e(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t,{metadata:n,excerpts:Fe(t,n)})}))}(t.search(e));Qe({value:e,results:n})}catch(t){Qe({value:e,errorMessage:t.message})}}}(Object(r.i)("q"))}function Qe(e){var t=e.value,n=e.results,o=e.errorMessage,i=Object(r.l)("#search"),a=Se()({value:t,results:n,errorMessage:o});i.innerHTML=a}function Me(){return"index:".concat(Object(r.h)())}function Re(e){function t(e){var t=e.toString().split(/\.|\/|_/).map((function(t){return e.clone().update((function(){return t}))}));return t.length>1?[].concat(Te(t),[e]):t}Pe.a.Pipeline.registerFunction(t,"elixirTokenSplitter"),e.pipeline.before(Pe.a.stemmer,t),e.searchPipeline.before(Pe.a.stemmer,t)}function De(e){return searchNodes.find((function(t){return t.ref===e}))||null}function Fe(e,t){var n=e.doc,o=Object.keys(t).filter((function(e){return"doc"in t[e]})).map((function(e){return t[e].doc.position.map((function(e){var t=Ee(e,2),o=t[0],i=t[1];return function(e,t,n){var o=Math.max(t-80,0),i=Math.min(t+n+80,e.length);return[o>0?"...":"",e.slice(o,t),"<em>"+Object(r.c)(e.slice(t,t+n))+"</em>",e.slice(t+n,i),i<e.length?"...":""].join("")}(n,o,i)}))})).reduce((function(e,t){return e.concat(t)}),[]);return 0===o.length?[n.slice(0,160)+(160<n.length?"...":"")]:o.slice(0,1)}var Ne=null,He=document.getElementById("toast");function qe(e){He&&(clearTimeout(Ne),He.innerText=e,He.classList.add("show"),Ne=setTimeout((function(){He.classList.remove("show"),Ne=setTimeout((function(){He.innerText=""}),1e3)}),5e3))}He.addEventListener("click",(function(e){clearTimeout(Ne),e.target.classList.remove("show")}));var Ve=["system","dark","light"];function Be(){u.getAndSubscribe((function(e){document.body.classList.toggle("dark",Ue(e))})),window.matchMedia("(prefers-color-scheme: dark)").addListener((function(e){var t=u.get(),n=Ue(t);null!=t.theme&&"system"!==t.theme||(document.body.classList.toggle("dark",n),qe('Browser changed theme to "'.concat(n?"dark":"light",'"')))}))}function Ue(e){return"dark"===e.theme||window.matchMedia("(prefers-color-scheme: dark)").matches&&(null==e.theme||"system"===e.theme)}var $e=n(5),We=n(18),ze=n.n(We),Ge='button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])',Je={prevFocus:null,lastFocus:null,ignoreFocusChanges:!1};function Ke(){var e;e=ze()(),document.body.insertAdjacentHTML("beforeend",e),Object(r.l)("#modal").addEventListener("keydown",(function(e){"Escape"===e.key&&Xe()})),Object(r.l)("#modal .modal-close").addEventListener("click",(function(e){Xe()}))}function Ye(e){if(!Je.ignoreFocusChanges){var t=Object(r.l)("#modal");if(t.contains(e.target))Je.lastFocus=e.target;else{Je.ignoreFocusChanges=!0;var n=t.querySelector(Ge);Je.lastFocus===n?function(e){var t=e.querySelectorAll(Ge);return t[t.length-1]}(t).focus():n.focus(),Je.ignoreFocusChanges=!1,Je.lastFocus=document.activeElement}}}function Ze(e){var t=e.title,n=e.body;Je.prevFocus=document.activeElement,document.addEventListener("focus",Ye,!0),Object(r.l)("#modal .modal-title").innerHTML=t,Object(r.l)("#modal .modal-body").innerHTML=n,Object(r.l)("#modal").classList.add("shown"),Object(r.l)("#modal").focus()}function Xe(){Object(r.l)("#modal").classList.remove("shown"),document.addEventListener("focus",Ye,!0),Je.prevFocus&&Je.prevFocus.focus(),Je.prevFocus=null}var et=n(19),tt=n.n(et),nt=n(20),rt=n.n(nt),ot=["elixir","eex","ex_unit","hex","iex","logger","mix"].map((function(e){return{name:e}})),it={autocompleteResults:[],selectedIdx:null};function at(){Object(r.m)(".display-quick-switch").forEach((function(e){e.addEventListener("click",(function(e){ut()}))}))}function lt(e){"Enter"===e.key?(!function(e){if(null===it.selectedIdx)ct(e);else{ct(it.autocompleteResults[it.selectedIdx].name)}}(e.target.value),e.preventDefault()):"ArrowUp"===e.key?(ft(-1),e.preventDefault()):"ArrowDown"===e.key&&(ft(1),e.preventDefault())}function st(e){var t=e.target.value;t.length<3?Object(r.l)("#quick-switch-results").innerHTML="":dt(t)}function ut(){Ze({title:"Search HexDocs package",body:tt()()}),Object(r.l)("#quick-switch-input").focus();var e=Object(r.l)("#quick-switch-input");e.addEventListener("keydown",lt),e.addEventListener("input",st),it.autocompleteResults=[],it.selectedIdx=null}function ct(e){window.location="https://hexdocs.pm/%%".replace("%%",e.toLowerCase())}var dt=Object(r.b)((function(e){var t="https://hex.pm/api/packages?search=name:%%*".replace("%%",e);fetch(t).then((function(e){return e.json()})).then((function(t){var n,o,i,a;Array.isArray(t)&&(it.autocompleteResults=function(e,t){return ot.concat(t).filter((function(t){return t.name.toLowerCase().includes(e.toLowerCase())})).filter((function(e){return void 0===e.releases||!0===e.releases[0].has_docs})).slice(0,9)}(e,t),it.selectedIdx=null,Object(r.l)("#quick-switch-input").value.length>=3&&(n={results:it.autocompleteResults},o=n.results,i=Object(r.l)("#quick-switch-results"),a=rt()({results:o}),i.innerHTML=a,Object(r.m)(".quick-switch-result").forEach((function(e){e.addEventListener("click",(function(t){var n=e.getAttribute("data-index");ct(it.autocompleteResults[n].name)}))}))))}))}),300);function ft(e){it.selectedIdx=function(e){var t=it.autocompleteResults.length;if(null===it.selectedIdx){if(e>=0)return 0;if(e<0)return t-1}return(it.selectedIdx+e+t)%t}(e);var t=Object(r.l)(".quick-switch-result.selected"),n=Object(r.l)('.quick-switch-result[data-index="'.concat(it.selectedIdx,'"]'));t&&t.classList.remove("selected"),n&&n.classList.add("selected")}var pt=n(21),ht=n.n(pt),mt=[{title:"Settings",id:"modal-settings-tab"},{title:"Keyboard shortcuts",id:"modal-keyboard-shortcuts-tab"}];function yt(){Object(r.m)(".display-settings").forEach((function(e){e.addEventListener("click",(function(e){gt()}))}))}function vt(){Object(r.l)("#modal-keyboard-shortcuts-tab").classList.remove("active"),Object(r.l)("#modal-settings-tab").classList.add("active"),Object(r.l)("#settings-content").classList.remove("hidden"),Object(r.l)("#keyboard-shortcuts").classList.add("hidden")}function gt(){Ze({title:mt.map((function(e){var t=e.id,n=e.title;return'<button id="'.concat(t,'">').concat(n,"</button>")})).join(""),body:ht()({shortcuts:bt})});var e=Object(r.l)("#settings-modal-content"),t=e.querySelector('[name="theme"]'),n=e.querySelector('[name="tooltips"]'),o=e.querySelector('[name="direct_livebook_url"]'),i=e.querySelector('[name="livebook_url"]');u.getAndSubscribe((function(e){t.value=e.theme||"system",n.checked=e.tooltips,null===e.livebookUrl?(o.checked=!1,i.classList.add("hidden"),i.tabIndex=-1):(o.checked=!0,i.classList.remove("hidden"),i.tabIndex=0,i.value=e.livebookUrl)})),t.addEventListener("change",(function(e){u.update({theme:e.target.value})})),n.addEventListener("change",(function(e){u.update({tooltips:e.target.checked})})),o.addEventListener("change",(function(e){var t=e.target.checked?i.value:null;u.update({livebookUrl:t})})),i.addEventListener("input",(function(e){u.update({livebookUrl:e.target.value})})),Object(r.l)("#modal-settings-tab").addEventListener("click",(function(e){vt()})),Object(r.l)("#modal-keyboard-shortcuts-tab").addEventListener("click",(function(e){Object(r.l)("#modal-keyboard-shortcuts-tab").classList.add("active"),Object(r.l)("#modal-settings-tab").classList.remove("active"),Object(r.l)("#keyboard-shortcuts").classList.remove("hidden"),Object(r.l)("#settings-content").classList.add("hidden")})),vt()}var bt=[{key:"c",description:"Toggle sidebar",action:E},{key:"n",description:"Cycle themes",action:function(){var e=u.get().theme||"system",t=Ve[Ve.indexOf(e)+1]||Ve[0];u.update({theme:t}),qe('Set theme to "'.concat(t,'"'))}},{key:"s",description:"Focus search bar",displayAs:"<kbd><kbd>/</kbd></kbd> or <kbd><kbd>s</kdb></kdb>",action:Pt},{key:"/",action:Pt},{key:"g",description:"Search HexDocs package",displayAs:"<kbd><kbd>g</kdb></kdb>",action:ut},{key:"?",displayAs:"<kbd><kbd>?</kbd></kbd>",description:"Bring up this help dialog",action:function(){Object(r.l)("#modal").classList.contains("shown")&&Object(r.l)("#settings-modal-content")?Xe():gt()}}],wt={shortcutBeingPressed:null};function xt(){document.addEventListener("keydown",Ot),document.addEventListener("keyup",kt)}function Ot(e){if(!wt.shortcutBeingPressed&&!e.target.matches("input, textarea")&&!(e.ctrlKey||e.metaKey||e.altKey)){var t=bt.find((function(t){return t.key===e.key}));t&&(wt.shortcutBeingPressed=t,e.preventDefault(),t.action(e))}}function kt(e){wt.shortcutBeingPressed=null}function Pt(e){Xe(),_().then((function(){Object(r.l)("form.sidebar-search input").focus()}))}var jt=n(22),St=n.n(jt),Et=n(23),Lt=n.n(Et),_t="plain",Tt="function",It="module",Ct=[{href:"typespecs.html#basic-types",hint:{kind:_t,description:"Basic type"}},{href:"typespecs.html#literals",hint:{kind:_t,description:"Literal"}},{href:"typespecs.html#built-in-types",hint:{kind:_t,description:"Built-in type"}}],At={cancelHintFetching:null};function Qt(e){var t=Mt(e);return t?Promise.resolve(t):function(e){var t=e.replace(".html",".html?hint=true");return new Promise((function(e,n){var r=document.createElement("iframe");function o(n){var r=n.data,o=r.href,a=r.hint;t===o&&(i(),e(a))}function i(){r.remove(),window.removeEventListener("message",o),At.cancelHintFetching=null}r.setAttribute("sandbox","allow-scripts allow-same-origin"),r.setAttribute("src",t),r.style.display="none",At.cancelHintFetching=function(){i(),n(new Error("cancelled"))},window.addEventListener("message",o),document.body.appendChild(r)}))}(e)}function Mt(e){var t=Ct.find((function(t){return e.includes(t.href)}));return t?t.hint:null}var Rt=450,Dt=768,Ft={currentLinkElement:null,hoverDelayTimeout:null};function Nt(){var e;e=Lt()(),Object(r.l)("body .content-inner").insertAdjacentHTML("beforeend",e),Object(r.m)(".content a").forEach((function(e){var t,n,o;!(t=e).classList.contains("detail-link")&&(n=t.href,o=n.replace("#content",""),window.location.href.split("#")[0]!==o&&function(e){return!!Mt(e)||!(e.includes("#")&&!/#.*\//.test(e))&&e.includes(".html")}(t.href))&&(e.addEventListener("mouseenter",(function(t){!function(e){var t;(t=window.innerWidth<Dt||window.innerHeight<Rt,Ht()&&!t)&&(Ft.currentLinkElement=e,Ft.hoverDelayTimeout=setTimeout((function(){Qt(e.href).then((function(e){!function(e){var t=St()({isPlain:e.kind===_t,hint:e});Object(r.l)("#tooltip .tooltip-body").innerHTML=t,function(){if(Ft.currentLinkElement){var e,t,n=Object(r.l)("#tooltip"),o=Ft.currentLinkElement.getBoundingClientRect(),i=Object(r.l)("body .content-inner").getBoundingClientRect(),a=n.getBoundingClientRect(),l=(t=i,{top:(e=o).top-t.top,bottom:e.bottom-t.top,left:e.left-t.left,right:e.right-t.left,x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height});if(o.left+a.width+10<window.innerWidth)n.style.left="".concat(l.left,"px"),n.style.right="auto";else{var s=Math.max(l.right-a.width,10);n.style.left="".concat(s,"px"),n.style.right="auto"}o.bottom+a.height+40<window.innerHeight?n.style.top="".concat(l.bottom+10,"px"):n.style.top="".concat(l.top-a.height-10,"px")}}()}(e),Object(r.l)("#tooltip").classList.add("tooltip-shown")})).catch((function(){}))}),100))}(e)})),e.addEventListener("mouseleave",(function(e){Ht()&&(clearTimeout(Ft.hoverDelayTimeout),At.cancelHintFetching&&At.cancelHintFetching(),Ft.currentLinkElement=null,Object(r.l)("#tooltip").classList.remove("tooltip-shown"))})))}))}function Ht(){return u.get().tooltips}function qt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bt(){if(new URLSearchParams(window.location.search).has("hint")&&window.self!==window.parent){var e=function(){var e=function(e){if(!e)return null;var t=document.getElementById(e);if(!t)return null;if(t.matches(".detail"))return t;if(t.matches("span"))return t.parentElement;return null}(Object(r.g)()),t=Object(r.l)(".content-inner");if(e)return Ut((o=(n=e).querySelector("h1").textContent,i=n.querySelector(".docstring > p"),a=i?i.textContent:"",{kind:Tt,title:o.trim(),description:a.trim()}));if(["modules","tasks"].includes(Object(r.f)()))return Ut(function(e){var t=e.querySelector("h1 > span").textContent,n=e.querySelector("#moduledoc p"),r=n?n.textContent:"";return{kind:It,title:t.trim(),description:r.trim()}}(t));var n,o,i,a;return null}();e&&function(e){var t=window.location.href,n={hint:e,href:t};window.parent.postMessage(n,"*")}(e)}}function Ut(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qt(Object(n),!0).forEach((function(t){Vt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e,{version:Object(r.h)()})}function $t(){"clipboard"in navigator&&(Array.from(Object(r.m)("pre")).filter((function(e){return e.firstElementChild&&"CODE"===e.firstElementChild.tagName})).forEach((function(e){return e.insertAdjacentHTML("afterbegin",'<button class="copy-button" aria-label="copy"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"><path d="M0 0h24v24H0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button>')})),Array.from(Object(r.m)(".copy-button")).forEach((function(e){var t;e.addEventListener("click",(function(){t&&clearTimeout(t);var n=Array.from(e.parentElement.querySelector("code").childNodes).filter((function(e){return!("SPAN"===e.tagName&&e.classList.contains("unselectable"))})).map((function(e){return e.textContent})).join("");navigator.clipboard.writeText(n),e.classList.add("clicked"),t=setTimeout((function(){return e.classList.remove("clicked")}),3e3)}))})))}Object(r.k)((function(){Be(),k(),R(),fe(),xe(),f(),Object($e.a)(),Ke(),xt(),at(),Nt(),Bt(),Ae(),$t(),yt()}))}]); -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/html/dist/app-bd1cb213813bf4825aa2.js.LICENSE.txt b/.deps/ex_doc/formatters/html/dist/app-bd1cb213813bf4825aa2.js.LICENSE.txt @@ -1,61 +0,0 @@ -/*! - * lunr.Builder - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.Index - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.Pipeline - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.Set - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.TokenSet - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.Vector - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.stemmer - * Copyright (C) 2019 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ - -/*! - * lunr.stopWordFilter - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.tokenizer - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.trimmer - * Copyright (C) 2019 Oliver Nightingale - */ - -/*! - * lunr.utils - * Copyright (C) 2019 Oliver Nightingale - */ - -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8 - * Copyright (C) 2019 Oliver Nightingale - * @license MIT - */ diff --git a/.deps/ex_doc/formatters/html/dist/elixir-b6f1ed5df9b1d42a7309.css b/.deps/ex_doc/formatters/html/dist/elixir-b6f1ed5df9b1d42a7309.css @@ -1,2 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:300,700|Merriweather:300italic,300|Inconsolata:400,700); -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@font-face{font-family:remixicon;src:url(html/fonts/remixicon.eot);src:url(html/fonts/remixicon.eot#iefix) format("embedded-opentype"),url(html/fonts/remixicon.woff2) format("woff2"),url(html/fonts/remixicon.woff) format("woff"),url(html/fonts/remixicon.ttf) format("truetype"),url(html/fonts/remixicon.svg#remixicon) format("svg");font-display:swap}.remix-icon,[class*=" ri-"],[class^=ri-]{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:"\F0E6"}.ri-add-line:before{content:"\EA13"}.ri-subtract-line:before{content:"\F1AF"}.ri-arrow-up-s-line:before{content:"\EA78"}.ri-arrow-down-s-line:before{content:"\EA4E"}.ri-arrow-right-s-line:before{content:"\EA6E"}.ri-search-2-line:before{content:"\F0CD"}.ri-menu-line:before{content:"\EF3E"}.ri-close-line:before{content:"\EB99"}.ri-link-m:before{content:"\EEAF"}.ri-code-s-slash-line:before{content:"\EBAD"}.ri-error-warning-line:before{content:"\ECA1"}.ri-information-line:before{content:"\EE59"}.ri-alert-line:before{content:"\EA21"}.ri-double-quotes-l:before{content:"\EC51"}body,html{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;width:100%}body{background-color:#fff;color:#000;font-size:16px;font-family:Lato,sans-serif;line-height:1.6875em}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}.main{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.main,.sidebar{display:-webkit-box;display:-ms-flexbox;display:-ms-flex;display:flex;height:100%}.sidebar{-webkit-box-orient:vertical;-webkit-box-direction:normal;min-height:0;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:300px;position:fixed;top:0;left:0;z-index:4}.sidebar-button{position:fixed;z-index:99;left:0;top:7px;-webkit-transition:color .3s ease-in-out,opacity .15s ease-out .1s,-webkit-transform .15s ease-out .1s;transition:color .3s ease-in-out,opacity .15s ease-out .1s,-webkit-transform .15s ease-out .1s;transition:color .3s ease-in-out,transform .15s ease-out .1s,opacity .15s ease-out .1s;transition:color .3s ease-in-out,transform .15s ease-out .1s,opacity .15s ease-out .1s,-webkit-transform .15s ease-out .1s;will-change:transform;-webkit-transform:translateX(250px);transform:translateX(250px)}.content{width:calc(100% - 300px);left:300px;height:100%;position:absolute;z-index:3}body.sidebar-opened .sidebar-button,body.sidebar-opening .sidebar-button{-webkit-transform:translateX(250px);transform:translateX(250px);position:absolute}body.sidebar-opening .sidebar-button{-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}body.sidebar-opening .sidebar{left:0;-webkit-transition:left .3s ease-in-out;transition:left .3s ease-in-out}body.sidebar-opening .content{width:calc(100% - 300px);left:300px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}body.sidebar-closing .sidebar-button{-webkit-transform:translateX(0);transform:translateX(0)}body.sidebar-closing .sidebar{left:-300px;-webkit-transition:left .3s ease-in-out;transition:left .3s ease-in-out}body.sidebar-closing .content{width:100%;left:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}body.sidebar-closed .sidebar-button{color:#000;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;-webkit-transform:translateY(-8px);transform:translateY(-8px)}body.sidebar-closed .sidebar{left:-300px}body.sidebar-closed .content{width:100%;left:0}body.search-focused .sidebar-button{-webkit-transform:translateX(250px) scaleY(0);transform:translateX(250px) scaleY(0);-webkit-transition:all .15s ease-out;transition:all .15s ease-out;opacity:0}body.search-focused .sidebar-search .search-close-button{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:-webkit-transform .15s ease-out .15s;transition:-webkit-transform .15s ease-out .15s;transition:transform .15s ease-out .15s;transition:transform .15s ease-out .15s,-webkit-transform .15s ease-out .15s}.content-inner{max-width:949px;margin:0 auto;padding:3px 60px}.content-inner:focus{outline:none}.content-outer{min-height:100%}@media screen and (max-width:768px){.content,body.sidebar-opening .content{left:0;width:100%}.content-inner{padding:27px 20px 27px 40px;max-width:100%;overflow-x:auto}}.sidebar{font-family:Lato,sans-serif;font-size:16px;line-height:18px;background:#0d1829;color:#f0f5f9;overflow:hidden;scrollbar-color:#767676 #0d1829}.sidebar .gradient{background:-webkit-gradient(linear,left top,left bottom,from(#0d1829),to(rgba(13,24,41,0)));background:linear-gradient(#0d1829,rgba(13,24,41,0));height:20px;margin-top:-20px;pointer-events:none;position:relative;top:20px;z-index:100}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:#f0f5f9;text-decoration:none;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.sidebar a:hover{color:#fff}.sidebar .sidebar-header{margin:12px;border-radius:4px;background-color:#1c2a3a;width:276px}.sidebar .sidebar-projectDetails{display:inline-block;text-align:left;vertical-align:top;margin:6px 0 0 10px}.sidebar .sidebar-projectImage{display:inline-block;max-width:48px;max-height:48px;margin:0 0 0 10px;vertical-align:bottom}.sidebar .sidebar-projectName{font-weight:700;font-size:20px;line-height:30px;color:#f0f5f9;margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-weight:300;font-size:16px;line-height:20px;color:#91a4b7}.sidebar .sidebar-projectVersionsDropdown{cursor:pointer;position:relative;margin:0;padding:0 0 0 12px;border:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:#fff;z-index:2}.sidebar .sidebar-projectVersionsDropdown option{color:initial}.sidebar .sidebar-projectVersionsDropdown:focus{outline:none}.sidebar .sidebar-projectVersion form:after{position:absolute;left:0;top:2px;content:"\25BC";z-index:1;font-size:8px;color:#fff}.sidebar .sidebar-projectVersionsDropdown::-ms-expand{display:none}.sidebar .sidebar-listNav{padding:12px 0 0;margin:0}.sidebar .sidebar-listNav li,.sidebar .sidebar-listNav li a{text-transform:uppercase;font-weight:300;font-size:14px;color:#91a4b7}.sidebar .sidebar-listNav li{display:inline-block;border-bottom:3px solid transparent;line-height:27px}.sidebar .sidebar-listNav li.selected,.sidebar .sidebar-listNav li.selected a,.sidebar .sidebar-listNav li:hover,.sidebar .sidebar-listNav li:hover a{border-color:#8e7ce6;color:#f0f5f9}.sidebar .sidebar-search{margin-top:12px}.sidebar .sidebar-search .search-button:hover,.sidebar .sidebar-search.selected .search-button{color:#8e7ce6;opacity:1}.sidebar .sidebar-search .search-label{position:relative;width:100%}.sidebar .sidebar-search .search-button{font-size:14px;left:22px;padding:3px 1px 3px 0;top:18px}.sidebar .sidebar-search .search-button,.sidebar .sidebar-search .search-close-button{color:#f0f5f9;background-color:transparent;border:none;cursor:pointer;margin:0;opacity:.5;position:absolute;z-index:2}.sidebar .sidebar-search .search-close-button{font-size:16px;right:18px;padding:5px 1px 5px 0;-webkit-transform:scaleY(0);transform:scaleY(0);top:17px;-webkit-transition:-webkit-transform .15s ease-out;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}.sidebar .sidebar-search .search-close-button:hover{opacity:.7}.sidebar .sidebar-search .search-close-button:focus,.sidebar .sidebar-search .search-close-button:hover{outline:none}.sidebar .sidebar-search .search-input{background-color:#1c2a3a;border:none;border-radius:4px;color:#f0f5f9;margin-left:12px;padding:8px 6px 8px 38px;width:276px}.sidebar .sidebar-search .search-input:focus,.sidebar .sidebar-search .search-input:hover{outline:none}.sidebar .sidebar-search .ri-search-2-line{font-weight:700}.sidebar #full-list{margin:0;padding:20px 0;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch;-webkit-box-flex:1;-moz-flex:1 1 0.01%;-ms-flex:1 1 0.01%;flex:1 1 0.01%;-ms-flex-positive:1;-ms-flex-negative:1;-ms-flex-preferred-size:0.01%}.sidebar #full-list li{padding:0;margin-right:30px;line-height:27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar #full-list li.docs{margin-right:0}.sidebar #full-list li.open>ul{display:block;margin-left:10px}.sidebar #full-list li a.expand>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\EA4E";float:right;margin-right:10px;font-size:1.2em;position:absolute;right:0}.sidebar #full-list li.open>a.expand>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\EA78"}.sidebar #full-list li.docs>a>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:12px;content:"\EA13";font-size:1em;position:absolute;right:0}.sidebar #full-list li.docs.open>a>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\F1AF"}.sidebar #full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:#91a4b7;padding-left:15px}.sidebar #full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:2em 0 0;line-height:1.8em;color:#91a4b7;padding-left:15px}.sidebar #full-list li a{padding:3px 0 3px 15px;color:#cad5e0}.sidebar #full-list li .sections-list>li,.sidebar #full-list li a.expand{text-overflow:ellipsis}.sidebar #full-list li .current-section>a{color:#8e7ce6}.sidebar #full-list>li.current-page>a{color:#8e7ce6;border-left:3px solid #8e7ce6;padding-left:12px}.sidebar #full-list>li.current-page,.sidebar #full-list>li.current-page>a:after{color:#8e7ce6}.sidebar #full-list>li:last-child{margin-bottom:30px}.sidebar #full-list>li.group:first-child{margin-top:0}.sidebar #full-list ul{display:none;margin:9px 0 9px 15px;padding:0}.sidebar #full-list ul li{font-weight:300;line-height:20px;padding:2px 8px;margin-right:0;color:#f0f5f9}.sidebar #full-list ul li.current-hash{color:#8e7ce6}.sidebar #full-list ul li.current-hash:before{content:"\2022";color:#8e7ce6}.sidebar #full-list ul li.current-hash>a{color:#8e7ce6;margin-left:-12px}.sidebar #full-list ul li a{padding-left:15px}.sidebar #full-list ul li ul{display:none;margin:9px 0 9px 20px}.sidebar #full-list ul li ul li{border-left:1px solid #304254;padding:0 10px;margin-left:8px;margin-right:0;color:#f0f5f9}.sidebar #full-list ul li ul li a{padding-left:0}.sidebar #full-list ul li ul li.current-hash:before{content:none}.sidebar #full-list ul li ul li.current-hash{color:#8e7ce6;border-color:#8e7ce6}.sidebar #full-list ul li ul li.current-hash>a{color:#8e7ce6;margin-left:0}.sidebar ::-webkit-scrollbar{width:14px}.sidebar ::-webkit-scrollbar-track{background-color:#0d1829}.sidebar ::-webkit-scrollbar-thumb{background:#767676;border-radius:10px;border:3px solid #0d1829}.sidebar-button{color:#e1e1e1;cursor:pointer;background-color:transparent;border:none;padding:15px 11px;font-size:16px}.sidebar-button:hover{color:#fff}.sidebar-button:active,.sidebar-button:focus,.sidebar-button:hover{outline:none}@media screen and (max-height:500px){.sidebar{overflow-y:auto}.sidebar #full-list{overflow:visible}}.content-inner{font-family:Merriweather,Book Antiqua,Georgia,Century Schoolbook,serif;font-size:1em;line-height:1.6875em;position:relative;color:#1c2a3a;background-color:#fff}.content-inner h1,.content-inner h2,.content-inner h3,.content-inner h4,.content-inner h5,.content-inner h6{font-family:Lato,sans-serif;font-weight:700;line-height:1.5em;word-wrap:break-word;color:#0d1829}.content-inner h1{font-size:2em;margin:1em 0 .5em}.content-inner h1.signature{margin:0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 .settings,.content-inner h1 a.view-source{font-size:1.2rem;font-weight:400}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner a{color:#000;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.content-inner a:visited{color:#000}.content-inner a.no-underline{text-decoration:none}.content-inner a.view-source{float:right;color:#727272;text-decoration:none;border:none;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.content-inner a.view-source:hover{color:#0d1829}.content-inner .settings{background-color:transparent;float:right;color:#727272;text-decoration:none;border:none;-webkit-transition:color .1s ease-in-out;transition:color .1s ease-in-out;margin-top:12px;cursor:pointer}.content-inner .settings:hover{color:#0d1829}.content-inner .livebook-badge-container{display:-webkit-box;display:-ms-flexbox;display:flex}.content-inner a.livebook-badge{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.content-inner .note{color:#727272;margin-right:5px;font-size:14px;font-weight:400}.content-inner h1 .note{float:right}.content-inner blockquote{border-left:3px solid #e1e1e1;position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:#f6f6f6;border-radius:3px}.content-inner blockquote p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0}.content-inner th{text-align:left;font-family:Lato,sans-serif;text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner tr{border-bottom:1px solid #f0f5f9;vertical-align:bottom;height:2.5em}.content-inner td,.content-inner th{padding-left:1em;line-height:2em;vertical-align:top}.content-inner .section-heading:hover a.hover-link{opacity:1;text-decoration:none}.content-inner .section-heading a.hover-link{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;display:inline-block;opacity:0;padding:.3em .6em .6em;line-height:1em;margin-left:-2.7em;text-decoration:none;border:none;font-size:16px;vertical-align:middle}.content-inner .detail h1.section-heading,.content-inner .detail h2.section-heading,.content-inner .detail h3.section-heading,.content-inner .detail h4.section-heading,.content-inner .detail h5.section-heading,.content-inner .detail h6.section-heading{margin-left:.3em}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width:768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner code{font-family:Inconsolata,Menlo,Courier,monospace;font-style:normal;line-height:24px;font-weight:400}.content-inner blockquote.error,.content-inner blockquote.info,.content-inner blockquote.neutral,.content-inner blockquote.tip,.content-inner blockquote.warning{color:#000;border-radius:10px;border-left:0}.content-inner blockquote.warning{background-color:#fff7ed}.content-inner blockquote.error{background-color:#fdeeec}.content-inner blockquote.info{background-color:#e9f5fe}.content-inner blockquote.neutral{background-color:#e2e8ef}.content-inner blockquote.tip{background-color:#e8f3ec}.content-inner blockquote h3.error,.content-inner blockquote h3.info,.content-inner blockquote h3.neutral,.content-inner blockquote h3.tip,.content-inner blockquote h3.warning,.content-inner blockquote h4.error,.content-inner blockquote h4.info,.content-inner blockquote h4.neutral,.content-inner blockquote h4.tip,.content-inner blockquote h4.warning{margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal;color:#fff}.content-inner blockquote h3.error:before,.content-inner blockquote h3.info:before,.content-inner blockquote h3.neutral:before,.content-inner blockquote h3.tip:before,.content-inner blockquote h3.warning:before,.content-inner blockquote h4.error:before,.content-inner blockquote h4.info:before,.content-inner blockquote h4.neutral:before,.content-inner blockquote h4.tip:before,.content-inner blockquote h4.warning:before{position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner blockquote h3.error.warning,.content-inner blockquote h3.info.warning,.content-inner blockquote h3.neutral.warning,.content-inner blockquote h3.tip.warning,.content-inner blockquote h3.warning.warning,.content-inner blockquote h4.error.warning,.content-inner blockquote h4.info.warning,.content-inner blockquote h4.neutral.warning,.content-inner blockquote h4.tip.warning,.content-inner blockquote h4.warning.warning{background-color:#f3ac55;color:#000}.content-inner blockquote h3.error.warning:before,.content-inner blockquote h3.info.warning:before,.content-inner blockquote h3.neutral.warning:before,.content-inner blockquote h3.tip.warning:before,.content-inner blockquote h3.warning.warning:before,.content-inner blockquote h4.error.warning:before,.content-inner blockquote h4.info.warning:before,.content-inner blockquote h4.neutral.warning:before,.content-inner blockquote h4.tip.warning:before,.content-inner blockquote h4.warning.warning:before{color:#000;content:"\ECA1"}.content-inner blockquote h3.error.error,.content-inner blockquote h3.info.error,.content-inner blockquote h3.neutral.error,.content-inner blockquote h3.tip.error,.content-inner blockquote h3.warning.error,.content-inner blockquote h4.error.error,.content-inner blockquote h4.info.error,.content-inner blockquote h4.neutral.error,.content-inner blockquote h4.tip.error,.content-inner blockquote h4.warning.error{background-color:#eb5949}.content-inner blockquote h3.error.error:before,.content-inner blockquote h3.info.error:before,.content-inner blockquote h3.neutral.error:before,.content-inner blockquote h3.tip.error:before,.content-inner blockquote h3.warning.error:before,.content-inner blockquote h4.error.error:before,.content-inner blockquote h4.info.error:before,.content-inner blockquote h4.neutral.error:before,.content-inner blockquote h4.tip.error:before,.content-inner blockquote h4.warning.error:before{content:"\ECA1"}.content-inner blockquote h3.error.info,.content-inner blockquote h3.info.info,.content-inner blockquote h3.neutral.info,.content-inner blockquote h3.tip.info,.content-inner blockquote h3.warning.info,.content-inner blockquote h4.error.info,.content-inner blockquote h4.info.info,.content-inner blockquote h4.neutral.info,.content-inner blockquote h4.tip.info,.content-inner blockquote h4.warning.info{background-color:#4496f7}.content-inner blockquote h3.error.info:before,.content-inner blockquote h3.info.info:before,.content-inner blockquote h3.neutral.info:before,.content-inner blockquote h3.tip.info:before,.content-inner blockquote h3.warning.info:before,.content-inner blockquote h4.error.info:before,.content-inner blockquote h4.info.info:before,.content-inner blockquote h4.neutral.info:before,.content-inner blockquote h4.tip.info:before,.content-inner blockquote h4.warning.info:before{content:"\EE59"}.content-inner blockquote h3.error.neutral,.content-inner blockquote h3.info.neutral,.content-inner blockquote h3.neutral.neutral,.content-inner blockquote h3.tip.neutral,.content-inner blockquote h3.warning.neutral,.content-inner blockquote h4.error.neutral,.content-inner blockquote h4.info.neutral,.content-inner blockquote h4.neutral.neutral,.content-inner blockquote h4.tip.neutral,.content-inner blockquote h4.warning.neutral{background-color:#101828}.content-inner blockquote h3.error.neutral:before,.content-inner blockquote h3.info.neutral:before,.content-inner blockquote h3.neutral.neutral:before,.content-inner blockquote h3.tip.neutral:before,.content-inner blockquote h3.warning.neutral:before,.content-inner blockquote h4.error.neutral:before,.content-inner blockquote h4.info.neutral:before,.content-inner blockquote h4.neutral.neutral:before,.content-inner blockquote h4.tip.neutral:before,.content-inner blockquote h4.warning.neutral:before{content:"\EC51"}.content-inner blockquote h3.error.tip,.content-inner blockquote h3.info.tip,.content-inner blockquote h3.neutral.tip,.content-inner blockquote h3.tip.tip,.content-inner blockquote h3.warning.tip,.content-inner blockquote h4.error.tip,.content-inner blockquote h4.info.tip,.content-inner blockquote h4.neutral.tip,.content-inner blockquote h4.tip.tip,.content-inner blockquote h4.warning.tip{background-color:#377e47}.content-inner blockquote h3.error.tip:before,.content-inner blockquote h3.info.tip:before,.content-inner blockquote h3.neutral.tip:before,.content-inner blockquote h3.tip.tip:before,.content-inner blockquote h3.warning.tip:before,.content-inner blockquote h4.error.tip:before,.content-inner blockquote h4.info.tip:before,.content-inner blockquote h4.neutral.tip:before,.content-inner blockquote h4.tip.tip:before,.content-inner blockquote h4.warning.tip:before{content:"\EE59"}.content-inner .summary h2{font-weight:700}.content-inner .summary h2 a{text-decoration:none;border:none}.content-inner .summary span.deprecated{color:#dcc100;font-weight:400;font-style:italic}.content-inner .summary .summary-row .summary-signature{font-family:Inconsolata,Menlo,Courier,monospace;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{font-family:Merriweather,Book Antiqua,Georgia,Century Schoolbook,serif;font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@-webkit-keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}@keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}.content-inner .detail:target .detail-header{-webkit-animation-duration:.55s;animation-duration:.55s;-webkit-animation-name:blink-background;animation-name:blink-background;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background:#f7f7f7;border-left:3px solid #8e7ce6;font-size:1em;font-family:Inconsolata,Menlo,Courier,monospace;position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:Inconsolata,Menlo,Courier,monospace;font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.content-inner .specs pre{font-family:Inconsolata,Menlo,Courier,monospace;font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:#767676}.content-inner .docstring{margin:1.2em 0 3em 1.2em}.content-inner .docstring h2,.content-inner .docstring h3,.content-inner .docstring h4,.content-inner .docstring h5{font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:#ffff9d}.content-inner a.no-underline,.content-inner pre a{color:#6951de;text-shadow:none;text-decoration:none;background-image:none}.content-inner a.no-underline:active,.content-inner a.no-underline:focus,.content-inner a.no-underline:hover,.content-inner a.no-underline:visited,.content-inner pre a:active,.content-inner pre a:focus,.content-inner pre a:hover,.content-inner pre a:visited{color:#4528d4;text-decoration:none}.content-inner code{background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid #d2ddee;text-transform:none}.content-inner pre{margin:1.5em 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:#f7f9fc}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px;color:#767676}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;font-style:italic;outline:none;padding:0 4px;color:#767676;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.content-inner .footer .footer-button:visited{color:#767676}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .footer a{color:#767676;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.content-inner .footer a:visited{color:#767676}.content-inner .bottom-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:4em}.content-inner .bottom-actions .bottom-actions-button{display:-webkit-box;display:-ms-flexbox;display:flex;text-decoration:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-radius:4px;border:1px solid rgba(0,0,0,.1);padding:8px 16px;min-width:150px}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:#6951de;white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button[rel=prev] .subheader{text-align:right}@media screen and (max-width:768px){.content-inner .bottom-actions{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.content-inner .bottom-actions .bottom-actions-item:not(:first-child){margin-bottom:16px}}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"]{display:none}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;vertical-align:middle;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border-radius:50%;-webkit-animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border:6px solid transparent;border-top-color:#767676}#search .loading div:first-child{-webkit-animation-delay:-.45s;animation-delay:-.45s}#search .loading div:nth-child(2){-webkit-animation-delay:-.3s;animation-delay:-.3s}#search .loading div:nth-child(3){-webkit-animation-delay:-.15s;animation-delay:-.15s}@-webkit-keyframes loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}#search .result-id a:active,#search .result-id a:focus,#search .result-id a:visited{color:#000}#search .result-id a:hover{color:#8e7ce6}#search .result-elem em,#search .result-id em{font-style:normal;color:#8e7ce6}#search .result-id small{font-weight:400}@-webkit-keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:keyboard-shortcuts-show;animation-name:keyboard-shortcuts-show;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;display:none;background-color:rgba(0,0,0,.7);position:fixed;top:0;left:0;right:0;bottom:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:#fff;border-radius:3px;-webkit-box-shadow:2px 2px 8px rgba(0,0,0,.2);box-shadow:2px 2px 8px rgba(0,0,0,.2);padding:25px 35px 35px}@media screen and (max-width:768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:start}.modal .modal-title{display:inline-block;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background:transparent;font-weight:700;margin-right:30px;padding-left:0;text-align:left;-webkit-transition:color .15s;transition:color .15s}.modal .modal-title button:hover{color:#8e7ce6;cursor:pointer}.modal .modal-title button.active{color:#8e7ce6}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.3;background:none;border:none;-webkit-transition:opacity .15s;transition:opacity .15s}.modal .modal-close:hover{opacity:.7}#keyboard-shortcuts dl.shortcut-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:0;padding:6px 0}#keyboard-shortcuts dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts .shortcut-keys{display:inline-block}#keyboard-shortcuts .shortcut-description{display:inline-block;color:#445668}#keyboard-shortcuts kbd>kbd{background-color:#0d1829;border-radius:3px;color:#f0f5f9;font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;margin-left:3px;border-bottom:1px solid #91a4b7}#keyboard-shortcuts .shortcut-description,#keyboard-shortcuts .shortcut-keys{margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:8px 2px;color:#767676}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 6px 26px;border:none;border-bottom:1px solid #767676;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .12s ease-out;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-input:focus{border-bottom:1px solid #0d1829;outline:none}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body #quick-switch-results .quick-switch-result{padding:2px 5px;border-bottom:1px dotted #767676;-webkit-transition:all .12s ease-out;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body #quick-switch-results .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body #quick-switch-results .quick-switch-result.selected,#quick-switch-modal-body #quick-switch-results .quick-switch-result:hover{border-left:4px solid #8e7ce6;background:#f7f9fc}.autocomplete{display:none;height:0;margin:0 5px 0 12px;overflow:visible;position:relative;width:100%}.autocomplete.shown{display:block}.autocomplete-suggestions{-webkit-box-shadow:2px 2px 10px rgba(0,0,0,.25);box-shadow:2px 2px 10px rgba(0,0,0,.25);background-color:#1c2a3a;border-top:1px solid #0d1829;left:0;position:absolute;top:-2px;width:276px;z-index:200}.autocomplete-suggestion{color:inherit;display:block;padding:10px;text-decoration:none}.autocomplete-suggestion.selected,.autocomplete-suggestion:hover{background-color:#304254;border-left:3px solid #8e7ce6}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{padding-left:2px;opacity:.75}.autocomplete-suggestion .description,.autocomplete-suggestion .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}#tooltip{-webkit-box-shadow:0 0 10px rgba(0,0,0,.1);box-shadow:0 0 10px rgba(0,0,0,.1);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0;-webkit-transition:visibility .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out;transition:visibility .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out;transition:visibility .2s ease-out,transform .2s ease-out,opacity .2s ease-out;transition:visibility .2s ease-out,transform .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out}#tooltip.tooltip-shown{visibility:visible;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}#tooltip .tooltip-body{border:1px solid hsla(0,0%,46.3%,.3)}#tooltip .tooltip-body .signature{min-width:320px;width:100%}#tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}#tooltip .tooltip-body .docstring{background-color:#fff;padding:1.2em;margin:0;width:498px}#tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}#tooltip .tooltip-body .version-info{float:right;line-height:1.6rem;font-family:Inconsolata,Menlo,Courier,monospace;font-size:.9rem;font-weight:400;margin-bottom:-6px;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button{display:block}.copy-button{display:none;position:absolute;top:9px;right:9px;background:transparent;border:none;cursor:pointer;padding:0;opacity:.5;-webkit-transition:all .15s;transition:all .15s;font-family:Merriweather,Book Antiqua,Georgia,Century Schoolbook,serif;font-size:14px;line-height:24px;color:currentColor}.copy-button:hover{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{display:block;opacity:1;color:#408200}.copy-button.clicked:after{content:"Copied! \2713"}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{width:80%;padding:8px;margin-top:2px;color:#445668;font-size:14px;border:1px solid #cad5e0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:8px;-webkit-transition:border-color .15s;transition:border-color .15s}#settings-modal-content .input:focus{outline:none;border-color:#8e7ce6}#settings-modal-content .input::-webkit-input-placeholder{color:#91a4b7}#settings-modal-content .input:-moz-placeholder,#settings-modal-content .input::-moz-placeholder{color:#91a4b7}#settings-modal-content .input:-ms-input-placeholder{color:#91a4b7}#settings-modal-content .switch-button-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#settings-modal-content .switch-button-container:not(:first-child){border-top:1px solid #cad5e0;padding-top:16px}#settings-modal-content .switch-button-container>div>span{color:#304254;font-size:18px}#settings-modal-content .switch-button-container>div>p{color:#445668;font-size:14px;line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;-ms-flex-negative:0;flex-shrink:0;width:40px;height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .15s;transition:all .15s}#settings-modal-content .switch-button__checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:#8e7ce6;-webkit-transform:translateX(100%);transform:translateX(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:#8e7ce6}#settings-modal-content .keyboard-shortcuts{color:#304254;font-size:18px}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent}#settings-modal-content .settings-select option{color:initial}#settings-modal-content .settings-select:focus{outline:none}#toast{opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;border-radius:10px;border:1px solid #ccc;-webkit-box-shadow:transparent 0 0 0 0,transparent 0 0 0 0,rgba(0,0,0,.1) 0 20px 25px -5px,rgba(0,0,0,.1) 0 8px 10px -6px;box-shadow:0 0 0 0 transparent,0 0 0 0 transparent,0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);font-weight:700;color:#000;text-align:center;background-color:#fff;-webkit-transition:opacity .4s ease-in-out,-webkit-transform .3s ease-out;transition:opacity .4s ease-in-out,-webkit-transform .3s ease-out;transition:opacity .4s ease-in-out,transform .3s ease-out;transition:opacity .4s ease-in-out,transform .3s ease-out,-webkit-transform .3s ease-out}#toast.show{opacity:1;-webkit-transform:translateY(-.75rem);transform:translateY(-.75rem)}@media (prefers-reduced-motion:reduce){#toast{-webkit-transition:none;transition:none}}body.dark{background:#030913}body.dark #search .result-id a:active,body.dark #search .result-id a:focus,body.dark #search .result-id a:visited{color:#dce1e6}body.dark #search .result-id a:hover{color:#8e7ce6}body.dark blockquote{border-left:3px solid #44444c;background-color:#2c2c31}body.dark .content-inner{background:#030913;color:#cad5e0}body.dark .content-inner h1,body.dark .content-inner h2,body.dark .content-inner h3,body.dark .content-inner h4,body.dark .content-inner h5,body.dark .content-inner h6{color:#dce1e6}body.dark .content-inner a{text-decoration:none;color:#dce1e6;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner a:visited{color:#dce1e6}body.dark .content-inner a.view-source{color:#939393;text-decoration:none}body.dark .content-inner a.view-source:hover{color:#fff}body.dark .content-inner .settings{color:#939393}body.dark .content-inner .settings:hover{color:#fff}body.dark .content-inner .note{color:#939393}body.dark .content-inner .summary h2 a{text-decoration:none}body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none}body.dark .content-inner blockquote.error a,body.dark .content-inner blockquote.info a,body.dark .content-inner blockquote.neutral a,body.dark .content-inner blockquote.tip a,body.dark .content-inner blockquote.warning a{color:#000;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner blockquote.error a:visited,body.dark .content-inner blockquote.info a:visited,body.dark .content-inner blockquote.neutral a:visited,body.dark .content-inner blockquote.tip a:visited,body.dark .content-inner blockquote.warning a:visited{color:#000}body.dark .content-inner blockquote.error code,body.dark .content-inner blockquote.info code,body.dark .content-inner blockquote.neutral code,body.dark .content-inner blockquote.tip code,body.dark .content-inner blockquote.warning code{background-color:#f7f9fc;border:1px solid #d2ddee}body.dark .content-inner blockquote.warning{background-color:#edd5a5}body.dark .content-inner blockquote.error{background-color:#e4aaac}body.dark .content-inner blockquote.info{background-color:#a4b8e8}body.dark .content-inner blockquote.neutral{background-color:#c6cddb}body.dark .content-inner blockquote.tip{background-color:#9dc5aa}body.dark .content-inner blockquote h3.error:before,body.dark .content-inner blockquote h3.info:before,body.dark .content-inner blockquote h3.neutral:before,body.dark .content-inner blockquote h3.tip:before,body.dark .content-inner blockquote h3.warning:before,body.dark .content-inner blockquote h4.error:before,body.dark .content-inner blockquote h4.info:before,body.dark .content-inner blockquote h4.neutral:before,body.dark .content-inner blockquote h4.tip:before,body.dark .content-inner blockquote h4.warning:before{color:#fff}body.dark .content-inner blockquote h3.error.warning,body.dark .content-inner blockquote h3.info.warning,body.dark .content-inner blockquote h3.neutral.warning,body.dark .content-inner blockquote h3.tip.warning,body.dark .content-inner blockquote h3.warning.warning,body.dark .content-inner blockquote h4.error.warning,body.dark .content-inner blockquote h4.info.warning,body.dark .content-inner blockquote h4.neutral.warning,body.dark .content-inner blockquote h4.tip.warning,body.dark .content-inner blockquote h4.warning.warning{color:#fff;background-color:#7c4619}body.dark .content-inner blockquote h3.error.error,body.dark .content-inner blockquote h3.info.error,body.dark .content-inner blockquote h3.neutral.error,body.dark .content-inner blockquote h3.tip.error,body.dark .content-inner blockquote h3.warning.error,body.dark .content-inner blockquote h4.error.error,body.dark .content-inner blockquote h4.info.error,body.dark .content-inner blockquote h4.neutral.error,body.dark .content-inner blockquote h4.tip.error,body.dark .content-inner blockquote h4.warning.error{background-color:#882738}body.dark .content-inner blockquote h3.error.info,body.dark .content-inner blockquote h3.info.info,body.dark .content-inner blockquote h3.neutral.info,body.dark .content-inner blockquote h3.tip.info,body.dark .content-inner blockquote h3.warning.info,body.dark .content-inner blockquote h4.error.info,body.dark .content-inner blockquote h4.info.info,body.dark .content-inner blockquote h4.neutral.info,body.dark .content-inner blockquote h4.tip.info,body.dark .content-inner blockquote h4.warning.info{background-color:#1b176b}body.dark .content-inner blockquote h3.error.neutral,body.dark .content-inner blockquote h3.info.neutral,body.dark .content-inner blockquote h3.neutral.neutral,body.dark .content-inner blockquote h3.tip.neutral,body.dark .content-inner blockquote h3.warning.neutral,body.dark .content-inner blockquote h4.error.neutral,body.dark .content-inner blockquote h4.info.neutral,body.dark .content-inner blockquote h4.neutral.neutral,body.dark .content-inner blockquote h4.tip.neutral,body.dark .content-inner blockquote h4.warning.neutral{background-color:#1f2432}body.dark .content-inner blockquote h3.error.tip,body.dark .content-inner blockquote h3.info.tip,body.dark .content-inner blockquote h3.neutral.tip,body.dark .content-inner blockquote h3.tip.tip,body.dark .content-inner blockquote h3.warning.tip,body.dark .content-inner blockquote h4.error.tip,body.dark .content-inner blockquote h4.info.tip,body.dark .content-inner blockquote h4.neutral.tip,body.dark .content-inner blockquote h4.tip.tip,body.dark .content-inner blockquote h4.warning.tip{background-color:#1f4034}@-webkit-keyframes night-blink-background{0%{background-color:#0d1829}to{background-color:#304254}}@keyframes night-blink-background{0%{background-color:#0d1829}to{background-color:#304254}}body.dark .content-inner .detail:target .detail-header{-webkit-animation-name:night-blink-background;animation-name:night-blink-background}body.dark .content-inner .detail-header{background:#0d1829;color:#cad5e0}body.dark .content-inner .specs .attribute{color:#445668}body.dark .content-inner div.deprecated{background-color:#333019}body.dark .content-inner code{background-color:#0d1829;border-color:#192f50}body.dark .content-inner pre code{background-color:#0d1829}body.dark .content-inner pre a,body.dark .content-inner pre a:visited{color:#fff;text-decoration:none}body.dark .content-inner pre a:hover{color:#8e7ce6}body.dark .content-inner .footer{color:#91a4b7}body.dark .content-inner .footer .footer-button{color:#91a4b7;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner .footer .footer-button:visited{color:#91a4b7}body.dark .content-inner .footer a{color:#91a4b7;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner .footer a:visited{color:#91a4b7}body.dark .content-inner .bottom-actions .bottom-actions-button{border:1px solid hsla(0,0%,100%,.1)}body.dark .content-inner .bottom-actions .bottom-actions-button .subheader{color:#8e7ce6}.copy-button.clicked{color:#a6e22e}body.dark #search .loading div{border-top-color:#767676}body.dark .sidebar-button,body.dark .sidebar-closed .sidebar-button{color:#f0f5f9}body.dark #quick-switch-modal-body .ri-search-2-line{color:#445668}body.dark #quick-switch-modal-body #quick-switch-input{border-bottom-color:#445668}body.dark #quick-switch-modal-body #quick-switch-results{margin:0}body.dark #quick-switch-modal-body #quick-switch-results .quick-switch-result{border-bottom-color:#445668}body.dark #keyboard-shortcuts-modal{background-color:rgba(0,0,0,.75)}body.dark #keyboard-shortcuts-modal .modal-contents{background-color:#030913;color:#cad5e0}body.dark #keyboard-shortcuts-modal .modal-contents dl.shortcut-row{border-bottom:1px solid #304254}body.dark #keyboard-shortcuts-modal .modal-contents dl.shortcut-row:last-of-type{border-bottom-style:none}body.dark #keyboard-shortcuts-modal .modal-contents kbd>kbd{color:#cad5e0;background-color:#0d1829;border:1px solid #304254}body.dark #tooltip{-webkit-box-shadow:0 0 10px rgba(0,0,0,.5);box-shadow:0 0 10px rgba(0,0,0,.5)}body.dark #tooltip .tooltip-body{border:1px solid #0d1829}body.dark #tooltip .tooltip-body .docstring{background:#030913}.dark #toast{background-color:#0a1e3f;border-color:#11336b;color:#dce1e6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media print{.main{display:block}.sidebar,.sidebar-button{display:none}.content{padding-left:0;overflow:visible}.summary-row{page-break-inside:avoid}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#f8f8f2}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#f8f8f2}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#f8f8f2}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#f8f8f2}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#f8f8f2}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#f8f8f2}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#f8f8f2}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#f8f8f2} -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/html/dist/erlang-2594865b45a067e279f6.css b/.deps/ex_doc/formatters/html/dist/erlang-2594865b45a067e279f6.css @@ -1,2 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:300,700|Merriweather:300italic,300|Inconsolata:400,700); -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@font-face{font-family:remixicon;src:url(html/fonts/remixicon.eot);src:url(html/fonts/remixicon.eot#iefix) format("embedded-opentype"),url(html/fonts/remixicon.woff2) format("woff2"),url(html/fonts/remixicon.woff) format("woff"),url(html/fonts/remixicon.ttf) format("truetype"),url(html/fonts/remixicon.svg#remixicon) format("svg");font-display:swap}.remix-icon,[class*=" ri-"],[class^=ri-]{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:"\F0E6"}.ri-add-line:before{content:"\EA13"}.ri-subtract-line:before{content:"\F1AF"}.ri-arrow-up-s-line:before{content:"\EA78"}.ri-arrow-down-s-line:before{content:"\EA4E"}.ri-arrow-right-s-line:before{content:"\EA6E"}.ri-search-2-line:before{content:"\F0CD"}.ri-menu-line:before{content:"\EF3E"}.ri-close-line:before{content:"\EB99"}.ri-link-m:before{content:"\EEAF"}.ri-code-s-slash-line:before{content:"\EBAD"}.ri-error-warning-line:before{content:"\ECA1"}.ri-information-line:before{content:"\EE59"}.ri-alert-line:before{content:"\EA21"}.ri-double-quotes-l:before{content:"\EC51"}body,html{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;width:100%}body{background-color:#fff;color:#000;font-size:16px;font-family:Lato,sans-serif;line-height:1.6875em}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}.main{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.main,.sidebar{display:-webkit-box;display:-ms-flexbox;display:-ms-flex;display:flex;height:100%}.sidebar{-webkit-box-orient:vertical;-webkit-box-direction:normal;min-height:0;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:300px;position:fixed;top:0;left:0;z-index:4}.sidebar-button{position:fixed;z-index:99;left:0;top:7px;-webkit-transition:color .3s ease-in-out,opacity .15s ease-out .1s,-webkit-transform .15s ease-out .1s;transition:color .3s ease-in-out,opacity .15s ease-out .1s,-webkit-transform .15s ease-out .1s;transition:color .3s ease-in-out,transform .15s ease-out .1s,opacity .15s ease-out .1s;transition:color .3s ease-in-out,transform .15s ease-out .1s,opacity .15s ease-out .1s,-webkit-transform .15s ease-out .1s;will-change:transform;-webkit-transform:translateX(250px);transform:translateX(250px)}.content{width:calc(100% - 300px);left:300px;height:100%;position:absolute;z-index:3}body.sidebar-opened .sidebar-button,body.sidebar-opening .sidebar-button{-webkit-transform:translateX(250px);transform:translateX(250px);position:absolute}body.sidebar-opening .sidebar-button{-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}body.sidebar-opening .sidebar{left:0;-webkit-transition:left .3s ease-in-out;transition:left .3s ease-in-out}body.sidebar-opening .content{width:calc(100% - 300px);left:300px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}body.sidebar-closing .sidebar-button{-webkit-transform:translateX(0);transform:translateX(0)}body.sidebar-closing .sidebar{left:-300px;-webkit-transition:left .3s ease-in-out;transition:left .3s ease-in-out}body.sidebar-closing .content{width:100%;left:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}body.sidebar-closed .sidebar-button{color:#000;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;-webkit-transform:translateY(-8px);transform:translateY(-8px)}body.sidebar-closed .sidebar{left:-300px}body.sidebar-closed .content{width:100%;left:0}body.search-focused .sidebar-button{-webkit-transform:translateX(250px) scaleY(0);transform:translateX(250px) scaleY(0);-webkit-transition:all .15s ease-out;transition:all .15s ease-out;opacity:0}body.search-focused .sidebar-search .search-close-button{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:-webkit-transform .15s ease-out .15s;transition:-webkit-transform .15s ease-out .15s;transition:transform .15s ease-out .15s;transition:transform .15s ease-out .15s,-webkit-transform .15s ease-out .15s}.content-inner{max-width:949px;margin:0 auto;padding:3px 60px}.content-inner:focus{outline:none}.content-outer{min-height:100%}@media screen and (max-width:768px){.content,body.sidebar-opening .content{left:0;width:100%}.content-inner{padding:27px 20px 27px 40px;max-width:100%;overflow-x:auto}}.sidebar{font-family:Lato,sans-serif;font-size:16px;line-height:18px;background:#0d1829;color:#f0f5f9;overflow:hidden;scrollbar-color:#767676 #0d1829}.sidebar .gradient{background:-webkit-gradient(linear,left top,left bottom,from(#0d1829),to(rgba(13,24,41,0)));background:linear-gradient(#0d1829,rgba(13,24,41,0));height:20px;margin-top:-20px;pointer-events:none;position:relative;top:20px;z-index:100}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:#f0f5f9;text-decoration:none;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.sidebar a:hover{color:#fff}.sidebar .sidebar-header{margin:12px;border-radius:4px;background-color:#1c2a3a;width:276px}.sidebar .sidebar-projectDetails{display:inline-block;text-align:left;vertical-align:top;margin:6px 0 0 10px}.sidebar .sidebar-projectImage{display:inline-block;max-width:48px;max-height:48px;margin:0 0 0 10px;vertical-align:bottom}.sidebar .sidebar-projectName{font-weight:700;font-size:20px;line-height:30px;color:#f0f5f9;margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-weight:300;font-size:16px;line-height:20px;color:#91a4b7}.sidebar .sidebar-projectVersionsDropdown{cursor:pointer;position:relative;margin:0;padding:0 0 0 12px;border:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:#fff;z-index:2}.sidebar .sidebar-projectVersionsDropdown option{color:initial}.sidebar .sidebar-projectVersionsDropdown:focus{outline:none}.sidebar .sidebar-projectVersion form:after{position:absolute;left:0;top:2px;content:"\25BC";z-index:1;font-size:8px;color:#fff}.sidebar .sidebar-projectVersionsDropdown::-ms-expand{display:none}.sidebar .sidebar-listNav{padding:12px 0 0;margin:0}.sidebar .sidebar-listNav li,.sidebar .sidebar-listNav li a{text-transform:uppercase;font-weight:300;font-size:14px;color:#91a4b7}.sidebar .sidebar-listNav li{display:inline-block;border-bottom:3px solid transparent;line-height:27px}.sidebar .sidebar-listNav li.selected,.sidebar .sidebar-listNav li.selected a,.sidebar .sidebar-listNav li:hover,.sidebar .sidebar-listNav li:hover a{border-color:#ff4848;color:#f0f5f9}.sidebar .sidebar-search{margin-top:12px}.sidebar .sidebar-search .search-button:hover,.sidebar .sidebar-search.selected .search-button{color:#ff4848;opacity:1}.sidebar .sidebar-search .search-label{position:relative;width:100%}.sidebar .sidebar-search .search-button{font-size:14px;left:22px;padding:3px 1px 3px 0;top:18px}.sidebar .sidebar-search .search-button,.sidebar .sidebar-search .search-close-button{color:#f0f5f9;background-color:transparent;border:none;cursor:pointer;margin:0;opacity:.5;position:absolute;z-index:2}.sidebar .sidebar-search .search-close-button{font-size:16px;right:18px;padding:5px 1px 5px 0;-webkit-transform:scaleY(0);transform:scaleY(0);top:17px;-webkit-transition:-webkit-transform .15s ease-out;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}.sidebar .sidebar-search .search-close-button:hover{opacity:.7}.sidebar .sidebar-search .search-close-button:focus,.sidebar .sidebar-search .search-close-button:hover{outline:none}.sidebar .sidebar-search .search-input{background-color:#1c2a3a;border:none;border-radius:4px;color:#f0f5f9;margin-left:12px;padding:8px 6px 8px 38px;width:276px}.sidebar .sidebar-search .search-input:focus,.sidebar .sidebar-search .search-input:hover{outline:none}.sidebar .sidebar-search .ri-search-2-line{font-weight:700}.sidebar #full-list{margin:0;padding:20px 0;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch;-webkit-box-flex:1;-moz-flex:1 1 0.01%;-ms-flex:1 1 0.01%;flex:1 1 0.01%;-ms-flex-positive:1;-ms-flex-negative:1;-ms-flex-preferred-size:0.01%}.sidebar #full-list li{padding:0;margin-right:30px;line-height:27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar #full-list li.docs{margin-right:0}.sidebar #full-list li.open>ul{display:block;margin-left:10px}.sidebar #full-list li a.expand>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\EA4E";float:right;margin-right:10px;font-size:1.2em;position:absolute;right:0}.sidebar #full-list li.open>a.expand>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\EA78"}.sidebar #full-list li.docs>a>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:12px;content:"\EA13";font-size:1em;position:absolute;right:0}.sidebar #full-list li.docs.open>a>span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\F1AF"}.sidebar #full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:#91a4b7;padding-left:15px}.sidebar #full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:2em 0 0;line-height:1.8em;color:#91a4b7;padding-left:15px}.sidebar #full-list li a{padding:3px 0 3px 15px;color:#cad5e0}.sidebar #full-list li .sections-list>li,.sidebar #full-list li a.expand{text-overflow:ellipsis}.sidebar #full-list li .current-section>a{color:#ff4848}.sidebar #full-list>li.current-page>a{color:#ff4848;border-left:3px solid #ff4848;padding-left:12px}.sidebar #full-list>li.current-page,.sidebar #full-list>li.current-page>a:after{color:#ff4848}.sidebar #full-list>li:last-child{margin-bottom:30px}.sidebar #full-list>li.group:first-child{margin-top:0}.sidebar #full-list ul{display:none;margin:9px 0 9px 15px;padding:0}.sidebar #full-list ul li{font-weight:300;line-height:20px;padding:2px 8px;margin-right:0;color:#f0f5f9}.sidebar #full-list ul li.current-hash{color:#ff4848}.sidebar #full-list ul li.current-hash:before{content:"\2022";color:#ff4848}.sidebar #full-list ul li.current-hash>a{color:#ff4848;margin-left:-12px}.sidebar #full-list ul li a{padding-left:15px}.sidebar #full-list ul li ul{display:none;margin:9px 0 9px 20px}.sidebar #full-list ul li ul li{border-left:1px solid #304254;padding:0 10px;margin-left:8px;margin-right:0;color:#f0f5f9}.sidebar #full-list ul li ul li a{padding-left:0}.sidebar #full-list ul li ul li.current-hash:before{content:none}.sidebar #full-list ul li ul li.current-hash{color:#ff4848;border-color:#ff4848}.sidebar #full-list ul li ul li.current-hash>a{color:#ff4848;margin-left:0}.sidebar ::-webkit-scrollbar{width:14px}.sidebar ::-webkit-scrollbar-track{background-color:#0d1829}.sidebar ::-webkit-scrollbar-thumb{background:#767676;border-radius:10px;border:3px solid #0d1829}.sidebar-button{color:#e1e1e1;cursor:pointer;background-color:transparent;border:none;padding:15px 11px;font-size:16px}.sidebar-button:hover{color:#fff}.sidebar-button:active,.sidebar-button:focus,.sidebar-button:hover{outline:none}@media screen and (max-height:500px){.sidebar{overflow-y:auto}.sidebar #full-list{overflow:visible}}.content-inner{font-family:Merriweather,Book Antiqua,Georgia,Century Schoolbook,serif;font-size:1em;line-height:1.6875em;position:relative;color:#1c2a3a;background-color:#fff}.content-inner h1,.content-inner h2,.content-inner h3,.content-inner h4,.content-inner h5,.content-inner h6{font-family:Lato,sans-serif;font-weight:700;line-height:1.5em;word-wrap:break-word;color:#0d1829}.content-inner h1{font-size:2em;margin:1em 0 .5em}.content-inner h1.signature{margin:0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 .settings,.content-inner h1 a.view-source{font-size:1.2rem;font-weight:400}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner a{color:#000;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.content-inner a:visited{color:#000}.content-inner a.no-underline{text-decoration:none}.content-inner a.view-source{float:right;color:#727272;text-decoration:none;border:none;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.content-inner a.view-source:hover{color:#0d1829}.content-inner .settings{background-color:transparent;float:right;color:#727272;text-decoration:none;border:none;-webkit-transition:color .1s ease-in-out;transition:color .1s ease-in-out;margin-top:12px;cursor:pointer}.content-inner .settings:hover{color:#0d1829}.content-inner .livebook-badge-container{display:-webkit-box;display:-ms-flexbox;display:flex}.content-inner a.livebook-badge{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.content-inner .note{color:#727272;margin-right:5px;font-size:14px;font-weight:400}.content-inner h1 .note{float:right}.content-inner blockquote{border-left:3px solid #e1e1e1;position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:#f6f6f6;border-radius:3px}.content-inner blockquote p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0}.content-inner th{text-align:left;font-family:Lato,sans-serif;text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner tr{border-bottom:1px solid #f0f5f9;vertical-align:bottom;height:2.5em}.content-inner td,.content-inner th{padding-left:1em;line-height:2em;vertical-align:top}.content-inner .section-heading:hover a.hover-link{opacity:1;text-decoration:none}.content-inner .section-heading a.hover-link{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;display:inline-block;opacity:0;padding:.3em .6em .6em;line-height:1em;margin-left:-2.7em;text-decoration:none;border:none;font-size:16px;vertical-align:middle}.content-inner .detail h1.section-heading,.content-inner .detail h2.section-heading,.content-inner .detail h3.section-heading,.content-inner .detail h4.section-heading,.content-inner .detail h5.section-heading,.content-inner .detail h6.section-heading{margin-left:.3em}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width:768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner code{font-family:Inconsolata,Menlo,Courier,monospace;font-style:normal;line-height:24px;font-weight:400}.content-inner blockquote.error,.content-inner blockquote.info,.content-inner blockquote.neutral,.content-inner blockquote.tip,.content-inner blockquote.warning{color:#000;border-radius:10px;border-left:0}.content-inner blockquote.warning{background-color:#fff7ed}.content-inner blockquote.error{background-color:#fdeeec}.content-inner blockquote.info{background-color:#e9f5fe}.content-inner blockquote.neutral{background-color:#e2e8ef}.content-inner blockquote.tip{background-color:#e8f3ec}.content-inner blockquote h3.error,.content-inner blockquote h3.info,.content-inner blockquote h3.neutral,.content-inner blockquote h3.tip,.content-inner blockquote h3.warning,.content-inner blockquote h4.error,.content-inner blockquote h4.info,.content-inner blockquote h4.neutral,.content-inner blockquote h4.tip,.content-inner blockquote h4.warning{margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal;color:#fff}.content-inner blockquote h3.error:before,.content-inner blockquote h3.info:before,.content-inner blockquote h3.neutral:before,.content-inner blockquote h3.tip:before,.content-inner blockquote h3.warning:before,.content-inner blockquote h4.error:before,.content-inner blockquote h4.info:before,.content-inner blockquote h4.neutral:before,.content-inner blockquote h4.tip:before,.content-inner blockquote h4.warning:before{position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner blockquote h3.error.warning,.content-inner blockquote h3.info.warning,.content-inner blockquote h3.neutral.warning,.content-inner blockquote h3.tip.warning,.content-inner blockquote h3.warning.warning,.content-inner blockquote h4.error.warning,.content-inner blockquote h4.info.warning,.content-inner blockquote h4.neutral.warning,.content-inner blockquote h4.tip.warning,.content-inner blockquote h4.warning.warning{background-color:#f3ac55;color:#000}.content-inner blockquote h3.error.warning:before,.content-inner blockquote h3.info.warning:before,.content-inner blockquote h3.neutral.warning:before,.content-inner blockquote h3.tip.warning:before,.content-inner blockquote h3.warning.warning:before,.content-inner blockquote h4.error.warning:before,.content-inner blockquote h4.info.warning:before,.content-inner blockquote h4.neutral.warning:before,.content-inner blockquote h4.tip.warning:before,.content-inner blockquote h4.warning.warning:before{color:#000;content:"\ECA1"}.content-inner blockquote h3.error.error,.content-inner blockquote h3.info.error,.content-inner blockquote h3.neutral.error,.content-inner blockquote h3.tip.error,.content-inner blockquote h3.warning.error,.content-inner blockquote h4.error.error,.content-inner blockquote h4.info.error,.content-inner blockquote h4.neutral.error,.content-inner blockquote h4.tip.error,.content-inner blockquote h4.warning.error{background-color:#eb5949}.content-inner blockquote h3.error.error:before,.content-inner blockquote h3.info.error:before,.content-inner blockquote h3.neutral.error:before,.content-inner blockquote h3.tip.error:before,.content-inner blockquote h3.warning.error:before,.content-inner blockquote h4.error.error:before,.content-inner blockquote h4.info.error:before,.content-inner blockquote h4.neutral.error:before,.content-inner blockquote h4.tip.error:before,.content-inner blockquote h4.warning.error:before{content:"\ECA1"}.content-inner blockquote h3.error.info,.content-inner blockquote h3.info.info,.content-inner blockquote h3.neutral.info,.content-inner blockquote h3.tip.info,.content-inner blockquote h3.warning.info,.content-inner blockquote h4.error.info,.content-inner blockquote h4.info.info,.content-inner blockquote h4.neutral.info,.content-inner blockquote h4.tip.info,.content-inner blockquote h4.warning.info{background-color:#4496f7}.content-inner blockquote h3.error.info:before,.content-inner blockquote h3.info.info:before,.content-inner blockquote h3.neutral.info:before,.content-inner blockquote h3.tip.info:before,.content-inner blockquote h3.warning.info:before,.content-inner blockquote h4.error.info:before,.content-inner blockquote h4.info.info:before,.content-inner blockquote h4.neutral.info:before,.content-inner blockquote h4.tip.info:before,.content-inner blockquote h4.warning.info:before{content:"\EE59"}.content-inner blockquote h3.error.neutral,.content-inner blockquote h3.info.neutral,.content-inner blockquote h3.neutral.neutral,.content-inner blockquote h3.tip.neutral,.content-inner blockquote h3.warning.neutral,.content-inner blockquote h4.error.neutral,.content-inner blockquote h4.info.neutral,.content-inner blockquote h4.neutral.neutral,.content-inner blockquote h4.tip.neutral,.content-inner blockquote h4.warning.neutral{background-color:#101828}.content-inner blockquote h3.error.neutral:before,.content-inner blockquote h3.info.neutral:before,.content-inner blockquote h3.neutral.neutral:before,.content-inner blockquote h3.tip.neutral:before,.content-inner blockquote h3.warning.neutral:before,.content-inner blockquote h4.error.neutral:before,.content-inner blockquote h4.info.neutral:before,.content-inner blockquote h4.neutral.neutral:before,.content-inner blockquote h4.tip.neutral:before,.content-inner blockquote h4.warning.neutral:before{content:"\EC51"}.content-inner blockquote h3.error.tip,.content-inner blockquote h3.info.tip,.content-inner blockquote h3.neutral.tip,.content-inner blockquote h3.tip.tip,.content-inner blockquote h3.warning.tip,.content-inner blockquote h4.error.tip,.content-inner blockquote h4.info.tip,.content-inner blockquote h4.neutral.tip,.content-inner blockquote h4.tip.tip,.content-inner blockquote h4.warning.tip{background-color:#377e47}.content-inner blockquote h3.error.tip:before,.content-inner blockquote h3.info.tip:before,.content-inner blockquote h3.neutral.tip:before,.content-inner blockquote h3.tip.tip:before,.content-inner blockquote h3.warning.tip:before,.content-inner blockquote h4.error.tip:before,.content-inner blockquote h4.info.tip:before,.content-inner blockquote h4.neutral.tip:before,.content-inner blockquote h4.tip.tip:before,.content-inner blockquote h4.warning.tip:before{content:"\EE59"}.content-inner .summary h2{font-weight:700}.content-inner .summary h2 a{text-decoration:none;border:none}.content-inner .summary span.deprecated{color:#dcc100;font-weight:400;font-style:italic}.content-inner .summary .summary-row .summary-signature{font-family:Inconsolata,Menlo,Courier,monospace;font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{font-family:Merriweather,Book Antiqua,Georgia,Century Schoolbook,serif;font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}@-webkit-keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}@keyframes blink-background{0%{background-color:#f7f7f7}to{background-color:#ffd}}.content-inner .detail:target .detail-header{-webkit-animation-duration:.55s;animation-duration:.55s;-webkit-animation-name:blink-background;animation-name:blink-background;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background:#f7f7f7;border-left:3px solid #ff4848;font-size:1em;font-family:Inconsolata,Menlo,Courier,monospace;position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:Inconsolata,Menlo,Courier,monospace;font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.content-inner .specs pre{font-family:Inconsolata,Menlo,Courier,monospace;font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:#767676}.content-inner .docstring{margin:1.2em 0 3em 1.2em}.content-inner .docstring h2,.content-inner .docstring h3,.content-inner .docstring h4,.content-inner .docstring h5{font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:#ffff9d}.content-inner a.no-underline,.content-inner pre a{color:#ff1515;text-shadow:none;text-decoration:none;background-image:none}.content-inner a.no-underline:active,.content-inner a.no-underline:focus,.content-inner a.no-underline:hover,.content-inner a.no-underline:visited,.content-inner pre a:active,.content-inner pre a:focus,.content-inner pre a:hover,.content-inner pre a:visited{color:#e10000;text-decoration:none}.content-inner code{background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid #d2ddee;text-transform:none}.content-inner pre{margin:1.5em 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:#f7f9fc}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px;color:#767676}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;font-style:italic;outline:none;padding:0 4px;color:#767676;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.content-inner .footer .footer-button:visited{color:#767676}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .footer a{color:#767676;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.content-inner .footer a:visited{color:#767676}.content-inner .bottom-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:4em}.content-inner .bottom-actions .bottom-actions-button{display:-webkit-box;display:-ms-flexbox;display:flex;text-decoration:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-radius:4px;border:1px solid rgba(0,0,0,.1);padding:8px 16px;min-width:150px}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:#ff1515;white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button[rel=prev] .subheader{text-align:right}@media screen and (max-width:768px){.content-inner .bottom-actions{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.content-inner .bottom-actions .bottom-actions-item:not(:first-child){margin-bottom:16px}}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"]{display:none}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;vertical-align:middle;position:absolute;top:50%;left:calc(50% - 32px)}#search .loading div{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border-radius:50%;-webkit-animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border:6px solid transparent;border-top-color:#767676}#search .loading div:first-child{-webkit-animation-delay:-.45s;animation-delay:-.45s}#search .loading div:nth-child(2){-webkit-animation-delay:-.3s;animation-delay:-.3s}#search .loading div:nth-child(3){-webkit-animation-delay:-.15s;animation-delay:-.15s}@-webkit-keyframes loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}#search .result-id a:active,#search .result-id a:focus,#search .result-id a:visited{color:#000}#search .result-id a:hover{color:#ff4848}#search .result-elem em,#search .result-id em{font-style:normal;color:#ff4848}#search .result-id small{font-weight:400}@-webkit-keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:keyboard-shortcuts-show;animation-name:keyboard-shortcuts-show;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;display:none;background-color:rgba(0,0,0,.7);position:fixed;top:0;left:0;right:0;bottom:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:#fff;border-radius:3px;-webkit-box-shadow:2px 2px 8px rgba(0,0,0,.2);box-shadow:2px 2px 8px rgba(0,0,0,.2);padding:25px 35px 35px}@media screen and (max-width:768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:start}.modal .modal-title{display:inline-block;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background:transparent;font-weight:700;margin-right:30px;padding-left:0;text-align:left;-webkit-transition:color .15s;transition:color .15s}.modal .modal-title button:hover{color:#ff4848;cursor:pointer}.modal .modal-title button.active{color:#ff4848}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.3;background:none;border:none;-webkit-transition:opacity .15s;transition:opacity .15s}.modal .modal-close:hover{opacity:.7}#keyboard-shortcuts dl.shortcut-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:0;padding:6px 0}#keyboard-shortcuts dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts .shortcut-keys{display:inline-block}#keyboard-shortcuts .shortcut-description{display:inline-block;color:#445668}#keyboard-shortcuts kbd>kbd{background-color:#0d1829;border-radius:3px;color:#f0f5f9;font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center;margin-left:3px;border-bottom:1px solid #91a4b7}#keyboard-shortcuts .shortcut-description,#keyboard-shortcuts .shortcut-keys{margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:8px 2px;color:#767676}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 6px 26px;border:none;border-bottom:1px solid #767676;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .12s ease-out;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-input:focus{border-bottom:1px solid #0d1829;outline:none}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body #quick-switch-results .quick-switch-result{padding:2px 5px;border-bottom:1px dotted #767676;-webkit-transition:all .12s ease-out;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-results .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body #quick-switch-results .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body #quick-switch-results .quick-switch-result.selected,#quick-switch-modal-body #quick-switch-results .quick-switch-result:hover{border-left:4px solid #ff4848;background:#f7f9fc}.autocomplete{display:none;height:0;margin:0 5px 0 12px;overflow:visible;position:relative;width:100%}.autocomplete.shown{display:block}.autocomplete-suggestions{-webkit-box-shadow:2px 2px 10px rgba(0,0,0,.25);box-shadow:2px 2px 10px rgba(0,0,0,.25);background-color:#1c2a3a;border-top:1px solid #0d1829;left:0;position:absolute;top:-2px;width:276px;z-index:200}.autocomplete-suggestion{color:inherit;display:block;padding:10px;text-decoration:none}.autocomplete-suggestion.selected,.autocomplete-suggestion:hover{background-color:#304254;border-left:3px solid #ff4848}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{padding-left:2px;opacity:.75}.autocomplete-suggestion .description,.autocomplete-suggestion .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}#tooltip{-webkit-box-shadow:0 0 10px rgba(0,0,0,.1);box-shadow:0 0 10px rgba(0,0,0,.1);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0;-webkit-transition:visibility .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out;transition:visibility .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out;transition:visibility .2s ease-out,transform .2s ease-out,opacity .2s ease-out;transition:visibility .2s ease-out,transform .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out}#tooltip.tooltip-shown{visibility:visible;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}#tooltip .tooltip-body{border:1px solid hsla(0,0%,46.3%,.3)}#tooltip .tooltip-body .signature{min-width:320px;width:100%}#tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}#tooltip .tooltip-body .docstring{background-color:#fff;padding:1.2em;margin:0;width:498px}#tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}#tooltip .tooltip-body .version-info{float:right;line-height:1.6rem;font-family:Inconsolata,Menlo,Courier,monospace;font-size:.9rem;font-weight:400;margin-bottom:-6px;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button{display:block}.copy-button{display:none;position:absolute;top:9px;right:9px;background:transparent;border:none;cursor:pointer;padding:0;opacity:.5;-webkit-transition:all .15s;transition:all .15s;font-family:Merriweather,Book Antiqua,Georgia,Century Schoolbook,serif;font-size:14px;line-height:24px;color:currentColor}.copy-button:hover{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{display:block;opacity:1;color:#408200}.copy-button.clicked:after{content:"Copied! \2713"}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{width:80%;padding:8px;margin-top:2px;color:#445668;font-size:14px;border:1px solid #cad5e0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:8px;-webkit-transition:border-color .15s;transition:border-color .15s}#settings-modal-content .input:focus{outline:none;border-color:#ff4848}#settings-modal-content .input::-webkit-input-placeholder{color:#91a4b7}#settings-modal-content .input:-moz-placeholder,#settings-modal-content .input::-moz-placeholder{color:#91a4b7}#settings-modal-content .input:-ms-input-placeholder{color:#91a4b7}#settings-modal-content .switch-button-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#settings-modal-content .switch-button-container:not(:first-child){border-top:1px solid #cad5e0;padding-top:16px}#settings-modal-content .switch-button-container>div>span{color:#304254;font-size:18px}#settings-modal-content .switch-button-container>div>p{color:#445668;font-size:14px;line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;-ms-flex-negative:0;flex-shrink:0;width:40px;height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .15s;transition:all .15s}#settings-modal-content .switch-button__checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:#ff4848;-webkit-transform:translateX(100%);transform:translateX(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:#ff4848}#settings-modal-content .keyboard-shortcuts{color:#304254;font-size:18px}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent}#settings-modal-content .settings-select option{color:initial}#settings-modal-content .settings-select:focus{outline:none}#toast{opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;border-radius:10px;border:1px solid #ccc;-webkit-box-shadow:transparent 0 0 0 0,transparent 0 0 0 0,rgba(0,0,0,.1) 0 20px 25px -5px,rgba(0,0,0,.1) 0 8px 10px -6px;box-shadow:0 0 0 0 transparent,0 0 0 0 transparent,0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);font-weight:700;color:#000;text-align:center;background-color:#fff;-webkit-transition:opacity .4s ease-in-out,-webkit-transform .3s ease-out;transition:opacity .4s ease-in-out,-webkit-transform .3s ease-out;transition:opacity .4s ease-in-out,transform .3s ease-out;transition:opacity .4s ease-in-out,transform .3s ease-out,-webkit-transform .3s ease-out}#toast.show{opacity:1;-webkit-transform:translateY(-.75rem);transform:translateY(-.75rem)}@media (prefers-reduced-motion:reduce){#toast{-webkit-transition:none;transition:none}}body.dark{background:#030913}body.dark #search .result-id a:active,body.dark #search .result-id a:focus,body.dark #search .result-id a:visited{color:#dce1e6}body.dark #search .result-id a:hover{color:#ff4848}body.dark blockquote{border-left:3px solid #44444c;background-color:#2c2c31}body.dark .content-inner{background:#030913;color:#cad5e0}body.dark .content-inner h1,body.dark .content-inner h2,body.dark .content-inner h3,body.dark .content-inner h4,body.dark .content-inner h5,body.dark .content-inner h6{color:#dce1e6}body.dark .content-inner a{text-decoration:none;color:#dce1e6;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner a:visited{color:#dce1e6}body.dark .content-inner a.view-source{color:#939393;text-decoration:none}body.dark .content-inner a.view-source:hover{color:#fff}body.dark .content-inner .settings{color:#939393}body.dark .content-inner .settings:hover{color:#fff}body.dark .content-inner .note{color:#939393}body.dark .content-inner .summary h2 a{text-decoration:none}body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none}body.dark .content-inner blockquote.error a,body.dark .content-inner blockquote.info a,body.dark .content-inner blockquote.neutral a,body.dark .content-inner blockquote.tip a,body.dark .content-inner blockquote.warning a{color:#000;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner blockquote.error a:visited,body.dark .content-inner blockquote.info a:visited,body.dark .content-inner blockquote.neutral a:visited,body.dark .content-inner blockquote.tip a:visited,body.dark .content-inner blockquote.warning a:visited{color:#000}body.dark .content-inner blockquote.error code,body.dark .content-inner blockquote.info code,body.dark .content-inner blockquote.neutral code,body.dark .content-inner blockquote.tip code,body.dark .content-inner blockquote.warning code{background-color:#f7f9fc;border:1px solid #d2ddee}body.dark .content-inner blockquote.warning{background-color:#edd5a5}body.dark .content-inner blockquote.error{background-color:#e4aaac}body.dark .content-inner blockquote.info{background-color:#a4b8e8}body.dark .content-inner blockquote.neutral{background-color:#c6cddb}body.dark .content-inner blockquote.tip{background-color:#9dc5aa}body.dark .content-inner blockquote h3.error:before,body.dark .content-inner blockquote h3.info:before,body.dark .content-inner blockquote h3.neutral:before,body.dark .content-inner blockquote h3.tip:before,body.dark .content-inner blockquote h3.warning:before,body.dark .content-inner blockquote h4.error:before,body.dark .content-inner blockquote h4.info:before,body.dark .content-inner blockquote h4.neutral:before,body.dark .content-inner blockquote h4.tip:before,body.dark .content-inner blockquote h4.warning:before{color:#fff}body.dark .content-inner blockquote h3.error.warning,body.dark .content-inner blockquote h3.info.warning,body.dark .content-inner blockquote h3.neutral.warning,body.dark .content-inner blockquote h3.tip.warning,body.dark .content-inner blockquote h3.warning.warning,body.dark .content-inner blockquote h4.error.warning,body.dark .content-inner blockquote h4.info.warning,body.dark .content-inner blockquote h4.neutral.warning,body.dark .content-inner blockquote h4.tip.warning,body.dark .content-inner blockquote h4.warning.warning{color:#fff;background-color:#7c4619}body.dark .content-inner blockquote h3.error.error,body.dark .content-inner blockquote h3.info.error,body.dark .content-inner blockquote h3.neutral.error,body.dark .content-inner blockquote h3.tip.error,body.dark .content-inner blockquote h3.warning.error,body.dark .content-inner blockquote h4.error.error,body.dark .content-inner blockquote h4.info.error,body.dark .content-inner blockquote h4.neutral.error,body.dark .content-inner blockquote h4.tip.error,body.dark .content-inner blockquote h4.warning.error{background-color:#882738}body.dark .content-inner blockquote h3.error.info,body.dark .content-inner blockquote h3.info.info,body.dark .content-inner blockquote h3.neutral.info,body.dark .content-inner blockquote h3.tip.info,body.dark .content-inner blockquote h3.warning.info,body.dark .content-inner blockquote h4.error.info,body.dark .content-inner blockquote h4.info.info,body.dark .content-inner blockquote h4.neutral.info,body.dark .content-inner blockquote h4.tip.info,body.dark .content-inner blockquote h4.warning.info{background-color:#1b176b}body.dark .content-inner blockquote h3.error.neutral,body.dark .content-inner blockquote h3.info.neutral,body.dark .content-inner blockquote h3.neutral.neutral,body.dark .content-inner blockquote h3.tip.neutral,body.dark .content-inner blockquote h3.warning.neutral,body.dark .content-inner blockquote h4.error.neutral,body.dark .content-inner blockquote h4.info.neutral,body.dark .content-inner blockquote h4.neutral.neutral,body.dark .content-inner blockquote h4.tip.neutral,body.dark .content-inner blockquote h4.warning.neutral{background-color:#1f2432}body.dark .content-inner blockquote h3.error.tip,body.dark .content-inner blockquote h3.info.tip,body.dark .content-inner blockquote h3.neutral.tip,body.dark .content-inner blockquote h3.tip.tip,body.dark .content-inner blockquote h3.warning.tip,body.dark .content-inner blockquote h4.error.tip,body.dark .content-inner blockquote h4.info.tip,body.dark .content-inner blockquote h4.neutral.tip,body.dark .content-inner blockquote h4.tip.tip,body.dark .content-inner blockquote h4.warning.tip{background-color:#1f4034}@-webkit-keyframes night-blink-background{0%{background-color:#0d1829}to{background-color:#304254}}@keyframes night-blink-background{0%{background-color:#0d1829}to{background-color:#304254}}body.dark .content-inner .detail:target .detail-header{-webkit-animation-name:night-blink-background;animation-name:night-blink-background}body.dark .content-inner .detail-header{background:#0d1829;color:#cad5e0}body.dark .content-inner .specs .attribute{color:#445668}body.dark .content-inner div.deprecated{background-color:#333019}body.dark .content-inner code{background-color:#0d1829;border-color:#192f50}body.dark .content-inner pre code{background-color:#0d1829}body.dark .content-inner pre a,body.dark .content-inner pre a:visited{color:#fff;text-decoration:none}body.dark .content-inner pre a:hover{color:#ff4848}body.dark .content-inner .footer{color:#91a4b7}body.dark .content-inner .footer .footer-button{color:#91a4b7;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner .footer .footer-button:visited{color:#91a4b7}body.dark .content-inner .footer a{color:#91a4b7;text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}body.dark .content-inner .footer a:visited{color:#91a4b7}body.dark .content-inner .bottom-actions .bottom-actions-button{border:1px solid hsla(0,0%,100%,.1)}body.dark .content-inner .bottom-actions .bottom-actions-button .subheader{color:#ff4848}.copy-button.clicked{color:#a6e22e}body.dark #search .loading div{border-top-color:#767676}body.dark .sidebar-button,body.dark .sidebar-closed .sidebar-button{color:#f0f5f9}body.dark #quick-switch-modal-body .ri-search-2-line{color:#445668}body.dark #quick-switch-modal-body #quick-switch-input{border-bottom-color:#445668}body.dark #quick-switch-modal-body #quick-switch-results{margin:0}body.dark #quick-switch-modal-body #quick-switch-results .quick-switch-result{border-bottom-color:#445668}body.dark #keyboard-shortcuts-modal{background-color:rgba(0,0,0,.75)}body.dark #keyboard-shortcuts-modal .modal-contents{background-color:#030913;color:#cad5e0}body.dark #keyboard-shortcuts-modal .modal-contents dl.shortcut-row{border-bottom:1px solid #304254}body.dark #keyboard-shortcuts-modal .modal-contents dl.shortcut-row:last-of-type{border-bottom-style:none}body.dark #keyboard-shortcuts-modal .modal-contents kbd>kbd{color:#cad5e0;background-color:#0d1829;border:1px solid #304254}body.dark #tooltip{-webkit-box-shadow:0 0 10px rgba(0,0,0,.5);box-shadow:0 0 10px rgba(0,0,0,.5)}body.dark #tooltip .tooltip-body{border:1px solid #0d1829}body.dark #tooltip .tooltip-body .docstring{background:#030913}.dark #toast{background-color:#0a1e3f;border-color:#11336b;color:#dce1e6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media print{.main{display:block}.sidebar,.sidebar-button{display:none}.content{padding-left:0;overflow:visible}.summary-row{page-break-inside:avoid}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#f8f8f2}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#f8f8f2}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#f8f8f2}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#f8f8f2}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#f8f8f2}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#f8f8f2}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#f8f8f2}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#f8f8f2} -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/html/dist/handlebars.runtime-NWIB6V2M.js b/.deps/ex_doc/formatters/html/dist/handlebars.runtime-NWIB6V2M.js @@ -0,0 +1,30 @@ +/**! + + @license + handlebars v4.7.7 + +Copyright (C) 2011-2019 by Yehuda Katz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/(function(r,e){typeof exports=="object"&&typeof module=="object"?module.exports=e():typeof define=="function"&&define.amd?define([],e):typeof exports=="object"?exports.Handlebars=e():r.Handlebars=e()})(this,function(){return function(u){var r={};function e(n){if(r[n])return r[n].exports;var t=r[n]={exports:{},id:n,loaded:!1};return u[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}return e.m=u,e.c=r,e.p="",e(0)}([function(u,r,e){"use strict";var n=e(1).default,t=e(2).default;r.__esModule=!0;var f=e(3),a=n(f),i=e(36),l=t(i),h=e(5),v=t(h),P=e(4),H=n(P),C=e(37),E=n(C),I=e(43),o=t(I);function g(){var y=new a.HandlebarsEnvironment;return H.extend(y,a),y.SafeString=l.default,y.Exception=v.default,y.Utils=H,y.escapeExpression=H.escapeExpression,y.VM=E,y.template=function(p){return E.template(p,y)},y}var w=g();w.create=g,o.default(w),w.default=w,r.default=w,u.exports=r.default},function(u,r){"use strict";r.default=function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n},r.__esModule=!0},function(u,r){"use strict";r.default=function(e){return e&&e.__esModule?e:{default:e}},r.__esModule=!0},function(u,r,e){"use strict";var n=e(2).default;r.__esModule=!0,r.HandlebarsEnvironment=g;var t=e(4),f=e(5),a=n(f),i=e(9),l=e(29),h=e(31),v=n(h),P=e(32),H="4.7.7";r.VERSION=H;var C=8;r.COMPILER_REVISION=C;var E=7;r.LAST_COMPATIBLE_COMPILER_REVISION=E;var I={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};r.REVISION_CHANGES=I;var o="[object Object]";function g(y,p,R){this.helpers=y||{},this.partials=p||{},this.decorators=R||{},i.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}g.prototype={constructor:g,logger:v.default,log:v.default.log,registerHelper:function(p,R){if(t.toString.call(p)===o){if(R)throw new a.default("Arg not supported with multiple helpers");t.extend(this.helpers,p)}else this.helpers[p]=R},unregisterHelper:function(p){delete this.helpers[p]},registerPartial:function(p,R){if(t.toString.call(p)===o)t.extend(this.partials,p);else{if(typeof R>"u")throw new a.default('Attempting to register a partial called "'+p+'" as undefined');this.partials[p]=R}},unregisterPartial:function(p){delete this.partials[p]},registerDecorator:function(p,R){if(t.toString.call(p)===o){if(R)throw new a.default("Arg not supported with multiple decorators");t.extend(this.decorators,p)}else this.decorators[p]=R},unregisterDecorator:function(p){delete this.decorators[p]},resetLoggedPropertyAccesses:function(){P.resetLoggedProperties()}};var w=v.default.log;r.log=w,r.createFrame=t.createFrame,r.logger=v.default},function(u,r){"use strict";r.__esModule=!0,r.extend=a,r.indexOf=v,r.escapeExpression=P,r.isEmpty=H,r.createFrame=C,r.blockParams=E,r.appendContextPath=I;var e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},n=/[&<>"'`=]/g,t=/[&<>"'`=]/;function f(o){return e[o]}function a(o){for(var g=1;g<arguments.length;g++)for(var w in arguments[g])Object.prototype.hasOwnProperty.call(arguments[g],w)&&(o[w]=arguments[g][w]);return o}var i=Object.prototype.toString;r.toString=i;var l=function(g){return typeof g=="function"};l(/x/)&&(r.isFunction=l=function(o){return typeof o=="function"&&i.call(o)==="[object Function]"}),r.isFunction=l;var h=Array.isArray||function(o){return o&&typeof o=="object"?i.call(o)==="[object Array]":!1};r.isArray=h;function v(o,g){for(var w=0,y=o.length;w<y;w++)if(o[w]===g)return w;return-1}function P(o){if(typeof o!="string"){if(o&&o.toHTML)return o.toHTML();if(o==null)return"";if(!o)return o+"";o=""+o}return t.test(o)?o.replace(n,f):o}function H(o){return!o&&o!==0?!0:!!(h(o)&&o.length===0)}function C(o){var g=a({},o);return g._parent=o,g}function E(o,g){return o.path=g,o}function I(o,g){return(o?o+".":"")+g}},function(u,r,e){"use strict";var n=e(6).default;r.__esModule=!0;var t=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function f(a,i){var l=i&&i.loc,h=void 0,v=void 0,P=void 0,H=void 0;l&&(h=l.start.line,v=l.end.line,P=l.start.column,H=l.end.column,a+=" - "+h+":"+P);for(var C=Error.prototype.constructor.call(this,a),E=0;E<t.length;E++)this[t[E]]=C[t[E]];Error.captureStackTrace&&Error.captureStackTrace(this,f);try{l&&(this.lineNumber=h,this.endLineNumber=v,n?(Object.defineProperty(this,"column",{value:P,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:H,enumerable:!0})):(this.column=P,this.endColumn=H))}catch{}}f.prototype=new Error,r.default=f,u.exports=r.default},function(u,r,e){u.exports={default:e(7),__esModule:!0}},function(u,r,e){var n=e(8);u.exports=function(f,a,i){return n.setDesc(f,a,i)}},function(u,r){var e=Object;u.exports={create:e.create,getProto:e.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:e.getOwnPropertyDescriptor,setDesc:e.defineProperty,setDescs:e.defineProperties,getKeys:e.keys,getNames:e.getOwnPropertyNames,getSymbols:e.getOwnPropertySymbols,each:[].forEach}},function(u,r,e){"use strict";var n=e(2).default;r.__esModule=!0,r.registerDefaultHelpers=w,r.moveHelperToHooks=y;var t=e(10),f=n(t),a=e(11),i=n(a),l=e(24),h=n(l),v=e(25),P=n(v),H=e(26),C=n(H),E=e(27),I=n(E),o=e(28),g=n(o);function w(p){f.default(p),i.default(p),h.default(p),P.default(p),C.default(p),I.default(p),g.default(p)}function y(p,R,N){p.helpers[R]&&(p.hooks[R]=p.helpers[R],N||delete p.helpers[R])}},function(u,r,e){"use strict";r.__esModule=!0;var n=e(4);r.default=function(t){t.registerHelper("blockHelperMissing",function(f,a){var i=a.inverse,l=a.fn;if(f===!0)return l(this);if(f===!1||f==null)return i(this);if(n.isArray(f))return f.length>0?(a.ids&&(a.ids=[a.name]),t.helpers.each(f,a)):i(this);if(a.data&&a.ids){var h=n.createFrame(a.data);h.contextPath=n.appendContextPath(a.data.contextPath,a.name),a={data:h}}return l(f,a)})},u.exports=r.default},function(u,r,e){(function(n){"use strict";var t=e(12).default,f=e(2).default;r.__esModule=!0;var a=e(4),i=e(5),l=f(i);r.default=function(h){h.registerHelper("each",function(v,P){if(!P)throw new l.default("Must pass iterator to #each");var H=P.fn,C=P.inverse,E=0,I="",o=void 0,g=void 0;P.data&&P.ids&&(g=a.appendContextPath(P.data.contextPath,P.ids[0])+"."),a.isFunction(v)&&(v=v.call(this)),P.data&&(o=a.createFrame(P.data));function w(b,F,c){o&&(o.key=b,o.index=F,o.first=F===0,o.last=!!c,g&&(o.contextPath=g+b)),I=I+H(v[b],{data:o,blockParams:a.blockParams([v[b],b],[g+b,null])})}if(v&&typeof v=="object")if(a.isArray(v))for(var y=v.length;E<y;E++)E in v&&w(E,E,E===v.length-1);else if(n.Symbol&&v[n.Symbol.iterator]){for(var p=[],R=v[n.Symbol.iterator](),N=R.next();!N.done;N=R.next())p.push(N.value);v=p;for(var y=v.length;E<y;E++)w(E,E,E===v.length-1)}else(function(){var b=void 0;t(v).forEach(function(F){b!==void 0&&w(b,E-1),b=F,E++}),b!==void 0&&w(b,E-1,!0)})();return E===0&&(I=C(this)),I})},u.exports=r.default}).call(r,function(){return this}())},function(u,r,e){u.exports={default:e(13),__esModule:!0}},function(u,r,e){e(14),u.exports=e(20).Object.keys},function(u,r,e){var n=e(15);e(17)("keys",function(t){return function(a){return t(n(a))}})},function(u,r,e){var n=e(16);u.exports=function(t){return Object(n(t))}},function(u,r){u.exports=function(e){if(e==null)throw TypeError("Can't call method on "+e);return e}},function(u,r,e){var n=e(18),t=e(20),f=e(23);u.exports=function(a,i){var l=(t.Object||{})[a]||Object[a],h={};h[a]=i(l),n(n.S+n.F*f(function(){l(1)}),"Object",h)}},function(u,r,e){var n=e(19),t=e(20),f=e(21),a="prototype",i=function(l,h,v){var P=l&i.F,H=l&i.G,C=l&i.S,E=l&i.P,I=l&i.B,o=l&i.W,g=H?t:t[h]||(t[h]={}),w=H?n:C?n[h]:(n[h]||{})[a],y,p,R;H&&(v=h);for(y in v)p=!P&&w&&y in w,!(p&&y in g)&&(R=p?w[y]:v[y],g[y]=H&&typeof w[y]!="function"?v[y]:I&&p?f(R,n):o&&w[y]==R?function(N){var b=function(F){return this instanceof N?new N(F):N(F)};return b[a]=N[a],b}(R):E&&typeof R=="function"?f(Function.call,R):R,E&&((g[a]||(g[a]={}))[y]=R))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,u.exports=i},function(u,r){var e=u.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=e)},function(u,r){var e=u.exports={version:"1.2.6"};typeof __e=="number"&&(__e=e)},function(u,r,e){var n=e(22);u.exports=function(t,f,a){if(n(t),f===void 0)return t;switch(a){case 1:return function(i){return t.call(f,i)};case 2:return function(i,l){return t.call(f,i,l)};case 3:return function(i,l,h){return t.call(f,i,l,h)}}return function(){return t.apply(f,arguments)}}},function(u,r){u.exports=function(e){if(typeof e!="function")throw TypeError(e+" is not a function!");return e}},function(u,r){u.exports=function(e){try{return!!e()}catch{return!0}}},function(u,r,e){"use strict";var n=e(2).default;r.__esModule=!0;var t=e(5),f=n(t);r.default=function(a){a.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new f.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},u.exports=r.default},function(u,r,e){"use strict";var n=e(2).default;r.__esModule=!0;var t=e(4),f=e(5),a=n(f);r.default=function(i){i.registerHelper("if",function(l,h){if(arguments.length!=2)throw new a.default("#if requires exactly one argument");return t.isFunction(l)&&(l=l.call(this)),!h.hash.includeZero&&!l||t.isEmpty(l)?h.inverse(this):h.fn(this)}),i.registerHelper("unless",function(l,h){if(arguments.length!=2)throw new a.default("#unless requires exactly one argument");return i.helpers.if.call(this,l,{fn:h.inverse,inverse:h.fn,hash:h.hash})})},u.exports=r.default},function(u,r){"use strict";r.__esModule=!0,r.default=function(e){e.registerHelper("log",function(){for(var n=[void 0],t=arguments[arguments.length-1],f=0;f<arguments.length-1;f++)n.push(arguments[f]);var a=1;t.hash.level!=null?a=t.hash.level:t.data&&t.data.level!=null&&(a=t.data.level),n[0]=a,e.log.apply(e,n)})},u.exports=r.default},function(u,r){"use strict";r.__esModule=!0,r.default=function(e){e.registerHelper("lookup",function(n,t,f){return n&&f.lookupProperty(n,t)})},u.exports=r.default},function(u,r,e){"use strict";var n=e(2).default;r.__esModule=!0;var t=e(4),f=e(5),a=n(f);r.default=function(i){i.registerHelper("with",function(l,h){if(arguments.length!=2)throw new a.default("#with requires exactly one argument");t.isFunction(l)&&(l=l.call(this));var v=h.fn;if(t.isEmpty(l))return h.inverse(this);var P=h.data;return h.data&&h.ids&&(P=t.createFrame(h.data),P.contextPath=t.appendContextPath(h.data.contextPath,h.ids[0])),v(l,{data:P,blockParams:t.blockParams([l],[P&&P.contextPath])})})},u.exports=r.default},function(u,r,e){"use strict";var n=e(2).default;r.__esModule=!0,r.registerDefaultDecorators=a;var t=e(30),f=n(t);function a(i){f.default(i)}},function(u,r,e){"use strict";r.__esModule=!0;var n=e(4);r.default=function(t){t.registerDecorator("inline",function(f,a,i,l){var h=f;return a.partials||(a.partials={},h=function(v,P){var H=i.partials;i.partials=n.extend({},H,a.partials);var C=f(v,P);return i.partials=H,C}),a.partials[l.args[0]]=l.fn,h})},u.exports=r.default},function(u,r,e){"use strict";r.__esModule=!0;var n=e(4),t={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if(typeof a=="string"){var i=n.indexOf(t.methodMap,a.toLowerCase());i>=0?a=i:a=parseInt(a,10)}return a},log:function(a){if(a=t.lookupLevel(a),typeof console<"u"&&t.lookupLevel(t.level)<=a){var i=t.methodMap[a];console[i]||(i="log");for(var l=arguments.length,h=Array(l>1?l-1:0),v=1;v<l;v++)h[v-1]=arguments[v];console[i].apply(console,h)}}};r.default=t,u.exports=r.default},function(u,r,e){"use strict";var n=e(33).default,t=e(12).default,f=e(1).default;r.__esModule=!0,r.createProtoAccessControl=v,r.resultIsAllowed=P,r.resetLoggedProperties=E;var a=e(35),i=e(31),l=f(i),h=n(null);function v(I){var o=n(null);o.constructor=!1,o.__defineGetter__=!1,o.__defineSetter__=!1,o.__lookupGetter__=!1;var g=n(null);return g.__proto__=!1,{properties:{whitelist:a.createNewLookupObject(g,I.allowedProtoProperties),defaultValue:I.allowProtoPropertiesByDefault},methods:{whitelist:a.createNewLookupObject(o,I.allowedProtoMethods),defaultValue:I.allowProtoMethodsByDefault}}}function P(I,o,g){return H(typeof I=="function"?o.methods:o.properties,g)}function H(I,o){return I.whitelist[o]!==void 0?I.whitelist[o]===!0:I.defaultValue!==void 0?I.defaultValue:(C(o),!1)}function C(I){h[I]!==!0&&(h[I]=!0,l.log("error",'Handlebars: Access has been denied to resolve the property "'+I+`" because it is not an "own property" of its parent. +You can add a runtime option to disable the check or this warning: +See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}function E(){t(h).forEach(function(I){delete h[I]})}},function(u,r,e){u.exports={default:e(34),__esModule:!0}},function(u,r,e){var n=e(8);u.exports=function(f,a){return n.create(f,a)}},function(u,r,e){"use strict";var n=e(33).default;r.__esModule=!0,r.createNewLookupObject=f;var t=e(4);function f(){for(var a=arguments.length,i=Array(a),l=0;l<a;l++)i[l]=arguments[l];return t.extend.apply(void 0,[n(null)].concat(i))}},function(u,r){"use strict";r.__esModule=!0;function e(n){this.string=n}e.prototype.toString=e.prototype.toHTML=function(){return""+this.string},r.default=e,u.exports=r.default},function(u,r,e){"use strict";var n=e(38).default,t=e(12).default,f=e(1).default,a=e(2).default;r.__esModule=!0,r.checkRevision=I,r.template=o,r.wrapProgram=g,r.resolvePartial=w,r.invokePartial=y,r.noop=p;var i=e(4),l=f(i),h=e(5),v=a(h),P=e(3),H=e(9),C=e(42),E=e(32);function I(c){var O=c&&c[0]||1,M=P.COMPILER_REVISION;if(!(O>=P.LAST_COMPATIBLE_COMPILER_REVISION&&O<=P.COMPILER_REVISION))if(O<P.LAST_COMPATIBLE_COMPILER_REVISION){var x=P.REVISION_CHANGES[M],L=P.REVISION_CHANGES[O];throw new v.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+x+") or downgrade your runtime to an older version ("+L+").")}else throw new v.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+c[1]+").")}function o(c,O){if(!O)throw new v.default("No environment passed to template");if(!c||!c.main)throw new v.default("Unknown template object: "+typeof c);c.main.decorator=c.main_d,O.VM.checkRevision(c.compiler);var M=c.compiler&&c.compiler[0]===7;function x(m,s,d){d.hash&&(s=l.extend({},s,d.hash),d.ids&&(d.ids[0]=!0)),m=O.VM.resolvePartial.call(this,m,s,d);var A=l.extend({},d,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),D=O.VM.invokePartial.call(this,m,s,A);if(D==null&&O.compile&&(d.partials[d.name]=O.compile(m,c.compilerOptions,O),D=d.partials[d.name](s,A)),D!=null){if(d.indent){for(var T=D.split(` +`),j=0,V=T.length;j<V&&!(!T[j]&&j+1===V);j++)T[j]=d.indent+T[j];D=T.join(` +`)}return D}else throw new v.default("The partial "+d.name+" could not be compiled when running in runtime-only mode")}var L={strict:function(s,d,A){if(!s||!(d in s))throw new v.default('"'+d+'" not defined in '+s,{loc:A});return L.lookupProperty(s,d)},lookupProperty:function(s,d){var A=s[d];if(A==null||Object.prototype.hasOwnProperty.call(s,d)||E.resultIsAllowed(A,L.protoAccessControl,d))return A},lookup:function(s,d){for(var A=s.length,D=0;D<A;D++){var T=s[D]&&L.lookupProperty(s[D],d);if(T!=null)return s[D][d]}},lambda:function(s,d){return typeof s=="function"?s.call(d):s},escapeExpression:l.escapeExpression,invokePartial:x,fn:function(s){var d=c[s];return d.decorator=c[s+"_d"],d},programs:[],program:function(s,d,A,D,T){var j=this.programs[s],V=this.fn(s);return d||T||D||A?j=g(this,s,V,d,A,D,T):j||(j=this.programs[s]=g(this,s,V)),j},data:function(s,d){for(;s&&d--;)s=s._parent;return s},mergeIfNeeded:function(s,d){var A=s||d;return s&&d&&s!==d&&(A=l.extend({},d,s)),A},nullContext:n({}),noop:O.VM.noop,compilerInfo:c.compiler};function S(m){var s=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],d=s.data;S._setup(s),!s.partial&&c.useData&&(d=R(m,d));var A=void 0,D=c.useBlockParams?[]:void 0;c.useDepths&&(s.depths?A=m!=s.depths[0]?[m].concat(s.depths):s.depths:A=[m]);function T(j){return""+c.main(L,j,L.helpers,L.partials,d,D,A)}return T=N(c.main,T,L,s.depths||[],d,D),T(m,s)}return S.isTop=!0,S._setup=function(m){if(m.partial)L.protoAccessControl=m.protoAccessControl,L.helpers=m.helpers,L.partials=m.partials,L.decorators=m.decorators,L.hooks=m.hooks;else{var s=l.extend({},O.helpers,m.helpers);b(s,L),L.helpers=s,c.usePartial&&(L.partials=L.mergeIfNeeded(m.partials,O.partials)),(c.usePartial||c.useDecorators)&&(L.decorators=l.extend({},O.decorators,m.decorators)),L.hooks={},L.protoAccessControl=E.createProtoAccessControl(m);var d=m.allowCallsToHelperMissing||M;H.moveHelperToHooks(L,"helperMissing",d),H.moveHelperToHooks(L,"blockHelperMissing",d)}},S._child=function(m,s,d,A){if(c.useBlockParams&&!d)throw new v.default("must pass block params");if(c.useDepths&&!A)throw new v.default("must pass parent depths");return g(L,m,c[m],s,0,d,A)},S}function g(c,O,M,x,L,S,m){function s(d){var A=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],D=m;return m&&d!=m[0]&&!(d===c.nullContext&&m[0]===null)&&(D=[d].concat(m)),M(c,d,c.helpers,c.partials,A.data||x,S&&[A.blockParams].concat(S),D)}return s=N(M,s,c,m,x,S),s.program=O,s.depth=m?m.length:0,s.blockParams=L||0,s}function w(c,O,M){return c?!c.call&&!M.name&&(M.name=c,c=M.partials[c]):M.name==="@partial-block"?c=M.data["partial-block"]:c=M.partials[M.name],c}function y(c,O,M){var x=M.data&&M.data["partial-block"];M.partial=!0,M.ids&&(M.data.contextPath=M.ids[0]||M.data.contextPath);var L=void 0;if(M.fn&&M.fn!==p&&function(){M.data=P.createFrame(M.data);var S=M.fn;L=M.data["partial-block"]=function(s){var d=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return d.data=P.createFrame(d.data),d.data["partial-block"]=x,S(s,d)},S.partials&&(M.partials=l.extend({},M.partials,S.partials))}(),c===void 0&&L&&(c=L),c===void 0)throw new v.default("The partial "+M.name+" could not be found");if(c instanceof Function)return c(O,M)}function p(){return""}function R(c,O){return(!O||!("root"in O))&&(O=O?P.createFrame(O):{},O.root=c),O}function N(c,O,M,x,L,S){if(c.decorator){var m={};O=c.decorator(O,m,M,x&&x[0],L,S,x),l.extend(O,m)}return O}function b(c,O){t(c).forEach(function(M){var x=c[M];c[M]=F(x,O)})}function F(c,O){var M=O.lookupProperty;return C.wrapHelper(c,function(x){return l.extend({lookupProperty:M},x)})}},function(u,r,e){u.exports={default:e(39),__esModule:!0}},function(u,r,e){e(40),u.exports=e(20).Object.seal},function(u,r,e){var n=e(41);e(17)("seal",function(t){return function(a){return t&&n(a)?t(a):a}})},function(u,r){u.exports=function(e){return typeof e=="object"?e!==null:typeof e=="function"}},function(u,r){"use strict";r.__esModule=!0,r.wrapHelper=e;function e(n,t){if(typeof n!="function")return n;var f=function(){var i=arguments[arguments.length-1];return arguments[arguments.length-1]=t(i),n.apply(this,arguments)};return f}},function(u,r){(function(e){"use strict";r.__esModule=!0,r.default=function(n){var t=typeof e<"u"?e:window,f=t.Handlebars;n.noConflict=function(){return t.Handlebars===n&&(t.Handlebars=f),n}},u.exports=r.default}).call(r,function(){return this}())}])}); diff --git a/.deps/ex_doc/formatters/html/dist/handlebars.templates-X7YVL3G2.js b/.deps/ex_doc/formatters/html/dist/handlebars.templates-X7YVL3G2.js @@ -0,0 +1,185 @@ +(()=>{(function(){var d=Handlebars.template,y=Handlebars.templates=Handlebars.templates||{};y["autocomplete-suggestions"]=d({1:function(n,l,a,c,u){var e,o,s=l??(n.nullContext||{}),r=n.hooks.helperMissing,i="function",t=n.escapeExpression,f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return' <a href="'+t((o=(o=f(a,"link")||(l!=null?f(l,"link"):l))!=null?o:r,typeof o===i?o.call(s,{name:"link",hash:{},data:u,loc:{start:{line:7,column:13},end:{line:7,column:21}}}):o))+'" class="autocomplete-suggestion" data-index="'+t((o=(o=f(a,"index")||u&&f(u,"index"))!=null?o:r,typeof o===i?o.call(s,{name:"index",hash:{},data:u,loc:{start:{line:7,column:67},end:{line:7,column:77}}}):o))+`" tabindex="-1"> + <div class="title"> + <span translate="no">`+((e=(o=(o=f(a,"title")||(l!=null?f(l,"title"):l))!=null?o:r,typeof o===i?o.call(s,{name:"title",hash:{},data:u,loc:{start:{line:9,column:29},end:{line:9,column:40}}}):o))!=null?e:"")+`</span> +`+((e=f(a,"if").call(s,l!=null?f(l,"label"):l,{name:"if",hash:{},fn:n.program(2,u,0),inverse:n.noop,data:u,loc:{start:{line:10,column:8},end:{line:12,column:15}}}))!=null?e:"")+` </div> + +`+((e=f(a,"if").call(s,l!=null?f(l,"description"):l,{name:"if",hash:{},fn:n.program(4,u,0),inverse:n.noop,data:u,loc:{start:{line:15,column:6},end:{line:19,column:13}}}))!=null?e:"")+` </a> +`},2:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return' <span class="label">('+n.escapeExpression((e=(e=o(a,"label")||(l!=null?o(l,"label"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"label",hash:{},data:u,loc:{start:{line:11,column:31},end:{line:11,column:40}}}):e))+`)</span> +`},4:function(n,l,a,c,u){var e,o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return` <div class="description" translate="no"> + `+((e=(o=(o=s(a,"description")||(l!=null?s(l,"description"):l))!=null?o:n.hooks.helperMissing,typeof o=="function"?o.call(l??(n.nullContext||{}),{name:"description",hash:{},data:u,loc:{start:{line:17,column:10},end:{line:17,column:27}}}):o))!=null?e:"")+` + </div> +`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){var e,o,s=l??(n.nullContext||{}),r=n.hooks.helperMissing,i="function",t=n.escapeExpression,f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return`<div class="autocomplete-suggestions"> + <a class="autocomplete-suggestion" href="search.html?q=`+t((o=(o=f(a,"term")||(l!=null?f(l,"term"):l))!=null?o:r,typeof o===i?o.call(s,{name:"term",hash:{},data:u,loc:{start:{line:2,column:57},end:{line:2,column:65}}}):o))+`" data-index="-1" tabindex="-1"> + <div class="title">"<em>`+t((o=(o=f(a,"term")||(l!=null?f(l,"term"):l))!=null?o:r,typeof o===i?o.call(s,{name:"term",hash:{},data:u,loc:{start:{line:3,column:28},end:{line:3,column:36}}}):o))+`</em>"</div> + <div class="description">Search the documentation</div> + </a> +`+((e=f(a,"each").call(s,l!=null?f(l,"suggestions"):l,{name:"each",hash:{},fn:n.program(1,u,0),inverse:n.noop,data:u,loc:{start:{line:6,column:2},end:{line:21,column:11}}}))!=null?e:"")+`</div> +`},useData:!0}),y["modal-layout"]=d({compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){return`<div id="modal" class="modal" tabindex="-1"> + <div class="modal-contents"> + <div class="modal-header"> + <div class="modal-title"></div> + <button class="modal-close">\xD7</button> + </div> + <div class="modal-body"> + </div> + </div> +</div> +`},useData:!0}),y["quick-switch-modal-body"]=d({compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){return`<div id="quick-switch-modal-body"> + <i class="ri-search-2-line" aria-hidden="true"></i> + <input type="text" id="quick-switch-input" class="search-input" placeholder="Jump to..." autocomplete="off" spellcheck="false"> + <div id="quick-switch-results"></div> +</div> +`},useData:!0}),y["quick-switch-results"]=d({1:function(n,l,a,c,u){var e,o=l??(n.nullContext||{}),s=n.hooks.helperMissing,r="function",i=n.escapeExpression,t=n.lookupProperty||function(f,p){if(Object.prototype.hasOwnProperty.call(f,p))return f[p]};return' <div class="quick-switch-result" data-index="'+i((e=(e=t(a,"index")||u&&t(u,"index"))!=null?e:s,typeof e===r?e.call(o,{name:"index",hash:{},data:u,loc:{start:{line:2,column:47},end:{line:2,column:57}}}):e))+`"> + `+i((e=(e=t(a,"name")||(l!=null?t(l,"name"):l))!=null?e:s,typeof e===r?e.call(o,{name:"name",hash:{},data:u,loc:{start:{line:3,column:4},end:{line:3,column:12}}}):e))+` + </div> +`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return(e=o(a,"each").call(l??(n.nullContext||{}),l!=null?o(l,"results"):l,{name:"each",hash:{},fn:n.program(1,u,0),inverse:n.noop,data:u,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))!=null?e:""},useData:!0}),y["search-results"]=d({1:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return" Search results for <em>"+n.escapeExpression((e=(e=o(a,"value")||(l!=null?o(l,"value"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"value",hash:{},data:u,loc:{start:{line:3,column:27},end:{line:3,column:36}}}):e))+`</em> +`},3:function(n,l,a,c,u){return` Invalid search +`},5:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return(e=o(a,"each").call(l??(n.nullContext||{}),l!=null?o(l,"results"):l,{name:"each",hash:{},fn:n.program(6,u,0),inverse:n.noop,data:u,loc:{start:{line:15,column:2},end:{line:26,column:11}}}))!=null?e:""},6:function(n,l,a,c,u){var e,o=n.lambda,s=n.escapeExpression,r=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return` <div class="result"> + <h2 class="result-id"> + <a href="`+s(o(l!=null?r(l,"ref"):l,l))+`"> + <span translate="no">`+s(o(l!=null?r(l,"title"):l,l))+"</span> <small>("+s(o(l!=null?r(l,"type"):l,l))+`)</small> + </a> + </h2> +`+((e=r(a,"each").call(l??(n.nullContext||{}),l!=null?r(l,"excerpts"):l,{name:"each",hash:{},fn:n.program(7,u,0),inverse:n.noop,data:u,loc:{start:{line:22,column:8},end:{line:24,column:17}}}))!=null?e:"")+` </div> +`},7:function(n,l,a,c,u){var e;return' <p class="result-elem">'+((e=n.lambda(l,l))!=null?e:"")+`</p> +`},9:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return((e=(o(a,"isArray")||l&&o(l,"isArray")||n.hooks.helperMissing).call(l??(n.nullContext||{}),l!=null?o(l,"results"):l,{name:"isArray",hash:{},fn:n.program(10,u,0),inverse:n.program(12,u,0),data:u,loc:{start:{line:28,column:2},end:{line:34,column:14}}}))!=null?e:"")+` + <p>The search functionality is full-text based. Here are some tips:</p> + + <ul> + <li>Multiple words (such as <code>foo bar</code>) are searched as <code>OR</code></li> + <li>Use <code>*</code> anywhere (such as <code>fo*</code>) as wildcard</li> + <li>Use <code>+</code> before a word (such as <code>+foo</code>) to make its presence required</li> + <li>Use <code>-</code> before a word (such as <code>-foo</code>) to make its absence required</li> + <li>Use <code>:</code> to search on a particular field (such as <code>field:word</code>). The available fields are <code>title</code> and <code>doc</code></li> + <li>Use <code>WORD^NUMBER</code> (such as <code>foo^2</code>) to boost the given word</li> + <li>Use <code>WORD~NUMBER</code> (such as <code>foo~2</code>) to do a search with edit distance on word</li> + </ul> + + <p>To quickly go to a module, type, or function, use the autocompletion feature in the sidebar search.</p> +`},10:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return" <p>Sorry, we couldn't find anything for <em>"+n.escapeExpression((e=(e=o(a,"value")||(l!=null?o(l,"value"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"value",hash:{},data:u,loc:{start:{line:29,column:48},end:{line:29,column:57}}}):e))+`</em>.</p> +`},12:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return(e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"value"):l,{name:"if",hash:{},fn:n.program(13,u,0),inverse:n.program(15,u,0),data:u,loc:{start:{line:30,column:2},end:{line:34,column:2}}}))!=null?e:""},13:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return" <p>Invalid search: "+n.escapeExpression((e=(e=o(a,"errorMessage")||(l!=null?o(l,"errorMessage"):l))!=null?e:n.hooks.helperMissing,typeof e=="function"?e.call(l??(n.nullContext||{}),{name:"errorMessage",hash:{},data:u,loc:{start:{line:31,column:23},end:{line:31,column:39}}}):e))+`.</p> +`},15:function(n,l,a,c,u){return` <p>Please type something into the search bar to perform a search.</p> + `},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){var e,o=l??(n.nullContext||{}),s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return`<h1> +`+((e=s(a,"if").call(o,l!=null?s(l,"value"):l,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.program(3,u,0),data:u,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))!=null?e:"")+` + <button class="settings display-settings"> + <i class="ri-settings-3-line"></i> + <span class="sr-only">Settings</span> + </button> +</h1> + +`+((e=(s(a,"isNonEmptyArray")||l&&s(l,"isNonEmptyArray")||n.hooks.helperMissing).call(o,l!=null?s(l,"results"):l,{name:"isNonEmptyArray",hash:{},fn:n.program(5,u,0),inverse:n.program(9,u,0),data:u,loc:{start:{line:14,column:0},end:{line:49,column:20}}}))!=null?e:"")},useData:!0}),y["settings-modal-body"]=d({1:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return(e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"description"):l,{name:"if",hash:{},fn:n.program(2,u,0),inverse:n.noop,data:u,loc:{start:{line:40,column:6},end:{line:53,column:13}}}))!=null?e:""},2:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return` <dl class="shortcut-row"> + <dd class="shortcut-description"> + `+n.escapeExpression(n.lambda(l!=null?o(l,"description"):l,l))+` + </dd> + <dt class="shortcut-keys"> +`+((e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"displayAs"):l,{name:"if",hash:{},fn:n.program(3,u,0),inverse:n.program(5,u,0),data:u,loc:{start:{line:46,column:12},end:{line:50,column:19}}}))!=null?e:"")+` </dt> + </dl> +`},3:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return" "+((e=n.lambda(l!=null?o(l,"displayAs"):l,l))!=null?e:"")+` +`},5:function(n,l,a,c,u){var e=n.lookupProperty||function(o,s){if(Object.prototype.hasOwnProperty.call(o,s))return o[s]};return" <kbd><kbd>"+n.escapeExpression(n.lambda(l!=null?e(l,"key"):l,l))+`</kbd></kbd> +`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return`<div id="settings-modal-content"> + <div id="settings-content"> + <label class="switch-button-container"> + <div> + <span>Theme</span> + <p>Use the documentation UI in a theme.</p> + </div> + <div> + <select name="theme" class="settings-select"> + <option value="dark">Dark</option> + <option value="light">Light</option> + <option value="system">System</option> + </select> + </div> + </label> + <label class="switch-button-container"> + <div> + <span>Show tooltips</span> + <p>Show tooltips when mousing over code references.</p> + </div> + <div class="switch-button"> + <input class="switch-button__checkbox" type="checkbox" name="tooltips" /> + <div class="switch-button__bg"></div> + </div> + </label> + <label class="switch-button-container"> + <div> + <span>Run in Livebook</span> + <p>Use Direct Address for \u201CRun in Livebook\u201D badges.</p> + </div> + <div class="switch-button"> + <input class="switch-button__checkbox" type="checkbox" name="direct_livebook_url" /> + <div class="switch-button__bg"></div> + </div> + </label> + <input class="input" type="url" name="livebook_url" placeholder="Enter Livebook instance URL" aria-label="Enter Livebook instance URL" /> + </div> + <div id="keyboard-shortcuts-content" class="hidden"> +`+((e=o(a,"each").call(l??(n.nullContext||{}),l!=null?o(l,"shortcuts"):l,{name:"each",hash:{},fn:n.program(1,u,0),inverse:n.noop,data:u,loc:{start:{line:39,column:4},end:{line:54,column:13}}}))!=null?e:"")+` </div> +</div> +`},useData:!0}),y["sidebar-items"]=d({1:function(n,l,a,c,u,e,o){var s,r=l??(n.nullContext||{}),i=n.hooks.helperMissing,t=n.lookupProperty||function(f,p){if(Object.prototype.hasOwnProperty.call(f,p))return f[p]};return((s=(t(a,"groupChanged")||l&&t(l,"groupChanged")||i).call(r,o[1],(s=e[0][0])!=null?t(s,"group"):s,{name:"groupChanged",hash:{},fn:n.program(2,u,0,e,o),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:2,column:2},end:{line:6,column:19}}}))!=null?s:"")+` +`+((s=(t(a,"nestingChanged")||l&&t(l,"nestingChanged")||i).call(r,o[1],e[0][0],{name:"nestingChanged",hash:{},fn:n.program(7,u,0,e,o),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:8,column:2},end:{line:10,column:21}}}))!=null?s:"")+` + <li class="`+((s=(t(a,"isLocal")||l&&t(l,"isLocal")||i).call(r,(s=e[0][0])!=null?t(s,"id"):s,{name:"isLocal",hash:{},fn:n.program(9,u,0,e,o),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:12,column:13},end:{line:12,column:62}}}))!=null?s:"")+`"> + <a href="`+n.escapeExpression(n.lambda((s=e[0][0])!=null?t(s,"id"):s,l))+".html"+((s=(t(a,"isLocal")||l&&t(l,"isLocal")||i).call(r,(s=e[0][0])!=null?t(s,"id"):s,{name:"isLocal",hash:{},fn:n.program(11,u,0,e,o),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:13,column:29},end:{line:13,column:69}}}))!=null?s:"")+'" class="expand" '+((s=(t(a,"isArray")||l&&t(l,"isArray")||i).call(r,(s=e[0][0])!=null?t(s,"headers"):s,{name:"isArray",hash:{},fn:n.program(3,u,0,e,o),inverse:n.program(5,u,0,e,o),data:u,blockParams:e,loc:{start:{line:13,column:86},end:{line:13,column:145}}}))!=null?s:"")+`> +`+((s=t(a,"if").call(r,(s=e[0][0])!=null?t(s,"nested_title"):s,{name:"if",hash:{},fn:n.program(13,u,0,e,o),inverse:n.program(15,u,0,e,o),data:u,blockParams:e,loc:{start:{line:14,column:6},end:{line:18,column:13}}}))!=null?s:"")+` <span class="icon-expand"></span> + </a> + + <ul> +`+((s=(t(a,"isArray")||l&&t(l,"isArray")||i).call(r,(s=e[0][0])!=null?t(s,"headers"):s,{name:"isArray",hash:{},fn:n.program(17,u,0,e,o),inverse:n.program(20,u,0,e,o),data:u,blockParams:e,loc:{start:{line:23,column:6},end:{line:65,column:18}}}))!=null?s:"")+` </ul> + </li> +`},2:function(n,l,a,c,u,e){var o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return' <li class="group" '+((o=(s(a,"isArray")||l&&s(l,"isArray")||n.hooks.helperMissing).call(l??(n.nullContext||{}),(o=e[1][0])!=null?s(o,"headers"):o,{name:"isArray",hash:{},fn:n.program(3,u,0,e),inverse:n.program(5,u,0,e),data:u,blockParams:e,loc:{start:{line:3,column:22},end:{line:3,column:81}}}))!=null?o:"")+`> + `+n.escapeExpression(n.lambda((o=e[1][0])!=null?s(o,"group"):o,l))+` + </li> +`},3:function(n,l,a,c,u){return""},5:function(n,l,a,c,u){return'translate="no"'},7:function(n,l,a,c,u,e){var o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return' <li class="nesting-context" aria-hidden="true" translate="no">'+n.escapeExpression(n.lambda((o=e[1][0])!=null?s(o,"nested_context"):o,l))+`</li> +`},9:function(n,l,a,c,u){return"current-page open"},11:function(n,l,a,c,u){return"#content"},13:function(n,l,a,c,u,e){var o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return" "+((o=n.lambda((o=e[1][0])!=null?s(o,"nested_title"):o,l))!=null?o:"")+` +`},15:function(n,l,a,c,u,e){var o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return" "+((o=n.lambda((o=e[1][0])!=null?s(o,"title"):o,l))!=null?o:"")+` +`},17:function(n,l,a,c,u,e){var o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return(o=s(a,"each").call(l??(n.nullContext||{}),(o=e[1][0])!=null?s(o,"headers"):o,{name:"each",hash:{},fn:n.program(18,u,0,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:24,column:8},end:{line:28,column:17}}}))!=null?o:""},18:function(n,l,a,c,u,e){var o,s,r=l??(n.nullContext||{}),i=n.hooks.helperMissing,t="function",f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return` <li> + <a href="`+n.escapeExpression(n.lambda((o=e[2][0])!=null?f(o,"id"):o,l))+".html#"+((o=(s=(s=f(a,"anchor")||(l!=null?f(l,"anchor"):l))!=null?s:i,typeof s===t?s.call(r,{name:"anchor",hash:{},data:u,blockParams:e,loc:{start:{line:26,column:38},end:{line:26,column:50}}}):s))!=null?o:"")+'">'+((o=(s=(s=f(a,"id")||(l!=null?f(l,"id"):l))!=null?s:i,typeof s===t?s.call(r,{name:"id",hash:{},data:u,blockParams:e,loc:{start:{line:26,column:52},end:{line:26,column:60}}}):s))!=null?o:"")+`</a> + </li> +`},20:function(n,l,a,c,u,e){var o,s=l??(n.nullContext||{}),r=n.hooks.helperMissing,i=n.lookupProperty||function(t,f){if(Object.prototype.hasOwnProperty.call(t,f))return t[f]};return((o=(i(a,"showSections")||l&&i(l,"showSections")||r).call(s,e[1][0],{name:"showSections",hash:{},fn:n.program(21,u,0,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:30,column:8},end:{line:44,column:25}}}))!=null?o:"")+((o=(i(a,"showSummary")||l&&i(l,"showSummary")||r).call(s,e[1][0],{name:"showSummary",hash:{},fn:n.program(26,u,0,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:45,column:8},end:{line:49,column:24}}}))!=null?o:"")+((o=i(a,"each").call(s,(o=e[1][0])!=null?i(o,"nodeGroups"):o,{name:"each",hash:{},fn:n.program(28,u,1,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:50,column:8},end:{line:64,column:17}}}))!=null?o:"")},21:function(n,l,a,c,u,e){var o,s=l??(n.nullContext||{}),r=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return' <li class="docs '+((o=(r(a,"isLocal")||l&&r(l,"isLocal")||n.hooks.helperMissing).call(s,(o=e[2][0])!=null?r(o,"id"):o,{name:"isLocal",hash:{},fn:n.program(22,u,0,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:31,column:26},end:{line:31,column:62}}}))!=null?o:"")+`"> + <a href="`+n.escapeExpression(n.lambda((o=e[2][0])!=null?r(o,"id"):o,l))+`.html#content" class="expand"> + Sections + <span class="icon-expand"></span> + </a> + <ul class="sections-list deflist"> +`+((o=r(a,"each").call(s,l!=null?r(l,"sections"):l,{name:"each",hash:{},fn:n.program(24,u,0,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:37,column:14},end:{line:41,column:23}}}))!=null?o:"")+` </ul> + </li> +`},22:function(n,l,a,c,u){return"open"},24:function(n,l,a,c,u,e){var o,s,r=n.escapeExpression,i=l??(n.nullContext||{}),t=n.hooks.helperMissing,f="function",p=n.lookupProperty||function(m,v){if(Object.prototype.hasOwnProperty.call(m,v))return m[v]};return` <li> + <a href="`+r(n.lambda((o=e[3][0])!=null?p(o,"id"):o,l))+".html#"+r((s=(s=p(a,"anchor")||(l!=null?p(l,"anchor"):l))!=null?s:t,typeof s===f?s.call(i,{name:"anchor",hash:{},data:u,blockParams:e,loc:{start:{line:39,column:44},end:{line:39,column:54}}}):s))+'">'+((o=(s=(s=p(a,"id")||(l!=null?p(l,"id"):l))!=null?s:t,typeof s===f?s.call(i,{name:"id",hash:{},data:u,blockParams:e,loc:{start:{line:39,column:56},end:{line:39,column:64}}}):s))!=null?o:"")+`</a> + </li> +`},26:function(n,l,a,c,u,e){var o,s=n.lookupProperty||function(r,i){if(Object.prototype.hasOwnProperty.call(r,i))return r[i]};return` <li> + <a href="`+n.escapeExpression(n.lambda((o=e[2][0])!=null?s(o,"id"):o,l))+`.html#summary" class="summary">Summary</a> + </li> +`},28:function(n,l,a,c,u,e){var o,s=n.lambda,r=n.escapeExpression,i=n.lookupProperty||function(t,f){if(Object.prototype.hasOwnProperty.call(t,f))return t[f]};return` <li class="docs"> + <a href="`+r(s((o=e[2][0])!=null?i(o,"id"):o,l))+".html#"+r(s((o=e[0][0])!=null?i(o,"key"):o,l))+`" class="expand"> + `+r(s((o=e[0][0])!=null?i(o,"name"):o,l))+` + <span class="icon-expand"></span> + </a> + <ul class="`+r(s((o=e[0][0])!=null?i(o,"key"):o,l))+`-list deflist"> +`+((o=i(a,"each").call(l??(n.nullContext||{}),(o=e[0][0])!=null?i(o,"nodes"):o,{name:"each",hash:{},fn:n.program(29,u,0,e),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:57,column:14},end:{line:61,column:23}}}))!=null?o:"")+` </ul> + </li> +`},29:function(n,l,a,c,u,e){var o,s,r=n.escapeExpression,i=l??(n.nullContext||{}),t=n.hooks.helperMissing,f="function",p=n.lookupProperty||function(m,v){if(Object.prototype.hasOwnProperty.call(m,v))return m[v]};return` <li> + <a href="`+r(n.lambda((o=e[3][0])!=null?p(o,"id"):o,l))+".html#"+r((s=(s=p(a,"anchor")||(l!=null?p(l,"anchor"):l))!=null?s:t,typeof s===f?s.call(i,{name:"anchor",hash:{},data:u,blockParams:e,loc:{start:{line:59,column:44},end:{line:59,column:54}}}):s))+'" translate="no">'+r((s=(s=p(a,"id")||(l!=null?p(l,"id"):l))!=null?s:t,typeof s===f?s.call(i,{name:"id",hash:{},data:u,blockParams:e,loc:{start:{line:59,column:71},end:{line:59,column:77}}}):s))+`</a> + </li> +`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u,e,o){var s,r=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return(s=r(a,"each").call(l??(n.nullContext||{}),l!=null?r(l,"nodes"):l,{name:"each",hash:{},fn:n.program(1,u,2,e,o),inverse:n.noop,data:u,blockParams:e,loc:{start:{line:1,column:0},end:{line:68,column:9}}}))!=null?s:""},useData:!0,useDepths:!0,useBlockParams:!0}),y["tooltip-body"]=d({1:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return` <section class="docstring docstring-plain"> + `+n.escapeExpression(n.lambda((e=l!=null?o(l,"hint"):l)!=null?o(e,"description"):e,l))+` + </section> +`},3:function(n,l,a,c,u){var e,o=n.lambda,s=n.escapeExpression,r=n.lookupProperty||function(i,t){if(Object.prototype.hasOwnProperty.call(i,t))return i[t]};return` <div class="detail-header"> + <h1 class="signature"> + <span translate="no">`+s(o((e=l!=null?r(l,"hint"):l)!=null?r(e,"title"):e,l))+`</span> + <div class="version-info" translate="no">`+s(o((e=l!=null?r(l,"hint"):l)!=null?r(e,"version"):e,l))+`</div> + </h1> + </div> +`+((e=r(a,"if").call(l??(n.nullContext||{}),(e=l!=null?r(l,"hint"):l)!=null?r(e,"description"):e,{name:"if",hash:{},fn:n.program(4,u,0),inverse:n.noop,data:u,loc:{start:{line:12,column:2},end:{line:16,column:9}}}))!=null?e:"")},4:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return` <section class="docstring"> + `+n.escapeExpression(n.lambda((e=l!=null?o(l,"hint"):l)!=null?o(e,"description"):e,l))+` + </section> +`},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return(e=o(a,"if").call(l??(n.nullContext||{}),l!=null?o(l,"isPlain"):l,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.program(3,u,0),data:u,loc:{start:{line:1,column:0},end:{line:17,column:7}}}))!=null?e:""},useData:!0}),y["tooltip-layout"]=d({compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){return`<div id="tooltip"> + <div class="tooltip-body"></div> +</div> +`},useData:!0}),y["versions-dropdown"]=d({1:function(n,l,a,c,u){var e,o,s=l??(n.nullContext||{}),r=n.hooks.helperMissing,i="function",t=n.escapeExpression,f=n.lookupProperty||function(p,m){if(Object.prototype.hasOwnProperty.call(p,m))return p[m]};return' <option translate="no" value="'+t((o=(o=f(a,"url")||(l!=null?f(l,"url"):l))!=null?o:r,typeof o===i?o.call(s,{name:"url",hash:{},data:u,loc:{start:{line:4,column:36},end:{line:4,column:43}}}):o))+'"'+((e=f(a,"if").call(s,l!=null?f(l,"isCurrentVersion"):l,{name:"if",hash:{},fn:n.program(2,u,0),inverse:n.noop,data:u,loc:{start:{line:4,column:44},end:{line:4,column:93}}}))!=null?e:"")+`> + `+t((o=(o=f(a,"version")||(l!=null?f(l,"version"):l))!=null?o:r,typeof o===i?o.call(s,{name:"version",hash:{},data:u,loc:{start:{line:5,column:8},end:{line:5,column:19}}}):o))+` + </option> +`},2:function(n,l,a,c,u){return" selected disabled"},compiler:[8,">= 4.3.0"],main:function(n,l,a,c,u){var e,o=n.lookupProperty||function(s,r){if(Object.prototype.hasOwnProperty.call(s,r))return s[r]};return`<form autocomplete="off"> + <select class="sidebar-projectVersionsDropdown"> +`+((e=o(a,"each").call(l??(n.nullContext||{}),l!=null?o(l,"nodes"):l,{name:"each",hash:{},fn:n.program(1,u,0),inverse:n.noop,data:u,loc:{start:{line:3,column:4},end:{line:7,column:13}}}))!=null?e:"")+` </select> +</form> +`},useData:!0})})();})(); diff --git a/.deps/ex_doc/formatters/html/dist/html-XN2TSG4M.js b/.deps/ex_doc/formatters/html/dist/html-XN2TSG4M.js @@ -0,0 +1,52 @@ +(()=>{var Cn=Object.create;var Ze=Object.defineProperty;var Pn=Object.getOwnPropertyDescriptor;var Rn=Object.getOwnPropertyNames;var An=Object.getPrototypeOf,Qn=Object.prototype.hasOwnProperty;var et=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Nn=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Rn(t))!Qn.call(e,r)&&r!==n&&Ze(e,r,{get:()=>t[r],enumerable:!(i=Pn(t,r))||i.enumerable});return e};var tt=(e,t,n)=>(n=e!=null?Cn(An(e)):{},Nn(t||!e||!e.__esModule?Ze(n,"default",{value:e,enumerable:!0}):n,e));var mt=et((ds,pt)=>{var ht="Expected a function",dt=NaN,$n="[object Symbol]",Un=/^\s+|\s+$/g,Wn=/^[-+]0x[0-9a-f]+$/i,Gn=/^0b[01]+$/i,Kn=/^0o[0-7]+$/i,Yn=parseInt,Jn=typeof global=="object"&&global&&global.Object===Object&&global,Xn=typeof self=="object"&&self&&self.Object===Object&&self,Zn=Jn||Xn||Function("return this")(),ei=Object.prototype,ti=ei.toString,ni=Math.max,ii=Math.min,ke=function(){return Zn.Date.now()};function ri(e,t,n){var i,r,s,o,a,u,l=0,f=!1,y=!1,g=!0;if(typeof e!="function")throw new TypeError(ht);t=ft(t)||0,pe(n)&&(f=!!n.leading,y="maxWait"in n,s=y?ni(ft(n.maxWait)||0,t):s,g="trailing"in n?!!n.trailing:g);function L(x){var C=i,D=r;return i=r=void 0,l=x,o=e.apply(D,C),o}function S(x){return l=x,a=setTimeout(p,t),f?L(x):o}function T(x){var C=x-u,D=x-l,V=t-C;return y?ii(V,s-D):V}function m(x){var C=x-u,D=x-l;return u===void 0||C>=t||C<0||y&&D>=s}function p(){var x=ke();if(m(x))return _(x);a=setTimeout(p,T(x))}function _(x){return a=void 0,g&&i?L(x):(i=r=void 0,o)}function w(){a!==void 0&&clearTimeout(a),l=0,i=u=r=a=void 0}function Q(){return a===void 0?o:_(ke())}function N(){var x=ke(),C=m(x);if(i=arguments,r=this,u=x,C){if(a===void 0)return S(u);if(y)return a=setTimeout(p,t),L(u)}return a===void 0&&(a=setTimeout(p,t)),o}return N.cancel=w,N.flush=Q,N}function si(e,t,n){var i=!0,r=!0;if(typeof e!="function")throw new TypeError(ht);return pe(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),ri(e,t,{leading:i,maxWait:t,trailing:r})}function pe(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function oi(e){return!!e&&typeof e=="object"}function ai(e){return typeof e=="symbol"||oi(e)&&ti.call(e)==$n}function ft(e){if(typeof e=="number")return e;if(ai(e))return dt;if(pe(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=pe(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(Un,"");var n=Gn.test(e);return n||Kn.test(e)?Yn(e.slice(2),n?2:8):Wn.test(e)?dt:+e}pt.exports=si});var Vt=et((Mt,Bt)=>{(function(){var e=function(t){var n=new e.Builder;return n.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),n.searchPipeline.add(e.stemmer),t.call(n,n),n.build()};e.version="2.3.9";e.utils={},e.utils.warn=function(t){return function(n){t.console&&console.warn&&console.warn(n)}}(this),e.utils.asString=function(t){return t==null?"":t.toString()},e.utils.clone=function(t){if(t==null)return t;for(var n=Object.create(null),i=Object.keys(t),r=0;r<i.length;r++){var s=i[r],o=t[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},e.FieldRef=function(t,n,i){this.docRef=t,this.fieldName=n,this._stringValue=i},e.FieldRef.joiner="/",e.FieldRef.fromString=function(t){var n=t.indexOf(e.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var i=t.slice(0,n),r=t.slice(n+1);return new e.FieldRef(r,i,t)},e.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+e.FieldRef.joiner+this.docRef),this._stringValue};e.Set=function(t){if(this.elements=Object.create(null),t){this.length=t.length;for(var n=0;n<this.length;n++)this.elements[t[n]]=!0}else this.length=0},e.Set.complete={intersect:function(t){return t},union:function(){return this},contains:function(){return!0}},e.Set.empty={intersect:function(){return this},union:function(t){return t},contains:function(){return!1}},e.Set.prototype.contains=function(t){return!!this.elements[t]},e.Set.prototype.intersect=function(t){var n,i,r,s=[];if(t===e.Set.complete)return this;if(t===e.Set.empty)return t;this.length<t.length?(n=this,i=t):(n=t,i=this),r=Object.keys(n.elements);for(var o=0;o<r.length;o++){var a=r[o];a in i.elements&&s.push(a)}return new e.Set(s)},e.Set.prototype.union=function(t){return t===e.Set.complete?e.Set.complete:t===e.Set.empty?this:new e.Set(Object.keys(this.elements).concat(Object.keys(t.elements)))},e.idf=function(t,n){var i=0;for(var r in t)r!="_index"&&(i+=Object.keys(t[r]).length);var s=(n-i+.5)/(i+.5);return Math.log(1+Math.abs(s))},e.Token=function(t,n){this.str=t||"",this.metadata=n||{}},e.Token.prototype.toString=function(){return this.str},e.Token.prototype.update=function(t){return this.str=t(this.str,this.metadata),this},e.Token.prototype.clone=function(t){return t=t||function(n){return n},new e.Token(t(this.str,this.metadata),this.metadata)};e.tokenizer=function(t,n){if(t==null||t==null)return[];if(Array.isArray(t))return t.map(function(y){return new e.Token(e.utils.asString(y).toLowerCase(),e.utils.clone(n))});for(var i=t.toString().toLowerCase(),r=i.length,s=[],o=0,a=0;o<=r;o++){var u=i.charAt(o),l=o-a;if(u.match(e.tokenizer.separator)||o==r){if(l>0){var f=e.utils.clone(n)||{};f.position=[a,l],f.index=s.length,s.push(new e.Token(i.slice(a,o),f))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/;e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,n){n in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+n),t.label=n,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var n=t.label&&t.label in this.registeredFunctions;n||e.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,t)},e.Pipeline.load=function(t){var n=new e.Pipeline;return t.forEach(function(i){var r=e.Pipeline.registeredFunctions[i];if(r)n.add(r);else throw new Error("Cannot load unregistered function: "+i)}),n},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(n){e.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},e.Pipeline.prototype.after=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i=i+1,this._stack.splice(i,0,n)},e.Pipeline.prototype.before=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},e.Pipeline.prototype.remove=function(t){var n=this._stack.indexOf(t);n!=-1&&this._stack.splice(n,1)},e.Pipeline.prototype.run=function(t){for(var n=this._stack.length,i=0;i<n;i++){for(var r=this._stack[i],s=[],o=0;o<t.length;o++){var a=r(t[o],o,t);if(!(a==null||a===""))if(Array.isArray(a))for(var u=0;u<a.length;u++)s.push(a[u]);else s.push(a)}t=s}return t},e.Pipeline.prototype.runString=function(t,n){var i=new e.Token(t,n);return this.run([i]).map(function(r){return r.toString()})},e.Pipeline.prototype.reset=function(){this._stack=[]},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})};e.Vector=function(t){this._magnitude=0,this.elements=t||[]},e.Vector.prototype.positionForIndex=function(t){if(this.elements.length==0)return 0;for(var n=0,i=this.elements.length/2,r=i-n,s=Math.floor(r/2),o=this.elements[s*2];r>1&&(o<t&&(n=s),o>t&&(i=s),o!=t);)r=i-n,s=n+Math.floor(r/2),o=this.elements[s*2];if(o==t||o>t)return s*2;if(o<t)return(s+1)*2},e.Vector.prototype.insert=function(t,n){this.upsert(t,n,function(){throw"duplicate index"})},e.Vector.prototype.upsert=function(t,n,i){this._magnitude=0;var r=this.positionForIndex(t);this.elements[r]==t?this.elements[r+1]=i(this.elements[r+1],n):this.elements.splice(r,0,t,n)},e.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var t=0,n=this.elements.length,i=1;i<n;i+=2){var r=this.elements[i];t+=r*r}return this._magnitude=Math.sqrt(t)},e.Vector.prototype.dot=function(t){for(var n=0,i=this.elements,r=t.elements,s=i.length,o=r.length,a=0,u=0,l=0,f=0;l<s&&f<o;)a=i[l],u=r[f],a<u?l+=2:a>u?f+=2:a==u&&(n+=i[l+1]*r[f+1],l+=2,f+=2);return n},e.Vector.prototype.similarity=function(t){return this.dot(t)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var t=new Array(this.elements.length/2),n=1,i=0;n<this.elements.length;n+=2,i++)t[i]=this.elements[n];return t},e.Vector.prototype.toJSON=function(){return this.elements};e.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},i="[^aeiou]",r="[aeiouy]",s=i+"[^aeiouy]*",o=r+"[aeiou]*",a="^("+s+")?"+o+s,u="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,f="^("+s+")?"+r,y=new RegExp(a),g=new RegExp(l),L=new RegExp(u),S=new RegExp(f),T=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,p=/^(.+?)eed$/,_=/^(.+?)(ed|ing)$/,w=/.$/,Q=/(at|bl|iz)$/,N=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+s+r+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,D=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,V=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,ne=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,ce=/^(.+?)(s|t)(ion)$/,j=/^(.+?)e$/,le=/ll$/,ue=new RegExp("^"+s+r+"[^aeiouwxy]$"),ie=function(d){var v,q,A,h,E,z,G;if(d.length<3)return d;if(A=d.substr(0,1),A=="y"&&(d=A.toUpperCase()+d.substr(1)),h=T,E=m,h.test(d)?d=d.replace(h,"$1$2"):E.test(d)&&(d=d.replace(E,"$1$2")),h=p,E=_,h.test(d)){var b=h.exec(d);h=y,h.test(b[1])&&(h=w,d=d.replace(h,""))}else if(E.test(d)){var b=E.exec(d);v=b[1],E=S,E.test(v)&&(d=v,E=Q,z=N,G=x,E.test(d)?d=d+"e":z.test(d)?(h=w,d=d.replace(h,"")):G.test(d)&&(d=d+"e"))}if(h=C,h.test(d)){var b=h.exec(d);v=b[1],d=v+"i"}if(h=D,h.test(d)){var b=h.exec(d);v=b[1],q=b[2],h=y,h.test(v)&&(d=v+t[q])}if(h=V,h.test(d)){var b=h.exec(d);v=b[1],q=b[2],h=y,h.test(v)&&(d=v+n[q])}if(h=ne,E=ce,h.test(d)){var b=h.exec(d);v=b[1],h=g,h.test(v)&&(d=v)}else if(E.test(d)){var b=E.exec(d);v=b[1]+b[2],E=g,E.test(v)&&(d=v)}if(h=j,h.test(d)){var b=h.exec(d);v=b[1],h=g,E=L,z=ue,(h.test(v)||E.test(v)&&!z.test(v))&&(d=v)}return h=le,E=g,h.test(d)&&E.test(d)&&(h=w,d=d.replace(h,"")),A=="y"&&(d=A.toLowerCase()+d.substr(1)),d};return function(W){return W.update(ie)}}(),e.Pipeline.registerFunction(e.stemmer,"stemmer");e.generateStopWordFilter=function(t){var n=t.reduce(function(i,r){return i[r]=r,i},{});return function(i){if(i&&n[i.toString()]!==i.toString())return i}},e.stopWordFilter=e.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter");e.trimmer=function(t){return t.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},e.Pipeline.registerFunction(e.trimmer,"trimmer");e.TokenSet=function(){this.final=!1,this.edges={},this.id=e.TokenSet._nextId,e.TokenSet._nextId+=1},e.TokenSet._nextId=1,e.TokenSet.fromArray=function(t){for(var n=new e.TokenSet.Builder,i=0,r=t.length;i<r;i++)n.insert(t[i]);return n.finish(),n.root},e.TokenSet.fromClause=function(t){return"editDistance"in t?e.TokenSet.fromFuzzyString(t.term,t.editDistance):e.TokenSet.fromString(t.term)},e.TokenSet.fromFuzzyString=function(t,n){for(var i=new e.TokenSet,r=[{node:i,editsRemaining:n,str:t}];r.length;){var s=r.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new e.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),r.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),r.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&r.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),r.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var f=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new e.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),r.push({node:g,editsRemaining:s.editsRemaining-1,str:f+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var n=new e.TokenSet,i=n,r=0,s=t.length;r<s;r++){var o=t[r],a=r==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var u=new e.TokenSet;u.final=a,n.edges[o]=u,n=u}}return i},e.TokenSet.prototype.toArray=function(){for(var t=[],n=[{prefix:"",node:this}];n.length;){var i=n.pop(),r=Object.keys(i.node.edges),s=r.length;i.node.final&&(i.prefix.charAt(0),t.push(i.prefix));for(var o=0;o<s;o++){var a=r[o];n.push({prefix:i.prefix.concat(a),node:i.node.edges[a]})}}return t},e.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var t=this.final?"1":"0",n=Object.keys(this.edges).sort(),i=n.length,r=0;r<i;r++){var s=n[r],o=this.edges[s];t=t+s+o.id}return t},e.TokenSet.prototype.intersect=function(t){for(var n=new e.TokenSet,i=void 0,r=[{qNode:t,output:n,node:this}];r.length;){i=r.pop();for(var s=Object.keys(i.qNode.edges),o=s.length,a=Object.keys(i.node.edges),u=a.length,l=0;l<o;l++)for(var f=s[l],y=0;y<u;y++){var g=a[y];if(g==f||f=="*"){var L=i.node.edges[g],S=i.qNode.edges[f],T=L.final&&S.final,m=void 0;g in i.output.edges?(m=i.output.edges[g],m.final=m.final||T):(m=new e.TokenSet,m.final=T,i.output.edges[g]=m),r.push({qNode:S,output:m,node:L})}}}return n},e.TokenSet.Builder=function(){this.previousWord="",this.root=new e.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},e.TokenSet.Builder.prototype.insert=function(t){var n,i=0;if(t<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<t.length&&r<this.previousWord.length&&t[r]==this.previousWord[r];r++)i++;this.minimize(i),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var r=i;r<t.length;r++){var s=new e.TokenSet,o=t[r];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=t},e.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},e.TokenSet.Builder.prototype.minimize=function(t){for(var n=this.uncheckedNodes.length-1;n>=t;n--){var i=this.uncheckedNodes[n],r=i.child.toString();r in this.minimizedNodes?i.parent.edges[i.char]=this.minimizedNodes[r]:(i.child._str=r,this.minimizedNodes[r]=i.child),this.uncheckedNodes.pop()}};e.Index=function(t){this.invertedIndex=t.invertedIndex,this.fieldVectors=t.fieldVectors,this.tokenSet=t.tokenSet,this.fields=t.fields,this.pipeline=t.pipeline},e.Index.prototype.search=function(t){return this.query(function(n){var i=new e.QueryParser(t,n);i.parse()})},e.Index.prototype.query=function(t){for(var n=new e.Query(this.fields),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)r[this.fields[u]]=new e.Vector;t.call(n,n);for(var u=0;u<n.clauses.length;u++){var l=n.clauses[u],f=null,y=e.Set.empty;l.usePipeline?f=this.pipeline.runString(l.term,{fields:l.fields}):f=[l.term];for(var g=0;g<f.length;g++){var L=f[g];l.term=L;var S=e.TokenSet.fromClause(l),T=this.tokenSet.intersect(S).toArray();if(T.length===0&&l.presence===e.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){var p=l.fields[m];o[p]=e.Set.empty}break}for(var _=0;_<T.length;_++)for(var w=T[_],Q=this.invertedIndex[w],N=Q._index,m=0;m<l.fields.length;m++){var p=l.fields[m],x=Q[p],C=Object.keys(x),D=w+"/"+p,V=new e.Set(C);if(l.presence==e.Query.presence.REQUIRED&&(y=y.union(V),o[p]===void 0&&(o[p]=e.Set.complete)),l.presence==e.Query.presence.PROHIBITED){a[p]===void 0&&(a[p]=e.Set.empty),a[p]=a[p].union(V);continue}if(r[p].upsert(N,l.boost,function(On,In){return On+In}),!s[D]){for(var ne=0;ne<C.length;ne++){var ce=C[ne],j=new e.FieldRef(ce,p),le=x[ce],ue;(ue=i[j])===void 0?i[j]=new e.MatchData(w,p,le):ue.add(w,p,le)}s[D]=!0}}}if(l.presence===e.Query.presence.REQUIRED)for(var m=0;m<l.fields.length;m++){var p=l.fields[m];o[p]=o[p].intersect(y)}}for(var ie=e.Set.complete,W=e.Set.empty,u=0;u<this.fields.length;u++){var p=this.fields[u];o[p]&&(ie=ie.intersect(o[p])),a[p]&&(W=W.union(a[p]))}var d=Object.keys(i),v=[],q=Object.create(null);if(n.isNegated()){d=Object.keys(this.fieldVectors);for(var u=0;u<d.length;u++){var j=d[u],A=e.FieldRef.fromString(j);i[j]=new e.MatchData}}for(var u=0;u<d.length;u++){var A=e.FieldRef.fromString(d[u]),h=A.docRef;if(!!ie.contains(h)&&!W.contains(h)){var E=this.fieldVectors[A],z=r[A.fieldName].similarity(E),G;if((G=q[h])!==void 0)G.score+=z,G.matchData.combine(i[A]);else{var b={ref:h,score:z,matchData:i[A]};q[h]=b,v.push(b)}}}return v.sort(function(kn,_n){return _n.score-kn.score})},e.Index.prototype.toJSON=function(){var t=Object.keys(this.invertedIndex).sort().map(function(i){return[i,this.invertedIndex[i]]},this),n=Object.keys(this.fieldVectors).map(function(i){return[i,this.fieldVectors[i].toJSON()]},this);return{version:e.version,fields:this.fields,fieldVectors:n,invertedIndex:t,pipeline:this.pipeline.toJSON()}},e.Index.load=function(t){var n={},i={},r=t.fieldVectors,s=Object.create(null),o=t.invertedIndex,a=new e.TokenSet.Builder,u=e.Pipeline.load(t.pipeline);t.version!=e.version&&e.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+e.version+"' does not match serialized index '"+t.version+"'");for(var l=0;l<r.length;l++){var f=r[l],y=f[0],g=f[1];i[y]=new e.Vector(g)}for(var l=0;l<o.length;l++){var f=o[l],L=f[0],S=f[1];a.insert(L),s[L]=S}return a.finish(),n.fields=t.fields,n.fieldVectors=i,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=u,new e.Index(n)};e.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=e.tokenizer,this.pipeline=new e.Pipeline,this.searchPipeline=new e.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},e.Builder.prototype.ref=function(t){this._ref=t},e.Builder.prototype.field=function(t,n){if(/\//.test(t))throw new RangeError("Field '"+t+"' contains illegal character '/'");this._fields[t]=n||{}},e.Builder.prototype.b=function(t){t<0?this._b=0:t>1?this._b=1:this._b=t},e.Builder.prototype.k1=function(t){this._k1=t},e.Builder.prototype.add=function(t,n){var i=t[this._ref],r=Object.keys(this._fields);this._documents[i]=n||{},this.documentCount+=1;for(var s=0;s<r.length;s++){var o=r[s],a=this._fields[o].extractor,u=a?a(t):t[o],l=this.tokenizer(u,{fields:[o]}),f=this.pipeline.run(l),y=new e.FieldRef(i,o),g=Object.create(null);this.fieldTermFrequencies[y]=g,this.fieldLengths[y]=0,this.fieldLengths[y]+=f.length;for(var L=0;L<f.length;L++){var S=f[L];if(g[S]==null&&(g[S]=0),g[S]+=1,this.invertedIndex[S]==null){var T=Object.create(null);T._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)T[r[m]]=Object.create(null);this.invertedIndex[S]=T}this.invertedIndex[S][o][i]==null&&(this.invertedIndex[S][o][i]=Object.create(null));for(var p=0;p<this.metadataWhitelist.length;p++){var _=this.metadataWhitelist[p],w=S.metadata[_];this.invertedIndex[S][o][i][_]==null&&(this.invertedIndex[S][o][i][_]=[]),this.invertedIndex[S][o][i][_].push(w)}}}},e.Builder.prototype.calculateAverageFieldLengths=function(){for(var t=Object.keys(this.fieldLengths),n=t.length,i={},r={},s=0;s<n;s++){var o=e.FieldRef.fromString(t[s]),a=o.fieldName;r[a]||(r[a]=0),r[a]+=1,i[a]||(i[a]=0),i[a]+=this.fieldLengths[o]}for(var u=Object.keys(this._fields),s=0;s<u.length;s++){var l=u[s];i[l]=i[l]/r[l]}this.averageFieldLength=i},e.Builder.prototype.createFieldVectors=function(){for(var t={},n=Object.keys(this.fieldTermFrequencies),i=n.length,r=Object.create(null),s=0;s<i;s++){for(var o=e.FieldRef.fromString(n[s]),a=o.fieldName,u=this.fieldLengths[o],l=new e.Vector,f=this.fieldTermFrequencies[o],y=Object.keys(f),g=y.length,L=this._fields[a].boost||1,S=this._documents[o.docRef].boost||1,T=0;T<g;T++){var m=y[T],p=f[m],_=this.invertedIndex[m]._index,w,Q,N;r[m]===void 0?(w=e.idf(this.invertedIndex[m],this.documentCount),r[m]=w):w=r[m],Q=w*((this._k1+1)*p)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+p),Q*=L,Q*=S,N=Math.round(Q*1e3)/1e3,l.insert(_,N)}t[o]=l}this.fieldVectors=t},e.Builder.prototype.createTokenSet=function(){this.tokenSet=e.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},e.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new e.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},e.Builder.prototype.use=function(t){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),t.apply(this,n)},e.MatchData=function(t,n,i){for(var r=Object.create(null),s=Object.keys(i||{}),o=0;o<s.length;o++){var a=s[o];r[a]=i[a].slice()}this.metadata=Object.create(null),t!==void 0&&(this.metadata[t]=Object.create(null),this.metadata[t][n]=r)},e.MatchData.prototype.combine=function(t){for(var n=Object.keys(t.metadata),i=0;i<n.length;i++){var r=n[i],s=Object.keys(t.metadata[r]);this.metadata[r]==null&&(this.metadata[r]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],u=Object.keys(t.metadata[r][a]);this.metadata[r][a]==null&&(this.metadata[r][a]=Object.create(null));for(var l=0;l<u.length;l++){var f=u[l];this.metadata[r][a][f]==null?this.metadata[r][a][f]=t.metadata[r][a][f]:this.metadata[r][a][f]=this.metadata[r][a][f].concat(t.metadata[r][a][f])}}}},e.MatchData.prototype.add=function(t,n,i){if(!(t in this.metadata)){this.metadata[t]=Object.create(null),this.metadata[t][n]=i;return}if(!(n in this.metadata[t])){this.metadata[t][n]=i;return}for(var r=Object.keys(i),s=0;s<r.length;s++){var o=r[s];o in this.metadata[t][n]?this.metadata[t][n][o]=this.metadata[t][n][o].concat(i[o]):this.metadata[t][n][o]=i[o]}},e.Query=function(t){this.clauses=[],this.allFields=t},e.Query.wildcard=new String("*"),e.Query.wildcard.NONE=0,e.Query.wildcard.LEADING=1,e.Query.wildcard.TRAILING=2,e.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},e.Query.prototype.clause=function(t){return"fields"in t||(t.fields=this.allFields),"boost"in t||(t.boost=1),"usePipeline"in t||(t.usePipeline=!0),"wildcard"in t||(t.wildcard=e.Query.wildcard.NONE),t.wildcard&e.Query.wildcard.LEADING&&t.term.charAt(0)!=e.Query.wildcard&&(t.term="*"+t.term),t.wildcard&e.Query.wildcard.TRAILING&&t.term.slice(-1)!=e.Query.wildcard&&(t.term=""+t.term+"*"),"presence"in t||(t.presence=e.Query.presence.OPTIONAL),this.clauses.push(t),this},e.Query.prototype.isNegated=function(){for(var t=0;t<this.clauses.length;t++)if(this.clauses[t].presence!=e.Query.presence.PROHIBITED)return!1;return!0},e.Query.prototype.term=function(t,n){if(Array.isArray(t))return t.forEach(function(r){this.term(r,e.utils.clone(n))},this),this;var i=n||{};return i.term=t.toString(),this.clause(i),this},e.QueryParseError=function(t,n,i){this.name="QueryParseError",this.message=t,this.start=n,this.end=i},e.QueryParseError.prototype=new Error,e.QueryLexer=function(t){this.lexemes=[],this.str=t,this.length=t.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},e.QueryLexer.prototype.run=function(){for(var t=e.QueryLexer.lexText;t;)t=t(this)},e.QueryLexer.prototype.sliceString=function(){for(var t=[],n=this.start,i=this.pos,r=0;r<this.escapeCharPositions.length;r++)i=this.escapeCharPositions[r],t.push(this.str.slice(n,i)),n=i+1;return t.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,t.join("")},e.QueryLexer.prototype.emit=function(t){this.lexemes.push({type:t,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},e.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},e.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,n;do t=this.next(),n=t.charCodeAt(0);while(n>47&&n<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos<this.length},e.QueryLexer.EOS="EOS",e.QueryLexer.FIELD="FIELD",e.QueryLexer.TERM="TERM",e.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",e.QueryLexer.BOOST="BOOST",e.QueryLexer.PRESENCE="PRESENCE",e.QueryLexer.lexField=function(t){return t.backup(),t.emit(e.QueryLexer.FIELD),t.ignore(),e.QueryLexer.lexText},e.QueryLexer.lexTerm=function(t){if(t.width()>1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var n=t.next();if(n==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){t.escapeCharacter();continue}if(n==":")return e.QueryLexer.lexField;if(n=="~")return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if(n=="^")return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if(n=="+"&&t.width()===1||n=="-"&&t.width()===1)return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(n.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}},e.QueryParser=function(t,n){this.lexer=new e.QueryLexer(t),this.query=n,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var t=this.peekLexeme();return this.lexemeIdx+=1,t},e.QueryParser.prototype.nextClause=function(){var t=this.currentClause;this.query.clause(t),this.currentClause={}},e.QueryParser.parseClause=function(t){var n=t.peekLexeme();if(n!=null)switch(n.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(i+=" with value '"+n.str+"'"),new e.QueryParseError(i,n.start,n.end)}},e.QueryParser.parsePresence=function(t){var n=t.consumeLexeme();if(n!=null){switch(n.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+n.str+"'";throw new e.QueryParseError(i,n.start,n.end)}var r=t.peekLexeme();if(r==null){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,n.start,n.end)}switch(r.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+r.type+"'";throw new e.QueryParseError(i,r.start,r.end)}}},e.QueryParser.parseField=function(t){var n=t.consumeLexeme();if(n!=null){if(t.query.allFields.indexOf(n.str)==-1){var i=t.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),r="unrecognised field '"+n.str+"', possible fields: "+i;throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.fields=[n.str];var s=t.peekLexeme();if(s==null){var r="expecting term, found nothing";throw new e.QueryParseError(r,n.start,n.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var r="expecting term, found '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var n=t.consumeLexeme();if(n!=null){t.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(i==null){t.nextClause();return}switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(r,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var n=t.consumeLexeme();if(n!=null){var i=parseInt(n.str,10);if(isNaN(i)){var r="edit distance must be numeric";throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(s==null){t.nextClause();return}switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var n=t.consumeLexeme();if(n!=null){var i=parseInt(n.str,10);if(isNaN(i)){var r="boost must be numeric";throw new e.QueryParseError(r,n.start,n.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(s==null){t.nextClause();return}switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(r,s.start,s.end)}}},function(t,n){typeof define=="function"&&define.amd?define(n):typeof Mt=="object"?Bt.exports=n():t.lunr=n()}(this,function(){return e})})()});Handlebars.registerHelper("groupChanged",function(e,t,n){let i=t||"";if(e.group!==i)return delete e.nestedContext,e.group=i,n.fn(this)});Handlebars.registerHelper("nestingChanged",function(e,t,n){if(t.nested_context&&t.nested_context!==e.nestedContext){if(e.nestedContext=t.nested_context,e.lastModuleSeenInGroup!==t.nested_context)return n.fn(this)}else e.lastModuleSeenInGroup=t.title});Handlebars.registerHelper("showSections",function(e,t){if(e.sections.length>0)return t.fn(this)});Handlebars.registerHelper("showSummary",function(e,t){if(e.nodeGroups)return t.fn(this)});Handlebars.registerHelper("isArray",function(e,t){return Array.isArray(e)?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isNonEmptyArray",function(e,t){return Array.isArray(e)&&e.length>0?t.fn(this):t.inverse(this)});Handlebars.registerHelper("isLocal",function(e,t){let n=window.location.pathname.split("/").pop();return e+".html"===n?t.fn(this):t.inverse(this)});var c=document.querySelector.bind(document),k=document.querySelectorAll.bind(document);function nt(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function de(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function re(){return document.body.dataset.type}function it(e,t){if(!!e){for(let n of e){let i=n.nodeGroups&&n.nodeGroups.find(r=>r.nodes.some(s=>s.anchor===t));if(i)return i.key}return null}}function fe(){return window.location.hash.replace(/^#/,"")}function rt(e){return new URLSearchParams(window.location.search).get(e)}function st(e){return fetch(e).then(t=>t.ok).catch(()=>!1)}function ot(e){document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)}function K(e){return!e||e.trim()===""}function at(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)}}function he(){return document.head.querySelector("meta[name=project][content]").content}var ct="ex_doc:settings",Dn={tooltips:!0,theme:null,livebookUrl:null},we=class{constructor(){this._subscribers=[],this._settings=Dn,this._loadSettings()}get(){return this._settings}update(t){let n=this._settings;this._settings={...this._settings,...t},this._subscribers.forEach(i=>i(this._settings,n)),this._storeSettings()}getAndSubscribe(t){this._subscribers.push(t),t(this._settings)}_loadSettings(){try{let t=localStorage.getItem(ct);if(t){let n=JSON.parse(t);this._settings={...this._settings,...n}}this._loadSettingsLegacy()}catch(t){console.error(`Failed to load settings: ${t}`)}}_storeSettings(){try{this._storeSettingsLegacy(),localStorage.setItem(ct,JSON.stringify(this._settings))}catch(t){console.error(`Failed to persist settings: ${t}`)}}_loadSettingsLegacy(){localStorage.getItem("tooltipsDisabled")!==null&&(this._settings={...this._settings,tooltips:!1}),localStorage.getItem("night-mode")==="true"&&(this._settings={...this._settings,nightMode:!0}),this._settings.nightMode===!0&&(this._settings={...this._settings,theme:"dark"})}_storeSettingsLegacy(){this._settings.tooltips?localStorage.removeItem("tooltipsDisabled"):localStorage.setItem("tooltipsDisabled","true"),this._settings.nightMode!==null?localStorage.setItem("night-mode",this._settings.nightMode===!0?"true":"false"):localStorage.removeItem("night-mode"),this._settings.theme!==null?(localStorage.setItem("night-mode",this._settings.theme==="dark"?"true":"false"),this._settings.nightMode=this._settings.theme==="dark"):(delete this._settings.nightMode,localStorage.removeItem("night-mode"))}},O=new we;var Hn=".content",lt=".content-inner",Fn=".livebook-badge";function ut(){Mn(),Vn(),jn(),Bn()}function Mn(){c(Hn).querySelectorAll("a").forEach(e=>{e.querySelector("code, img")&&e.classList.add("no-underline")})}function Bn(){["warning","info","error","neutral","tip"].forEach(t=>{k(`blockquote h3.${t}, blockquote h4.${t}`).forEach(n=>{n.closest("blockquote").classList.add(t)})})}function Vn(){c(lt).setAttribute("tabindex",-1),c(lt).focus()}function jn(){let t=window.location.pathname.replace(/\.html$/,".livemd"),n=new URL(t,window.location.href).toString();O.getAndSubscribe(i=>{let r=i.livebookUrl?zn(i.livebookUrl,n):qn(n);for(let s of k(Fn))s.href=r})}function qn(e){return`https://livebook.dev/run?url=${encodeURIComponent(e)}`}function zn(e,t){return`${e}/import?url=${encodeURIComponent(t)}`}var gt=tt(mt());var ci=768,yt=300,li=".sidebar-toggle",ui=".content",H={CLOSED:"closed",OPEN:"open",NO_PREF:"no_pref"},F={opened:"sidebar-opened",opening:"sidebar-opening",closed:"sidebar-closed",closing:"sidebar-closing"},di=Object.values(F),P={togglingTimeout:null,lastWindowWidth:window.innerWidth,sidebarPreference:H.NO_PREF};function vt(){St(),fi()}function St(){if(sessionStorage.getItem("sidebar_state")==="closed")return Y(F.closed);Y(xt()?F.closed:F.opened)}function xt(){return window.matchMedia(`screen and (max-width: ${ci}px)`).matches}function Y(...e){document.body.classList.remove(...di),document.body.classList.add(...e)}function fi(){c(li).addEventListener("click",e=>{_e(),mi()}),c(ui).addEventListener("click",e=>{pi()}),window.addEventListener("resize",(0,gt.default)(e=>{hi()},100))}function _e(){return Oe()?Et():Ie()}function Oe(){return document.body.classList.contains(F.opened)||document.body.classList.contains(F.opening)}function Ie(){return bt(),Y(F.opening),sessionStorage.setItem("sidebar_state","opened"),new Promise((e,t)=>{P.togglingTimeout=setTimeout(()=>{Y(F.opened),e()},yt)})}function Et(){return bt(),Y(F.closing),sessionStorage.setItem("sidebar_state","closed"),new Promise((e,t)=>{P.togglingTimeout=setTimeout(()=>{Y(F.closed),e()},yt)})}function bt(){P.togglingTimeout&&(clearTimeout(P.togglingTimeout),P.togglingTimeout=null)}function hi(){P.lastWindowWidth!==window.innerWidth&&(P.lastWindowWidth=window.innerWidth,(P.sidebarPreference===H.OPEN||P.sidebarPreference===H.NO_PREF)&&St())}function pi(){xt()&&Oe()&&Et()}function mi(){switch(P.sidebarPreference){case H.OPEN:P.sidebarPreference=H.CLOSED;break;case H.CLOSED:P.sidebarPreference=H.OPEN;break;case H.NO_PREF:Oe()?P.sidebarPreference=H.OPEN:P.sidebarPreference=H.CLOSED}}function J(){return window.sidebarNodes||{}}function Lt(){return window.versionNodes||[]}var Ce={search:"search",extras:"extras",modules:"modules",tasks:"tasks"},Tt=[Ce.extras,Ce.modules,Ce.tasks],me="#full-list";function wt(){kt(J(),re()),Ot(),_t(),yi()}function kt(e,t){let n=e[t]||[],i=c(me),r=Handlebars.templates["sidebar-items"]({nodes:n,group:""});i.innerHTML=r,gi(t),i.querySelectorAll("ul").forEach(s=>{if(s.innerHTML.trim()===""){let o=s.previousElementSibling;o.classList.contains("expand")&&o.classList.remove("expand")}}),i.querySelectorAll("li a").forEach(s=>{s.addEventListener("click",o=>{let a=o.target,u=a.closest("li"),l=i.querySelector(".current-section");if(a.matches(".icon-expand")){o.preventDefault(),u.classList.toggle("open");return}l&&l.classList.remove("current-section"),s.matches(".expand")&&s.pathname===window.location.pathname&&u.classList.add("open")})})}function gi(e){Tt.forEach(t=>{let n=c(`#${t}-list-link`);n&&n.parentElement.classList.toggle("selected",t===e)})}function _t(){let e=c(me),t=e.querySelector("li.current-page");t&&(t.scrollIntoView(),e.scrollTop-=40)}function Ot(){let e=fe()||"content",n=J()[re()]||[],i=it(n,e),r=c(me),s=r.querySelector(`li.current-page a.expand[href$="#${i}"]`);s&&s.closest("li").classList.add("open");let o=r.querySelector(`li.current-page a[href$="#${e}"]`);if(o){let a=o.closest("ul");a.classList.contains("deflist")&&a.closest("li").classList.add("current-section"),o.closest("li").classList.add("current-hash")}}function yi(){Tt.forEach(e=>{let t=c(`#${e}-list-link`);t&&t.addEventListener("click",n=>{n.preventDefault(),kt(J(),e),_t()})}),window.addEventListener("hashchange",e=>{let n=c(me).querySelector("li.current-page li.current-hash");n&&n.classList.remove("current-hash"),Ot()})}var $={module:"module",moduleChild:"module-child",mixTask:"mix-task",extra:"extra"};function Ct(e,t=5){if(K(e))return[];let n=J(),i=[...Pe(n.modules,e,$.module),...vi(n.modules,e,$.moduleChild),...Pe(n.tasks,e,$.mixTask),...Pe(n.extras,e,$.extra)];return Li(i).slice(0,t)}function Pe(e,t,n){return e.map(i=>Si(i,t,n)).filter(i=>i!==null)}function vi(e,t,n){return e.filter(i=>i.nodeGroups).flatMap(i=>i.nodeGroups.flatMap(({key:r,nodes:s})=>{let o=bi(r);return s.map(a=>xi(a,i.id,t,n,o)||Ei(a,i.id,t,n,o))})).filter(i=>i!==null)}function Si(e,t,n){return Re(e.title,t)?{link:`${e.id}.html`,title:Qe(e.title,t),label:null,description:null,matchQuality:Ae(e.title,t),category:n}:null}function xi(e,t,n,i,r){return Re(e.id,n)?{link:`${t}.html#${e.anchor}`,title:Qe(e.id,n),label:r,description:t,matchQuality:Ae(e.id,n),category:i}:null}function Ei(e,t,n,i,r){let s=`${t}.${e.id}`;if(!Re(s,n))return null;let o=n.replace(/\./g," ");return Ti(e.id,o)?{link:`${t}.html#${e.anchor}`,title:Qe(e.id,o),label:r,description:t,matchQuality:Ae(s,n),category:i}:null}function bi(e){switch(e){case"callbacks":return"callback";case"types":return"type";default:return null}}function Li(e){return e.slice().sort((t,n)=>t.matchQuality!==n.matchQuality?n.matchQuality-t.matchQuality:It(t.category)-It(n.category))}function It(e){switch(e){case $.module:return 1;case $.moduleChild:return 2;case $.mixTask:return 3;default:return 4}}function Ti(e,t){return ye(t).some(i=>Pt(e,i))}function Re(e,t){return ye(t).every(i=>Pt(e,i))}function Pt(e,t){return e.toLowerCase().includes(t.toLowerCase())}function Ae(e,t){let n=ye(t),r=n.map(o=>o.length).reduce((o,a)=>o+a,0)/e.length,s=wi(e,n[0])?1:0;return r+s}function wi(e,t){return e.toLowerCase().startsWith(t.toLowerCase())}function ye(e){return e.trim().split(/\s+/)}function Qe(e,t){let n=ye(t).sort((i,r)=>r.length-i.length);return ge(e,n)}function ge(e,t){if(t.length===0)return e;let[n,...i]=t,r=e.match(new RegExp(`(.*)(${nt(n)})(.*)`,"i"));if(r){let[,s,o,a]=r;return ge(s,t)+"<em>"+de(o)+"</em>"+ge(a,t)}else return ge(e,i)}var X=".autocomplete",ve=".autocomplete-suggestion",M={autocompleteSuggestions:[],selectedIdx:-1};function ki(){c(X).classList.add("shown")}function Ne(){c(X).classList.remove("shown")}function Rt(){return c(X).classList.contains("shown")}function De(e){M.autocompleteSuggestions=Ct(e),M.selectedIdx=-1,K(e)?Ne():(_i({term:e,suggestions:M.autocompleteSuggestions}),Se(0),ki())}function _i({term:e,suggestions:t}){let n=Handlebars.templates["autocomplete-suggestions"]({suggestions:t,term:e}),i=c(X);i.innerHTML=n}function At(){return M.selectedIdx===-1?null:M.autocompleteSuggestions[M.selectedIdx]}function Se(e){M.selectedIdx=Oi(e);let t=c(`${ve}.selected`),n=c(`${ve}[data-index="${M.selectedIdx}"]`);t&&t.classList.remove("selected"),n&&n.classList.add("selected")}function Oi(e){let t=M.autocompleteSuggestions.length+1;return(M.selectedIdx+e+1+t)%t-1}var se="form.sidebar-search input",Ii="form.sidebar-search .search-close-button";function Qt(){Ci()}function Nt(e){let t=c(se);t.value=e}function Dt(){c(se).focus()}function Ci(){let e=c(se);e.addEventListener("keydown",t=>{t.key==="Escape"?(xe(),e.blur()):t.key==="Enter"?Pi(t):t.key==="ArrowUp"?(Se(-1),t.preventDefault()):t.key==="ArrowDown"&&(Se(1),t.preventDefault())}),e.addEventListener("input",t=>{De(t.target.value)}),e.addEventListener("focus",t=>{document.body.classList.add("search-focused"),De(t.target.value)}),e.addEventListener("blur",t=>{let n=t.relatedTarget;if(n){if(n.matches(ve))return setTimeout(()=>{Rt()&&e.focus()},1e3),null;n.matches(Ii)&&xe()}He()}),c(X).addEventListener("click",t=>{t.shiftKey||t.ctrlKey?e.focus():(xe(),He())})}function Pi(e){let t=c(se),n=e.shiftKey||e.ctrlKey,i=At();e.preventDefault();let r=n?"_blank":"_self",s=document.createElement("a");s.setAttribute("target",r),i?s.setAttribute("href",i.link):s.setAttribute("href",`search.html?q=${encodeURIComponent(t.value)}`),s.click(),n||(xe(),He())}function xe(){let e=c(se);e.value=""}function He(){document.body.classList.remove("search-focused"),Ne()}var Ht=".sidebar-projectVersion",Ri=".sidebar-projectVersionsDropdown";function Ft(){let e=Lt();if(e.length>0){let n=c(Ht).textContent.trim(),i=Qi(e,n);Ai({nodes:i})}}function Ai({nodes:e}){let t=c(Ht),n=Handlebars.templates["versions-dropdown"]({nodes:e});t.innerHTML=n,c(Ri).addEventListener("change",Di)}function Qi(e,t){return Ni(e,t).map(i=>({...i,isCurrentVersion:i.version===t}))}function Ni(e,t){return e.some(i=>i.version===t)?e:[{version:t,url:"#"},...e]}function Di(e){let t=e.target.value,n=window.location.pathname.split("/").pop()+window.location.hash,i=`${t}/${n}`;st(i).then(r=>{r?window.location.href=i:window.location.href=t})}var I=tt(Vt());var Ee=80,Hi="#search";function qt(){if(window.location.pathname.endsWith("/search.html")){let e=rt("q");Fi(e)}}function Fi(e){if(K(e))Fe({value:e});else{Nt(e);let t=Mi();try{let n=Ui(t.search(e));Fe({value:e,results:n})}catch(n){Fe({value:e,errorMessage:n.message})}}}function Fe({value:e,results:t,errorMessage:n}){let i=c(Hi),r=Handlebars.templates["search-results"]({value:e,results:t,errorMessage:n});i.innerHTML=r}function Mi(){I.default.QueryLexer.termSeparator=/\s+/,I.default.Pipeline.registerFunction(Me,"elixirTokenSplitter"),I.default.Pipeline.registerFunction(Be,"elixirTrimmer"),I.default.Pipeline.registerFunction(Ve,"hyphenSearch");let e=Bi();if(e)return e;let t=ji();return Vi(t),t}function Bi(){try{let e=sessionStorage.getItem(zt());return e?I.default.Index.load(JSON.parse(e)):null}catch(e){return console.error("Failed to load index: ",e),null}}function Vi(e){try{let t=JSON.stringify(e);sessionStorage.setItem(zt(),t)}catch(t){console.error("Failed to save index: ",t)}}function zt(){return`index:${he()}`}function ji(){return(0,I.default)(function(){this.tokenizer.separator=/\s+/,this.ref("ref"),this.field("title",{boost:3}),this.field("doc"),this.metadataWhitelist=["position"],this.pipeline.remove(I.default.stopWordFilter),this.use($i),this.use(qi),this.pipeline.remove(I.default.trimmer),this.use(zi),searchNodes.forEach(e=>{this.add(e)})})}function qi(e){e.pipeline.before(I.default.stemmer,Me),e.searchPipeline.before(I.default.stemmer,Me)}function Me(e){let t=e.toString().split(/\.|\/|_/).map(n=>e.clone().update(()=>n));return t.length>1?[...t,e]:t}function zi(e){e.pipeline.after(I.default.stemmer,Be),e.searchPipeline.after(I.default.stemmer,Be)}function Be(e){return e.update(function(t){return t.replace(/^@?\W+/,"").replace(/\W+$/,"")})}function Ve(e){if(e.toString().indexOf("-")<0)return e;let n=[];return n.push(e.clone(function(i){return i.replace("-","")})),n.push(e),n}function $i(e){e.pipeline.before(I.default.stemmer,Ve),e.searchPipeline.before(I.default.stemmer,Ve)}function Ui(e){return e.filter(t=>jt(t.ref)).map(t=>{let n=jt(t.ref),i=t.matchData.metadata;return{...n,metadata:i,excerpts:Wi(n,i)}})}function jt(e){return searchNodes.find(t=>t.ref===e)||null}function Wi(e,t){let{doc:n}=e,r=Object.keys(t).filter(s=>"doc"in t[s]).map(s=>t[s].doc.position.map(([o,a])=>Gi(n,o,a))).reduce((s,o)=>s.concat(o),[]);return r.length===0?[n.slice(0,Ee*2)+(Ee*2<n.length?"...":"")]:r.slice(0,1)}function Gi(e,t,n){let i=Math.max(t-Ee,0),r=Math.min(t+n+Ee,e.length);return[i>0?"...":"",e.slice(i,t),"<em>"+de(e.slice(t,t+n))+"</em>",e.slice(t+n,r),r<e.length?"...":""].join("")}var be=null,Z=document.getElementById("toast");Z.addEventListener("click",e=>{clearTimeout(be),e.target.classList.remove("show")});function je(e){Z&&(clearTimeout(be),Z.innerText=e,Z.classList.add("show"),be=setTimeout(()=>{Z.classList.remove("show"),be=setTimeout(function(){Z.innerText=""},1e3)},5e3))}var $t="dark",qe=["system","dark","light"];function Ut(){O.getAndSubscribe(e=>{document.body.classList.toggle($t,Gt(e))}),Yi()}function Wt(){let t=O.get().theme||"system",n=qe[qe.indexOf(t)+1]||qe[0];O.update({theme:n}),je(`Set theme to "${n}"`)}function Gt(e){return e.theme==="dark"||Ki()&&(e.theme==null||e.theme==="system")}function Ki(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function Yi(){window.matchMedia("(prefers-color-scheme: dark)").addListener(e=>{let t=O.get(),n=Gt(t);(t.theme==null||t.theme==="system")&&(document.body.classList.toggle($t,n),je(`Browser changed theme to "${n?"dark":"light"}"`))})}var Ji="hll";function Yt(){Xi()}function Xi(){k("[data-group-id]").forEach(t=>{let n=t.getAttribute("data-group-id");t.addEventListener("mouseenter",i=>{Kt(n,!0)}),t.addEventListener("mouseleave",i=>{Kt(n,!1)})})}function Kt(e,t){k(`[data-group-id="${e}"]`).forEach(i=>{i.classList.toggle(Ji,t)})}var ee="#modal",Zi="#modal .modal-close",er="#modal .modal-title",tr="#modal .modal-body",Jt='button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])',B={prevFocus:null,lastFocus:null,ignoreFocusChanges:!1};function Xt(){nr()}function nr(){let e=Handlebars.templates["modal-layout"]();document.body.insertAdjacentHTML("beforeend",e),c(ee).addEventListener("keydown",t=>{t.key==="Escape"&&oe()}),c(Zi).addEventListener("click",t=>{oe()})}function Zt(e){if(B.ignoreFocusChanges)return;let t=c(ee);if(t.contains(e.target))B.lastFocus=e.target;else{B.ignoreFocusChanges=!0;let n=ir(t);B.lastFocus===n?rr(t).focus():n.focus(),B.ignoreFocusChanges=!1,B.lastFocus=document.activeElement}}function ir(e){return e.querySelector(Jt)}function rr(e){let t=e.querySelectorAll(Jt);return t[t.length-1]}function Le({title:e,body:t}){B.prevFocus=document.activeElement,document.addEventListener("focus",Zt,!0),c(er).innerHTML=e,c(tr).innerHTML=t,c(ee).classList.add("shown"),c(ee).focus()}function oe(){c(ee).classList.remove("shown"),document.addEventListener("focus",Zt,!0),B.prevFocus&&B.prevFocus.focus(),B.prevFocus=null}function en(){return c(ee).classList.contains("shown")}var sr="https://hexdocs.pm/%%",or="https://hex.pm/api/packages?search=name:%%*",ar=".display-quick-switch",ze="#quick-switch-input",nn="#quick-switch-results",cr=".quick-switch-result",lr=300,ur=9,dr=["elixir","eex","ex_unit","hex","iex","logger","mix"].map(e=>({name:e})),rn=2,R={autocompleteResults:[],selectedIdx:null};function sn(){fr()}function fr(){k(ar).forEach(e=>{e.addEventListener("click",t=>{Ue()})})}function hr(e){if(e.key==="Enter"){let t=e.target.value;mr(t),e.preventDefault()}else e.key==="ArrowUp"?(tn(-1),e.preventDefault()):e.key==="ArrowDown"&&(tn(1),e.preventDefault())}function pr(e){let t=e.target.value;if(t.length<rn){let n=c(nn);n.innerHTML=""}else gr(t)}function Ue(){Le({title:"Search HexDocs package",body:Handlebars.templates["quick-switch-modal-body"]()}),c(ze).focus();let e=c(ze);e.addEventListener("keydown",hr),e.addEventListener("input",pr),R.autocompleteResults=[],R.selectedIdx=null}function mr(e){if(R.selectedIdx===null)$e(e);else{let t=R.autocompleteResults[R.selectedIdx];$e(t.name)}}function $e(e){window.location=sr.replace("%%",e.toLowerCase())}var gr=at(yr,lr);function yr(e){let t=or.replace("%%",e);fetch(t).then(n=>n.json()).then(n=>{Array.isArray(n)&&(R.autocompleteResults=Sr(e,n),R.selectedIdx=null,c(ze).value.length>=rn&&vr({results:R.autocompleteResults}))})}function vr({results:e}){let t=c(nn),n=Handlebars.templates["quick-switch-results"]({results:e});t.innerHTML=n,k(cr).forEach(i=>{i.addEventListener("click",r=>{let s=i.getAttribute("data-index"),o=R.autocompleteResults[s];$e(o.name)})})}function Sr(e,t){return dr.concat(t).filter(n=>n.name.toLowerCase().includes(e.toLowerCase())).filter(n=>n.releases===void 0||n.releases[0].has_docs===!0).slice(0,ur)}function tn(e){R.selectedIdx=xr(e);let t=c(".quick-switch-result.selected"),n=c(`.quick-switch-result[data-index="${R.selectedIdx}"]`);t&&t.classList.remove("selected"),n&&n.classList.add("selected")}function xr(e){let t=R.autocompleteResults.length;if(R.selectedIdx===null){if(e>=0)return 0;if(e<0)return t-1}return(R.selectedIdx+e+t)%t}var Er=".display-settings",br="#settings-modal-content",We="#modal-settings-tab",Ge="#modal-keyboard-shortcuts-tab",an="#settings-content",cn="#keyboard-shortcuts-content",Lr=[{title:"Settings",id:"modal-settings-tab"},{title:"Keyboard shortcuts",id:"modal-keyboard-shortcuts-tab"}];function ln(){Tr()}function Tr(){k(Er).forEach(e=>{e.addEventListener("click",t=>{Ke()})})}function on(){c(Ge).classList.remove("active"),c(We).classList.add("active"),c(an).classList.remove("hidden"),c(cn).classList.add("hidden")}function wr(){c(Ge).classList.add("active"),c(We).classList.remove("active"),c(cn).classList.remove("hidden"),c(an).classList.add("hidden")}function Ke(){Le({title:Lr.map(({id:s,title:o})=>`<button id="${s}">${o}</button>`).join(""),body:Handlebars.templates["settings-modal-body"]({shortcuts:Ye})});let e=c(br),t=e.querySelector('[name="theme"]'),n=e.querySelector('[name="tooltips"]'),i=e.querySelector('[name="direct_livebook_url"]'),r=e.querySelector('[name="livebook_url"]');O.getAndSubscribe(s=>{t.value=s.theme||"system",n.checked=s.tooltips,s.livebookUrl===null?(i.checked=!1,r.classList.add("hidden"),r.tabIndex=-1):(i.checked=!0,r.classList.remove("hidden"),r.tabIndex=0,r.value=s.livebookUrl)}),t.addEventListener("change",s=>{O.update({theme:s.target.value})}),n.addEventListener("change",s=>{O.update({tooltips:s.target.checked})}),i.addEventListener("change",s=>{let o=s.target.checked?r.value:null;O.update({livebookUrl:o})}),r.addEventListener("input",s=>{O.update({livebookUrl:s.target.value})}),c(We).addEventListener("click",s=>{on()}),c(Ge).addEventListener("click",s=>{wr()}),on()}var kr="#settings-modal-content",Ye=[{key:"c",description:"Toggle sidebar",action:_e},{key:"n",description:"Cycle themes",action:Wt},{key:"s",description:"Focus search bar",displayAs:"<kbd><kbd>/</kbd></kbd> or <kbd><kbd>s</kdb></kdb>",action:un},{key:"/",action:un},{key:"g",description:"Search HexDocs package",displayAs:"<kbd><kbd>g</kdb></kdb>",action:Ue},{key:"?",displayAs:"<kbd><kbd>?</kbd></kbd>",description:"Bring up this modal",action:Cr}],Je={shortcutBeingPressed:null};function dn(){_r()}function _r(){document.addEventListener("keydown",Or),document.addEventListener("keyup",Ir)}function Or(e){if(Je.shortcutBeingPressed||e.target.matches("input, textarea")||e.ctrlKey||e.metaKey||e.altKey)return;let t=Ye.find(n=>n.key===e.key);!t||(Je.shortcutBeingPressed=t,e.preventDefault(),t.action(e))}function Ir(e){Je.shortcutBeingPressed=null}function un(e){oe(),Ie().then(()=>{Dt()})}function Cr(){Pr()?oe():Ke()}function Pr(){return en()&&c(kr)}var U={plain:"plain",function:"function",module:"module"},Rr=[{href:"typespecs.html#basic-types",hint:{kind:U.plain,description:"Basic type"}},{href:"typespecs.html#literals",hint:{kind:U.plain,description:"Literal"}},{href:"typespecs.html#built-in-types",hint:{kind:U.plain,description:"Built-in type"}}],Te={cancelHintFetching:null};function fn(e){if(pn(e))return!0;let t=/#.*\//;return e.includes("#")&&!t.test(e)?!1:e.includes(".html")}function hn(e){let t=pn(e);return t?Promise.resolve(t):Ar(e)}function pn(e){let t=Rr.find(n=>e.includes(n.href));return t?t.hint:null}function Ar(e){let t=e.replace(".html",".html?hint=true");return new Promise((n,i)=>{let r=document.createElement("iframe");r.setAttribute("sandbox","allow-scripts allow-same-origin"),r.setAttribute("src",t),r.style.display="none";function s(a){let{href:u,hint:l}=a.data;t===u&&(o(),n(l))}Te.cancelHintFetching=()=>{o(),i(new Error("cancelled"))};function o(){r.remove(),window.removeEventListener("message",s),Te.cancelHintFetching=null}window.addEventListener("message",s),document.body.appendChild(r)})}function mn(){Te.cancelHintFetching&&Te.cancelHintFetching()}function gn(e){let n=e.querySelector("h1").textContent,i=e.querySelector(".docstring > p"),r=i?i.textContent:"";return{kind:U.function,title:n.trim(),description:r.trim()}}function yn(e){let n=e.querySelector("h1 > span").textContent,i=e.querySelector("#moduledoc p"),r=i?i.textContent:"";return{kind:U.module,title:n.trim(),description:r.trim()}}var Qr=".content a",Xe="#tooltip",Nr="#tooltip .tooltip-body",Sn="body .content-inner",Dr="#content",xn="tooltip-shown",ae=10,Hr=ae*4,vn={height:450,width:768},Fr=100,te={currentLinkElement:null,hoverDelayTimeout:null};function En(){Mr(),Br()}function Mr(){let e=Handlebars.templates["tooltip-layout"]();c(Sn).insertAdjacentHTML("beforeend",e)}function Br(){k(Qr).forEach(e=>{!Vr(e)||(e.addEventListener("mouseenter",t=>{qr(e)}),e.addEventListener("mouseleave",t=>{Wr(e)}))})}function Vr(e){return!(e.classList.contains("detail-link")||jr(e.href)||!fn(e.href))}function jr(e){let t=e.replace(Dr,"");return window.location.href.split("#")[0]===t}function qr(e){!zr()||(te.currentLinkElement=e,te.hoverDelayTimeout=setTimeout(()=>{hn(e.href).then(t=>{$r(t),Ur()}).catch(()=>{})},Fr))}function zr(){let e=window.innerWidth<vn.width||window.innerHeight<vn.height;return bn()&&!e}function $r(e){let t=Handlebars.templates["tooltip-body"]({isPlain:e.kind===U.plain,hint:e});c(Nr).innerHTML=t,Kr()}function Ur(){c(Xe).classList.add(xn)}function Wr(e){!bn()||(clearTimeout(te.hoverDelayTimeout),mn(),te.currentLinkElement=null,Gr())}function Gr(){c(Xe).classList.remove(xn)}function Kr(){if(!te.currentLinkElement)return;let e=c(Xe),t=te.currentLinkElement.getBoundingClientRect(),n=c(Sn).getBoundingClientRect(),i=e.getBoundingClientRect(),r=Yr(t,n);if(t.left+i.width+ae<window.innerWidth)e.style.left=`${r.left}px`,e.style.right="auto";else{let s=Math.max(r.right-i.width,ae);e.style.left=`${s}px`,e.style.right="auto"}t.bottom+i.height+Hr<window.innerHeight?e.style.top=`${r.bottom+ae}px`:e.style.top=`${r.top-i.height-ae}px`}function Yr(e,t){return{top:e.top-t.top,bottom:e.bottom-t.top,left:e.left-t.left,right:e.right-t.left,x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height}}function bn(){return O.get().tooltips}var Jr=".content-inner";function Tn(){if(Xr()){let e=es();e&&Zr(e)}}function Xr(){return new URLSearchParams(window.location.search).has("hint")&&window.self!==window.parent}function Zr(e){let t=window.location.href,n={hint:e,href:t};window.parent.postMessage(n,"*")}function es(){let e=ns(fe()),t=c(Jr);if(e){let n=gn(e);return Ln(n)}else if(ts()){let n=yn(t);return Ln(n)}return null}function Ln(e){let t=he();return{...e,version:t}}function ts(){return["modules","tasks"].includes(re())}function ns(e){if(!e)return null;let t=document.getElementById(e);return t?t.matches(".detail")?t:t.matches("span")?t.parentElement:null:null}var is='<button class="copy-button" aria-label="copy"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"><path d="M0 0h24v24H0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button>';function wn(){"clipboard"in navigator&&rs()}function rs(){Array.from(k("pre")).filter(e=>e.firstElementChild&&e.firstElementChild.tagName==="CODE").forEach(e=>e.insertAdjacentHTML("beforeend",is)),Array.from(k(".copy-button")).forEach(e=>{let t;e.addEventListener("click",()=>{t&&clearTimeout(t);let n=Array.from(e.parentElement.querySelector("code").childNodes).filter(i=>!(i.tagName==="SPAN"&&i.classList.contains("unselectable"))).map(i=>i.textContent).join("");navigator.clipboard.writeText(n),e.classList.add("clicked"),t=setTimeout(()=>e.classList.remove("clicked"),3e3)})})}ot(()=>{Ut(),vt(),wt(),Qt(),Ft(),ut(),Yt(),Xt(),dn(),sn(),En(),Tn(),qt(),wn(),ln()});})(); +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ diff --git a/.deps/ex_doc/formatters/html/dist/html-elixir-2YOS5DIE.css b/.deps/ex_doc/formatters/html/dist/html-elixir-2YOS5DIE.css @@ -0,0 +1,2 @@ +:root{--main: hsl(250, 68%, 69%);--main-darkened-10: hsl(250, 68%, 59%);--main-darkened-20: hsl(250, 68%, 49%);--main-lightened-05: hsl(250, 68%, 74%);--main-lightened-10: hsl(250, 68%, 79%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-ext-300-normal-VPGGJKJL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-300-normal-YUMVEFOL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-300-normal-7PAAHU3N.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-vietnamese-300-normal-U376L4Z4.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-latin-ext-300-normal-K6L27CZ5.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-latin-300-normal-RWDJH4FN.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-300-italic-M6KMXZSZ.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-vietnamese-300-italic-EHHNZPUO.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-latin-ext-300-italic-MWCA36KE.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-latin-300-italic-353COS6Q.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-vietnamese-400-normal-IGQPHHJH.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-ext-400-normal-K7HVGTP7.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-400-normal-RGKDDNDD.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-vietnamese-700-normal-LHEGSN35.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-ext-700-normal-4MPBLFZC.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-700-normal-DTS2D7TO.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--serifFontFamily: "Merriweather", "Book Antiqua", Georgia, "Century Schoolbook", serif;--sansFontFamily: "Lato", sans-serif;--monoFontFamily: "Inconsolata", Menlo, Courier, monospace;--baseFontSize: 18px;--baseLineHeight: 1.5em;--gray50-lightened-2: hsl(207, 43%, 98% );--gray50: hsl(207, 43%, 96% );--gray100: hsl(212, 33%, 91% );--gray200: hsl(210, 26%, 84% );--gray300: hsl(210, 21%, 64% );--gray500: hsl(210, 21%, 34% );--gray600: hsl(210, 27%, 26% );--gray700: hsl(212, 35%, 17% );--gray800: hsl(216, 52%, 11% );--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray900: hsl(218, 73%, 4% );--coldGrayFaint: hsl(240, 5%, 97% );--coldGrayLight: hsl(240, 5%, 88% );--coldGray-lightened-10: hsl(240, 5%, 56% );--coldGray: hsl(240, 5%, 46% );--coldGrayDark: hsl(240, 5%, 28% );--coldGrayDim: hsl(240, 5%, 18% );--yellowLight: hsl( 60, 100%, 81% );--yellowDark: hsl(60deg 100% 43% / 62%);--yellow: hsl( 60, 100%, 43% );--green-lightened-10: hsl( 90, 100%, 45% );--green: hsl( 90, 100%, 35% );--white: hsl( 0, 0%, 100% );--white-opacity-10: hsla( 0, 0%, 100%, 10%);--black: hsl( 0, 0%, 0% );--black-opacity-10: hsla( 0, 0%, 0%, 10%);--black-opacity-50: hsla( 0, 0%, 0%, 50%)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray700);--textHeaders: var(--gray800);--textDetailBackground: var(--coldGrayFaint);--textFooter: var(--coldGray);--links: var(--black);--linksVisited: var(--black);--linksNoUnderline: var(--main-darkened-10);--linksNoUnderlineVisited: var(--main-darkened-20);--viewSource: var(--coldGray);--viewSourceHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray50-lightened-2);--codeBorder: var(--gray100);--inlineCodeBackground: var(--codeBackground);--inlineCodeBorder: var(--codeBorder);--codeScrollThumb: var(--gray300);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnSubheader: var(--main-darkened-10);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray200);--settingsSectionBorder: var(--gray200);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--sidebarButton: var(--gray100)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailBackground: var(--gray700);--textFooter: var(--gray300);--links: var(--gray100);--linksVisited: var(--gray100);--linksNoUnderline: var(--main-lightened-10);--linksNoUnderlineVisited: var(--main-lightened-05);--viewSource: var(--coldGray-lightened-10);--viewSourceHover: var(--white);--blockquoteBackground: var(--coldGrayDim);--blockquoteBorder: var(--coldGrayDark);--warningBackground: hsl( 40, 67%, 79%);--warningHeadingBackground: hsl( 27, 66%, 29%);--warningHeading: var(--white);--errorBackground: hsl(358, 52%, 78%);--errorHeadingBackground: hsl(349, 55%, 34%);--errorHeading: var(--white);--infoBackground: hsl(222, 57%, 77%);--infoHeadingBackground: hsl(243, 65%, 26%);--infoHeading: var(--white);--neutralBackground: hsl(220, 23%, 82%);--neutralHeadingBackground: hsl(224, 24%, 16%);--neutralHeading: var(--white);--tipBackground: hsl(139, 26%, 69%);--tipHeadingBackground: hsl(158, 35%, 17%);--tipHeading: var(--white);--fnSpecAttr: var(--gray500);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray800);--codeBorder: var(--gray700);--inlineCodeBackground: var(--gray50);--inlineCodeBorder: var(--gray100);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnSubheader: var(--main);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray200);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--sidebarButton: var(--gray50)}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:remixicon;src:url(./remixicon-E5UFLALU.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}html,body{box-sizing:border-box;height:100%;width:100%}body{background-color:var(--background);color:var(--textBody);font-size:16px;font-family:var(--sansFontFamily);line-height:1.6875em}*,*:before,*:after{box-sizing:inherit}.main{display:flex;justify-content:flex-end;height:100%}.sidebar{display:flex;flex-direction:column;width:300px;height:100%;position:fixed;top:0;left:0;z-index:4}.sidebar-button{position:fixed;z-index:99;left:0;top:7px;transition:color .3s ease-in-out,transform .15s ease-out .1s,opacity .15s ease-out .1s;will-change:transform;transform:translate(250px)}.content{width:calc(100% - 300px);left:300px;height:100%;position:absolute;z-index:3}body.sidebar-opening .sidebar-button{transition:transform .3s ease-in-out}body.sidebar-opening .sidebar{left:0;transition:left .3s ease-in-out}body.sidebar-opening .content{width:calc(100% - 300px);left:300px;transition:all .3s ease-in-out}body.sidebar-closing .sidebar-button{transform:translate(0)}body.sidebar-closing .sidebar{left:-300px;transition:left .3s ease-in-out}body.sidebar-closing .content{width:100%;left:0;transition:all .3s ease-in-out}body.sidebar-closed .sidebar-button{transition:transform .3s ease-in-out;transform:translateY(-8px)}body.sidebar-closed .sidebar{left:-300px}body.sidebar-closed .content{width:100%;left:0}body.search-focused .sidebar-button{transform:translate(250px) scaleY(0);transition:all .15s ease-out;opacity:0}body.search-focused .sidebar-search .search-close-button{transform:scaleY(1);transition:transform .15s ease-out .15s}.content-inner{max-width:949px;margin:0 auto;padding:3px 60px}.content-inner:focus{outline:none}.content-outer{min-height:100%}@media screen and (max-width: 768px){.content,body.sidebar-opening .content{left:0;width:100%}.content-inner{padding:27px 20px 27px 40px;max-width:100%;overflow-x:auto}}.sidebar{font-family:var(--sansFontFamily);font-size:16px;line-height:18px;background-color:var(--gray800);color:var(--gray50);overflow:hidden;scrollbar-color:var(--coldGray) var(--gray800)}.sidebar .gradient{background:linear-gradient(var(--gray800),var(--gray800-opacity-0));height:20px;margin-top:-20px;pointer-events:none;position:relative;top:20px;z-index:100}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--gray50);text-decoration:none;transition:color .3s ease-in-out}.sidebar a:hover{color:var(--white)}.sidebar .sidebar-header{margin:12px;border-radius:4px;background-color:var(--gray700);width:276px}.sidebar .sidebar-projectDetails{display:inline-block;text-align:left;vertical-align:top;margin:6px 0 0 10px}.sidebar .sidebar-projectImage{display:inline-block;max-width:48px;max-height:48px;margin:0 0 0 10px;vertical-align:bottom}.sidebar .sidebar-projectName{font-weight:700;font-size:20px;line-height:30px;color:var(--gray50);margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-weight:300;font-size:16px;line-height:20px;color:var(--gray300)}.sidebar .sidebar-projectVersionsDropdown{cursor:pointer;position:relative;margin:0;padding:0 0 0 12px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--white);z-index:2}.sidebar .sidebar-projectVersionsDropdown option{color:initial}.sidebar .sidebar-projectVersionsDropdown:focus{outline:none}.sidebar .sidebar-projectVersion form:after{position:absolute;left:0;top:2px;content:"\25bc";z-index:1;font-size:8px;color:var(--white)}.sidebar .sidebar-projectVersionsDropdown::-ms-expand{display:none}.sidebar .sidebar-listNav{padding:12px 0 0;margin:0}.sidebar .sidebar-listNav :is(li,li a){text-transform:uppercase;font-weight:300;font-size:14px;color:var(--gray300)}.sidebar .sidebar-listNav li{display:inline-block;border-bottom:3px solid transparent;line-height:27px}.sidebar .sidebar-listNav li:is(:hover,.selected){border-color:var(--main)}.sidebar .sidebar-listNav li:is(:hover,.selected) a{color:var(--gray50)}.sidebar .sidebar-search{margin-top:12px}.sidebar .sidebar-search.selected .search-button,.sidebar .sidebar-search .search-button:hover{color:var(--main);opacity:1}.sidebar .sidebar-search .search-label{position:relative;width:100%}.sidebar .sidebar-search .search-button{font-size:14px;color:var(--gray50);background-color:transparent;border:none;cursor:pointer;left:22px;margin:0;opacity:.5;padding:3px 1px 3px 0;position:absolute;top:18px;z-index:2}.sidebar .sidebar-search .search-close-button{font-size:16px;color:var(--gray50);background-color:transparent;border:none;cursor:pointer;right:18px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:17px;transition:.15s transform ease-out;z-index:2}.sidebar .sidebar-search .search-close-button:hover{opacity:.7}.sidebar .sidebar-search .search-close-button:is(:focus,:hover){outline:none}.sidebar .sidebar-search .search-input{background-color:var(--gray700);border:none;border-radius:4px;color:var(--gray50);margin-left:12px;padding:8px 6px 8px 38px;width:276px}.sidebar .sidebar-search .search-input:is(:focus,:hover){outline:none}.sidebar .sidebar-search .ri-search-2-line{font-weight:700}.sidebar #full-list{margin:0;padding:20px 0;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch;flex:1 1 .01%}.sidebar #full-list li{padding:0;margin-right:30px;line-height:27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar #full-list li.docs{margin-right:0}.sidebar #full-list li.open>ul{display:block;margin-left:10px}.sidebar #full-list li a span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar #full-list li a.expand>span.icon-expand:after{content:var(--icon-arrow-down-s);margin-right:10px;font-size:1.2em;position:absolute;right:0}.sidebar #full-list li.open>a.expand>span.icon-expand:after{content:var(--icon-arrow-up-s)}.sidebar #full-list li.docs>a>span.icon-expand:after{margin-right:12px;content:var(--icon-add);font-size:1em;position:absolute;right:0}.sidebar #full-list li.docs.open>a>span.icon-expand:after{content:var(--icon-subtract)}.sidebar #full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--gray300);padding-left:15px}.sidebar #full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:2em 0 0;line-height:1.8em;color:var(--gray300);padding-left:15px}.sidebar #full-list li a{padding:3px 0 3px 15px;color:var(--gray200)}.sidebar #full-list li a.expand,.sidebar #full-list li .sections-list>li{text-overflow:ellipsis}.sidebar #full-list li .current-section>a{color:var(--main)}.sidebar #full-list>li.current-page>a{color:var(--main);border-left:3px solid var(--main);padding-left:12px}.sidebar #full-list>li.current-page>a:after,.sidebar #full-list>li.current-page{color:var(--main)}.sidebar #full-list>li:last-child{margin-bottom:30px}.sidebar #full-list>li.group:first-child{margin-top:0}.sidebar #full-list ul{display:none;margin:9px 0 9px 15px;padding:0}.sidebar #full-list ul li{font-weight:300;line-height:20px;padding:2px 8px;margin-right:0;color:var(--gray50)}.sidebar #full-list ul li.current-hash{color:var(--main)}.sidebar #full-list ul li.current-hash:before{content:"\2022";color:var(--main)}.sidebar #full-list ul li.current-hash>a{color:var(--main);margin-left:-12px}.sidebar #full-list ul li a{padding-left:15px}.sidebar #full-list ul li ul{display:none;margin:9px 0 9px 20px}.sidebar #full-list ul li ul li{border-left:1px solid var(--gray600);padding:0 10px;margin-left:8px;margin-right:0;color:var(--gray50)}.sidebar #full-list ul li ul li a{padding-left:0}.sidebar #full-list ul li ul li.current-hash:before{content:none}.sidebar #full-list ul li ul li.current-hash{color:var(--main);border-color:var(--main)}.sidebar #full-list ul li ul li.current-hash>a{color:var(--main);margin-left:0}.sidebar ::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background-color:var(--gray800)}.sidebar ::-webkit-scrollbar-thumb{background-color:var(--coldGray);border-radius:10px;border:3px solid var(--gray800)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;padding:15px 11px;font-size:16px}.sidebar-button:hover{color:var(--white)}.sidebar-button:is(:active,:hover,:focus){outline:none}.sidebar-button{color:var(--sidebarButton)}.sidebar-closed .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar #full-list{overflow:visible}}.content-inner{font-family:var(--serifFontFamily);font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:1em 0 .5em}.content-inner h1.signature{margin:0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 :is(a.view-source,.settings){font-size:1.2rem;font-weight:400}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner :is(a,.a-main){color:var(--links);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--linksVisited)}.content-inner a.view-source{float:right;color:var(--viewSource);text-decoration:none;border:none;transition:color .3s ease-in-out}.content-inner a.view-source:hover{color:var(--viewSourceHover)}.content-inner a.view-source:visited{color:var(--viewSource)}.content-inner .settings{background-color:transparent;float:right;color:var(--viewSource);text-decoration:none;border:none;transition:color .1s ease-in-out;margin-top:12px;cursor:pointer}.content-inner .settings:hover{color:var(--viewSourceHover)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--viewSource);margin-right:5px;font-size:14px;font-weight:400}.content-inner h1 .note{float:right}.content-inner blockquote{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:3px}.content-inner blockquote p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0}.content-inner th{text-align:left;font-family:var(--sansFontFamily);text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner tr{border-bottom:1px solid var(--gray50);vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding-left:1em;line-height:2em;vertical-align:top}.content-inner .section-heading:hover a.hover-link{opacity:1;text-decoration:none}.content-inner .section-heading a.hover-link{transition:opacity .3s ease-in-out;display:inline-block;opacity:0;padding:.3em .6em .6em;line-height:1em;margin-left:-2.7em;text-decoration:none;border:none;font-size:16px;vertical-align:middle}.content-inner .detail :is(h1,h2,h3,h4,h5,h6).section-heading{margin-left:.3em}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){color:var(--black);border-radius:10px;border-left:0}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) a{color:var(--black)}.content-inner blockquote.warning{background-color:var(--warningBackground)}.content-inner blockquote.error{background-color:var(--errorBackground)}.content-inner blockquote.info{background-color:var(--infoBackground)}.content-inner blockquote.neutral{background-color:var(--neutralBackground)}.content-inner blockquote.tip{background-color:var(--tipBackground)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip):before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner blockquote :is(h3,h4).warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner blockquote :is(h3,h4).tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) code{background-color:var(--inlineCodeBackground);border:1px solid var(--inlineCodeBorder);color:var(--black)}.content-inner .summary h2{font-weight:700}.content-inner .summary h2 a{text-decoration:none;border:none}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400;font-style:italic}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{font-family:var(--serifFontFamily);font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}.content-inner :is(a.no-underline,pre a){color:var(--linksNoUnderline);text-shadow:none;text-decoration:none;background-image:none}.content-inner :is(a.no-underline,pre a):is(:visited,:active,:focus,:hover){color:var(--linksNoUnderlineVisited)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:var(--codeBackground)}.content-inner pre code::-webkit-scrollbar{width:.4rem;height:.4rem}.content-inner pre code::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--codeScrollThumb)}.content-inner pre code::-webkit-scrollbar-track{background-color:var(--codeScrollBackground)}.content-inner pre code::-webkit-scrollbar-corner{background-color:var(--codeScrollBackground)}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:12px;font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@keyframes blink-background{0%{background-color:var(--textDetailBackground)}to{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--main);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:var(--monoFontFamily);font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:var(--fnDeprecated)}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px}.content-inner .footer,.content-inner .footer.footer :is(a,.footer-button){color:var(--textFooter)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;font-style:italic;outline:none;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:4px;border:1px solid var(--bottomActionsBtnBorder);padding:8px 16px;min-width:150px}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--bottomActionsBtnSubheader);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button[rel=prev] .subheader{text-align:right}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}.content-inner .bottom-actions .bottom-actions-item:not(:first-child){margin-bottom:16px}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd h1{margin-bottom:1em}.page-cheatmd h2{margin:1em 0;column-span:all;padding-left:3px;color:var(--gray700);font-weight:500}.page-cheatmd.dark h2{color:var(--gray200)}.page-cheatmd h3{white-space:nowrap;overflow:hidden;margin:0 0 1em;padding-left:5px;color:var(--main);font-weight:400}.page-cheatmd section.h3{min-width:300px;margin:0 0 2em;break-inside:avoid;-webkit-column-break-inside:avoid}.page-cheatmd h3:after{margin-left:24px;content:"";vertical-align:middle;display:inline-block;width:100%;height:1px;background:linear-gradient(to right,rgba(116,95,181,.2),transparent 80%)}.page-cheatmd h4{display:block;margin:0;padding:.25em 1.5em;font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.page-cheatmd.dark h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .h2 p{margin:0;display:block;background:var(--gray50);padding:1.5em}.page-cheatmd.dark .h2 p{background:var(--gray700)}.page-cheatmd .h2 p>code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd pre code{padding:1em 1.5em}.page-cheatmd pre code::-webkit-scrollbar{width:.4rem;height:.6rem}.page-cheatmd .h2 pre{margin:0}.page-cheatmd pre.wrap{white-space:break-spaces}.page-cheatmd .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .h2 table th{padding:.75em 1.5em;line-height:2em;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .h2 table td{padding:.75em 1.5em;border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .h2 table tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .h2 table td code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd .h2 thead{background-color:var(--gray50)}.page-cheatmd.dark .h2 thead{background-color:var(--gray700)}.page-cheatmd .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .h2 ul,.page-cheatmd .h2 ol{margin:0;padding:0}.page-cheatmd .h2 li{list-style-position:inside;padding:.5em 1.5em;line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder)}.page-cheatmd .h2 ul+pre code,.page-cheatmd .h2 ol+pre code{border-top:0}.page-cheatmd .h2 li>code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd section.width-50{display:block;width:50%;margin:0}.page-cheatmd section.width-50>section>table{width:100%}.page-cheatmd section.col-2{column-count:2;column-gap:40px;height:auto}.page-cheatmd section.col-2-left{display:grid;grid-template-columns:33% 63.2%;column-gap:40px}.page-cheatmd section.col-2-left>h2{display:block;grid-column-end:span 2}.page-cheatmd section.col-3{column-count:3;column-gap:40px;height:auto}.page-cheatmd section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd section.list-4>ul>li{flex:0 0 25%}.page-cheatmd section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd section.list-6>ul>li{flex:0 0 16.6667%}@media (max-width: 1400px){.page-cheatmd section.col-3{column-count:2;column-gap:40px}.page-cheatmd section.col-2-left{display:block;column-count:1}}@media (max-width: 1200px){.page-cheatmd section.col-3,.page-cheatmd section.col-2{column-count:1}.page-cheatmd section.list-6>ul>li{flex:0 0 25%}}@media (max-width: 1000px){.page-cheatmd section.list-4>ul>li{flex:0 0 33%}.page-cheatmd section.list-6>ul>li{flex:0 0 33%}}@media (max-width: 600px){.page-cheatmd section.list-4>ul>li{flex:0 0 50%}.page-cheatmd section.list-6>ul>li{flex:0 0 50%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;vertical-align:middle;position:absolute;top:50%;left:18%}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;transition:color .1s ease-in-out;color:var(--links)}#search .result-id a:is(:visited,:active,:focus){color:var(--linksVisited)}#search .result-id a:hover{color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:3px;box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:color .15s}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:opacity .15s}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:3px;font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-input:focus{outline:none}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;height:0;margin:0 5px 0 12px;overflow:visible;position:relative;width:100%}.autocomplete.shown{display:block}.autocomplete-suggestions{box-shadow:2px 2px 10px #00000040;background-color:var(--gray700);border-top:1px solid var(--gray800);left:0;position:absolute;top:-2px;width:276px;z-index:200}.autocomplete-suggestion{color:inherit;display:block;padding:10px;text-decoration:none}.autocomplete-suggestion:hover,.autocomplete-suggestion.selected{background-color:var(--gray600);border-left:3px solid var(--main)}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{padding-left:2px;opacity:.75}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}#tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}#tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}#tooltip .tooltip-body{border:1px solid var(--codeBorder)}#tooltip .tooltip-body .signature{min-width:320px;width:100%}#tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}#tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}#tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}#tooltip .tooltip-body .version-info{float:right;line-height:1.6rem;font-family:var(--monoFontFamily);font-size:.9rem;font-weight:400;margin-bottom:-6px;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button{display:block}.copy-button{display:none;position:absolute;top:9px;right:9px;background-color:transparent;border:none;cursor:pointer;padding:0;opacity:.5;transition:all .15s;font-family:var(--serifFontFamily);font-size:14px;line-height:24px;color:currentColor}.copy-button:hover{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{display:block;opacity:1;color:var(--success)}.copy-button.clicked:after{content:"Copied! \2713"}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:14px;background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:8px;transition:border-color .15s}#settings-modal-content .input:focus{outline:none;border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray300)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:18px}#settings-modal-content .switch-button-container>div>p{font-size:14px;line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:all .15s}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#settings-modal-content .settings-select:focus{outline:none}#toast{opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:10px;border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out}#toast.show{opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.main{display:block}.sidebar,.sidebar-button{display:none}.content{padding-left:0;overflow:visible}.summary-row{page-break-inside:avoid}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ diff --git a/.deps/ex_doc/formatters/html/dist/html-erlang-4XYKNH4U.css b/.deps/ex_doc/formatters/html/dist/html-erlang-4XYKNH4U.css @@ -0,0 +1,2 @@ +:root{--main: hsl(0, 100%, 64%);--main-darkened-10: hsl(0, 100%, 54%);--main-darkened-20: hsl(0, 100%, 44%);--main-lightened-05: hsl(0, 100%, 69%);--main-lightened-10: hsl(0, 100%, 74%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-ext-300-normal-VPGGJKJL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:300;src:url(./lato-latin-300-normal-YUMVEFOL.woff2) format("woff2"),url(./lato-all-300-normal-GIV56FBX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-ext-700-normal-Q2L5DVMW.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(./lato-latin-700-normal-2XVSBPG4.woff2) format("woff2"),url(./lato-all-700-normal-XMT5XFBS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-300-normal-7PAAHU3N.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-vietnamese-300-normal-U376L4Z4.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-latin-ext-300-normal-K6L27CZ5.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Merriweather;font-style:normal;font-display:swap;font-weight:300;src:url(./merriweather-latin-300-normal-RWDJH4FN.woff2) format("woff2"),url(./merriweather-all-300-normal-VL6BT3UN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-cyrillic-300-italic-M6KMXZSZ.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-vietnamese-300-italic-EHHNZPUO.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-latin-ext-300-italic-MWCA36KE.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(./merriweather-latin-300-italic-353COS6Q.woff2) format("woff2"),url(./merriweather-all-300-italic-CMQNB6FA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-vietnamese-400-normal-IGQPHHJH.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-ext-400-normal-K7HVGTP7.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-400-normal-RGKDDNDD.woff2) format("woff2"),url(./inconsolata-all-400-normal-HMVRHNDU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-vietnamese-700-normal-LHEGSN35.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-ext-700-normal-4MPBLFZC.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-700-normal-DTS2D7TO.woff2) format("woff2"),url(./inconsolata-all-700-normal-WFUKXZPS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--serifFontFamily: "Merriweather", "Book Antiqua", Georgia, "Century Schoolbook", serif;--sansFontFamily: "Lato", sans-serif;--monoFontFamily: "Inconsolata", Menlo, Courier, monospace;--baseFontSize: 18px;--baseLineHeight: 1.5em;--gray50-lightened-2: hsl(207, 43%, 98% );--gray50: hsl(207, 43%, 96% );--gray100: hsl(212, 33%, 91% );--gray200: hsl(210, 26%, 84% );--gray300: hsl(210, 21%, 64% );--gray500: hsl(210, 21%, 34% );--gray600: hsl(210, 27%, 26% );--gray700: hsl(212, 35%, 17% );--gray800: hsl(216, 52%, 11% );--gray800-opacity-0: hsla(216, 52%, 11%, 0%);--gray900: hsl(218, 73%, 4% );--coldGrayFaint: hsl(240, 5%, 97% );--coldGrayLight: hsl(240, 5%, 88% );--coldGray-lightened-10: hsl(240, 5%, 56% );--coldGray: hsl(240, 5%, 46% );--coldGrayDark: hsl(240, 5%, 28% );--coldGrayDim: hsl(240, 5%, 18% );--yellowLight: hsl( 60, 100%, 81% );--yellowDark: hsl(60deg 100% 43% / 62%);--yellow: hsl( 60, 100%, 43% );--green-lightened-10: hsl( 90, 100%, 45% );--green: hsl( 90, 100%, 35% );--white: hsl( 0, 0%, 100% );--white-opacity-10: hsla( 0, 0%, 100%, 10%);--black: hsl( 0, 0%, 0% );--black-opacity-10: hsla( 0, 0%, 0%, 10%);--black-opacity-50: hsla( 0, 0%, 0%, 50%)}:root{--background: var(--white);--contrast: var(--black);--textBody: var(--gray700);--textHeaders: var(--gray800);--textDetailBackground: var(--coldGrayFaint);--textFooter: var(--coldGray);--links: var(--black);--linksVisited: var(--black);--linksNoUnderline: var(--main-darkened-10);--linksNoUnderlineVisited: var(--main-darkened-20);--viewSource: var(--coldGray);--viewSourceHover: var(--gray800);--blockquoteBackground: var(--coldGrayFaint);--blockquoteBorder: var(--coldGrayLight);--warningBackground: hsl( 33, 100%, 97%);--warningHeadingBackground: hsl( 33, 87%, 64%);--warningHeading: var(--black);--errorBackground: hsl( 7, 81%, 96%);--errorHeadingBackground: hsl( 6, 80%, 60%);--errorHeading: var(--white);--infoBackground: hsl(206, 91%, 96%);--infoHeadingBackground: hsl(213, 92%, 62%);--infoHeading: var(--white);--neutralBackground: hsl(212, 29%, 92%);--neutralHeadingBackground: hsl(220, 43%, 11%);--neutralHeading: var(--white);--tipBackground: hsl(142, 31%, 93%);--tipHeadingBackground: hsl(134, 39%, 36%);--tipHeading: var(--white);--fnSpecAttr: var(--coldGray);--fnDeprecated: var(--yellowLight);--blink: var(--yellowLight);--codeBackground: var(--gray50-lightened-2);--codeBorder: var(--gray100);--inlineCodeBackground: var(--codeBackground);--inlineCodeBorder: var(--codeBorder);--codeScrollThumb: var(--gray300);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--black-opacity-10);--bottomActionsBtnSubheader: var(--main-darkened-10);--modalBackground: var(--white);--settingsInput: var(--gray500);--settingsInputBackground: var(--white);--settingsInputBorder: var(--gray200);--settingsSectionBorder: var(--gray200);--quickSwitchInput: var(--gray500);--quickSwitchContour: var(--coldGray);--success: var(--green);--sidebarButton: var(--gray100)}body.dark{--background: var(--gray900);--contrast: var(--white);--textBody: var(--gray200);--textHeaders: var(--gray100);--textDetailBackground: var(--gray700);--textFooter: var(--gray300);--links: var(--gray100);--linksVisited: var(--gray100);--linksNoUnderline: var(--main-lightened-10);--linksNoUnderlineVisited: var(--main-lightened-05);--viewSource: var(--coldGray-lightened-10);--viewSourceHover: var(--white);--blockquoteBackground: var(--coldGrayDim);--blockquoteBorder: var(--coldGrayDark);--warningBackground: hsl( 40, 67%, 79%);--warningHeadingBackground: hsl( 27, 66%, 29%);--warningHeading: var(--white);--errorBackground: hsl(358, 52%, 78%);--errorHeadingBackground: hsl(349, 55%, 34%);--errorHeading: var(--white);--infoBackground: hsl(222, 57%, 77%);--infoHeadingBackground: hsl(243, 65%, 26%);--infoHeading: var(--white);--neutralBackground: hsl(220, 23%, 82%);--neutralHeadingBackground: hsl(224, 24%, 16%);--neutralHeading: var(--white);--tipBackground: hsl(139, 26%, 69%);--tipHeadingBackground: hsl(158, 35%, 17%);--tipHeading: var(--white);--fnSpecAttr: var(--gray500);--fnDeprecated: var(--yellowDark);--blink: var(--gray600);--codeBackground: var(--gray800);--codeBorder: var(--gray700);--inlineCodeBackground: var(--gray50);--inlineCodeBorder: var(--gray100);--codeScrollThumb: var(--gray500);--codeScrollBackground: var(--codeBorder);--bottomActionsBtnBorder: var(--white-opacity-10);--bottomActionsBtnSubheader: var(--main);--modalBackground: var(--gray800);--settingsInput: var(--white);--settingsInputBackground: var(--gray700);--settingsInputBorder: var(--gray700);--settingsSectionBorder: var(--gray700);--quickSwitchInput: var(--gray200);--quickSwitchContour: var(--gray500);--success: var(--green-lightened-10);--sidebarButton: var(--gray50)}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:remixicon;src:url(./remixicon-E5UFLALU.woff2) format("woff2");font-display:swap}[class^=ri-],[class*=" ri-"],.remix-icon{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--icon-arrow-up-s: "\ea78";--icon-arrow-down-s: "\ea4e";--icon-arrow-right-s: "\ea6e";--icon-add: "\ea13";--icon-subtract: "\f1af";--icon-error-warning: "\eca1";--icon-information: "\ee59";--icon-alert: "\ea21";--icon-double-quotes-l: "\ec51";--icon-link-m: "\eeaf";--icon-close-line: "\eb99";--icon-code-s-slash-line: "\ebad";--icon-menu-line: "\ef3e";--icon-search-2-line: "\f0cd";--icon-settings-3-line: "\f0e6"}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-settings-3-line:before{content:var(--icon-settings-3-line)}.ri-add-line:before{content:var(--icon-add)}.ri-subtract-line:before{content:var(--icon-subtract)}.ri-arrow-up-s-line:before{content:var(--icon-arrow-up-s)}.ri-arrow-down-s-line:before{content:var(--icon-arrow-down-s)}.ri-arrow-right-s-line:before{content:var(--icon-arrow-right-s)}.ri-search-2-line:before{content:var(--icon-search-2-line)}.ri-menu-line:before{content:var(--icon-menu-line)}.ri-close-line:before{content:var(--icon-close-line)}.ri-link-m:before{content:var(--icon-link-m)}.ri-code-s-slash-line:before{content:var(--icon-code-s-slash-line)}.ri-error-warning-line:before{content:var(--icon-error-warning)}.ri-information-line:before{content:var(--icon-information)}.ri-alert-line:before{content:var(--icon-alert)}.ri-double-quotes-l:before{content:var(--icon-double-quotes-l)}html,body{box-sizing:border-box;height:100%;width:100%}body{background-color:var(--background);color:var(--textBody);font-size:16px;font-family:var(--sansFontFamily);line-height:1.6875em}*,*:before,*:after{box-sizing:inherit}.main{display:flex;justify-content:flex-end;height:100%}.sidebar{display:flex;flex-direction:column;width:300px;height:100%;position:fixed;top:0;left:0;z-index:4}.sidebar-button{position:fixed;z-index:99;left:0;top:7px;transition:color .3s ease-in-out,transform .15s ease-out .1s,opacity .15s ease-out .1s;will-change:transform;transform:translate(250px)}.content{width:calc(100% - 300px);left:300px;height:100%;position:absolute;z-index:3}body.sidebar-opening .sidebar-button{transition:transform .3s ease-in-out}body.sidebar-opening .sidebar{left:0;transition:left .3s ease-in-out}body.sidebar-opening .content{width:calc(100% - 300px);left:300px;transition:all .3s ease-in-out}body.sidebar-closing .sidebar-button{transform:translate(0)}body.sidebar-closing .sidebar{left:-300px;transition:left .3s ease-in-out}body.sidebar-closing .content{width:100%;left:0;transition:all .3s ease-in-out}body.sidebar-closed .sidebar-button{transition:transform .3s ease-in-out;transform:translateY(-8px)}body.sidebar-closed .sidebar{left:-300px}body.sidebar-closed .content{width:100%;left:0}body.search-focused .sidebar-button{transform:translate(250px) scaleY(0);transition:all .15s ease-out;opacity:0}body.search-focused .sidebar-search .search-close-button{transform:scaleY(1);transition:transform .15s ease-out .15s}.content-inner{max-width:949px;margin:0 auto;padding:3px 60px}.content-inner:focus{outline:none}.content-outer{min-height:100%}@media screen and (max-width: 768px){.content,body.sidebar-opening .content{left:0;width:100%}.content-inner{padding:27px 20px 27px 40px;max-width:100%;overflow-x:auto}}.sidebar{font-family:var(--sansFontFamily);font-size:16px;line-height:18px;background-color:var(--gray800);color:var(--gray50);overflow:hidden;scrollbar-color:var(--coldGray) var(--gray800)}.sidebar .gradient{background:linear-gradient(var(--gray800),var(--gray800-opacity-0));height:20px;margin-top:-20px;pointer-events:none;position:relative;top:20px;z-index:100}.sidebar ul{list-style:none}.sidebar ul li{margin:0;padding:0 10px}.sidebar a{color:var(--gray50);text-decoration:none;transition:color .3s ease-in-out}.sidebar a:hover{color:var(--white)}.sidebar .sidebar-header{margin:12px;border-radius:4px;background-color:var(--gray700);width:276px}.sidebar .sidebar-projectDetails{display:inline-block;text-align:left;vertical-align:top;margin:6px 0 0 10px}.sidebar .sidebar-projectImage{display:inline-block;max-width:48px;max-height:48px;margin:0 0 0 10px;vertical-align:bottom}.sidebar .sidebar-projectName{font-weight:700;font-size:20px;line-height:30px;color:var(--gray50);margin:0;padding:0;max-width:230px;word-wrap:break-word}.sidebar .sidebar-projectVersion{display:block;position:relative;margin:0;padding:0;font-weight:300;font-size:16px;line-height:20px;color:var(--gray300)}.sidebar .sidebar-projectVersionsDropdown{cursor:pointer;position:relative;margin:0;padding:0 0 0 12px;border:none;-webkit-appearance:none;appearance:none;background-color:transparent;color:var(--white);z-index:2}.sidebar .sidebar-projectVersionsDropdown option{color:initial}.sidebar .sidebar-projectVersionsDropdown:focus{outline:none}.sidebar .sidebar-projectVersion form:after{position:absolute;left:0;top:2px;content:"\25bc";z-index:1;font-size:8px;color:var(--white)}.sidebar .sidebar-projectVersionsDropdown::-ms-expand{display:none}.sidebar .sidebar-listNav{padding:12px 0 0;margin:0}.sidebar .sidebar-listNav :is(li,li a){text-transform:uppercase;font-weight:300;font-size:14px;color:var(--gray300)}.sidebar .sidebar-listNav li{display:inline-block;border-bottom:3px solid transparent;line-height:27px}.sidebar .sidebar-listNav li:is(:hover,.selected){border-color:var(--main)}.sidebar .sidebar-listNav li:is(:hover,.selected) a{color:var(--gray50)}.sidebar .sidebar-search{margin-top:12px}.sidebar .sidebar-search.selected .search-button,.sidebar .sidebar-search .search-button:hover{color:var(--main);opacity:1}.sidebar .sidebar-search .search-label{position:relative;width:100%}.sidebar .sidebar-search .search-button{font-size:14px;color:var(--gray50);background-color:transparent;border:none;cursor:pointer;left:22px;margin:0;opacity:.5;padding:3px 1px 3px 0;position:absolute;top:18px;z-index:2}.sidebar .sidebar-search .search-close-button{font-size:16px;color:var(--gray50);background-color:transparent;border:none;cursor:pointer;right:18px;margin:0;opacity:.5;padding:5px 1px 5px 0;position:absolute;transform:scaleY(0);top:17px;transition:.15s transform ease-out;z-index:2}.sidebar .sidebar-search .search-close-button:hover{opacity:.7}.sidebar .sidebar-search .search-close-button:is(:focus,:hover){outline:none}.sidebar .sidebar-search .search-input{background-color:var(--gray700);border:none;border-radius:4px;color:var(--gray50);margin-left:12px;padding:8px 6px 8px 38px;width:276px}.sidebar .sidebar-search .search-input:is(:focus,:hover){outline:none}.sidebar .sidebar-search .ri-search-2-line{font-weight:700}.sidebar #full-list{margin:0;padding:20px 0;overflow-y:auto;position:relative;-webkit-overflow-scrolling:touch;flex:1 1 .01%}.sidebar #full-list li{padding:0;margin-right:30px;line-height:27px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar #full-list li.docs{margin-right:0}.sidebar #full-list li.open>ul{display:block;margin-left:10px}.sidebar #full-list li a span.icon-expand:after{font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar #full-list li a.expand>span.icon-expand:after{content:var(--icon-arrow-down-s);margin-right:10px;font-size:1.2em;position:absolute;right:0}.sidebar #full-list li.open>a.expand>span.icon-expand:after{content:var(--icon-arrow-up-s)}.sidebar #full-list li.docs>a>span.icon-expand:after{margin-right:12px;content:var(--icon-add);font-size:1em;position:absolute;right:0}.sidebar #full-list li.docs.open>a>span.icon-expand:after{content:var(--icon-subtract)}.sidebar #full-list li.nesting-context{font-weight:700;font-size:.9em;line-height:1.8em;color:var(--gray300);padding-left:15px}.sidebar #full-list li.group{text-transform:uppercase;font-weight:700;font-size:.8em;margin:2em 0 0;line-height:1.8em;color:var(--gray300);padding-left:15px}.sidebar #full-list li a{padding:3px 0 3px 15px;color:var(--gray200)}.sidebar #full-list li a.expand,.sidebar #full-list li .sections-list>li{text-overflow:ellipsis}.sidebar #full-list li .current-section>a{color:var(--main)}.sidebar #full-list>li.current-page>a{color:var(--main);border-left:3px solid var(--main);padding-left:12px}.sidebar #full-list>li.current-page>a:after,.sidebar #full-list>li.current-page{color:var(--main)}.sidebar #full-list>li:last-child{margin-bottom:30px}.sidebar #full-list>li.group:first-child{margin-top:0}.sidebar #full-list ul{display:none;margin:9px 0 9px 15px;padding:0}.sidebar #full-list ul li{font-weight:300;line-height:20px;padding:2px 8px;margin-right:0;color:var(--gray50)}.sidebar #full-list ul li.current-hash{color:var(--main)}.sidebar #full-list ul li.current-hash:before{content:"\2022";color:var(--main)}.sidebar #full-list ul li.current-hash>a{color:var(--main);margin-left:-12px}.sidebar #full-list ul li a{padding-left:15px}.sidebar #full-list ul li ul{display:none;margin:9px 0 9px 20px}.sidebar #full-list ul li ul li{border-left:1px solid var(--gray600);padding:0 10px;margin-left:8px;margin-right:0;color:var(--gray50)}.sidebar #full-list ul li ul li a{padding-left:0}.sidebar #full-list ul li ul li.current-hash:before{content:none}.sidebar #full-list ul li ul li.current-hash{color:var(--main);border-color:var(--main)}.sidebar #full-list ul li ul li.current-hash>a{color:var(--main);margin-left:0}.sidebar ::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background-color:var(--gray800)}.sidebar ::-webkit-scrollbar-thumb{background-color:var(--coldGray);border-radius:10px;border:3px solid var(--gray800)}.sidebar-button{cursor:pointer;background-color:transparent;border:none;padding:15px 11px;font-size:16px}.sidebar-button:hover{color:var(--white)}.sidebar-button:is(:active,:hover,:focus){outline:none}.sidebar-button{color:var(--sidebarButton)}.sidebar-closed .sidebar-button{color:var(--contrast)}@media screen and (max-height: 500px){.sidebar{overflow-y:auto}.sidebar #full-list{overflow:visible}}.content-inner{font-family:var(--serifFontFamily);font-size:1em;line-height:1.6875em;position:relative;background-color:var(--background);color:var(--textBody)}.content-inner :is(h1,h2,h3,h4,h5,h6){font-family:var(--sansFontFamily);font-weight:700;line-height:1.5em;word-wrap:break-word;color:var(--textHeaders)}.content-inner h1{font-size:2em;margin:1em 0 .5em}.content-inner h1.signature{margin:0}.content-inner h1.section-heading{margin:1.5em 0 .5em}.content-inner h1 small{font-weight:300}.content-inner h1 :is(a.view-source,.settings){font-size:1.2rem;font-weight:400}.content-inner h2{font-size:1.6em;margin:1em 0 .5em;font-weight:700}.content-inner h3{font-size:1.375em;margin:1em 0 .5em;font-weight:700}.content-inner :is(a,.a-main){color:var(--links);text-decoration:underline;text-decoration-skip-ink:auto}.content-inner :is(a:visited,.a-main:visited){color:var(--linksVisited)}.content-inner a.view-source{float:right;color:var(--viewSource);text-decoration:none;border:none;transition:color .3s ease-in-out}.content-inner a.view-source:hover{color:var(--viewSourceHover)}.content-inner a.view-source:visited{color:var(--viewSource)}.content-inner .settings{background-color:transparent;float:right;color:var(--viewSource);text-decoration:none;border:none;transition:color .1s ease-in-out;margin-top:12px;cursor:pointer}.content-inner .settings:hover{color:var(--viewSourceHover)}.content-inner .livebook-badge-container{display:flex}.content-inner a.livebook-badge{display:inline-flex}.content-inner .note{color:var(--viewSource);margin-right:5px;font-size:14px;font-weight:400}.content-inner h1 .note{float:right}.content-inner blockquote{border-left:3px solid var(--blockquoteBorder);position:relative;margin:1.5625em 0;padding:0 1.2rem;overflow:auto;background-color:var(--blockquoteBackground);border-radius:3px}.content-inner blockquote p:last-child{padding-bottom:1em;margin-bottom:0}.content-inner table{margin:2em 0}.content-inner th{text-align:left;font-family:var(--sansFontFamily);text-transform:uppercase;font-weight:700;padding-bottom:.5em}.content-inner tr{border-bottom:1px solid var(--gray50);vertical-align:bottom;height:2.5em}.content-inner :is(td,th){padding-left:1em;line-height:2em;vertical-align:top}.content-inner .section-heading:hover a.hover-link{opacity:1;text-decoration:none}.content-inner .section-heading a.hover-link{transition:opacity .3s ease-in-out;display:inline-block;opacity:0;padding:.3em .6em .6em;line-height:1em;margin-left:-2.7em;text-decoration:none;border:none;font-size:16px;vertical-align:middle}.content-inner .detail :is(h1,h2,h3,h4,h5,h6).section-heading{margin-left:.3em}.content-inner .app-vsn{display:none!important;font-size:.6em;line-height:1.5em}@media screen and (max-width: 768px){.content-inner .app-vsn{display:block!important}}.content-inner img{max-width:100%}.content-inner code{font-family:var(--monoFontFamily);font-style:normal;line-height:24px;font-weight:400}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip){color:var(--black);border-radius:10px;border-left:0}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) a{color:var(--black)}.content-inner blockquote.warning{background-color:var(--warningBackground)}.content-inner blockquote.error{background-color:var(--errorBackground)}.content-inner blockquote.info{background-color:var(--infoBackground)}.content-inner blockquote.neutral{background-color:var(--neutralBackground)}.content-inner blockquote.tip{background-color:var(--tipBackground)}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip){color:var(--contrast);margin:0 -1.2rem;padding:.7rem 1.2rem .7rem 3.3rem;font-weight:700;font-style:normal}.content-inner blockquote :is(h3,h4):is(.warning,.error,.info,.neutral,.tip):before{color:var(--contrast);position:absolute;left:1rem;font-size:1.8rem;font-family:remixicon;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.content-inner blockquote :is(h3,h4).warning{background-color:var(--warningHeadingBackground);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).warning:before{content:var(--icon-error-warning);color:var(--warningHeading)}.content-inner blockquote :is(h3,h4).error{background-color:var(--errorHeadingBackground);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).error:before{content:var(--icon-error-warning);color:var(--errorHeading)}.content-inner blockquote :is(h3,h4).info{background-color:var(--infoHeadingBackground);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).info:before{content:var(--icon-information);color:var(--infoHeading)}.content-inner blockquote :is(h3,h4).neutral{background-color:var(--neutralHeadingBackground);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).neutral:before{content:var(--icon-double-quotes-l);color:var(--neutralHeading)}.content-inner blockquote :is(h3,h4).tip{background-color:var(--tipHeadingBackground);color:var(--tipHeading)}.content-inner blockquote :is(h3,h4).tip:before{content:var(--icon-information);color:var(--tipHeading)}.content-inner blockquote:is(.warning,.error,.info,.neutral,.tip) code{background-color:var(--inlineCodeBackground);border:1px solid var(--inlineCodeBorder);color:var(--black)}.content-inner .summary h2{font-weight:700}.content-inner .summary h2 a{text-decoration:none;border:none}.content-inner .summary span.deprecated{color:var(--darkDeprecated);font-weight:400;font-style:italic}.content-inner .summary .summary-row .summary-signature{font-family:var(--monoFontFamily);font-weight:700}.content-inner .summary .summary-row .summary-signature a{text-decoration:none;border:none}.content-inner .summary .summary-row .summary-synopsis{font-family:var(--serifFontFamily);font-style:italic;padding:0 1.2em;margin:0 0 .5em}.content-inner .summary .summary-row .summary-synopsis p{margin:0;padding:0}.content-inner :is(a.no-underline,pre a){color:var(--linksNoUnderline);text-shadow:none;text-decoration:none;background-image:none}.content-inner :is(a.no-underline,pre a):is(:visited,:active,:focus,:hover){color:var(--linksNoUnderlineVisited)}.content-inner code{background-color:var(--codeBackground);vertical-align:baseline;border-radius:2px;padding:.1em .2em;border:1px solid var(--codeBorder);text-transform:none}.content-inner pre{margin:var(--baseLineHeight) 0}.content-inner pre code{display:block;overflow-x:auto;white-space:inherit;padding:.5em 1em;background-color:var(--codeBackground)}.content-inner pre code::-webkit-scrollbar{width:.4rem;height:.4rem}.content-inner pre code::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--codeScrollThumb)}.content-inner pre code::-webkit-scrollbar-track{background-color:var(--codeScrollBackground)}.content-inner pre code::-webkit-scrollbar-corner{background-color:var(--codeScrollBackground)}.content-inner pre code.output{margin:0 12px;max-height:400px;overflow:auto}.content-inner pre code.output+.copy-button{margin-right:12px}.content-inner pre code.output:before{content:"Output";display:block;position:absolute;top:-16px;left:12px;padding:2px 4px;font-size:12px;font-family:var(--monoFontFamily);line-height:1;color:var(--textHeaders);background-color:var(--codeBackground);border:1px solid var(--codeBorder);border-bottom:0;border-radius:2px}@keyframes blink-background{0%{background-color:var(--textDetailBackground)}to{background-color:var(--blink)}}.content-inner .detail:target .detail-header{animation-duration:.55s;animation-name:blink-background;animation-iteration-count:1;animation-timing-function:ease-in-out}.content-inner .detail-header{margin:2em 0 1em;padding:.5em 1em;background-color:var(--textDetailBackground);border-left:3px solid var(--main);font-size:1em;font-family:var(--monoFontFamily);position:relative}.content-inner .detail-header .note{float:right}.content-inner .detail-header .signature{display:inline-block;font-family:var(--monoFontFamily);font-size:1rem;font-weight:700}.content-inner .detail-header:hover a.detail-link{opacity:1;text-decoration:none}.content-inner .detail-header a.detail-link{transition:opacity .3s ease-in-out;position:absolute;top:0;left:0;display:block;opacity:0;padding:.6em;line-height:1.5em;margin-left:-2.5em;text-decoration:none;border:none}.content-inner .specs pre{font-family:var(--monoFontFamily);font-size:.9em;font-style:normal;line-height:24px;white-space:pre-wrap;margin:0;padding:0}.content-inner .specs .attribute{color:var(--fnSpecAttr)}.content-inner .docstring{margin:1.2em 0 3em 1.2em}.content-inner .docstring:is(h2,h3,h4,h5){font-weight:700}.content-inner .docstring h2{font-size:1.1em}.content-inner .docstring h3{font-size:1em}.content-inner .docstring h4{font-size:.95em}.content-inner .docstring h5{font-size:.9em}.content-inner div.deprecated{display:block;padding:9px 15px;background-color:var(--fnDeprecated)}.content-inner .footer{margin:4em auto 1em;text-align:center;font-style:italic;font-size:14px}.content-inner .footer,.content-inner .footer.footer :is(a,.footer-button){color:var(--textFooter)}.content-inner .footer .line{display:inline-block}.content-inner .footer .footer-button{background-color:transparent;border:0;cursor:pointer;font-style:italic;outline:none;padding:0 4px}.content-inner .footer .footer-hex-package{margin-right:4px}.content-inner .bottom-actions{display:flex;justify-content:space-between;margin-top:4em}.content-inner .bottom-actions .bottom-actions-button{display:flex;text-decoration:none;flex-direction:column;border-radius:4px;border:1px solid var(--bottomActionsBtnBorder);padding:8px 16px;min-width:150px}.content-inner .bottom-actions .bottom-actions-button .subheader{font-size:.8em;color:var(--bottomActionsBtnSubheader);white-space:nowrap}.content-inner .bottom-actions .bottom-actions-button[rel=prev] .subheader{text-align:right}@media screen and (max-width: 768px){.content-inner .bottom-actions{flex-direction:column-reverse}.content-inner .bottom-actions .bottom-actions-item:not(:first-child){margin-bottom:16px}}.page-cheatmd .content-inner{max-width:1200px}.page-cheatmd h1{margin-bottom:1em}.page-cheatmd h2{margin:1em 0;column-span:all;padding-left:3px;color:var(--gray700);font-weight:500}.page-cheatmd.dark h2{color:var(--gray200)}.page-cheatmd h3{white-space:nowrap;overflow:hidden;margin:0 0 1em;padding-left:5px;color:var(--main);font-weight:400}.page-cheatmd section.h3{min-width:300px;margin:0 0 2em;break-inside:avoid;-webkit-column-break-inside:avoid}.page-cheatmd h3:after{margin-left:24px;content:"";vertical-align:middle;display:inline-block;width:100%;height:1px;background:linear-gradient(to right,rgba(116,95,181,.2),transparent 80%)}.page-cheatmd h4{display:block;margin:0;padding:.25em 1.5em;font-weight:400;background:var(--gray100);color:#567;border:solid 1px 1px 0 1px var(--gray100)}.page-cheatmd.dark h4{background:#192f50;color:var(--textBody);border:1px solid #192f50;border-bottom:0}.page-cheatmd .h2 p{margin:0;display:block;background:var(--gray50);padding:1.5em}.page-cheatmd.dark .h2 p{background:var(--gray700)}.page-cheatmd .h2 p>code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd pre code{padding:1em 1.5em}.page-cheatmd pre code::-webkit-scrollbar{width:.4rem;height:.6rem}.page-cheatmd .h2 pre{margin:0}.page-cheatmd pre.wrap{white-space:break-spaces}.page-cheatmd .h2 table{display:table;box-sizing:border-box;width:100%;border-collapse:collapse;margin:0}.page-cheatmd .h2 table th{padding:.75em 1.5em;line-height:2em;margin-bottom:-1px;vertical-align:middle;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .h2 table td{padding:.75em 1.5em;border:0;border-bottom:1px solid var(--codeBorder)}.page-cheatmd .h2 table tr:first-child{border-top:1px solid var(--codeBorder)}.page-cheatmd .h2 table td code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd .h2 thead{background-color:var(--gray50)}.page-cheatmd.dark .h2 thead{background-color:var(--gray700)}.page-cheatmd .h2 tbody{background-color:var(--codeBackground)}.page-cheatmd .h2 ul,.page-cheatmd .h2 ol{margin:0;padding:0}.page-cheatmd .h2 li{list-style-position:inside;padding:.5em 1.5em;line-height:2em;vertical-align:middle;background-color:var(--codeBackground);border-bottom:1px solid var(--codeBorder)}.page-cheatmd .h2 ul+pre code,.page-cheatmd .h2 ol+pre code{border-top:0}.page-cheatmd .h2 li>code{color:#eb5757;border-radius:3px;padding:.2em .4em}.page-cheatmd section.width-50{display:block;width:50%;margin:0}.page-cheatmd section.width-50>section>table{width:100%}.page-cheatmd section.col-2{column-count:2;column-gap:40px;height:auto}.page-cheatmd section.col-2-left{display:grid;grid-template-columns:33% 63.2%;column-gap:40px}.page-cheatmd section.col-2-left>h2{display:block;grid-column-end:span 2}.page-cheatmd section.col-3{column-count:3;column-gap:40px;height:auto}.page-cheatmd section.list-4>ul{display:flex;flex-wrap:wrap}.page-cheatmd section.list-4>ul>li{flex:0 0 25%}.page-cheatmd section.list-6>ul{display:flex;flex-wrap:wrap}.page-cheatmd section.list-6>ul>li{flex:0 0 16.6667%}@media (max-width: 1400px){.page-cheatmd section.col-3{column-count:2;column-gap:40px}.page-cheatmd section.col-2-left{display:block;column-count:1}}@media (max-width: 1200px){.page-cheatmd section.col-3,.page-cheatmd section.col-2{column-count:1}.page-cheatmd section.list-6>ul>li{flex:0 0 25%}}@media (max-width: 1000px){.page-cheatmd section.list-4>ul>li{flex:0 0 33%}.page-cheatmd section.list-6>ul>li{flex:0 0 33%}}@media (max-width: 600px){.page-cheatmd section.list-4>ul>li{flex:0 0 50%}.page-cheatmd section.list-6>ul>li{flex:0 0 50%}}#search{min-height:200px;position:relative}#search .loading{height:64px;width:64px;vertical-align:middle;position:absolute;top:50%;left:18%}#search .loading div{box-sizing:border-box;display:block;position:absolute;width:51px;height:51px;margin:6px;border:6px solid var(--coldGray);border-radius:50%;animation:loading 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--coldGray) transparent transparent transparent}#search .loading div:nth-child(1){animation-delay:-.45s}#search .loading div:nth-child(2){animation-delay:-.3s}#search .loading div:nth-child(3){animation-delay:-.15s}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#search .result{margin:2em 0 2.5em}#search .result p{margin:0}#search .result-id{font-size:1.4em;margin:0}#search .result-id a{text-decoration:none;transition:color .1s ease-in-out;color:var(--links)}#search .result-id a:is(:visited,:active,:focus){color:var(--linksVisited)}#search .result-id a:hover{color:var(--main)}#search :is(.result-id,.result-elem) em{font-style:normal;color:var(--main)}#search .result-id small{font-weight:400}@keyframes keyboard-shortcuts-show{0%{opacity:0}to{opacity:1}}.modal{animation-duration:.15s;animation-name:keyboard-shortcuts-show;animation-iteration-count:1;animation-timing-function:ease-in-out;display:none;background-color:#000000bf;position:fixed;inset:0;z-index:300}.modal.shown{display:block}.modal .modal-contents{margin:75px auto 0;max-width:500px;background-color:var(--modalBackground);border-radius:3px;box-shadow:2px 2px 8px #0003;padding:25px 35px 35px}@media screen and (max-width: 768px){.modal .modal-contents{padding:20px}}.modal .modal-header{display:flex;align-items:start}.modal .modal-title{display:inline-block;flex-grow:1;font-size:1.2rem;font-weight:700;margin-bottom:20px}.modal .modal-title button{border:none;background-color:transparent;color:var(--textHeaders);font-weight:700;margin-right:30px;padding-left:0;text-align:left;transition:color .15s}.modal .modal-title button:hover{color:var(--main);cursor:pointer}.modal .modal-title button.active{color:var(--main)}.modal .modal-close{cursor:pointer;display:block;font-size:1.5rem;margin:-8px -8px 0 0;padding:8px;opacity:.7;background-color:transparent;color:var(--textHeaders);border:none;transition:opacity .15s}.modal .modal-close:hover{opacity:1}#keyboard-shortcuts-content dl.shortcut-row{display:flex;align-items:center;justify-content:space-between;margin:0;padding:6px 0 8px;border-bottom:1px solid var(--settingsSectionBorder)}#keyboard-shortcuts-content dl.shortcut-row:last-of-type{border-bottom-style:none}#keyboard-shortcuts-content dl.shortcut-row:first-child{padding-top:0}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){display:inline-block}#keyboard-shortcuts-content kbd>kbd{background-color:var(--settingsInputBorder);color:var(--contrast);border-radius:3px;font-family:inherit;font-weight:700;display:inline-block;line-height:1;padding:4px 7px 6px;min-width:26px;text-align:center}#keyboard-shortcuts-content :is(.shortcut-keys,.shortcut-description){margin:0}#quick-switch-modal-body{width:100%;position:relative}#quick-switch-modal-body .ri-search-2-line{position:absolute;left:0;top:0;padding:4px 10px;color:var(--quickSwitchContour);font-weight:700}#quick-switch-modal-body #quick-switch-input{width:100%;padding:8px 6px 8px 38px;border:none;color:var(--quickSwitchInput);background-color:transparent;border-bottom:1px solid var(--quickSwitchContour);box-sizing:border-box;transition:all .12s ease-out}#quick-switch-modal-body #quick-switch-input:focus{outline:none}#quick-switch-modal-body #quick-switch-results{margin:0}#quick-switch-modal-body .quick-switch-result{padding:2px 5px;border-bottom:1px dotted var(--quickSwitchContour);transition:all .12s ease-out}#quick-switch-modal-body .quick-switch-result:last-child{border-bottom:none}#quick-switch-modal-body .quick-switch-result:hover{cursor:pointer}#quick-switch-modal-body .quick-switch-result:is(:hover,.selected){border-left:4px solid var(--main);background-color:var(--codeBackground)}.autocomplete{display:none;height:0;margin:0 5px 0 12px;overflow:visible;position:relative;width:100%}.autocomplete.shown{display:block}.autocomplete-suggestions{box-shadow:2px 2px 10px #00000040;background-color:var(--gray700);border-top:1px solid var(--gray800);left:0;position:absolute;top:-2px;width:276px;z-index:200}.autocomplete-suggestion{color:inherit;display:block;padding:10px;text-decoration:none}.autocomplete-suggestion:hover,.autocomplete-suggestion.selected{background-color:var(--gray600);border-left:3px solid var(--main)}.autocomplete-suggestion em{font-style:normal;font-weight:700}.autocomplete-suggestion .description{opacity:.6;padding-top:3px}.autocomplete-suggestion .label{padding-left:2px;opacity:.75}.autocomplete-suggestion .title,.autocomplete-suggestion .description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}#tooltip{box-shadow:0 0 10px var(--black-opacity-10);max-height:300px;max-width:500px;padding:0;position:absolute;pointer-events:none;margin:0;z-index:99;top:0;left:0;visibility:hidden;transform:translateY(20px);opacity:0;transition:.2s visibility ease-out,.2s transform ease-out,.2s opacity ease-out}#tooltip.tooltip-shown{visibility:visible;transform:translateY(0);opacity:1}#tooltip .tooltip-body{border:1px solid var(--codeBorder)}#tooltip .tooltip-body .signature{min-width:320px;width:100%}#tooltip .tooltip-body .detail-header{border-left:0;margin-bottom:0;margin-top:0}#tooltip .tooltip-body .docstring{background-color:var(--background);padding:1.2em;margin:0;width:498px}#tooltip .tooltip-body .docstring-plain{max-width:498px;width:auto}#tooltip .tooltip-body .version-info{float:right;line-height:1.6rem;font-family:var(--monoFontFamily);font-size:.9rem;font-weight:400;margin-bottom:-6px;opacity:.3;padding-left:.3em}pre{position:relative}pre:hover .copy-button{display:block}.copy-button{display:none;position:absolute;top:9px;right:9px;background-color:transparent;border:none;cursor:pointer;padding:0;opacity:.5;transition:all .15s;font-family:var(--serifFontFamily);font-size:14px;line-height:24px;color:currentColor}.copy-button:hover{opacity:1}.copy-button svg{width:20px}.copy-button.clicked{display:block;opacity:1;color:var(--success)}.copy-button.clicked:after{content:"Copied! \2713"}.copy-button.clicked svg{display:none;color:currentColor}#settings-modal-content{margin-top:10px}#settings-modal-content .hidden{display:none}#settings-modal-content .input{box-sizing:border-box;width:80%;padding:8px;font-size:14px;background-color:var(--settingsInputBackground);color:var(--settingsInput);border:1px solid var(--settingsInputBorder);border-radius:8px;transition:border-color .15s}#settings-modal-content .input:focus{outline:none;border-color:var(--main)}#settings-modal-content .input::placeholder{color:var(--gray300)}#settings-modal-content .switch-button-container{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--settingsSectionBorder);padding:10px 0}#settings-modal-content .switch-button-container:first-of-type{border-top-style:none;padding-top:0}#settings-modal-content .switch-button-container>div>span{font-size:18px}#settings-modal-content .switch-button-container>div>p{font-size:14px;line-height:1.4;margin:0;padding-bottom:6px;padding-right:10px}#settings-modal-content .switch-button{position:relative;display:inline-block;flex-shrink:0;width:40px;height:20px;user-select:none;transition:all .15s}#settings-modal-content .switch-button__checkbox{appearance:none;position:absolute;display:block;width:20px;height:20px;border-radius:1000px;background-color:#91a4b7;border:3px solid #e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__bg{display:block;width:100%;height:100%;border-radius:1000px;background-color:#e5edf5;cursor:pointer;transition:all .3s}#settings-modal-content .switch-button__checkbox:checked{background-color:#fff;border-color:var(--main);transform:translate(100%)}#settings-modal-content .switch-button__checkbox:checked+.switch-button__bg{background-color:var(--main)}#settings-modal-content .settings-select{cursor:pointer;position:relative;border:none;background-color:transparent;color:var(--textBody)}#settings-modal-content .settings-select option{color:initial}#settings-modal-content .settings-select:focus{outline:none}#toast{opacity:0;position:fixed;z-index:1;left:50%;bottom:1rem;min-width:3rem;margin:0 -1.2rem;padding:.7rem 1.2rem;text-align:center;font-weight:700;border-radius:10px;border:1px solid var(--codeBorder);background-color:var(--codeBackground);color:var(--textBody);transition:opacity .4s ease-in-out,transform .3s ease-out}#toast.show{opacity:1;transform:translateY(-.75rem)}@media (prefers-reduced-motion: reduce){#toast{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;user-select:none}@media print{.main{display:block}.sidebar,.sidebar-button{display:none}.content{padding-left:0;overflow:visible}.summary-row{page-break-inside:avoid}}code.makeup .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c,.makeup .c1,.makeup .ch,.makeup .cm,.makeup .cp,.makeup .cpf,.makeup .cs{color:#4d4d4d}.makeup .dl{color:#408200}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm,.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#4d4d4d}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k,.makeup .kc,.makeup .kd,.makeup .kn,.makeup .kp,.makeup .kr,.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m,.makeup .mb,.makeup .mf,.makeup .mh,.makeup .mi,.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#8a7000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#b65800}.makeup .ni{color:#bc5400}.makeup .nl{color:#b65800}.makeup .nn{color:#4d4d4c}.makeup .no{color:#a06600}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv,.makeup .nx{color:#4d4d4c}.makeup .o{color:#bc5400}.makeup .ow{color:#204a87}.makeup .p,.makeup .py{color:#4d4d4c}.makeup .s,.makeup .s1,.makeup .s2,.makeup .sa,.makeup .sb,.makeup .sc{color:#408200}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#408200}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#a06600}.makeup .sx{color:#408200}.makeup .vc,.makeup .vg,.makeup .vi,.makeup .vm,.makeup .x{color:#4d4d4c}.dark .makeup{color:#dce1e6}.dark .makeup .hll{background-color:#49483e}.dark .makeup .bp{color:#dce1e6}.dark .makeup .c,.dark .makeup .c1,.dark .makeup .ch,.dark .makeup .cm,.dark .makeup .cp,.dark .makeup .cpf,.dark .makeup .cs{color:#969386}.dark .makeup .dl{color:#e6db74}.dark .makeup .err{color:#960050;background-color:#1e0010}.dark .makeup .fm{color:#a6e22e}.dark .makeup .gd{color:#ff5385}.dark .makeup .ge{font-style:italic}.dark .makeup .gi{color:#a6e22e}.dark .makeup .gp{color:#969386}.dark .makeup .gs{font-weight:700}.dark .makeup .gu{color:#969386}.dark .makeup .gt{color:#ff5385;font-weight:700}.dark .makeup .il{color:#ae81ff}.dark .makeup .k,.dark .makeup .kc,.dark .makeup .kd{color:#66d9ef}.dark .makeup .kn{color:#ff5385}.dark .makeup .kp,.dark .makeup .kr,.dark .makeup .kt{color:#66d9ef}.dark .makeup .l,.dark .makeup .ld,.dark .makeup .m,.dark .makeup .mb,.dark .makeup .mf,.dark .makeup .mh,.dark .makeup .mi,.dark .makeup .mo{color:#ae81ff}.dark .makeup .n{color:#dce1e6}.dark .makeup .na{color:#a6e22e}.dark .makeup .nb{color:#dce1e6}.dark .makeup .nc,.dark .makeup .nd,.dark .makeup .ne,.dark .makeup .nf{color:#a6e22e}.dark .makeup .ni,.dark .makeup .nl,.dark .makeup .nn{color:#dce1e6}.dark .makeup .no{color:#66d9ef}.dark .makeup .nt{color:#ff5385}.dark .makeup .nv{color:#dce1e6}.dark .makeup .nx{color:#a6e22e}.dark .makeup .o,.dark .makeup .ow{color:#ff5385}.dark .makeup .p,.dark .makeup .py{color:#dce1e6}.dark .makeup .s,.dark .makeup .s1,.dark .makeup .s2,.dark .makeup .sa,.dark .makeup .sb,.dark .makeup .sc,.dark .makeup .sd{color:#e6db74}.dark .makeup .se{color:#ae81ff}.dark .makeup .sh,.dark .makeup .si,.dark .makeup .sr,.dark .makeup .ss,.dark .makeup .sx{color:#e6db74}.dark .makeup .vc,.dark .makeup .vg,.dark .makeup .vi,.dark .makeup .vm{color:#dce1e6}body:not(.dark) .content-inner img[src*="#gh-dark-mode-only"],body.dark .content-inner img[src*="#gh-light-mode-only"]{display:none} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-all-400-normal-HMVRHNDU.woff b/.deps/ex_doc/formatters/html/dist/inconsolata-all-400-normal-HMVRHNDU.woff Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-all-700-normal-WFUKXZPS.woff b/.deps/ex_doc/formatters/html/dist/inconsolata-all-700-normal-WFUKXZPS.woff Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-latin-400-normal-RGKDDNDD.woff2 b/.deps/ex_doc/formatters/html/dist/inconsolata-latin-400-normal-RGKDDNDD.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-latin-700-normal-DTS2D7TO.woff2 b/.deps/ex_doc/formatters/html/dist/inconsolata-latin-700-normal-DTS2D7TO.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-latin-ext-400-normal-K7HVGTP7.woff2 b/.deps/ex_doc/formatters/html/dist/inconsolata-latin-ext-400-normal-K7HVGTP7.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-latin-ext-700-normal-4MPBLFZC.woff2 b/.deps/ex_doc/formatters/html/dist/inconsolata-latin-ext-700-normal-4MPBLFZC.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-vietnamese-400-normal-IGQPHHJH.woff2 b/.deps/ex_doc/formatters/html/dist/inconsolata-vietnamese-400-normal-IGQPHHJH.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/inconsolata-vietnamese-700-normal-LHEGSN35.woff2 b/.deps/ex_doc/formatters/html/dist/inconsolata-vietnamese-700-normal-LHEGSN35.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/lato-all-300-normal-GIV56FBX.woff b/.deps/ex_doc/formatters/html/dist/lato-all-300-normal-GIV56FBX.woff Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/lato-all-700-normal-XMT5XFBS.woff b/.deps/ex_doc/formatters/html/dist/lato-all-700-normal-XMT5XFBS.woff Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/lato-latin-300-normal-YUMVEFOL.woff2 b/.deps/ex_doc/formatters/html/dist/lato-latin-300-normal-YUMVEFOL.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/lato-latin-700-normal-2XVSBPG4.woff2 b/.deps/ex_doc/formatters/html/dist/lato-latin-700-normal-2XVSBPG4.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/lato-latin-ext-300-normal-VPGGJKJL.woff2 b/.deps/ex_doc/formatters/html/dist/lato-latin-ext-300-normal-VPGGJKJL.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 b/.deps/ex_doc/formatters/html/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-all-300-italic-CMQNB6FA.woff b/.deps/ex_doc/formatters/html/dist/merriweather-all-300-italic-CMQNB6FA.woff Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-all-300-normal-VL6BT3UN.woff b/.deps/ex_doc/formatters/html/dist/merriweather-all-300-normal-VL6BT3UN.woff Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-300-normal-7PAAHU3N.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-300-normal-7PAAHU3N.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-latin-300-italic-353COS6Q.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-latin-300-italic-353COS6Q.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-latin-300-normal-RWDJH4FN.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-latin-300-normal-RWDJH4FN.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 b/.deps/ex_doc/formatters/html/dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/fonts/remixicon.woff2 b/.deps/ex_doc/formatters/html/dist/remixicon-E5UFLALU.woff2 Binary files differ. diff --git a/.deps/ex_doc/formatters/html/fonts/remixicon.eot b/.deps/ex_doc/formatters/html/fonts/remixicon.eot Binary files differ. diff --git a/.deps/ex_doc/formatters/html/fonts/remixicon.svg b/.deps/ex_doc/formatters/html/fonts/remixicon.svg @@ -1,36 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<defs> - <font id="remixicon" horiz-adv-x="1200"> - <font-face font-family="remixicon" - units-per-em="1200" ascent="1200" - descent="0" /> - <missing-glyph horiz-adv-x="0" /><glyph glyph-name="search-2-line" - unicode="&#xF0CD;" - horiz-adv-x="1200" d="M550 1100C798.4 1100 1000 898.4 1000 650S798.4 200 550 200S100 401.6 100 650S301.6 1100 550 1100zM550 300C743.35 300 900 456.65 900 650C900 843.4000000000001 743.35 1000 550 1000C356.6 1000 200 843.4000000000001 200 650C200 456.65 356.6 300 550 300zM974.25 296.45L1115.7 155.05L1044.95 84.3L903.55 225.75L974.2500000000002 296.4500000000001z" /><glyph glyph-name="arrow-down-s-line" - unicode="&#xEA4E;" - horiz-adv-x="1200" d="M600 541.4L847.5 788.8999999999999L918.2 718.1999999999999L600 400L281.8 718.2L352.5 788.9000000000001z" /><glyph glyph-name="arrow-up-s-line" - unicode="&#xEA78;" - horiz-adv-x="1200" d="M600 658.6L352.5 411.1L281.8 481.8000000000001L600 800L918.2 481.8L847.5 411.1z" /><glyph glyph-name="subtract-line" - unicode="&#xF1AF;" - horiz-adv-x="1200" d="M250 650H950V550H250z" /><glyph glyph-name="add-line" - unicode="&#xEA13;" - horiz-adv-x="1200" d="M550 650V950H650V650H950V550H650V250H550V550H250V650z" /><glyph glyph-name="settings-3-line" - unicode="&#xF0E6;" - horiz-adv-x="1200" d="M167 350A500.9 500.9 0 0 0 118.1 466.3000000000001A150 150 0 0 1 118.2 733.6500000000001A499.5000000000001 499.5000000000001 0 0 0 243.25 950.5A150 150 0 0 1 474.8 1084.2A499.5000000000001 499.5000000000001 0 0 0 725.15 1084.1A150 150 0 0 1 956.7499999999998 950.5C985.7 921 1011.3999999999997 887.45 1032.9999999999998 850C1054.6499999999999 812.55 1070.85 773.5 1081.8999999999999 733.7A150 150 0 0 1 1081.8 466.3499999999999A499.5000000000001 499.5000000000001 0 0 0 956.7499999999998 249.4999999999999A150 150 0 0 1 725.1999999999999 115.8A499.5000000000001 499.5000000000001 0 0 0 474.8499999999999 115.8999999999999A150 150 0 0 1 243.2499999999999 249.4999999999999A500.9 500.9 0 0 0 167 350zM450 340.2A249.65000000000003 249.65000000000003 0 0 0 562.5 201.6999999999999C587.45 199.3499999999999 612.5 199.3000000000001 637.45 201.6499999999999A249.65000000000003 249.65000000000003 0 0 0 750 340.1500000000001A249.65000000000003 249.65000000000003 0 0 0 926.2499999999998 368.4000000000001C940.7499999999998 388.8000000000002 953.2499999999998 410.5500000000001 963.65 433.3000000000001A249.65000000000003 249.65000000000003 0 0 0 900 600C900 663 923.5 721.8499999999999 963.65 766.7A406.3 406.3 0 0 1 926.15 831.5999999999999A249.65000000000003 249.65000000000003 0 0 0 750 859.8A249.65000000000003 249.65000000000003 0 0 0 637.5 998.3C612.55 1000.65 587.5 1000.7 562.55 998.35A249.65000000000003 249.65000000000003 0 0 0 450 859.85A249.65000000000003 249.65000000000003 0 0 0 273.75 831.5999999999999A399.5 399.5 0 0 1 236.35 766.7A249.65000000000003 249.65000000000003 0 0 0 300 600C300 537 276.5 478.15 236.35 433.3000000000001A406.3 406.3 0 0 1 273.85 368.4000000000001A249.65000000000003 249.65000000000003 0 0 0 450 340.2zM600 450A150 150 0 1 0 600 750A150 150 0 0 0 600 450zM600 550A50 50 0 1 1 600 650A50 50 0 0 1 600 550z" /><glyph glyph-name="code-s-slash-line" - unicode="&#xEBAD;" - horiz-adv-x="1200" d="M1200 600L917.15 317.15L846.4499999999999 387.85L1058.6000000000001 600L846.45 812.1500000000001L917.1500000000002 882.85L1200 600zM141.4 600L353.55 387.8499999999999L282.85 317.1499999999999L0 600L282.85 882.85L353.5 812.1500000000001L141.4 600zM489.4 150H383L710.6 1050H817L489.4 150z" /><glyph glyph-name="menu-line" - unicode="&#xEF3E;" - horiz-adv-x="1200" d="M150 1000H1050V900H150V1000zM150 650H1050V550H150V650zM150 300H1050V200H150V300z" /><glyph glyph-name="link-m" - unicode="&#xEEAF;" - horiz-adv-x="1200" d="M882.85 458.6L812.15 529.3000000000001L882.85 600A200 200 0 1 1 600 882.85L529.3000000000001 812.1500000000001L458.6 882.85L529.3000000000001 953.55A300 300 0 0 0 953.55 529.3000000000001L882.8499999999998 458.6zM741.4 317.15L670.6999999999999 246.45A300 300 0 1 0 246.45 670.6999999999999L317.15 741.3999999999999L387.85 670.6999999999999L317.15 600A200 200 0 1 1 600 317.15L670.6999999999999 387.85L741.4 317.15zM741.4 812.1500000000001L812.15 741.4L458.6 387.9L387.85 458.5999999999999L741.4 812.0999999999999z" /><glyph glyph-name="information-line" - unicode="&#xEE59;" - horiz-adv-x="1200" d="M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 850H650V750H550V850zM550 650H650V350H550V650z" /><glyph glyph-name="error-warning-line" - unicode="&#xECA1;" - horiz-adv-x="1200" d="M600 100C323.85 100 100 323.85 100 600S323.85 1100 600 1100S1100 876.15 1100 600S876.15 100 600 100zM600 200A400 400 0 1 1 600 1000A400 400 0 0 1 600 200zM550 450H650V350H550V450zM550 850H650V550H550V850z" /><glyph glyph-name="alert-line" - unicode="&#xEA21;" - horiz-adv-x="1200" d="M643.3 1050L1119.6 225A50 50 0 0 0 1076.3 150H123.7A50 50 0 0 0 80.4 225L556.7 1050A50 50 0 0 0 643.3 1050zM210.3 250H989.6999999999998L600 925L210.3 250zM550 400H650V300H550V400zM550 750H650V500H550V750z" /><glyph glyph-name="double-quotes-l" - unicode="&#xEC51;" - horiz-adv-x="1200" d="M229.15 333.95C177.65 388.65 150 450 150 549.45C150 724.45 272.85 881.3 451.5000000000001 958.8500000000003L496.1500000000001 889.95C329.4000000000001 799.75 296.8000000000001 682.7 283.8000000000001 608.9000000000001C310.6500000000001 622.8000000000001 345.8000000000002 627.6500000000001 380.2500000000001 624.45C470.4500000000001 616.1 541.5500000000002 542.0500000000001 541.5500000000002 450A175 175 0 0 0 366.5500000000002 275C312.9000000000002 275 261.6000000000002 299.4999999999999 229.1500000000002 333.95zM729.15 333.95C677.6500000000001 388.65 650 450 650 549.45C650 724.45 772.85 881.3 951.5 958.8500000000003L996.15 889.95C829.4000000000001 799.75 796.8000000000001 682.7 783.8000000000001 608.9000000000001C810.6500000000001 622.8000000000001 845.8000000000001 627.6500000000001 880.25 624.45C970.45 616.1 1041.55 542.0500000000001 1041.55 450A175 175 0 0 0 866.55 275C812.9 275 761.5999999999999 299.4999999999999 729.1499999999999 333.95z" /><glyph glyph-name="close-line" - unicode="&#xEB99;" - horiz-adv-x="1200" d="M600 670.6999999999999L847.5 918.2L918.2 847.5L670.7 600L918.2 352.5L847.5 281.8L600 529.3L352.5 281.8L281.8 352.5L529.3000000000001 600L281.8 847.5L352.5 918.2z" /></font></defs></svg> -\ No newline at end of file diff --git a/.deps/ex_doc/formatters/html/fonts/remixicon.ttf b/.deps/ex_doc/formatters/html/fonts/remixicon.ttf Binary files differ. diff --git a/.deps/ex_doc/formatters/html/fonts/remixicon.woff b/.deps/ex_doc/formatters/html/fonts/remixicon.woff Binary files differ. diff --git a/.deps/ex_doc/hex_metadata.config b/.deps/ex_doc/hex_metadata.config @@ -3,20 +3,44 @@ {<<"description">>,<<"ExDoc is a documentation generation tool for Elixir">>}. {<<"elixir">>,<<"~> 1.11">>}. {<<"files">>, - [<<"formatters">>,<<"formatters/html">>,<<"formatters/html/dist">>, - <<"formatters/html/dist/app-bd1cb213813bf4825aa2.js.LICENSE.txt">>, - <<"formatters/html/dist/app-bd1cb213813bf4825aa2.js">>, - <<"formatters/html/dist/erlang-2594865b45a067e279f6.css">>, - <<"formatters/html/dist/elixir-b6f1ed5df9b1d42a7309.css">>, - <<"formatters/html/fonts">>,<<"formatters/html/fonts/remixicon.woff2">>, - <<"formatters/html/fonts/remixicon.svg">>, - <<"formatters/html/fonts/remixicon.eot">>, - <<"formatters/html/fonts/remixicon.ttf">>, - <<"formatters/html/fonts/remixicon.woff">>,<<"formatters/epub">>, + [<<"CHANGELOG.md">>,<<"Cheatsheet.cheatmd">>,<<"formatters">>, + <<"formatters/html">>,<<"formatters/html/dist">>, + <<"formatters/html/dist/lato-latin-ext-300-normal-VPGGJKJL.woff2">>, + <<"formatters/html/dist/html-XN2TSG4M.js">>, + <<"formatters/html/dist/merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2">>, + <<"formatters/html/dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2">>, + <<"formatters/html/dist/lato-latin-700-normal-2XVSBPG4.woff2">>, + <<"formatters/html/dist/lato-all-300-normal-GIV56FBX.woff">>, + <<"formatters/html/dist/merriweather-latin-300-italic-353COS6Q.woff2">>, + <<"formatters/html/dist/inconsolata-latin-ext-400-normal-K7HVGTP7.woff2">>, + <<"formatters/html/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2">>, + <<"formatters/html/dist/lato-all-700-normal-XMT5XFBS.woff">>, + <<"formatters/html/dist/inconsolata-latin-400-normal-RGKDDNDD.woff2">>, + <<"formatters/html/dist/merriweather-all-300-italic-CMQNB6FA.woff">>, + <<"formatters/html/dist/html-elixir-2YOS5DIE.css">>, + <<"formatters/html/dist/merriweather-all-300-normal-VL6BT3UN.woff">>, + <<"formatters/html/dist/merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2">>, + <<"formatters/html/dist/inconsolata-vietnamese-700-normal-LHEGSN35.woff2">>, + <<"formatters/html/dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2">>, + <<"formatters/html/dist/merriweather-latin-300-normal-RWDJH4FN.woff2">>, + <<"formatters/html/dist/handlebars.runtime-NWIB6V2M.js">>, + <<"formatters/html/dist/inconsolata-all-400-normal-HMVRHNDU.woff">>, + <<"formatters/html/dist/html-erlang-4XYKNH4U.css">>, + <<"formatters/html/dist/inconsolata-latin-700-normal-DTS2D7TO.woff2">>, + <<"formatters/html/dist/handlebars.templates-X7YVL3G2.js">>, + <<"formatters/html/dist/merriweather-cyrillic-300-normal-7PAAHU3N.woff2">>, + <<"formatters/html/dist/merriweather-latin-ext-300-italic-MWCA36KE.woff2">>, + <<"formatters/html/dist/inconsolata-latin-ext-700-normal-4MPBLFZC.woff2">>, + <<"formatters/html/dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2">>, + <<"formatters/html/dist/inconsolata-all-700-normal-WFUKXZPS.woff">>, + <<"formatters/html/dist/lato-latin-300-normal-YUMVEFOL.woff2">>, + <<"formatters/html/dist/merriweather-cyrillic-300-italic-M6KMXZSZ.woff2">>, + <<"formatters/html/dist/inconsolata-vietnamese-400-normal-IGQPHHJH.woff2">>, + <<"formatters/html/dist/remixicon-E5UFLALU.woff2">>,<<"formatters/epub">>, <<"formatters/epub/dist">>, - <<"formatters/epub/dist/app-db64fcdc429a9b460caa.js">>, - <<"formatters/epub/dist/elixir-257fc85e711659d9c43e.css">>, - <<"formatters/epub/dist/erlang-911a33d8b2a887045389.css">>, + <<"formatters/epub/dist/epub-erlang-BLRVQJT7.css">>, + <<"formatters/epub/dist/epub-75RCTLK3.js">>, + <<"formatters/epub/dist/epub-elixir-27JESMVP.css">>, <<"formatters/epub/metainfo">>,<<"formatters/epub/metainfo/container.xml">>, <<"formatters/epub/metainfo/com.apple.ibooks.display-options.xml">>, <<"lib">>,<<"lib/ex_doc.ex">>,<<"lib/ex_doc">>,<<"lib/ex_doc/autolink.ex">>, @@ -30,7 +54,6 @@ <<"lib/ex_doc/formatter/html/templates/sidebar_template.eex">>, <<"lib/ex_doc/formatter/html/templates/module_template.eex">>, <<"lib/ex_doc/formatter/html/templates/api_reference_entry_template.eex">>, - <<"lib/ex_doc/formatter/html/templates/bottom_actions_template.eex">>, <<"lib/ex_doc/formatter/html/templates/extra_template.eex">>, <<"lib/ex_doc/formatter/html/templates/search_template.eex">>, <<"lib/ex_doc/formatter/html/templates/redirect_template.eex">>, @@ -60,8 +83,8 @@ <<"lib/ex_doc/cli.ex">>,<<"lib/ex_doc/utils.ex">>, <<"lib/ex_doc/language.ex">>,<<"lib/ex_doc/markdown.ex">>, <<"lib/ex_doc/refs.ex">>,<<"lib/ex_doc/doc_ast.ex">>,<<"lib/mix">>, - <<"lib/mix/tasks">>,<<"lib/mix/tasks/docs.ex">>,<<"mix.exs">>,<<"LICENSE">>, - <<"CHANGELOG.md">>,<<"README.md">>]}. + <<"lib/mix/tasks">>,<<"lib/mix/tasks/docs.ex">>,<<"LICENSE">>,<<"mix.exs">>, + <<"README.md">>]}. {<<"licenses">>,[<<"Apache-2.0">>]}. {<<"links">>, [{<<"Changelog">>,<<"https://hexdocs.pm/ex_doc/changelog.html">>}, @@ -85,4 +108,4 @@ {<<"optional">>,false}, {<<"repository">>,<<"hexpm">>}, {<<"requirement">>,<<"~> 0.1">>}]]}. -{<<"version">>,<<"0.28.4">>}. +{<<"version">>,<<"0.29.0">>}. diff --git a/.deps/ex_doc/lib/ex_doc/cli.ex b/.deps/ex_doc/lib/ex_doc/cli.ex @@ -10,26 +10,26 @@ defmodule ExDoc.CLI do {opts, args, _invalid} = OptionParser.parse(args, aliases: [ - n: :canonical, c: :config, f: :formatter, - p: :homepage_url, l: :logo, m: :main, + n: :canonical, o: :output, + p: :homepage_url, + q: :quiet, u: :source_url, - v: :version, - q: :quiet + v: :version ], switches: [ + formatter: :keep, language: :string, - paths: :keep, package: :string, + paths: :keep, proglang: :string, + quiet: :boolean, source_ref: :string, - version: :boolean, - formatter: :keep, - quiet: :boolean + version: :boolean ] ) @@ -167,21 +167,21 @@ defmodule ExDoc.CLI do See "Custom config" section below for more information. -f, --formatter Docs formatter to use (html or epub), default: html and epub -p, --homepage-url URL to link to for the site name - --paths Prepends the given path to Erlang code path. The path might contain a glob - pattern but in that case, remember to quote it: --paths "_build/dev/lib/*/ebin". - This option can be given multiple times --language Identify the primary language of the documents, its value must be a valid [BCP 47](https://tools.ietf.org/html/bcp47) language tag, default: "en" -l, --logo Path to the image logo of the project (only PNG or JPEG accepted) The image size will be 64x64 and copied to the assets directory -m, --main The entry-point page in docs, default: "api-reference" + -o, --output Path to output docs, default: "doc" --package Hex package name + --paths Prepends the given path to Erlang code path. The path might contain a glob + pattern but in that case, remember to quote it: --paths "_build/dev/lib/*/ebin". + This option can be given multiple times --proglang The project's programming language, default: "elixir" + -q, --quiet Only output warnings and errors --source-ref Branch/commit/tag used for source link inference, default: "master" -u, --source-url URL to the source code - -o, --output Path to output docs, default: "doc" -v, --version Print ExDoc version - -q, --quiet Only output warnings and errors ## Custom config diff --git a/.deps/ex_doc/lib/ex_doc/config.ex b/.deps/ex_doc/lib/ex_doc/config.ex @@ -7,75 +7,75 @@ defmodule ExDoc.Config do def before_closing_head_tag(_), do: "" def before_closing_body_tag(_), do: "" - defstruct apps: [], - api_reference: true, + defstruct api_reference: true, + apps: [], assets: nil, - before_closing_head_tag: &__MODULE__.before_closing_head_tag/1, + authors: nil, before_closing_body_tag: &__MODULE__.before_closing_body_tag/1, + before_closing_head_tag: &__MODULE__.before_closing_head_tag/1, canonical: nil, - nest_modules_by_prefix: [], + cover: nil, deps: [], extra_section: nil, extras: [], filter_modules: &__MODULE__.filter_modules/2, formatter: "html", groups_for_extras: [], - groups_for_modules: [], groups_for_functions: [], + groups_for_modules: [], homepage_url: nil, javascript_config_path: "docs_config.js", language: "en", - proglang: :elixir, logo: nil, - cover: nil, main: nil, + nest_modules_by_prefix: [], output: "./doc", + package: nil, + proglang: :elixir, project: nil, retriever: ExDoc.Retriever, + skip_undefined_reference_warnings_on: [], source_beam: nil, source_ref: @default_source_ref, source_url: nil, source_url_pattern: nil, title: nil, - version: nil, - authors: nil, - skip_undefined_reference_warnings_on: [], - package: nil + version: nil @type t :: %__MODULE__{ - apps: [atom()], api_reference: boolean(), + apps: [atom()], assets: nil | String.t(), - before_closing_head_tag: (atom() -> String.t()), + authors: nil | [String.t()], before_closing_body_tag: (atom() -> String.t()), + before_closing_head_tag: (atom() -> String.t()), canonical: nil | String.t(), - nest_modules_by_prefix: [String.t()], + cover: nil | Path.t(), deps: [{ebin_path :: String.t(), doc_url :: String.t()}], extra_section: nil | String.t(), extras: list(), - groups_for_extras: keyword(), filter_modules: (module, map -> boolean), formatter: nil | String.t(), + groups_for_extras: keyword(), + groups_for_functions: keyword((keyword() -> boolean)), + groups_for_modules: keyword(), homepage_url: nil | String.t(), javascript_config_path: nil | String.t(), language: String.t(), logo: nil | Path.t(), - cover: nil | Path.t(), main: nil | String.t(), - groups_for_modules: keyword(), - groups_for_functions: keyword((keyword() -> boolean)), + nest_modules_by_prefix: [String.t()], output: nil | Path.t(), + package: :atom | nil, project: nil | String.t(), retriever: atom(), + skip_undefined_reference_warnings_on: [String.t()], source_beam: nil | String.t(), source_ref: nil | String.t(), source_url: nil | String.t(), source_url_pattern: nil | String.t(), title: nil | String.t(), - version: nil | String.t(), - authors: nil | [String.t()], - skip_undefined_reference_warnings_on: [String.t()], - package: :atom | nil + version: nil | String.t() } @spec build(String.t(), String.t(), Keyword.t()) :: ExDoc.Config.t() @@ -92,16 +92,16 @@ defmodule ExDoc.Config do end) preconfig = %__MODULE__{ - project: project, - version: vsn, + filter_modules: normalize_filter_modules(filter_modules), + groups_for_modules: normalize_groups_for_modules(groups_for_modules), + homepage_url: options[:homepage_url], main: options[:main], + nest_modules_by_prefix: normalize_nest_modules_by_prefix(nest_modules_by_prefix), output: normalize_output(output), - homepage_url: options[:homepage_url], proglang: normalize_proglang(proglang), + project: project, source_url_pattern: source_url_pattern, - nest_modules_by_prefix: normalize_nest_modules_by_prefix(nest_modules_by_prefix), - groups_for_modules: normalize_groups_for_modules(groups_for_modules), - filter_modules: normalize_filter_modules(filter_modules) + version: vsn } struct(preconfig, options) diff --git a/.deps/ex_doc/lib/ex_doc/doc_ast.ex b/.deps/ex_doc/lib/ex_doc/doc_ast.ex @@ -132,16 +132,16 @@ defmodule ExDoc.DocAST do highlight_info = language.highlight_info() Regex.replace( - ~r/<pre><code(?:\s+class="(\w*)")?>([^<]*)<\/code><\/pre>/, + ~r/<pre(\s+class="\w*")?><code(?:\s+class="(\w*)")?>([^<]*)<\/code><\/pre>/, html, - &highlight_code_block(&1, &2, &3, highlight_info, opts) + &highlight_code_block(&1, &2, &3, &4, highlight_info, opts) ) end - defp highlight_code_block(full_block, lang, code, highlight_info, outer_opts) do + defp highlight_code_block(full_block, pre_attr, lang, code, highlight_info, outer_opts) do case pick_language_and_lexer(lang, highlight_info, code) do {_language, nil, _opts} -> full_block - {language, lexer, opts} -> render_code(language, lexer, opts, code, outer_opts) + {lang, lexer, opts} -> render_code(pre_attr, lang, lexer, opts, code, outer_opts) end end @@ -149,6 +149,10 @@ defmodule ExDoc.DocAST do {"shell", ExDoc.ShellLexer, []} end + defp pick_language_and_lexer("output", highlight_info, _code) do + {"output", highlight_info.lexer, highlight_info.opts} + end + defp pick_language_and_lexer("", highlight_info, _code) do {highlight_info.language_name, highlight_info.lexer, highlight_info.opts} end @@ -160,7 +164,7 @@ defmodule ExDoc.DocAST do end end - defp render_code(lang, lexer, lexer_opts, code, opts) do + defp render_code(pre_attr, lang, lexer, lexer_opts, code, opts) do highlight_tag = Keyword.get(opts, :highlight_tag, "span") highlighted = @@ -173,7 +177,7 @@ defmodule ExDoc.DocAST do formatter_options: [highlight_tag: highlight_tag] ) - ~s(<pre><code class="makeup #{lang}" translate="no">#{highlighted}</code></pre>) + ~s(<pre#{pre_attr}><code class="makeup #{lang}" translate="no">#{highlighted}</code></pre>) end entities = [{"&amp;", ?&}, {"&lt;", ?<}, {"&gt;", ?>}, {"&quot;", ?"}, {"&#39;", ?'}] diff --git a/.deps/ex_doc/lib/ex_doc/formatter/epub.ex b/.deps/ex_doc/lib/ex_doc/formatter/epub.ex @@ -116,8 +116,18 @@ defmodule ExDoc.Formatter.EPUB do defp generate_epub(output) do :zip.create( String.to_charlist("#{output}.epub"), - [{'mimetype', @mimetype} | files_to_add(output)], - compress: ['.css', '.xhtml', '.html', '.ncx', '.js', '.opf', '.jpg', '.png', '.xml'] + [{~c"mimetype", @mimetype} | files_to_add(output)], + compress: [ + ~c".css", + ~c".xhtml", + ~c".html", + ~c".ncx", + ~c".js", + ~c".opf", + ~c".jpg", + ~c".png", + ~c".xml" + ] ) end diff --git a/.deps/ex_doc/lib/ex_doc/formatter/epub/assets.ex b/.deps/ex_doc/lib/ex_doc/formatter/epub/assets.ex @@ -14,8 +14,8 @@ defmodule ExDoc.Formatter.EPUB.Assets do def dist(proglang), do: dist_js() ++ dist_css(proglang) defp dist_js(), do: embed_pattern("dist/*.js") - defp dist_css(:elixir), do: embed_pattern("dist/elixir-*.css") - defp dist_css(:erlang), do: embed_pattern("dist/erlang-*.css") + defp dist_css(:elixir), do: embed_pattern("dist/epub-elixir-*.css") + defp dist_css(:erlang), do: embed_pattern("dist/epub-erlang-*.css") def metainfo, do: embed_pattern("metainfo/*") end diff --git a/.deps/ex_doc/lib/ex_doc/formatter/epub/templates/head_template.eex b/.deps/ex_doc/lib/ex_doc/formatter/epub/templates/head_template.eex @@ -5,10 +5,10 @@ <meta charset="utf-8" /> <title><%= page.title %> - <%= config.project %> v<%= config.version %></title> <meta name="generator" content="ExDoc v<%= ExDoc.version() %>" /> - <link type="text/css" rel="stylesheet" - href="<%= H.asset_rev "#{config.output}/OEBPS", "dist/#{config.proglang}*.css" %>" /> - <script src="<%= H.asset_rev "#{config.output}/OEBPS", "dist/app*.js" %>"></script> + <link type="text/css" rel="stylesheet" + href="<%= H.asset_rev "#{config.output}/OEBPS", "dist/epub-#{config.proglang}-*.css" %>" /> + <script src="<%= H.asset_rev "#{config.output}/OEBPS", "dist/epub-*.js" %>"></script> <%# Extra content specified by the user (e.g. custom CSS) %> <%= config.before_closing_head_tag.(:epub) %> </head> - <body> + <body class="content-inner"> diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html.ex b/.deps/ex_doc/lib/ex_doc/formatter/html.ex @@ -67,10 +67,10 @@ defmodule ExDoc.Formatter.HTML do def render_all(project_nodes, ext, config, opts) do base = [ apps: config.apps, + deps: config.deps, ext: ext, extras: extra_paths(config), - skip_undefined_reference_warnings_on: config.skip_undefined_reference_warnings_on, - deps: config.deps + skip_undefined_reference_warnings_on: config.skip_undefined_reference_warnings_on ] project_nodes @@ -79,9 +79,9 @@ defmodule ExDoc.Formatter.HTML do autolink_opts = [ current_module: node.module, - module_id: node.id, file: node.source_path, - line: node.doc_line + line: node.doc_line, + module_id: node.id ] ++ base language = node.language @@ -206,8 +206,8 @@ defmodule ExDoc.Formatter.HTML do defp digest(content) do content |> :erlang.md5() - |> Base.encode16(case: :lower) - |> binary_part(0, 10) + |> Base.encode16(case: :upper) + |> binary_part(0, 8) end defp generate_extras(nodes_map, extras, config) do @@ -224,7 +224,8 @@ defmodule ExDoc.Formatter.HTML do next: next && %{path: "#{next.id}.html", title: next.title} } - html = Templates.extra_template(config, node, nodes_map, refs) + extension = node.source_path && Path.extname(node.source_path) + html = Templates.extra_template(config, node, extra_type(extension), nodes_map, refs) if File.regular?(output) do IO.puts(:stderr, "warning: file #{Path.relative_to_cwd(output)} already exists") @@ -237,6 +238,10 @@ defmodule ExDoc.Formatter.HTML do generated_extras ++ copy_extras(config, extras) end + defp extra_type(".cheatmd"), do: :cheatmd + defp extra_type(".livemd"), do: :livemd + defp extra_type(_), do: :extra + defp copy_extras(config, extras) do for %{source_path: source_path, id: id} when source_path != nil <- extras, ext = extension_name(source_path), @@ -295,7 +300,7 @@ defmodule ExDoc.Formatter.HTML do defp default_assets(config) do [ {Assets.dist(config.proglang), "dist"}, - {Assets.fonts(), "dist/html/fonts"} + {Assets.fonts(), "dist"} ] end @@ -306,13 +311,13 @@ defmodule ExDoc.Formatter.HTML do ~s{API Reference <small class="app-vsn">#{config.project} v#{config.version}</small>} %{ - id: "api-reference", - title: "API Reference", - group: nil, - title_content: title_content, content: api_reference, + group: nil, + id: "api-reference", source_path: nil, - source_url: nil + source_url: nil, + title: "API Reference", + title_content: title_content } end @@ -325,10 +330,10 @@ defmodule ExDoc.Formatter.HTML do autolink_opts = [ apps: config.apps, + deps: config.deps, ext: ext, extras: extra_paths(config), - skip_undefined_reference_warnings_on: config.skip_undefined_reference_warnings_on, - deps: config.deps + skip_undefined_reference_warnings_on: config.skip_undefined_reference_warnings_on ] config.extras @@ -359,14 +364,15 @@ defmodule ExDoc.Formatter.HTML do extension when extension in ["", ".txt"] -> [{:pre, [], "\n" <> File.read!(input), %{}}] - extension when extension in [".md", ".livemd"] -> + extension when extension in [".md", ".livemd", ".cheatmd"] -> input |> File.read!() |> Markdown.to_ast(opts) + |> sectionize(extension) _ -> raise ArgumentError, - "file extension not recognized, allowed extension is either .livemd, .md, .txt or no extension" + "file extension not recognized, allowed extension is either .cheatmd, .livemd, .md, .txt or no extension" end {title_ast, ast} = @@ -390,9 +396,9 @@ defmodule ExDoc.Formatter.HTML do source_url = Utils.source_url_pattern(source_url_pattern, source_path, 1) %{ - id: id, content: content_html, group: group, + id: id, source_path: source_path, source_url: source_url, title: title, @@ -406,6 +412,16 @@ defmodule ExDoc.Formatter.HTML do |> String.downcase() end + defp sectionize(ast, ".cheatmd") do + Markdown.sectionize(ast, fn + {:h2, _, _, _} -> true + {:h3, _, _, _} -> true + _ -> false + end) + end + + defp sectionize(ast, _), do: ast + @doc """ Convert the input file name into a title """ diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/assets.ex b/.deps/ex_doc/lib/ex_doc/formatter/html/assets.ex @@ -11,9 +11,9 @@ defmodule ExDoc.Formatter.HTML.Assets do def dist(proglang), do: dist_js() ++ dist_css(proglang) ++ dist_license() defp dist_js(), do: embed_pattern("dist/*.js") - defp dist_css(:elixir), do: embed_pattern("dist/elixir-*.css") - defp dist_css(:erlang), do: embed_pattern("dist/erlang-*.css") + defp dist_css(:elixir), do: embed_pattern("dist/html-elixir-*.css") + defp dist_css(:erlang), do: embed_pattern("dist/html-erlang-*.css") defp dist_license(), do: embed_pattern("dist/*.LICENSE.txt") - def fonts, do: embed_pattern("fonts/*") + def fonts, do: embed_pattern("dist/*.woff2") end diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/templates.ex b/.deps/ex_doc/lib/ex_doc/formatter/html/templates.ex @@ -195,12 +195,15 @@ defmodule ExDoc.Formatter.HTML.Templates do defp logo_path(%{logo: logo}), do: "assets/logo#{Path.extname(logo)}" defp sidebar_type(:exception), do: "modules" - defp sidebar_type(:extra), do: "extras" defp sidebar_type(:module), do: "modules" defp sidebar_type(:behaviour), do: "modules" defp sidebar_type(:protocol), do: "modules" defp sidebar_type(:task), do: "tasks" + defp sidebar_type(:search), do: "search" + defp sidebar_type(:cheatmd), do: "extras" + defp sidebar_type(:livemd), do: "extras" + defp sidebar_type(:extra), do: "extras" def asset_rev(output, pattern) do output = Path.expand(output) @@ -221,7 +224,7 @@ defmodule ExDoc.Formatter.HTML.Templates do prefixed with `prefix`. """ @heading_regex ~r/<(h[23]).*?>(.*?)<\/\1>/m - @spec link_headings(String.t(), Regex.t(), String.t()) :: String.t() + @spec link_headings(String.t() | nil, Regex.t(), String.t()) :: String.t() | nil def link_headings(content, regex \\ @heading_regex, prefix \\ "") def link_headings(nil, _, _), do: nil @@ -311,12 +314,11 @@ defmodule ExDoc.Formatter.HTML.Templates do not_found_template: [:config, :nodes_map], api_reference_entry_template: [:module_node], api_reference_template: [:nodes_map], - extra_template: [:config, :node, :nodes_map, :refs], + extra_template: [:config, :node, :type, :nodes_map, :refs], search_template: [:config, :nodes_map], sidebar_template: [:config, :nodes_map], summary_template: [:name, :nodes], redirect_template: [:config, :redirect_to], - bottom_actions_template: [:refs], settings_button_template: [] ] diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/templates/bottom_actions_template.eex b/.deps/ex_doc/lib/ex_doc/formatter/html/templates/bottom_actions_template.eex @@ -1,26 +0,0 @@ -<div class="bottom-actions"> - <div class="bottom-actions-item"> - <%= if refs.prev do %> - <a href="<%= refs.prev.path %>" class="bottom-actions-button" rel="prev"> - <span class="subheader"> - ← Previous Page - </span> - <span class="title"> - <%= refs.prev.title %> - </span> - </a> - <% end %> - </div> - <div class="bottom-actions-item"> - <%= if refs.next do %> - <a href="<%= refs.next.path %>" class="bottom-actions-button" rel="next"> - <span class="subheader"> - Next Page → - </span> - <span class="title"> - <%= refs.next.title %> - </span> - </a> - <% end %> - </div> -</div> diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex b/.deps/ex_doc/lib/ex_doc/formatter/html/templates/extra_template.eex @@ -1,4 +1,4 @@ -<%= head_template(config, %{title: node.title, type: :extra}) %> +<%= head_template(config, %{title: node.title, type: type}) %> <%= sidebar_template(config, nodes_map) %> <h1> @@ -12,7 +12,7 @@ <span><%= node.title_content %></span> </h1> -<%= if node.source_path && String.ends_with?(node.source_path, ".livemd") do %> +<%= if type == :livemd do %> <div class="livebook-badge-container"> <a href="#" class="livebook-badge"> <img src="https://livebook.dev/badge/v1/blue.svg" alt="Run in Livebook" width="150" /> @@ -21,5 +21,32 @@ <% end %> <%= link_headings(node.content) %> -<%= bottom_actions_template(refs) %> + +<div class="bottom-actions"> + <div class="bottom-actions-item"> + <%= if refs.prev do %> + <a href="<%= refs.prev.path %>" class="bottom-actions-button" rel="prev"> + <span class="subheader"> + ← Previous Page + </span> + <span class="title"> + <%= refs.prev.title %> + </span> + </a> + <% end %> + </div> + <div class="bottom-actions-item"> + <%= if refs.next do %> + <a href="<%= refs.next.path %>" class="bottom-actions-button" rel="next"> + <span class="subheader"> + Next Page → + </span> + <span class="title"> + <%= refs.next.title %> + </span> + </a> + <% end %> + </div> +</div> + <%= footer_template(config, node) %> diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex b/.deps/ex_doc/lib/ex_doc/formatter/html/templates/footer_template.eex @@ -12,7 +12,7 @@ <% end %> </span> - <button class="line footer-button display-quick-switch"> + <button class="a-main line footer-button display-quick-switch"> Search </button> </p> diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex b/.deps/ex_doc/lib/ex_doc/formatter/html/templates/head_template.eex @@ -10,19 +10,21 @@ <meta name="author" content="<%= Enum.join(config.authors, ", ") %>"> <% end %> <title><%= page.title %> — <%= config.project %> v<%= config.version %></title> - <link rel="stylesheet" href="<%= asset_rev config.output, "dist/#{config.proglang}*.css" %>" /> + <link rel="stylesheet" href="<%= asset_rev config.output, "dist/html-#{config.proglang}*.css" %>" /> <%= if config.canonical do %> <link rel="canonical" href="<%= config.canonical %>" /> <% end %> - <script src="<%= asset_rev config.output, "dist/sidebar_items*.js" %>"></script> + <script src="<%= asset_rev config.output, "dist/handlebars.runtime-*.js" %>"></script> + <script src="<%= asset_rev config.output, "dist/handlebars.templates-*.js" %>"></script> + <script src="<%= asset_rev config.output, "dist/sidebar_items-*.js" %>"></script> <%= if config.javascript_config_path do %> <script src="<%= config.javascript_config_path %>"></script> <% end %> - <script async src="<%= asset_rev config.output, "dist/app*.js" %>"></script> + <script async src="<%= asset_rev config.output, "dist/html-*.js" %>"></script> <%# Extra content specified by the user (e.g. custom CSS) %> <%= config.before_closing_head_tag.(:html) %> </head> - <body data-type="<%= sidebar_type(page.type) %>"> + <body data-type="<%= sidebar_type(page.type) %>" class="page-<%= page.type %>"> <script> <%# Immediately apply night mode preference to avoid a flash effect %> try { diff --git a/.deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex b/.deps/ex_doc/lib/ex_doc/formatter/html/templates/sidebar_template.eex @@ -1,11 +1,10 @@ <div class="main"> +<button class="sidebar-button sidebar-toggle" aria-label="toggle sidebar"> + <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i> +</button> <section class="sidebar"> - <button class="sidebar-button sidebar-toggle" aria-label="toggle sidebar"> - <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i> - </button> - <form class="sidebar-search" action="search.html"> <button type="submit" class="search-button" aria-label="Submit Search"> <i class="ri-search-2-line" aria-hidden="true" title="Submit search"></i> diff --git a/.deps/ex_doc/lib/ex_doc/language.ex b/.deps/ex_doc/lib/ex_doc/language.ex @@ -1,7 +1,7 @@ defmodule ExDoc.Language do @moduledoc false - @typep spec_ast() :: term() + @type spec_ast() :: term() @typedoc """ The map has the following keys: @@ -64,7 +64,7 @@ defmodule ExDoc.Language do %{ line: non_neg_integer() | nil, specs: [spec_ast()], - doc_fallback: (() -> ExDoc.DocAST.t()) | nil, + doc_fallback: (-> ExDoc.DocAST.t()) | nil, extra_annotations: [String.t()] } | :skip diff --git a/.deps/ex_doc/lib/ex_doc/language/elixir.ex b/.deps/ex_doc/lib/ex_doc/language/elixir.ex @@ -109,11 +109,14 @@ defmodule ExDoc.Language.Elixir do if actual_def in module_data.private.optional_callbacks, do: ["optional"], else: [] specs = - case Map.fetch(module_data.private.callbacks, actual_def) do - {:ok, specs} -> + case module_data.private.callbacks do + %{^actual_def => specs} when kind == :macrocallback -> + Enum.map(specs, &remove_callback_term/1) + + %{^actual_def => specs} -> specs - :error -> + %{} -> [] end @@ -136,6 +139,14 @@ defmodule ExDoc.Language.Elixir do } end + defp remove_callback_term({:type, num, :bounded_fun, [lhs, rhs]}) do + {:type, num, :bounded_fun, [remove_callback_term(lhs), rhs]} + end + + defp remove_callback_term({:type, num, :fun, [{:type, num, :product, [_ | rest_args]} | rest]}) do + {:type, num, :fun, [{:type, num, :product, rest_args} | rest]} + end + @impl true def type_data(entry, module_data) do {{_kind, name, arity}, _anno, _signature, _doc, _metadata} = entry @@ -214,7 +225,7 @@ defmodule ExDoc.Language.Elixir do prefixes |> Enum.find(&String.starts_with?(title, &1 <> ".")) |> case do - nil -> {nil, nil} + nil -> nil prefix -> {"." <> String.trim_leading(title, prefix <> "."), prefix} end end @@ -353,6 +364,7 @@ defmodule ExDoc.Language.Elixir do {{:|, _, _}, position} -> to_var({}, position) {left, position} -> to_var(left, position) end) + |> Macro.prewalk(fn node -> Macro.update_meta(node, &Keyword.delete(&1, :line)) end) end defp to_var({:%, meta, [name, _]}, _), do: {:%, meta, [name, {:%{}, meta, []}]} @@ -812,7 +824,10 @@ defmodule ExDoc.Language.Elixir do defp try_autoimported_function(name, arity, mode, config, original_text) do Enum.find_value(@autoimported_modules, fn module -> - remote_url({:function, module, name, arity}, config, original_text, warn?: false, mode: mode) + remote_url({:function, module, name, arity}, config, original_text, + warn?: false, + mode: mode + ) end) end @@ -823,16 +838,12 @@ defmodule ExDoc.Language.Elixir do case {mode, Refs.get_visibility({:module, module}), Refs.get_visibility(ref)} do {_mode, _module_visibility, :public} -> - case Autolink.tool(module, config) do - :no_tool -> - nil + tool = Autolink.tool(module, config) - tool -> - if same_module? do - fragment(tool, kind, name, arity) - else - Autolink.app_module_url(tool, module, config) <> fragment(tool, kind, name, arity) - end + if same_module? do + fragment(tool, kind, name, arity) + else + Autolink.app_module_url(tool, module, config) <> fragment(tool, kind, name, arity) end {:regular_link, module_visibility, :undefined} diff --git a/.deps/ex_doc/lib/ex_doc/markdown.ex b/.deps/ex_doc/lib/ex_doc/markdown.ex @@ -78,4 +78,34 @@ defmodule ExDoc.Markdown do to use an Elixir-based markdown processor """ end + + @doc """ + Wraps the desired tags in HTML in sections. + """ + def sectionize(list, matcher), do: sectionize(list, matcher, []) + + defp sectionize(list, matcher, acc) do + case pivot(list, acc, matcher) do + {acc, {header_tag, header_attrs, _, _} = header, rest} -> + {inner, rest} = Enum.split_while(rest, &not_tag?(&1, header_tag)) + class = String.trim_trailing("#{header_tag} #{header_attrs[:class]}") + section = {:section, [class: class], [header | sectionize(inner, matcher, [])], %{}} + sectionize(rest, matcher, [section | acc]) + + acc -> + acc + end + end + + defp not_tag?({tag, _, _, _}, tag), do: false + defp not_tag?(_, _tag), do: true + + defp pivot([head | tail], acc, fun) do + case fun.(head) do + true -> {acc, head, tail} + false -> pivot(tail, [head | acc], fun) + end + end + + defp pivot([], acc, _fun), do: Enum.reverse(acc) end diff --git a/.deps/ex_doc/lib/ex_doc/markdown/earmark.ex b/.deps/ex_doc/lib/ex_doc/markdown/earmark.ex @@ -72,6 +72,20 @@ defmodule ExDoc.Markdown.Earmark do [] end + # We are matching on Livebook outputs here, because we prune comments at this point + defp fixup_list( + [ + {:comment, _, [~s/ livebook:{"output":true} /], %{comment: true}}, + {"pre", pre_attrs, [{"code", code_attrs, [source], code_meta}], pre_meta} + | ast + ], + acc + ) do + code_attrs = Enum.reject(code_attrs, &match?({"class", _}, &1)) + new_code = {"code", [{"class", "output"} | code_attrs], [source], code_meta} + fixup_list([{"pre", pre_attrs, [new_code], pre_meta} | ast], acc) + end + defp fixup_list([head | tail], acc) do fixed = fixup(head) diff --git a/.deps/ex_doc/lib/ex_doc/nodes.ex b/.deps/ex_doc/lib/ex_doc/nodes.ex @@ -22,25 +22,27 @@ defmodule ExDoc.ModuleNode do language: nil, annotations: [] + @typep annotation :: atom() + @type t :: %__MODULE__{ - id: nil | String.t(), - title: nil | String.t(), - nested_context: nil | String.t(), - nested_title: nil | String.t(), - module: nil | String.t(), - group: nil | String.t(), - deprecated: nil | String.t(), - function_groups: list(String.t()), - docs: list(), - doc: term(), - rendered_doc: nil | String.t(), + id: String.t(), + title: String.t(), + nested_context: String.t() | nil, + nested_title: String.t() | nil, + module: module(), + group: atom() | nil, + deprecated: String.t() | nil, + doc: ExDoc.DocAST.t() | nil, + rendered_doc: String.t() | nil, doc_line: non_neg_integer(), - typespecs: list(), - source_path: nil | String.t(), - source_url: nil | String.t(), - type: nil | atom(), + function_groups: [atom()], + docs: [ExDoc.FunctionNode.t()], + typespecs: [ExDoc.TypeNode.t()], + source_path: String.t(), + source_url: String.t() | nil, + type: atom(), language: module(), - annotations: list() + annotations: [annotation()] } end @@ -65,22 +67,25 @@ defmodule ExDoc.FunctionNode do source_path: nil, source_url: nil + @typep annotation :: String.t() + @typep function_default :: {name :: atom(), arity :: non_neg_integer()} + @type t :: %__MODULE__{ - id: nil | String.t(), - name: nil | String.t(), - arity: non_neg_integer, - defaults: non_neg_integer, - doc: term(), - rendered_doc: nil | String.t(), - doc_line: non_neg_integer, - source_path: nil | String.t(), - source_url: nil | String.t(), - group: nil | String.t(), - type: nil | String.t(), - signature: nil | String.t(), - specs: list(), - annotations: list(), - deprecated: nil | String.t() + id: String.t(), + name: atom(), + arity: non_neg_integer(), + defaults: [function_default()], + deprecated: String.t() | nil, + doc: ExDoc.DocAST.t() | nil, + rendered_doc: String.t() | nil, + type: atom(), + signature: String.t(), + specs: [ExDoc.Language.spec_ast()], + annotations: [annotation()], + group: atom() | nil, + doc_line: non_neg_integer(), + source_path: String.t(), + source_url: String.t() | nil } end @@ -103,19 +108,21 @@ defmodule ExDoc.TypeNode do signature: nil, annotations: [] + @typep annotation :: String.t() + @type t :: %__MODULE__{ - id: nil | String.t(), - name: nil | String.t(), - arity: non_neg_integer, - type: nil | String.t(), - spec: nil | String.t(), - deprecated: nil | String.t(), - doc: term(), - rendered_doc: nil | String.t(), - doc_line: non_neg_integer, - signature: nil | String.t(), - source_url: nil | String.t(), - source_path: nil | String.t(), - annotations: list() + id: String.t(), + name: atom(), + arity: non_neg_integer(), + type: atom(), + deprecated: nil, + doc: ExDoc.DocAST.t() | nil, + rendered_doc: String.t() | nil, + doc_line: non_neg_integer(), + source_path: String.t(), + source_url: String.t() | nil, + spec: ExDoc.Language.spec_ast(), + signature: String.t(), + annotations: [annotation()] } end diff --git a/.deps/ex_doc/lib/ex_doc/retriever.ex b/.deps/ex_doc/lib/ex_doc/retriever.ex @@ -17,7 +17,8 @@ defmodule ExDoc.Retriever do def docs_from_dir(dir, config) when is_binary(dir) do files = Path.wildcard(Path.expand("*.beam", dir)) - docs_from_files(files, config) + files + |> Enum.map(&filename_to_module/1) |> docs_from_modules(config) end @@ -27,15 +28,6 @@ defmodule ExDoc.Retriever do end @doc """ - Extract documentation from all modules in the specified list of files - """ - @spec docs_from_files([Path.t()], ExDoc.Config.t()) :: [ExDoc.ModuleNode.t()] - def docs_from_files(files, _config) when is_list(files) do - files - |> Enum.map(&filename_to_module(&1)) - end - - @doc """ Extract documentation from all modules in the list `modules` """ @spec docs_from_modules([atom], ExDoc.Config.t()) :: [ExDoc.ModuleNode.t()] @@ -314,7 +306,6 @@ defmodule ExDoc.Retriever do ## General helpers - defp signature([]), do: nil defp signature(list) when is_list(list), do: Enum.join(list, " ") defp annotations_from_metadata(metadata) do diff --git a/.deps/ex_doc/lib/ex_doc/utils.ex b/.deps/ex_doc/lib/ex_doc/utils.ex @@ -42,8 +42,14 @@ defmodule ExDoc.Utils do [@offset + List.to_integer([digit | digits]) | make_sortable(chars)] end + # Then Elixir special punctuation - trailing bang `!` + defp make_sortable([?! | chars]), do: [?0 | make_sortable(chars)] + + # Then Elixir special punctuation - question mark `?` + defp make_sortable([?? | chars]), do: [?1 | make_sortable(chars)] + # Then underscore - defp make_sortable([?_ | chars]), do: [?0 | make_sortable(chars)] + defp make_sortable([?_ | chars]), do: [?2 | make_sortable(chars)] # Then uppercased letters and lowercased letters defp make_sortable([char | chars]) when char in ?a..?z do diff --git a/.deps/ex_doc/lib/mix/tasks/docs.ex b/.deps/ex_doc/lib/mix/tasks/docs.ex @@ -19,10 +19,13 @@ defmodule Mix.Tasks.Docs do * `--language` - Specifies the language to annotate the EPUB output in valid [BCP 47](https://tools.ietf.org/html/bcp47) + * `--open` - open browser window pointed to the documentation + * `--output`, `-o` - Output directory for the generated docs, default: `"doc"` - * `--open` - open browser window pointed to the documentation + * `--proglang` - Chooses the main programming language: "elixir" + or "erlang" The command line options have higher precedence than the options specified in your `mix.exs` file below. @@ -118,8 +121,6 @@ defmodule Mix.Tasks.Docs do to provide up-to-date data for features like the version dropdown - See the "Additional JavaScript config" section. Example: `"../versions.js"` - * `:nest_modules_by_prefix` - See the "Nesting" section - * `:language` - Identify the primary language of the documents, its value must be a valid [BCP 47](https://tools.ietf.org/html/bcp47) language tag; default: "en" @@ -134,6 +135,8 @@ defmodule Mix.Tasks.Docs do * `:markdown_processor` - The markdown processor to use, either `module()` or `{module(), keyword()}` to provide configuration options; + * `:nest_modules_by_prefix` - See the "Nesting" section + * `:output` - Output directory for the generated docs; default: "doc". May be overridden by command line argument. @@ -308,11 +311,16 @@ defmodule Mix.Tasks.Docs do canonical: :string, formatter: :keep, language: :string, + open: :boolean, output: :string, - open: :boolean + proglang: :string ] - @aliases [n: :canonical, f: :formatter, o: :output] + @aliases [ + f: :formatter, + n: :canonical, + o: :output + ] @doc false def run(args, config \\ Mix.Project.config(), generator \\ &ExDoc.generate_docs/3) do @@ -334,11 +342,20 @@ defmodule Mix.Tasks.Docs do project = to_string( config[:name] || config[:app] || - raise("expected :name or :app to be found in the project definition in mix.exs") + Mix.raise("expected :name or :app to be found in the project definition in mix.exs") ) version = config[:version] || "dev" + cli_opts = + Keyword.update(cli_opts, :proglang, :elixir, fn proglang -> + if proglang not in ~w(erlang elixir) do + Mix.raise("--proglang must be elixir or erlang") + end + + String.to_atom(proglang) + end) + options = config |> get_docs_opts() diff --git a/.deps/ex_doc/mix.exs b/.deps/ex_doc/mix.exs @@ -2,7 +2,7 @@ defmodule ExDoc.Mixfile do use Mix.Project @source_url "https://github.com/elixir-lang/ex_doc" - @version "0.28.4" + @version "0.29.0" def project do [ @@ -16,6 +16,7 @@ defmodule ExDoc.Mixfile do elixirc_paths: elixirc_paths(Mix.env()), source_url: @source_url, test_coverage: [tool: ExCoveralls], + test_elixirc_options: [docs: true, debug_info: true], preferred_cli_env: [coveralls: :test], name: "ExDoc", description: "ExDoc is a documentation generation tool for Elixir", @@ -55,7 +56,7 @@ defmodule ExDoc.Mixfile do [ licenses: ["Apache-2.0"], maintainers: ["José Valim", "Milton Mazzarri", "Wojtek Mach"], - files: ["formatters", "lib", "mix.exs", "LICENSE", "CHANGELOG.md", "README.md"], + files: ~w(CHANGELOG.md Cheatsheet.cheatmd formatters lib LICENSE mix.exs README.md), links: %{ "GitHub" => @source_url, "Changelog" => "https://hexdocs.pm/ex_doc/changelog.html", @@ -78,7 +79,7 @@ defmodule ExDoc.Mixfile do main: "readme", extras: [ "README.md", - "LICENSE", + "Cheatsheet.cheatmd", "CHANGELOG.md" ], source_ref: "v#{@version}", diff --git a/mix.exs b/mix.exs @@ -79,7 +79,7 @@ defp deps() do {:dialyxir, "~> 1.0", only: [:dev], runtime: false}, # doc - {:ex_doc, "~> 0.28", only: :dev, runtime: false}, + {:ex_doc, "~> 0.29", only: :dev, runtime: false}, ] end diff --git a/mix.lock b/mix.lock @@ -11,11 +11,11 @@ "db_connection": {:hex, :db_connection, "2.4.2", "f92e79aff2375299a16bcb069a14ee8615c3414863a6fef93156aee8e86c2ff3", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4fe53ca91b99f55ea249693a0229356a08f4d1a7931d8ffa79289b145fe83668"}, "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"}, "dialyxir": {:hex, :dialyxir, "1.2.0", "58344b3e87c2e7095304c81a9ae65cb68b613e28340690dfe1a5597fd08dec37", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "61072136427a851674cab81762be4dbeae7679f85b1272b6d25c3a839aff8463"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.25", "2024618731c55ebfcc5439d756852ec4e85978a39d0d58593763924d9a15916f", [:mix], [], "hexpm", "56749c5e1c59447f7b7a23ddb235e4b3defe276afc220a6227237f3efe83f51e"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.29", "149d50dcb3a93d9f3d6f3ecf18c918fb5a2d3c001b5d3305c926cddfbd33355b", [:mix], [], "hexpm", "4902af1b3eb139016aed210888748db8070b8125c2342ce3dcae4f38dcc63503"}, "ecto": {:hex, :ecto, "3.9.1", "67173b1687afeb68ce805ee7420b4261649d5e2deed8fe5550df23bab0bc4396", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c80bb3d736648df790f7f92f81b36c922d9dd3203ca65be4ff01d067f54eb304"}, "ecto_sql": {:hex, :ecto_sql, "3.9.0", "2bb21210a2a13317e098a420a8c1cc58b0c3421ab8e3acfa96417dab7817918c", [:mix], [{:db_connection, "~> 2.5 or ~> 2.4.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.9.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a8f3f720073b8b1ac4c978be25fa7960ed7fd44997420c304a4a2e200b596453"}, "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, - "ex_doc": {:hex, :ex_doc, "0.28.4", "001a0ea6beac2f810f1abc3dbf4b123e9593eaa5f00dd13ded024eae7c523298", [:mix], [{:earmark_parser, "~> 1.4.19", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "bf85d003dd34911d89c8ddb8bda1a958af3471a274a4c2150a9c01c78ac3f8ed"}, + "ex_doc": {:hex, :ex_doc, "0.29.0", "4a1cb903ce746aceef9c1f9ae8a6c12b742a5461e6959b9d3b24d813ffbea146", [:mix], [{:earmark_parser, "~> 1.4.19", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "f096adb8bbca677d35d278223361c7792d496b3fc0d0224c9d4bc2f651af5db1"}, "exsync": {:hex, :exsync, "0.2.4", "5cdc824553e0f4c4bf60018a9a6bbd5d3b51f93ef8401a0d8545f93127281d03", [:mix], [{:file_system, "~> 0.2", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "f7622d8bb98abbe473aa066ae46f91afdf7a5346b8b89728404f7189d2e80896"}, "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"}, "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"},