diff options
Diffstat (limited to 'Master')
36 files changed, 2366 insertions, 552 deletions
diff --git a/Master/bin/aarch64-linux/markdown2tex b/Master/bin/aarch64-linux/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/aarch64-linux/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/markdown2tex b/Master/bin/amd64-freebsd/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/amd64-freebsd/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/amd64-netbsd/markdown2tex b/Master/bin/amd64-netbsd/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/amd64-netbsd/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/armhf-linux/markdown2tex b/Master/bin/armhf-linux/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/armhf-linux/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/markdown2tex b/Master/bin/i386-freebsd/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/i386-freebsd/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/i386-linux/markdown2tex b/Master/bin/i386-linux/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/i386-linux/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/i386-netbsd/markdown2tex b/Master/bin/i386-netbsd/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/i386-netbsd/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/i386-solaris/markdown2tex b/Master/bin/i386-solaris/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/i386-solaris/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/universal-darwin/markdown2tex b/Master/bin/universal-darwin/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/universal-darwin/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/windows/markdown2tex.exe b/Master/bin/windows/markdown2tex.exe Binary files differnew file mode 100755 index 00000000000..3332231b08c --- /dev/null +++ b/Master/bin/windows/markdown2tex.exe diff --git a/Master/bin/x86_64-cygwin/markdown2tex b/Master/bin/x86_64-cygwin/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/x86_64-cygwin/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-darwinlegacy/markdown2tex b/Master/bin/x86_64-darwinlegacy/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/x86_64-darwinlegacy/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-linux/markdown2tex b/Master/bin/x86_64-linux/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/x86_64-linux/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-linuxmusl/markdown2tex b/Master/bin/x86_64-linuxmusl/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/x86_64-linuxmusl/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/bin/x86_64-solaris/markdown2tex b/Master/bin/x86_64-solaris/markdown2tex new file mode 120000 index 00000000000..a206f0c761c --- /dev/null +++ b/Master/bin/x86_64-solaris/markdown2tex @@ -0,0 +1 @@ +../../texmf-dist/scripts/markdown/markdown2tex.lua
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/markdown/CHANGES.md b/Master/texmf-dist/doc/generic/markdown/CHANGES.md index 6c429e24ace..8e6f507c9f6 100644 --- a/Master/texmf-dist/doc/generic/markdown/CHANGES.md +++ b/Master/texmf-dist/doc/generic/markdown/CHANGES.md @@ -1,6 +1,155 @@ # Changes -## 3.9.1 +## 3.10.0 + +Development: + +- Add a built-in theme `witiko/diagrams@v2` for drawing different types of + diagrams. (#448, #514, #531, #542, [matrix.org][matrix-542], a9cadc41, + 578e64d6, 22efe7f4, a3c2d93b, originally suggested by @anubane) + + [matrix-542]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$CpfhKJT8DAkzH7Rx6ynV1BKFKbfMUtxkpNzqftvLGec?via=matrix.org&via=im.f3l.de + + Here is an example LaTeX document using the new theme: + + ```` tex + \documentclass{article} + \usepackage[import=witiko/diagrams@v2, relativeReferences]{markdown} + \begin{document} + \begin{markdown} + ``` dot {caption="An example directed graph" width=12cm #dot} + digraph tree { + margin = 0; + rankdir = "LR"; + + latex -> pmml; + latex -> cmml; + pmml -> slt; + cmml -> opt; + cmml -> prefix; + cmml -> infix; + pmml -> mterms [style=dashed]; + cmml -> mterms; + + latex [label = "LaTeX"]; + pmml [label = "Presentation MathML"]; + cmml [label = "Content MathML"]; + slt [label = "Symbol Layout Tree"]; + opt [label = "Operator Tree"]; + prefix [label = "Prefix"]; + infix [label = "Infix"]; + mterms [label = "M-Terms"]; + } + ``` + + ``` mermaid {caption="An example mindmap" width=9cm #mermaid} + mindmap + root )base-idea( + sub<br/>idea 1 + ((?)) + sub<br/>idea 2 + ((?)) + sub<br/>idea 3 + ((?)) + sub<br/>idea 4 + ((?)) + ``` + + ``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml} + @startuml + ' Define participants (actors) + participant "Client" as C + participant "Server" as S + participant "Database" as DB + + ' Diagram title + title Simple Request-Response Flow + + ' Messages + C -> S: Send Request + note over S: Process request + + alt Request is valid + S -> DB: Query Data + DB -> S: Return Data + S -> C: Respond with Data + else Request is invalid + S -> C: Return Error + end + @enduml + ``` + + See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>. + \end{markdown} + \end{document} + ```````` + + You may use the expl3 prop `\g_markdown_diagrams_infostrings_prop` to + register other types of diagrams. + +- Add option `jekyllDataKeyValue` for routing YAML metadata to expl3 key–values. + (#77, #517, [matrix.org][matrix-517], #539, [matrix.org][matrix-539], + f57a8c45, originally suggested by @TeXhackse) + + While the primary intended users of this new option are package authors, + writers can also use this feature to configure various (La)TeX packages + from YAML: + + ``` tex + \documentclass{article} + \usepackage{chemformula, lua-widow-control, phonenumbers} + \usepackage[raw_attribute, tex_math_dollars]{markdown} + \begin{document} + \begin{markdown}[jekyll_data, jekyll_data_key_value] + + --- + chemformula: + decimal-marker: $\cdot$ + lua-widow-control: + draft: true + showcolours: true + phonenumbers: + area-code: place + area-code-sep: space + country: UK + --- + + Phone number: `\phonenumber{02079460345}`{=tex} + + Chemical reaction: `\ch{A + B -> 3.14159}`{=tex} + + \end{markdown} + \end{document} + ``` + + This won't work for every package but many packages use expl3 key–values + internally for their configuration. If you are curious if your favorite + package does, look for `\keys_define` in its source code. + + For more examples, see #517. + + [matrix-517]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$WzqBd_p3KB766wqbFBLbn3o9DmBJCJfPAOsC5w--gW4?via=matrix.org&via=im.f3l.de + [matrix-539]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$VZbdWB2EpHeg290MGsYsbUEwMoN68zT8tbIRUKRJ1wc?via=matrix.org&via=im.f3l.de + +Fixes: + +- Allow using the options `linkAttributes` and `notes` together. (#543, #544) + + +Distribution: + +- Alias the command `markdown-cli` as `markdown2tex`. + (#545, #546, [tex-live@tug.org][tex-live-2025-01-051051]) + + [tex-live-2025-01-051051]: https://tug.org/pipermail/tex-live/2025-January/051051.html + +Docker: + +- Produce Docker image `witiko/markdown:latest-minimal` with a minimum + installation of the Markdown package for TeX based on the Docker image + `texlive/texlive:latest-minimal`. (61a3aa2b) + +## 3.9.1 (2024-12-17) Development: diff --git a/Master/texmf-dist/doc/generic/markdown/README.md b/Master/texmf-dist/doc/generic/markdown/README.md index 27f21be426c..6d9a786fc8c 100644 --- a/Master/texmf-dist/doc/generic/markdown/README.md +++ b/Master/texmf-dist/doc/generic/markdown/README.md @@ -140,7 +140,7 @@ For further information, consult one of the following: - [Using Markdown in LaTeX documents][overleaf-6]. 4. Journal articles published by [TUGboat][]: - [Using Markdown Inside TeX Documents][tb119], - - [Markdown 2.7.0: Towards Lightweight mMrkup in TeX][tb124], + - [Markdown 2.7.0: Towards Lightweight markup in TeX][tb124], - [Making Markdown into a Microwave Meal][tb129], - [Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX][tb131], - [Markdown 2.15.0: What's New?][tb133], @@ -236,7 +236,7 @@ Acknowledgements | [<img width="150" src="https://www.fi.muni.cz/images/fi-logo.png">][fimu] | I gratefully acknowledge the funding from the [Faculty of Informatics][fimu] at the [Masaryk University][mu] in Brno, Czech Republic, for the development of the Markdown package in projects [MUNI/33/12/2015][], [MUNI/33/1784/2020][], [MUNI/33/0776/2021][], [MUNI/33/1654/2022][], and [MUNI/33/1658/2022][]. | | [<img width="150" src="https://cdn.overleaf.com/img/ol-brand/overleaf_og_logo.png">][overleaf] | Extensive user documentation for the Markdown package was kindly written by [Lian Tze Lim][liantze] and published by [Overleaf][]. | | [<img width="150" src="https://pbs.twimg.com/profile_images/1004769879319334912/6Bh1UthD.jpg">][omedym] | Support for content slicing (Lua options [`shiftHeadings`][option-shift-headings] and [`slice`][option-slice]) and pipe tables (Lua options [`pipeTables`][option-pipe-tables] and [`tableCaptions`][option-table-captions]) was graciously sponsored by [David Vins][dvins] and [Omedym][]. | -| [<img width="150" src="https://www.istqb.org/static/istqb-logo-1b043e800a580724ad223567f9ea57c0.png">][istqb] | Fixes for issues [#359][issue-359], [#368][issue-368], [#401][issue-401], [#424][issue-424], [#440][issue-440], [#468][issue-468], [#474][issue-474], and [#487][issue-487] were graciously sponsored by the [International Software Testing Qualifications Board (ISTQB)][istqb]. | +| [<img width="150" src="https://www.guava.blue/wp-content/uploads/2021/01/ISTQB-logo-600x545.png">][istqb] | Fixes for issues [#359][issue-359], [#368][issue-368], [#401][issue-401], [#424][issue-424], [#440][issue-440], [#468][issue-468], [#474][issue-474], and [#487][issue-487] were graciously sponsored by the [International Software Testing Qualifications Board (ISTQB)][istqb]. | [dvins]: https://github.com/dvins "David Vins" [fimu]: https://www.fi.muni.cz/index.html.en "Faculty of Informatics, Masaryk University" @@ -348,7 +348,7 @@ BibTeX file that is included in your TeX distribution like this: Notes to Distributors --------------------- -The file `markdown-cli.lua` should be installed in the TDS directory +The file `markdown2tex.lua` should be installed in the TDS directory `scripts/markdown`. Furthermore, it should be made executable and either -symlinked to system directories as `markdown-cli` on Unix or have a wrapper -`markdown-cli.exe` installed on Windows. +symlinked to system directories as `markdown2tex` on Unix or have a wrapper +`markdown2tex.exe` installed on Windows. diff --git a/Master/texmf-dist/doc/generic/markdown/VERSION b/Master/texmf-dist/doc/generic/markdown/VERSION index d140c4eb2b7..218ee6d55a8 100644 --- a/Master/texmf-dist/doc/generic/markdown/VERSION +++ b/Master/texmf-dist/doc/generic/markdown/VERSION @@ -1 +1 @@ -3.9.1-0-g92254dfb (2024-12-17) +3.10.0-0-g626df6ad (2025-01-27) diff --git a/Master/texmf-dist/doc/generic/markdown/markdown.html b/Master/texmf-dist/doc/generic/markdown/markdown.html index 31b45fef336..3b67c6a3f3f 100644 --- a/Master/texmf-dist/doc/generic/markdown/markdown.html +++ b/Master/texmf-dist/doc/generic/markdown/markdown.html @@ -93,7 +93,7 @@ <header id="title-block-header"> <h1 class="title">Markdown Package User Manual</h1> <p class="author">Vít Starý Novotný, Andrej Genčur</p> -<p class="date">3.9.1-0-g92254dfb 2024-12-17</p> +<p class="date">3.10.0-0-g626df6ad 2025-01-27</p> </header> <nav id="TOC" role="doc-toc"> <ul> @@ -222,12 +222,12 @@ class="tex">T<sub>e</sub>X</span> distribution, you will need to install it.</p> <p>From <a href="https://github.com/witiko/markdown/releases" title="Releases - witiko/markdown">Releases</a>, download <a -href="https://github.com/witiko/markdown/releases/download/3.9.1/markdown.zip" -title="Release 3.9.1 - witiko/markdown">an archive +href="https://github.com/witiko/markdown/releases/download/3.10.0/markdown.zip" +title="Release 3.10.0 - witiko/markdown">an archive <code>markdown.zip</code> for this version of the Markdown package -(3.9.1)</a> or a different version that you wish to install. Then, unzip -the archive. If you downloaded an archive for a different version of the -Markdown package, you should now locate a file named +(3.10.0)</a> or a different version that you wish to install. Then, +unzip the archive. If you downloaded an archive for a different version +of the Markdown package, you should now locate a file named <code>markdown.html</code> with the user manual for that version, open it, and follow the installation steps in it rather than the steps from this manual.</p> @@ -242,7 +242,8 @@ files:</p> <ul> <li><code>markdown.lua</code>, <code>markdown-parser.lua</code>, and <code>markdown-unicode-data.lua</code>: The Lua module</li> -<li><code>markdown-cli.lua</code>: The Lua command-line interface</li> +<li><code>markdown-cli.lua</code> and <code>markdown2tex.lua</code>: The +Lua command-line interface</li> <li><code>markdown.tex</code>: The plain <span class="tex">T<sub>e</sub>X</span> macro package</li> <li><code>markdown.sty</code>: The <span @@ -264,6 +265,7 @@ generally where the individual files should be placed:</p> <li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-parser.lua</code></li> <li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-unicode-data.lua</code></li> <li><code>⟨TEXMF⟩/scripts/markdown/markdown-cli.lua</code></li> +<li><code>⟨TEXMF⟩/scripts/markdown/markdown2tex.lua</code></li> <li><code>⟨TEXMF⟩/tex/generic/markdown/markdown.tex</code></li> <li><code>⟨TEXMF⟩/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex</code></li> <li><code>⟨TEXMF⟩/tex/latex/markdown/markdown.sty</code></li> @@ -289,6 +291,7 @@ them together. This way your document can be portably typeset on legacy <li><code>./markdown-parser.lua</code></li> <li><code>./markdown-unicode-data.lua</code></li> <li><code>./markdown-cli.lua</code></li> +<li><code>./markdown2tex.lua</code></li> <li><code>./markdown/markdown.tex</code></li> <li><code>./markdown.sty</code></li> <li><code>./t-markdown.tex</code></li> @@ -352,12 +355,12 @@ Interface</h4> <code>hello.md</code> with the following content:</p> <div class="sourceCode" id="cb7"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> hello.md hello.tex</span> +<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> hello.md hello.tex</span> <span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!” Invoking pdfTeX should have the same effect:</p> -<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> hello.md hello.tex</span> +<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> hello.md hello.tex</span> <span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a><span class="ex">pdftex</span> document.tex</span></code></pre></div> <h3 data-number="1.3.2" id="using-plain-tex"><span class="header-section-number">1.3.2</span> Using Plain <span @@ -661,8 +664,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb34-1"><a href= class="sourceCode md"><code class="sourceCode markdown"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a>$\sqrt{-1}$ *equals* $i$.</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb36"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> example.md nomath.tex</span> -<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> example.md nomath.tex</span> +<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span> <span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -673,8 +676,8 @@ contain the following text:</p> </blockquote> <p>Invoking pdfTeX should have the same effect:</p> <div class="sourceCode" id="cb37"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> example.md nomath.tex</span> -<span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> example.md nomath.tex</span> +<span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span> <span id="cb37-3"><a href="#cb37-3" aria-hidden="true" tabindex="-1"></a><span class="ex">pdftex</span> document.tex</span></code></pre></div> <h3 data-number="2.1.2" id="plain-tex"><span class="header-section-number">2.1.2</span> Plain <span @@ -867,7 +870,7 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb46-1"><a hre <p>Next, invoke LuaTeX from the terminal with the <code><strong>eagerCache</strong></code> option disabled:</p> <div class="sourceCode" id="cb47"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> eagerCache=false <span class="at">--</span> hello.md hello.tex</span></code></pre></div> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> eagerCache=false <span class="at">--</span> hello.md hello.tex</span></code></pre></div> <p>A <span class="tex">T<sub>e</sub>X</span> document named <code>hello.tex</code> should be produced and contain the following code:</p> @@ -877,7 +880,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb48-1"><a href= <p>Invoke LuaTeX from the terminal again, this time with the <code><strong>eagerCache</strong></code> option enabled:</p> <div class="sourceCode" id="cb49"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a>markdown-cli eagerCache=true -- hello.md hello.tex</span></code></pre></div> +class="sourceCode tex"><code class="sourceCode latex"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a>markdown2tex eagerCache=true -- hello.md hello.tex</span></code></pre></div> <p>A <span class="tex">T<sub>e</sub>X</span> document named <code>hello.tex</code> should be produced and contain the following code:</p> @@ -1114,7 +1117,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb56-1"><a href= class="sourceCode md"><code class="sourceCode markdown"><span id="cb57-1"><a href="#cb57-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb58"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> cacheDir=cache <span class="at">--</span> hello.md hello.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> cacheDir=cache <span class="at">--</span> hello.md hello.tex</span> <span id="cb58-2"><a href="#cb58-2" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!” A directory named @@ -1424,7 +1427,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb81-1"><a href= class="sourceCode md"><code class="sourceCode markdown"><span id="cb82-1"><a href="#cb82-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb83"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb83-1"><a href="#cb83-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> finalizeCache=true frozenCacheFileName=cache.tex <span class="at">--</span> hello.md hello.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb83-1"><a href="#cb83-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> finalizeCache=true frozenCacheFileName=cache.tex <span class="at">--</span> hello.md hello.tex</span> <span id="cb83-2"><a href="#cb83-2" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!” A frozen cache will also be @@ -1664,8 +1667,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb100-1"><a hr <span id="cb100-2"><a href="#cb100-2" aria-hidden="true" tabindex="-1"></a><span class="at">> A quote?</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb101"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb101-1"><a href="#cb101-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb101-2"><a href="#cb101-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> blankBeforeBlockquote=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb101-1"><a href="#cb101-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb101-2"><a href="#cb101-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> blankBeforeBlockquote=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb101-3"><a href="#cb101-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -1854,8 +1857,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb112-1"><a hr <span id="cb112-4"><a href="#cb112-4" aria-hidden="true" tabindex="-1"></a><span class="in">```</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb113"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb113-1"><a href="#cb113-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> fencedCode=true <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb113-2"><a href="#cb113-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> fencedCode=true blankBeforeCodeFence=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb113-1"><a href="#cb113-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> fencedCode=true <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb113-2"><a href="#cb113-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> fencedCode=true blankBeforeCodeFence=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb113-3"><a href="#cb113-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -2104,8 +2107,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb129-1"><a hr <span id="cb129-3"><a href="#cb129-3" aria-hidden="true" tabindex="-1"></a><span class="fu">==========</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb130"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb130-1"><a href="#cb130-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb130-2"><a href="#cb130-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> blankBeforeHeading=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb130-1"><a href="#cb130-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb130-2"><a href="#cb130-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> blankBeforeHeading=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb130-3"><a href="#cb130-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -2287,8 +2290,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb140-1"><a hr <span id="cb140-2"><a href="#cb140-2" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>a list?</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb141"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb141-1"><a href="#cb141-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb141-2"><a href="#cb141-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> blankBeforeList=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb141-1"><a href="#cb141-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb141-2"><a href="#cb141-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> blankBeforeList=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb141-3"><a href="#cb141-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -2549,8 +2552,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb154-1"><a hr <span id="cb154-3"><a href="#cb154-3" aria-hidden="true" tabindex="-1"></a><span class="at">> or two block quotes?</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb155"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb155-1"><a href="#cb155-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> breakableBlockquotes=false <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb155-2"><a href="#cb155-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb155-1"><a href="#cb155-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> breakableBlockquotes=false <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb155-2"><a href="#cb155-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb155-3"><a href="#cb155-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -2909,8 +2912,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb173-1"><a href class="sourceCode md"><code class="sourceCode markdown"><span id="cb174-1"><a href="#cb174-1" aria-hidden="true" tabindex="-1"></a>``Is this a code span?'' ``Or a quote?''</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb175"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb175-1"><a href="#cb175-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> codeSpans=false <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb175-2"><a href="#cb175-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb175-1"><a href="#cb175-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> codeSpans=false <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb175-2"><a href="#cb175-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb175-3"><a href="#cb175-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -4504,8 +4507,8 @@ class="sourceCode html"><code class="sourceCode html"><span id="cb269-1"><a href <span id="cb269-6"><a href="#cb269-6" aria-hidden="true" tabindex="-1"></a>_Is there <span class="kw"><?</span> HTML instruction <span class="kw">?></span> support?_</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb270"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb270-1"><a href="#cb270-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> html=false <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb270-2"><a href="#cb270-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb270-1"><a href="#cb270-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> html=false <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb270-2"><a href="#cb270-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb270-3"><a href="#cb270-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -4774,8 +4777,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb282-1"><a href class="sourceCode md"><code class="sourceCode markdown"><span id="cb283-1"><a href="#cb283-1" aria-hidden="true" tabindex="-1"></a>$\sqrt{-1}$ *equals* $i$.</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb284"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb284-2"><a href="#cb284-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> hybrid=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb284-2"><a href="#cb284-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> hybrid=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb284-3"><a href="#cb284-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -6153,8 +6156,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb358-1"><a href class="sourceCode md"><code class="sourceCode markdown"><span id="cb359-1"><a href="#cb359-1" aria-hidden="true" tabindex="-1"></a>Are these just three regular dots, a victorian ellipsis, or ... ?</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb360"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb360-2"><a href="#cb360-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> smartEllipses=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb360-2"><a href="#cb360-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> smartEllipses=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb360-3"><a href="#cb360-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -7208,8 +7211,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb419-1"><a hr <span id="cb419-3"><a href="#cb419-3" aria-hidden="true" tabindex="-1"></a>$$\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx$$</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb420"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb420-2"><a href="#cb420-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> texMathDollars=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb420-2"><a href="#cb420-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> texMathDollars=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb420-3"><a href="#cb420-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -7384,8 +7387,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb431-1"><a hr <span id="cb431-3"><a href="#cb431-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\\</span><span class="co">[</span><span class="ot">\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx\\]</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb432"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb432-2"><a href="#cb432-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> texMathDoubleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb432-2"><a href="#cb432-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> texMathDoubleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb432-3"><a href="#cb432-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -7560,8 +7563,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb443-1"><a hr <span id="cb443-3"><a href="#cb443-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\[</span>\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx<span class="sc">\]</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb444"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb444-2"><a href="#cb444-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> texMathSingleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> +class="sourceCode sh"><code class="sourceCode bash"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb444-2"><a href="#cb444-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> texMathSingleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> <span id="cb444-3"><a href="#cb444-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> @@ -8070,20 +8073,25 @@ low-level programming.</p> <p>Built-in plain <span class="tex">T<sub>e</sub>X</span> themes provided with the Markdown package include:</p> <dl> -<dt><code><strong>witiko/diagrams@v1</strong></code></dt> -<dd> -<p>A theme that typesets fenced code blocks with the <code>dot …</code> -infostring as images of directed graphs rendered by the Graphviz tools. -The right tail of the infostring is used as the image title. The theme -requires a Unix-like operating system with GNU Diffutils and Graphviz -installed. The theme also requires shell access unless the +<dt><code><strong>witiko/diagrams</strong></code></dt> +<dd> +<p>A theme that typesets fenced code blocks with the infostrings +<code>dot</code>, <code>mermaid</code>, and <code>plantuml</code> as +figures with diagrams produced with the command <code>dot</code> from +Graphviz tools, the command <code>mmdc</code> from the npm package +<code>@mermaid-js/mermaid-cli</code>, and the command +<code>plantuml</code> from the package PlantUML, respectively. The +key-value attribute <code>caption</code> can be used to specify the +caption of the figure. The remaining attributes are treated as image +attributes.</p> +<p>The theme requires a Unix-like operating system with GNU Diffutils, +Graphviz, the npm package <code>@mermaid-js/mermaid-cli</code>, and +PlantUML installed. All these packages are already included in the +Docker image <code>witiko/markdown</code>; consult +<code>Dockerfile</code> to see how they are installed. The theme also +requires shell access unless the <code><strong>frozenCache</strong></code> plain <span class="tex">T<sub>e</sub>X</span> option is enabled.</p> -<p>The above example loads version <code>v1</code> of the theme, which -is an alias for an earlier theme named <code>witiko/dot</code>. Future -versions of the theme may have backwards-incompatible syntax and -behavior. Therefore, you are encouraged to always specify the version -<code>v1</code> to keep your documents from suddenly breaking.</p> </dd> </dl> <h5 class="unnumbered" id="latex-example-54"><span @@ -8092,54 +8100,79 @@ class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <code>document.tex</code> with the following content:</p> <div class="sourceCode" id="cb472"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb472-1"><a href="#cb472-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb472-2"><a href="#cb472-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/diagrams@v1]{<span class="ex">markdown</span>}</span> -<span id="cb472-3"><a href="#cb472-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\setkeys</span>{Gin}{</span> -<span id="cb472-4"><a href="#cb472-4" aria-hidden="true" tabindex="-1"></a> width=<span class="fu">\columnwidth</span>,</span> -<span id="cb472-5"><a href="#cb472-5" aria-hidden="true" tabindex="-1"></a> height=0.65<span class="fu">\paperheight</span>,</span> -<span id="cb472-6"><a href="#cb472-6" aria-hidden="true" tabindex="-1"></a> keepaspectratio}</span> -<span id="cb472-7"><a href="#cb472-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb472-8"><a href="#cb472-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb472-9"><a href="#cb472-9" aria-hidden="true" tabindex="-1"></a>``` dot Various formats of mathemathical formulae</span> -<span id="cb472-10"><a href="#cb472-10" aria-hidden="true" tabindex="-1"></a>digraph tree {</span> -<span id="cb472-11"><a href="#cb472-11" aria-hidden="true" tabindex="-1"></a> margin = 0;</span> -<span id="cb472-12"><a href="#cb472-12" aria-hidden="true" tabindex="-1"></a> rankdir = "LR";</span> -<span id="cb472-13"><a href="#cb472-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb472-14"><a href="#cb472-14" aria-hidden="true" tabindex="-1"></a> latex -> pmml;</span> -<span id="cb472-15"><a href="#cb472-15" aria-hidden="true" tabindex="-1"></a> latex -> cmml;</span> -<span id="cb472-16"><a href="#cb472-16" aria-hidden="true" tabindex="-1"></a> pmml -> slt;</span> -<span id="cb472-17"><a href="#cb472-17" aria-hidden="true" tabindex="-1"></a> cmml -> opt;</span> -<span id="cb472-18"><a href="#cb472-18" aria-hidden="true" tabindex="-1"></a> cmml -> prefix;</span> -<span id="cb472-19"><a href="#cb472-19" aria-hidden="true" tabindex="-1"></a> cmml -> infix;</span> -<span id="cb472-20"><a href="#cb472-20" aria-hidden="true" tabindex="-1"></a> pmml -> mterms [style=dashed];</span> -<span id="cb472-21"><a href="#cb472-21" aria-hidden="true" tabindex="-1"></a> cmml -> mterms;</span> -<span id="cb472-22"><a href="#cb472-22" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb472-23"><a href="#cb472-23" aria-hidden="true" tabindex="-1"></a> latex [label = "LaTeX"];</span> -<span id="cb472-24"><a href="#cb472-24" aria-hidden="true" tabindex="-1"></a> pmml [label = "Presentation MathML"];</span> -<span id="cb472-25"><a href="#cb472-25" aria-hidden="true" tabindex="-1"></a> cmml [label = "Content MathML"];</span> -<span id="cb472-26"><a href="#cb472-26" aria-hidden="true" tabindex="-1"></a> slt [label = "Symbol Layout Tree"];</span> -<span id="cb472-27"><a href="#cb472-27" aria-hidden="true" tabindex="-1"></a> opt [label = "Operator Tree"];</span> -<span id="cb472-28"><a href="#cb472-28" aria-hidden="true" tabindex="-1"></a> prefix [label = "Prefix"];</span> -<span id="cb472-29"><a href="#cb472-29" aria-hidden="true" tabindex="-1"></a> infix [label = "Infix"];</span> -<span id="cb472-30"><a href="#cb472-30" aria-hidden="true" tabindex="-1"></a> mterms [label = "M-Terms"];</span> -<span id="cb472-31"><a href="#cb472-31" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb472-32"><a href="#cb472-32" aria-hidden="true" tabindex="-1"></a>```</span> -<span id="cb472-33"><a href="#cb472-33" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb472-34"><a href="#cb472-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<span id="cb472-2"><a href="#cb472-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/diagrams@v2, relativeReferences]{<span class="ex">markdown</span>}</span> +<span id="cb472-3"><a href="#cb472-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb472-4"><a href="#cb472-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb472-5"><a href="#cb472-5" aria-hidden="true" tabindex="-1"></a>``` dot {caption="An example directed graph" width=12cm #dot}</span> +<span id="cb472-6"><a href="#cb472-6" aria-hidden="true" tabindex="-1"></a>digraph tree {</span> +<span id="cb472-7"><a href="#cb472-7" aria-hidden="true" tabindex="-1"></a> margin = 0;</span> +<span id="cb472-8"><a href="#cb472-8" aria-hidden="true" tabindex="-1"></a> rankdir = "LR";</span> +<span id="cb472-9"><a href="#cb472-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-10"><a href="#cb472-10" aria-hidden="true" tabindex="-1"></a> latex -> pmml;</span> +<span id="cb472-11"><a href="#cb472-11" aria-hidden="true" tabindex="-1"></a> latex -> cmml;</span> +<span id="cb472-12"><a href="#cb472-12" aria-hidden="true" tabindex="-1"></a> pmml -> slt;</span> +<span id="cb472-13"><a href="#cb472-13" aria-hidden="true" tabindex="-1"></a> cmml -> opt;</span> +<span id="cb472-14"><a href="#cb472-14" aria-hidden="true" tabindex="-1"></a> cmml -> prefix;</span> +<span id="cb472-15"><a href="#cb472-15" aria-hidden="true" tabindex="-1"></a> cmml -> infix;</span> +<span id="cb472-16"><a href="#cb472-16" aria-hidden="true" tabindex="-1"></a> pmml -> mterms [style=dashed];</span> +<span id="cb472-17"><a href="#cb472-17" aria-hidden="true" tabindex="-1"></a> cmml -> mterms;</span> +<span id="cb472-18"><a href="#cb472-18" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-19"><a href="#cb472-19" aria-hidden="true" tabindex="-1"></a> latex [label = "LaTeX"];</span> +<span id="cb472-20"><a href="#cb472-20" aria-hidden="true" tabindex="-1"></a> pmml [label = "Presentation MathML"];</span> +<span id="cb472-21"><a href="#cb472-21" aria-hidden="true" tabindex="-1"></a> cmml [label = "Content MathML"];</span> +<span id="cb472-22"><a href="#cb472-22" aria-hidden="true" tabindex="-1"></a> slt [label = "Symbol Layout Tree"];</span> +<span id="cb472-23"><a href="#cb472-23" aria-hidden="true" tabindex="-1"></a> opt [label = "Operator Tree"];</span> +<span id="cb472-24"><a href="#cb472-24" aria-hidden="true" tabindex="-1"></a> prefix [label = "Prefix"];</span> +<span id="cb472-25"><a href="#cb472-25" aria-hidden="true" tabindex="-1"></a> infix [label = "Infix"];</span> +<span id="cb472-26"><a href="#cb472-26" aria-hidden="true" tabindex="-1"></a> mterms [label = "M-Terms"];</span> +<span id="cb472-27"><a href="#cb472-27" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb472-28"><a href="#cb472-28" aria-hidden="true" tabindex="-1"></a>```</span> +<span id="cb472-29"><a href="#cb472-29" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-30"><a href="#cb472-30" aria-hidden="true" tabindex="-1"></a>``` mermaid {caption="An example mindmap" width=9cm #mermaid}</span> +<span id="cb472-31"><a href="#cb472-31" aria-hidden="true" tabindex="-1"></a>mindmap</span> +<span id="cb472-32"><a href="#cb472-32" aria-hidden="true" tabindex="-1"></a> root )base-idea(</span> +<span id="cb472-33"><a href="#cb472-33" aria-hidden="true" tabindex="-1"></a> sub<br/>idea 1</span> +<span id="cb472-34"><a href="#cb472-34" aria-hidden="true" tabindex="-1"></a> ((?))</span> +<span id="cb472-35"><a href="#cb472-35" aria-hidden="true" tabindex="-1"></a> sub<br/>idea 2</span> +<span id="cb472-36"><a href="#cb472-36" aria-hidden="true" tabindex="-1"></a> ((?))</span> +<span id="cb472-37"><a href="#cb472-37" aria-hidden="true" tabindex="-1"></a> sub<br/>idea 3</span> +<span id="cb472-38"><a href="#cb472-38" aria-hidden="true" tabindex="-1"></a> ((?))</span> +<span id="cb472-39"><a href="#cb472-39" aria-hidden="true" tabindex="-1"></a> sub<br/>idea 4</span> +<span id="cb472-40"><a href="#cb472-40" aria-hidden="true" tabindex="-1"></a> ((?))</span> +<span id="cb472-41"><a href="#cb472-41" aria-hidden="true" tabindex="-1"></a>```</span> +<span id="cb472-42"><a href="#cb472-42" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-43"><a href="#cb472-43" aria-hidden="true" tabindex="-1"></a>``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml}</span> +<span id="cb472-44"><a href="#cb472-44" aria-hidden="true" tabindex="-1"></a>@startuml</span> +<span id="cb472-45"><a href="#cb472-45" aria-hidden="true" tabindex="-1"></a>' Define participants (actors)</span> +<span id="cb472-46"><a href="#cb472-46" aria-hidden="true" tabindex="-1"></a>participant "Client" as C</span> +<span id="cb472-47"><a href="#cb472-47" aria-hidden="true" tabindex="-1"></a>participant "Server" as S</span> +<span id="cb472-48"><a href="#cb472-48" aria-hidden="true" tabindex="-1"></a>participant "Database" as DB</span> +<span id="cb472-49"><a href="#cb472-49" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-50"><a href="#cb472-50" aria-hidden="true" tabindex="-1"></a>' Diagram title</span> +<span id="cb472-51"><a href="#cb472-51" aria-hidden="true" tabindex="-1"></a>title Simple Request-Response Flow</span> +<span id="cb472-52"><a href="#cb472-52" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-53"><a href="#cb472-53" aria-hidden="true" tabindex="-1"></a>' Messages</span> +<span id="cb472-54"><a href="#cb472-54" aria-hidden="true" tabindex="-1"></a>C -> S: Send Request</span> +<span id="cb472-55"><a href="#cb472-55" aria-hidden="true" tabindex="-1"></a>note over S: Process request</span> +<span id="cb472-56"><a href="#cb472-56" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-57"><a href="#cb472-57" aria-hidden="true" tabindex="-1"></a>alt Request is valid</span> +<span id="cb472-58"><a href="#cb472-58" aria-hidden="true" tabindex="-1"></a> S -> DB: Query Data</span> +<span id="cb472-59"><a href="#cb472-59" aria-hidden="true" tabindex="-1"></a> DB -> S: Return Data</span> +<span id="cb472-60"><a href="#cb472-60" aria-hidden="true" tabindex="-1"></a> S -> C: Respond with Data</span> +<span id="cb472-61"><a href="#cb472-61" aria-hidden="true" tabindex="-1"></a>else Request is invalid</span> +<span id="cb472-62"><a href="#cb472-62" aria-hidden="true" tabindex="-1"></a> S -> C: Return Error</span> +<span id="cb472-63"><a href="#cb472-63" aria-hidden="true" tabindex="-1"></a>end</span> +<span id="cb472-64"><a href="#cb472-64" aria-hidden="true" tabindex="-1"></a>@enduml</span> +<span id="cb472-65"><a href="#cb472-65" aria-hidden="true" tabindex="-1"></a>```</span> +<span id="cb472-66"><a href="#cb472-66" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb472-67"><a href="#cb472-67" aria-hidden="true" tabindex="-1"></a>See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>.</span> +<span id="cb472-68"><a href="#cb472-68" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb472-69"><a href="#cb472-69" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb473"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb473-1"><a href="#cb473-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> <span class="at">--shell-escape</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and -contain a drawing of a directed graph similar to Figure 1 from the -following conference article:</p> -<blockquote> -<p>NOVOTNÝ, Vít, Petr SOJKA, Michal ŠTEFÁNIK and Dávid LUPTÁK. Three is -Better than One: Ensembling Math Information Retrieval Systems. <em>CEUR -Workshop Proceedings</em>. Thessaloniki, Greece: M. Jeusfeld c/o -Redaktion Sun SITE, Informatik V, RWTH Aachen., 2020, vol. 2020, No -2696, p. 1-30. ISSN 1613-0073. <a -href="http://ceur-ws.org/Vol-2696/paper_235.pdf" -class="uri">http://ceur-ws.org/Vol-2696/paper_235.pdf</a></p> -</blockquote> +contain three diagrams.</p> <dl> <dt><code><strong>witiko/graphicx/http</strong></code></dt> <dd> @@ -8354,7 +8387,7 @@ class="header-section-number">2.2.3.2</span> Themes</h4> <p>In <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, we expand on the concept of <a href="#themes">themes</a> by allowing a theme to be a full-blown <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> -package. Specifically, the key-values <code>theme</code>=⟨<em>theme +package. Specifically, the key–values <code>theme</code>=⟨<em>theme name</em>⟩ and <code>import</code>=⟨<em>theme name</em>⟩ load a <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> package named <code>markdowntheme</code>⟨<em>munged theme name</em>⟩<code>.sty</code> @@ -8405,7 +8438,7 @@ class="header-section-number">2.2.4.1</span> Themes</h4> <p>In Con<span class="tex">T<sub>e</sub>X</span>t, we expand on the concept of <a href="#themes">themes</a> by allowing a theme to be a full-blown Con<span class="tex">T<sub>e</sub>X</span>t module. -Specifically, the key-values <code>theme</code>=⟨<em>theme name</em>⟩ +Specifically, the key–values <code>theme</code>=⟨<em>theme name</em>⟩ and <code>import</code>=⟨<em>theme name</em>⟩ load a Con<span class="tex">T<sub>e</sub>X</span>t module named <code>t-markdowntheme</code>⟨<em>munged theme @@ -12670,10 +12703,10 @@ contain the following text:</p> <h4 data-number="2.3.2.1" id="expl3yamlmetadata"><span class="header-section-number">2.3.2.1</span> YAML Metadata Renderer Prototypes</h4> -<p>By default, the renderer prototypes for YAML metadata provide a -high-level interface that can be programmed using the -<code>markdown/jekyllData</code> key–values from the l3keys module of -the <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>3 kernel.</p> +<p>For simple <abbr>YAML</abbr> metadata, a simple high-level interface +is provided that can be programmed by setting the expl3 key–values <span +class="citation" data-cites="latex25">[@latex25]</span> for the module +<code>markdown/jekyllData</code>.</p> <h5 class="unnumbered" id="plain-tex-example-48">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named @@ -12775,6 +12808,67 @@ contain the following text:</p> <blockquote> <p>Jane Doe is 99 years old.</p> </blockquote> +<h5 class="unnumbered" id="latex-example-102"><span +class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> +<p>Using a text editor, create a text document named +<code>document.tex</code> with the following content:</p> +<div class="sourceCode" id="cb685"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb685-1"><a href="#cb685-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb685-2"><a href="#cb685-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb685-3"><a href="#cb685-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb685-4"><a href="#cb685-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\str</span>_new:N <span class="fu">\g</span>_markdown_example_title_str</span> +<span id="cb685-5"><a href="#cb685-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\seq</span>_new:N <span class="fu">\g</span>_markdown_example_authors_seq</span> +<span id="cb685-6"><a href="#cb685-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> +<span id="cb685-7"><a href="#cb685-7" aria-hidden="true" tabindex="-1"></a> { markdown / example / module }</span> +<span id="cb685-8"><a href="#cb685-8" aria-hidden="true" tabindex="-1"></a> { <span class="co">% Define a key--value that processes YAML metadata.</span></span> +<span id="cb685-9"><a href="#cb685-9" aria-hidden="true" tabindex="-1"></a> title / programmaticString .str_gset:N = <span class="fu">\g</span>_markdown_example_title_str, <span class="co">% Store the raw title in a variable.</span></span> +<span id="cb685-10"><a href="#cb685-10" aria-hidden="true" tabindex="-1"></a> title .code:n = { <span class="fu">\title</span> { #1 } }, <span class="co">% Set the title. This is the same as writing `title / typographicString`.</span></span> +<span id="cb685-11"><a href="#cb685-11" aria-hidden="true" tabindex="-1"></a> authors / unknown .code:n = { <span class="co">% Store a variable-length list of authors in an array variable.</span></span> +<span id="cb685-12"><a href="#cb685-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\seq</span>_put_right:Nn</span> +<span id="cb685-13"><a href="#cb685-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\g</span>_markdown_example_authors_seq</span> +<span id="cb685-14"><a href="#cb685-14" aria-hidden="true" tabindex="-1"></a> { #1 }</span> +<span id="cb685-15"><a href="#cb685-15" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb685-16"><a href="#cb685-16" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb685-17"><a href="#cb685-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span></span> +<span id="cb685-18"><a href="#cb685-18" aria-hidden="true" tabindex="-1"></a> { metadata }</span> +<span id="cb685-19"><a href="#cb685-19" aria-hidden="true" tabindex="-1"></a> { <span class="co">% Define a snippet that routes YAML metadata to the above key key–value.</span></span> +<span id="cb685-20"><a href="#cb685-20" aria-hidden="true" tabindex="-1"></a> jekyllDataKeyValue = markdown / example / module,</span> +<span id="cb685-21"><a href="#cb685-21" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb685-22"><a href="#cb685-22" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = { <span class="co">% At the end of the YAML metadata, ...</span></span> +<span id="cb685-23"><a href="#cb685-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">\clist</span>_set_from_seq:NN <span class="co">% ... set the list of authors and</span></span> +<span id="cb685-24"><a href="#cb685-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\l</span>_tmpa_clist</span> +<span id="cb685-25"><a href="#cb685-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\g</span>_markdown_example_authors_seq</span> +<span id="cb685-26"><a href="#cb685-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">\exp</span>_args:Nx</span> +<span id="cb685-27"><a href="#cb685-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">\author</span></span> +<span id="cb685-28"><a href="#cb685-28" aria-hidden="true" tabindex="-1"></a> { <span class="fu">\clist</span>_use:Nn <span class="fu">\l</span>_tmpa_clist { ,~ } }</span> +<span id="cb685-29"><a href="#cb685-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\AtBeginDocument</span> { <span class="fu">\maketitle</span> } <span class="co">% ... typeset the title page.</span></span> +<span id="cb685-30"><a href="#cb685-30" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb685-31"><a href="#cb685-31" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb685-32"><a href="#cb685-32" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb685-33"><a href="#cb685-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb685-34"><a href="#cb685-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">yaml</span>}[snippet=metadata]</span> +<span id="cb685-35"><a href="#cb685-35" aria-hidden="true" tabindex="-1"></a>title: Some title that includes _markup_</span> +<span id="cb685-36"><a href="#cb685-36" aria-hidden="true" tabindex="-1"></a>authors: [Jane Doe, John Moe]</span> +<span id="cb685-37"><a href="#cb685-37" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">yaml</span>}</span> +<span id="cb685-38"><a href="#cb685-38" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb685-39"><a href="#cb685-39" aria-hidden="true" tabindex="-1"></a>The raw title of the document is:</span> +<span id="cb685-40"><a href="#cb685-40" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb685-41"><a href="#cb685-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\str</span>_use:N <span class="fu">\g</span>_markdown_example_title_str</span> +<span id="cb685-42"><a href="#cb685-42" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb685-43"><a href="#cb685-43" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<p>Next, invoke LuaTeX from the terminal:</p> +<div class="sourceCode" id="cb686"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb686-1"><a href="#cb686-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<p>A PDF document named <code>document.pdf</code> should be produced and +contain the following text:</p> +<blockquote> +<h3 id="some-title-that-includes-markup">Some title that includes +<em>markup</em></h3> +<h5 id="jane-doe-john-moe">Jane Doe, John Moe</h5> +<h5 id="current-date"><em>⟨Current date⟩</em></h5> +<p>The raw title of the document is: Some title that includes +_markup_</p> +</blockquote> <section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes"> <hr /> diff --git a/Master/texmf-dist/doc/generic/markdown/markdown.pdf b/Master/texmf-dist/doc/generic/markdown/markdown.pdf Binary files differindex 2dffbddaebd..e2c439b0ce5 100644 --- a/Master/texmf-dist/doc/generic/markdown/markdown.pdf +++ b/Master/texmf-dist/doc/generic/markdown/markdown.pdf diff --git a/Master/texmf-dist/scripts/markdown/markdown-cli.lua b/Master/texmf-dist/scripts/markdown/markdown-cli.lua index ee079726afd..d45924ca693 100644 --- a/Master/texmf-dist/scripts/markdown/markdown-cli.lua +++ b/Master/texmf-dist/scripts/markdown/markdown-cli.lua @@ -21,7 +21,7 @@ -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- --- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur -- -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -59,7 +59,7 @@ -- those in the standard .ins files. -- local metadata = { - version = "3.9.1-0-g92254dfb", + version = "3.10.0-0-g626df6ad", comment = "A module for the conversion from markdown " .. "to plain TeX", author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, " @@ -150,7 +150,7 @@ Report bugs to: witiko@mail.muni.cz Markdown package home page: <https://github.com/witiko/markdown>]] local VERSION_STRING = [[ -markdown-cli.lua (Markdown) ]] .. metadata.version .. [[ +markdown-cli (Markdown) ]] .. metadata.version .. [[ Copyright (C) ]] .. table.concat(metadata.copyright, "\nCopyright (C) ") .. [[ diff --git a/Master/texmf-dist/scripts/markdown/markdown2tex.lua b/Master/texmf-dist/scripts/markdown/markdown2tex.lua new file mode 100755 index 00000000000..d45924ca693 --- /dev/null +++ b/Master/texmf-dist/scripts/markdown/markdown2tex.lua @@ -0,0 +1,288 @@ +#!/usr/bin/env texlua +-- +-- Copyright (C) 2009-2016 John MacFarlane, Hans Hagen +-- +-- 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 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. +-- +-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur +-- +-- This work may be distributed and/or modified under the +-- conditions of the LaTeX Project Public License, either version 1.3 +-- of this license or (at your option) any later version. +-- The latest version of this license is in +-- +-- http://www.latex-project.org/lppl.txt +-- +-- and version 1.3 or later is part of all distributions of LaTeX +-- version 2005/12/01 or later. +-- +-- This work has the LPPL maintenance status `maintained'. +-- The Current Maintainer of this work is Vít Starý Novotný. +-- +-- Send bug reports, requests for additions and questions +-- either to the GitHub issue tracker at +-- +-- https://github.com/witiko/markdown/issues +-- +-- or to the e-mail address <witiko@mail.muni.cz>. +-- +-- MODIFICATION ADVICE: +-- +-- If you want to customize this file, it is best to make a copy of +-- the source file(s) from which it was produced. Use a different +-- name for your copy(ies) and modify the copy(ies); this will ensure +-- that your modifications do not get overwritten when you install a +-- new release of the standard system. You should also ensure that +-- your modified source file does not generate any modified file with +-- the same name as a standard file. +-- +-- You will also need to produce your own, suitably named, .ins file to +-- control the generation of files from your source file; this file +-- should contain your own preambles for the files it generates, not +-- those in the standard .ins files. +-- +local metadata = { + version = "3.10.0-0-g626df6ad", + comment = "A module for the conversion from markdown " + .. "to plain TeX", + author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, " + .. "Andrej Genčur", + copyright = {"2009-2016 John MacFarlane, Hans Hagen", + "2016-2024 Vít Starý Novotný, Andrej Genčur"}, + license = "LPPL 1.3c" +} + +local defaultOptions = {} +defaultOptions.eagerCache = true +defaultOptions.experimental = false +defaultOptions.singletonCache = true +defaultOptions.unicodeNormalization = true +defaultOptions.unicodeNormalizationForm = "nfc" +defaultOptions.cacheDir = "." +defaultOptions.contentBlocksLanguageMap = "markdown-languages.json" +defaultOptions.debugExtensionsFileName = "debug-extensions.json" +defaultOptions.frozenCacheFileName = "frozenCache.tex" +defaultOptions.autoIdentifiers = false +defaultOptions.blankBeforeBlockquote = false +defaultOptions.blankBeforeCodeFence = false +defaultOptions.blankBeforeDivFence = false +defaultOptions.blankBeforeHeading = false +defaultOptions.blankBeforeList = false +defaultOptions.bracketedSpans = false +defaultOptions.breakableBlockquotes = true +defaultOptions.citationNbsps = true +defaultOptions.citations = false +defaultOptions.codeSpans = true +defaultOptions.contentBlocks = false +defaultOptions.contentLevel = "block" +defaultOptions.debugExtensions = false +defaultOptions.definitionLists = false +defaultOptions.ensureJekyllData = false +defaultOptions.expectJekyllData = false +defaultOptions.extensions = {} +defaultOptions.fancyLists = false +defaultOptions.fencedCode = true +defaultOptions.fencedCodeAttributes = false +defaultOptions.fencedDivs = false +defaultOptions.finalizeCache = false +defaultOptions.frozenCacheCounter = 0 +defaultOptions.gfmAutoIdentifiers = false +defaultOptions.hashEnumerators = false +defaultOptions.headerAttributes = false +defaultOptions.html = true +defaultOptions.hybrid = false +defaultOptions.inlineCodeAttributes = false +defaultOptions.inlineNotes = false +defaultOptions.jekyllData = false +defaultOptions.linkAttributes = false +defaultOptions.lineBlocks = false +defaultOptions.mark = false +defaultOptions.notes = false +defaultOptions.pipeTables = false +defaultOptions.preserveTabs = true +defaultOptions.rawAttribute = false +defaultOptions.relativeReferences = false +defaultOptions.shiftHeadings = 0 +defaultOptions.slice = "^ $" +defaultOptions.smartEllipses = false +defaultOptions.startNumber = true +defaultOptions.strikeThrough = false +defaultOptions.stripIndent = false +defaultOptions.subscripts = false +defaultOptions.superscripts = false +defaultOptions.tableAttributes = false +defaultOptions.tableCaptions = false +defaultOptions.taskLists = false +defaultOptions.texComments = false +defaultOptions.texMathDollars = false +defaultOptions.texMathDoubleBackslash = false +defaultOptions.texMathSingleBackslash = false +defaultOptions.tightLists = true +defaultOptions.underscores = true + +local HELP_STRING = [[ +Usage: texlua ]] .. arg[0] .. [[ [OPTIONS] -- [INPUT_FILE] [OUTPUT_FILE] +where OPTIONS are documented in the Lua interface section of the +technical Markdown package documentation. + +When OUTPUT_FILE is unspecified, the result of the conversion will be +written to the standard output. When INPUT_FILE is also unspecified, the +result of the conversion will be read from the standard input. + +Report bugs to: witiko@mail.muni.cz +Markdown package home page: <https://github.com/witiko/markdown>]] + +local VERSION_STRING = [[ +markdown-cli (Markdown) ]] .. metadata.version .. [[ + +Copyright (C) ]] .. table.concat(metadata.copyright, + "\nCopyright (C) ") .. [[ + +License: ]] .. metadata.license + +local function warn(s) + io.stderr:write("Warning: " .. s .. "\n") +end + +local function error(s) + io.stderr:write("Error: " .. s .. "\n") + os.exit(1) +end +local function camel_case(option_name) + local cased_option_name = option_name:gsub("_(%l)", function(match) + return match:sub(2, 2):upper() + end) + return cased_option_name +end + +local function snake_case(option_name) + local cased_option_name = option_name:gsub("%l%u", function(match) + return match:sub(1, 1) .. "_" .. match:sub(2, 2):lower() + end) + return cased_option_name +end + +local cases = {camel_case, snake_case} +local various_case_options = {} +for option_name, _ in pairs(defaultOptions) do + for _, case in ipairs(cases) do + various_case_options[case(option_name)] = option_name + end +end + +local process_options = true +local options = {} +local input_filename +local output_filename +for i = 1, #arg do + if process_options then + if arg[i] == "--" then + process_options = false + goto continue + elseif arg[i]:match("=") then + local key, value = arg[i]:match("(.-)=(.*)") + if defaultOptions[key] == nil and + various_case_options[key] ~= nil then + key = various_case_options[key] + end + local default_type = type(defaultOptions[key]) + if default_type == "boolean" then + options[key] = (value == "true") + elseif default_type == "number" then + options[key] = tonumber(value) + elseif default_type == "table" then + options[key] = {} + for item in value:gmatch("[^ ,]+") do + table.insert(options[key], item) + end + else + if default_type ~= "string" then + if default_type == "nil" then + warn('Option "' .. key .. '" not recognized.') + else + warn('Option "' .. key .. '" type not recognized, ' .. + 'please file a report to the package maintainer.') + end + warn('Parsing the ' .. 'value "' .. value ..'" of option "' .. + key .. '" as a string.') + end + options[key] = value + end + goto continue + elseif arg[i] == "--help" or arg[i] == "-h" then + print(HELP_STRING) + os.exit() + elseif arg[i] == "--version" or arg[i] == "-v" then + print(VERSION_STRING) + os.exit() + end + end + if input_filename == nil then + input_filename = arg[i] + elseif output_filename == nil then + output_filename = arg[i] + else + error('Unexpected argument: "' .. arg[i] .. '".') + end + ::continue:: +end + +local input +if input_filename then + local input_file = assert(io.open(input_filename, "r"), + [[Could not open file "]] .. input_filename .. [[" for reading]]) + input = assert(input_file:read("*a")) + assert(input_file:close()) +else + input = assert(io.read("*a")) +end + +local lfs = require("lfs") +if options.cacheDir and not lfs.isdir(options.cacheDir) then + assert(lfs.mkdir(options["cacheDir"])) +end +local kpse +(function() + local should_initialize = package.loaded.kpse == nil + or tex.initialize ~= nil + kpse = require("kpse") + if should_initialize then + kpse.set_program_name("luatex") + end +end)() +local md = require("markdown") +if metadata.version ~= md.metadata.version then + warn("markdown-cli.lua " .. metadata.version .. " used with " .. + "markdown.lua " .. md.metadata.version .. ".") +end +local convert = md.new(options) +local output = convert(input) + +if output_filename then + local output_file = assert(io.open(output_filename, "w"), + [[Could not open file "]] .. output_filename .. [[" for writing]]) + assert(output_file:write(output)) + assert(output_file:close()) +else + assert(io.write(output)) +end +if options.cacheDir then + lfs.rmdir(options.cacheDir) +end diff --git a/Master/texmf-dist/source/generic/markdown/docstrip.cfg b/Master/texmf-dist/source/generic/markdown/docstrip.cfg index 44429e7b974..c655e6a06dc 100644 --- a/Master/texmf-dist/source/generic/markdown/docstrip.cfg +++ b/Master/texmf-dist/source/generic/markdown/docstrip.cfg @@ -22,7 +22,7 @@ -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE^^J% -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.^^J% --^^J% --- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur^^J% +-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur^^J% --^^J% -- This work may be distributed and/or modified under the^^J% -- conditions of the LaTeX Project Public License, either version 1.3^^J% @@ -62,7 +62,7 @@ \let\luapostamble\empty \declarepreamble\texpreamble -Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c diff --git a/Master/texmf-dist/source/generic/markdown/markdown.dtx b/Master/texmf-dist/source/generic/markdown/markdown.dtx index 0b00b28b3a7..e13c91809f4 100644 --- a/Master/texmf-dist/source/generic/markdown/markdown.dtx +++ b/Master/texmf-dist/source/generic/markdown/markdown.dtx @@ -84,13 +84,14 @@ hybrid, inlineNotes, jekyllData, + linkAttributes, relativeReferences, stripPercentSigns, underscores = false, ]{markdown} \markdownSetup{ import = { - witiko/diagrams@v1, + witiko/diagrams@v2, witiko/graphicx/http, witiko/markdown/techdoc = { options as lua-options @@ -688,6 +689,14 @@ abbr { url = {https://tex.stackexchange.com/q/716362/70941}, urldate = {2024-04-28}, } +@online{starynovotny25, + author = {Starý Novotný, Vít}, + title = {Routing YAML metadata to expl3 key–values}, + titleaddon = {Markdown Enhancement Proposal}, + url = {https://github.com/witiko/markdown/discussions/517}, + date = {2024-10-14}, + urldate = {2025-01-06}, +} @book{tantau21, author = {Till Tantau and Joseph Wright and Vedran Miletić}, title = {The Beamer class}, @@ -809,6 +818,13 @@ abbr { date = {2024-06-01}, url = {https://mirrors.ctan.org/macros/latex/required/latex-lab/documentmetadata-support-code.pdf}, urldate = {2024-10-21}} +@online{latex25, + author = {{\LaTeX{} Project}}, + title = {l3kernel}, + subtitle = {\LaTeX3 programming conventions}, + date = {2024-12-25}, + url = {https://ctan.org/pkg/l3kernel}, + urldate = {2025-01-06}} %</techdoc-bibliography> %<@@=markdown> %<*themes-witiko-markdown-techdoc> @@ -831,36 +847,47 @@ abbr { }, }, } -\yamlSetup{ - jekyllDataRenderers = { - /authors/* = {% - \expandafter\gdef - \expandafter\ltd@title@author - \expandafter{\ltd@title@author, #1}% +\ExplSyntaxOn +\keys_define:nn + { markdown / techdoc } + { + authors / unknown .code:n = { + \tl_gput_right:Nn + \ltd@title@author + { ,~#1 } }, - title = {% - \gdef\ltd@title@title{#1}% - \gdef\ltd@title@subtitle{}% - \hypersetup{pdftitle={#1}}% + title .code:n = { + \tl_gset:Nn + \ltd@title@title + { #1 } + \tl_gset:Nn + \ltd@title@subtitle + { } + \hypersetup + { pdftitle = { #1 } } }, - date = {\gdef\ltd@title@date{#1}}, - email = {\gdef\ltd@title@email{#1}}, - revision = {\gdef\ltd@title@revision{#1}}, - url = {\gdef\ltd@title@url{#1}}, + date .tl_gset:N = \ltd@title@date, + email .tl_gset:N = \ltd@title@email, + revision .tl_gset:N = \ltd@title@revision, + url .tl_gset:N = \ltd@title@url, } -} -\ExplSyntaxOn -\markdownSetup{ - rendererPrototypes = { - headerAttributeContextEnd = { - \seq_map_inline:Nn - \g_@@_header_identifiers_seq - { \label { sec:##1 } } - \seq_gclear:N - \g_@@_header_identifiers_seq +\cs_generate_variant:Nn + \cs_gset:Npn + { NpV } +\yamlSetup + { jekyllDataKeyValue = markdown / techdoc } +\markdownSetup + { + rendererPrototypes = { + headerAttributeContextEnd = { + \seq_map_inline:Nn + \g_@@_header_identifiers_seq + { \label { sec:##1 } } + \seq_gclear:N + \g_@@_header_identifiers_seq + }, }, - }, -} + } \ExplSyntaxOff \renewcommand\markdownLaTeXRendererDirectOrIndirectLink[4]{% #1\footnote{See \url{#3}.}} @@ -1013,7 +1040,7 @@ make base Either of the two abovelisted approaches should produce the following files: * `markdown.lua`, `markdown-parser.lua`, and `markdown-unicode-data.lua`: The Lua module -* `markdown-cli.lua`: The Lua command-line interface +* `markdown-cli.lua` and `markdown2tex.lua`: The Lua command-line interface * `markdown.tex`: The plain \TeX{} macro package * `markdown.sty`: The \LaTeX{} package * `markdownthemewitiko_markdown_defaults.tex`, @@ -1032,6 +1059,7 @@ placed: * `⟨TEXMF⟩/tex/luatex/markdown/markdown-parser.lua` * `⟨TEXMF⟩/tex/luatex/markdown/markdown-unicode-data.lua` * `⟨TEXMF⟩/scripts/markdown/markdown-cli.lua` +* `⟨TEXMF⟩/scripts/markdown/markdown2tex.lua` * `⟨TEXMF⟩/tex/generic/markdown/markdown.tex` * `⟨TEXMF⟩/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex` * `⟨TEXMF⟩/tex/latex/markdown/markdown.sty` @@ -1056,6 +1084,7 @@ This is where the individual files should be placed: * `./markdown-parser.lua` * `./markdown-unicode-data.lua` * `./markdown-cli.lua` +* `./markdown2tex.lua` * `./markdown/markdown.tex` * `./markdown.sty` * `./t-markdown.tex` @@ -1220,8 +1249,8 @@ hard lua-tinyyaml % % \pkg{expl3} % -%: A package that enables the expl3 language from the \LaTeX3 kernel in -% \TeX{} Live${}\leq{}2019$. It is used to implement reflection +%: A package that enables the expl3 language [@latex25] from the \LaTeX3 +% kernel in \TeX{} Live${}\leq{}2019$. It is used to implement reflection % capabilities that allow us to enumerate and inspect high-level concepts % such as options, renderers, and renderer prototypes. % @@ -1347,7 +1376,7 @@ soft url % \pkg{graphicx} % %: A package that provides the `\includegraphics` macro for the typesetting -% of images. Furthermore, it also provides a key-value interface that is +% of images. Furthermore, it also provides a key--value interface that is % used in the default renderer prototypes for image attribute contexts. % % \end{markdown} @@ -1628,14 +1657,14 @@ Hello *world*! `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- hello.md hello.tex +markdown2tex -- hello.md hello.tex luatex document.tex `````` A PDF document named `document.pdf` should be produced and contain the text “Hello *world*!” Invoking pdfTeX should have the same effect: ``` sh -markdown-cli -- hello.md hello.tex +markdown2tex -- hello.md hello.tex pdftex document.tex `````` @@ -2104,8 +2133,8 @@ $\sqrt{-1}$ *equals* $i$. `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- example.md nomath.tex -markdown-cli tex_math_dollars=true -- example.md math.tex +markdown2tex -- example.md nomath.tex +markdown2tex tex_math_dollars=true -- example.md math.tex luatex document.tex `````` @@ -2120,8 +2149,8 @@ following text: Invoking pdfTeX should have the same effect: ``` sh -markdown-cli -- example.md nomath.tex -markdown-cli tex_math_dollars=true -- example.md math.tex +markdown2tex -- example.md nomath.tex +markdown2tex tex_math_dollars=true -- example.md math.tex pdftex document.tex `````` @@ -2416,7 +2445,7 @@ interfaces and all the way up to the \LaTeX{} and \Hologo{ConTeXt} interfaces. \l_tmpa_tl \tl_set:Nx #2 - { \the \cs:w \l_tmpa_tl \cs_end: } + { \the \cs:w \l_tmpa_tl \cs_end: } % noqa: W200 } { \@@_option_tl_to_csname:nN @@ -2576,7 +2605,7 @@ Hello *world*! Next, invoke LuaTeX from the terminal with the \Opt{eagerCache} option disabled: ``` sh -markdown-cli eagerCache=false -- hello.md hello.tex +markdown2tex eagerCache=false -- hello.md hello.tex ``````` A \TeX{} document named `hello.tex` should be produced and contain the @@ -2591,7 +2620,7 @@ Invoke LuaTeX from the terminal again, this time with the \Opt{eagerCache} option enabled: ``` tex -markdown-cli eagerCache=true -- hello.md hello.tex +markdown2tex eagerCache=true -- hello.md hello.tex ``` A \TeX{} document named `hello.tex` should be produced and contain the @@ -2944,7 +2973,7 @@ Hello *world*! `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli cacheDir=cache -- hello.md hello.tex +markdown2tex cacheDir=cache -- hello.md hello.tex luatex document.tex ``````` @@ -3318,7 +3347,7 @@ Hello *world*! `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli finalizeCache=true frozenCacheFileName=cache.tex -- hello.md hello.tex +markdown2tex finalizeCache=true frozenCacheFileName=cache.tex -- hello.md hello.tex luatex document.tex ``````` @@ -3623,8 +3652,8 @@ A paragraph. `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli blankBeforeBlockquote=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex blankBeforeBlockquote=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -3852,8 +3881,8 @@ A code fence? ``````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli fencedCode=true -- content.md optionfalse.tex -markdown-cli fencedCode=true blankBeforeCodeFence=true -- content.md optiontrue.tex +markdown2tex fencedCode=true -- content.md optionfalse.tex +markdown2tex fencedCode=true blankBeforeCodeFence=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -4180,8 +4209,8 @@ A heading? `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli blankBeforeHeading=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex blankBeforeHeading=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -4410,8 +4439,8 @@ A paragraph. ``````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli blankBeforeList=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex blankBeforeList=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -4725,8 +4754,8 @@ following content: `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli breakableBlockquotes=false -- content.md optionfalse.tex -markdown-cli -- content.md optiontrue.tex +markdown2tex breakableBlockquotes=false -- content.md optionfalse.tex +markdown2tex -- content.md optiontrue.tex luatex document.tex ``````` @@ -5156,8 +5185,8 @@ following content: `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli codeSpans=false -- content.md optionfalse.tex -markdown-cli -- content.md optiontrue.tex +markdown2tex codeSpans=false -- content.md optionfalse.tex +markdown2tex -- content.md optiontrue.tex luatex document.tex ``````` @@ -7203,8 +7232,8 @@ _Is there <? HTML instruction ?> support?_ ```````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli html=false -- content.md optionfalse.tex -markdown-cli -- content.md optiontrue.tex +markdown2tex html=false -- content.md optionfalse.tex +markdown2tex -- content.md optiontrue.tex luatex document.tex ``````` @@ -7511,8 +7540,8 @@ $\sqrt{-1}$ *equals* $i$. `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli hybrid=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex hybrid=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -9230,8 +9259,8 @@ Are these just three regular dots, a victorian ellipsis, or ... ? `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli smartEllipses=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex smartEllipses=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -10474,8 +10503,8 @@ $$\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^ `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli texMathDollars=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex texMathDollars=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -10679,8 +10708,8 @@ following content: `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli texMathDoubleBackslash=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex texMathDoubleBackslash=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -10884,8 +10913,8 @@ following content: `````` Next, invoke LuaTeX from the terminal: ``` sh -markdown-cli -- content.md optionfalse.tex -markdown-cli texMathSingleBackslash=true -- content.md optiontrue.tex +markdown2tex -- content.md optionfalse.tex +markdown2tex texMathSingleBackslash=true -- content.md optiontrue.tex luatex document.tex ``````` @@ -11340,7 +11369,7 @@ Report bugs to: witiko@mail.muni.cz Markdown package home page: <https://github.com/witiko/markdown>]] local VERSION_STRING = [[ -markdown-cli.lua (Markdown) ]] .. metadata.version .. [[ +markdown-cli (Markdown) ]] .. metadata.version .. [[ Copyright (C) ]] .. table.concat(metadata.copyright, "\nCopyright (C) ") .. [[ @@ -11981,7 +12010,9 @@ you would include the following code in your plain \TeX{} document: Option~#1~has~type~#2,~ but~a~boolean~was~expected. } -\let\markdownIfOption=\@@_if_option:nTF +\let + \markdownIfOption + \@@_if_option:nTF % \end{macrocode} % \begin{markdown} % @@ -12312,16 +12343,16 @@ A PDF document named `document.pdf` should be produced and contain the text %#### Generating Plain \TeX{} Option Macros and Key-Values % % We define the command \mdef{@@_define_option_commands_and_keyvals:} that -% defines plain \TeX{} macros and the key-value interface +% defines plain \TeX{} macros and the key--value interface % of the \mref{markdownSetup} macro for the above plain \TeX{} options. % -% The command also defines macros and key-values that map +% The command also defines macros and key--values that map % directly to the options recognized by the Lua interface, such as % \mdef{markdownOptionHybrid} for the \Opt{hybrid} Lua option (see Section % <#sec:lua-options>), which are not processed by the plain \TeX{} % implementation, only passed along to Lua. % -% Furthermore, the command also defines options and key-values +% Furthermore, the command also defines options and key--values % for subsequently loaded layers that correspond to higher-level \TeX{} formats % such as \LaTeX{} and \Hologo{ConTeXt}. % @@ -12618,7 +12649,7 @@ A PDF document named `document.pdf` should be produced and contain the text \l_tmpa_tl \clist_set:NV \l_tmpa_clist - { \l_tmpa_tl, { ##1 } } + { \l_tmpa_tl , { ##1 } } \@@_set_option_value:nV { #2 } \l_tmpa_clist @@ -12653,7 +12684,7 @@ A PDF document named `document.pdf` should be produced and contain the text % % If plain \TeX{} is the top layer, we use the % \mref{@@_define_option_commands_and_keyvals:} macro to define plain \TeX{} -% option macros and key-values immediately. Otherwise, we +% option macros and key--values immediately. Otherwise, we % postpone the definition until the upper layers have been loaded. % % \end{markdown} @@ -12681,7 +12712,7 @@ User-defined themes for the Markdown package provide a domain-specific interpretation of Markdown tokens. Themes allow the authors to achieve a specific look and other high-level goals without low-level programming. -% The key-values `theme`=\meta{theme name} and `import`=\meta{theme name}, +% The key--values `theme`=\meta{theme name} and `import`=\meta{theme name}, % optionally followed by `@`\meta{theme version}, load a \TeX{} document % (further referred to as *a theme*) named `markdowntheme`\meta{munged theme % name}`.tex`, where the *munged theme name* is the *theme name* after the @@ -12951,21 +12982,22 @@ a specific look and other high-level goals without low-level programming. Built-in plain \TeX{} themes provided with the Markdown package include: -\pkg{witiko/diagrams@v1} +\pkg{witiko/diagrams} + +: A theme that typesets fenced code blocks with the infostrings + `dot`, `mermaid`, and `plantuml` as figures with diagrams produced with + the command `dot` from Graphviz tools, the command `mmdc` from the npm + package `@mermaid-js/mermaid-cli`, and the command `plantuml` from the + package PlantUML, respectively. The key-value attribute `caption` can be + used to specify the caption of the figure. The remaining attributes are + treated as image attributes. -: A theme that typesets fenced code blocks with the `dot …` infostring - as images of directed graphs rendered by the Graphviz tools. The - right tail of the infostring is used as the image title. % ```` tex % \documentclass{article} -% \usepackage[import=witiko/diagrams@v1]{markdown} -% \setkeys{Gin}{ -% width = \columnwidth, -% height = 0.65\paperheight, -% keepaspectratio} +% \usepackage[import=witiko/diagrams@v2, relativeReferences]{markdown} % \begin{document} % \begin{markdown} -% ``` dot Various formats of mathemathical formulae +% ``` dot {caption="An example directed graph" width=12cm #dot} % digraph tree { % margin = 0; % rankdir = "LR"; @@ -12989,12 +13021,54 @@ Built-in plain \TeX{} themes provided with the Markdown package include: % mterms [label = "M-Terms"]; % } % ``` +% +% ``` mermaid {caption="An example mindmap" width=9cm #mermaid} +% mindmap +% root )base-idea( +% sub<br/>idea 1 +% ((?)) +% sub<br/>idea 2 +% ((?)) +% sub<br/>idea 3 +% ((?)) +% sub<br/>idea 4 +% ((?)) +% ``` +% +% ``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml} +% @startuml +% ' Define participants (actors) +% participant "Client" as C +% participant "Server" as S +% participant "Database" as DB +% +% ' Diagram title +% title Simple Request-Response Flow +% +% ' Messages +% C -> S: Send Request +% note over S: Process request +% +% alt Request is valid +% S -> DB: Query Data +% DB -> S: Return Data +% S -> C: Respond with Data +% else Request is invalid +% S -> C: Return Error +% end +% @enduml +% ``` +% +% See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>. % \end{markdown} % \end{document} % ```````` +% % Typesetting the above document produces the output shown in -% Figure <#fig:witiko/diagrams@v1>. -% ``` dot Various formats of mathemathical formulae \label{fig:witiko/diagrams@v1} +% figures <#fig:witiko-diagrams-dot>, <#fig:witiko-diagrams-mermaid>, and +% <#fig:witiko-diagrams-plantuml>. +% +% ``` dot {caption="An example directed graph" #fig:witiko-diagrams-dot} % digraph tree { % margin = 0; % rankdir = "LR"; @@ -13018,15 +13092,50 @@ Built-in plain \TeX{} themes provided with the Markdown package include: % mterms [label = "M-Terms"]; % } % ``` - The theme requires a Unix-like operating system with GNU Diffutils and - Graphviz installed. The theme also requires shell access unless the - \Opt{frozenCache} plain \TeX{} option is enabled. +% +% ``` mermaid {caption="An example mindmap" #fig:witiko-diagrams-mermaid} +% mindmap +% root )base-idea( +% sub<br/>idea 1 +% ((?)) +% sub<br/>idea 2 +% ((?)) +% sub<br/>idea 3 +% ((?)) +% sub<br/>idea 4 +% ((?)) +% ``` +% +% ``` plantuml {caption="An example UML sequence diagram" #fig:witiko-diagrams-plantuml} +% @startuml +% ' Define participants (actors) +% participant "Client" as C +% participant "Server" as S +% participant "Database" as DB +% +% ' Diagram title +% title Simple Request-Response Flow +% +% ' Messages +% C -> S: Send Request +% note over S: Process request +% +% alt Request is valid +% S -> DB: Query Data +% DB -> S: Return Data +% S -> C: Respond with Data +% else Request is invalid +% S -> C: Return Error +% end +% @enduml +% ``` - The above example loads version `v1` of the theme, which is an alias for - an earlier theme named `witiko/dot`. Future versions of the theme may have - backwards-incompatible syntax and behavior. Therefore, you are encouraged - to always specify the version `v1` to keep your documents from suddenly - breaking. + The theme requires a Unix-like operating system with GNU Diffutils, + Graphviz, the npm package `@mermaid-js/mermaid-cli`, and PlantUML + installed. All these packages are already included in the Docker image + `witiko/markdown`; consult `Dockerfile` to see how they are installed. + The theme also requires shell access unless the \Opt{frozenCache} plain + \TeX{} option is enabled. % \markdownEnd % \iffalse @@ -13037,14 +13146,10 @@ Using a text editor, create a text document named `document.tex` with the following content: ```` tex \documentclass{article} -\usepackage[import=witiko/diagrams@v1]{markdown} -\setkeys{Gin}{ - width=\columnwidth, - height=0.65\paperheight, - keepaspectratio} +\usepackage[import=witiko/diagrams@v2, relativeReferences]{markdown} \begin{document} \begin{markdown} -``` dot Various formats of mathemathical formulae +``` dot {caption="An example directed graph" width=12cm #dot} digraph tree { margin = 0; rankdir = "LR"; @@ -13068,6 +13173,45 @@ digraph tree { mterms [label = "M-Terms"]; } ``` + +``` mermaid {caption="An example mindmap" width=9cm #mermaid} +mindmap + root )base-idea( + sub<br/>idea 1 + ((?)) + sub<br/>idea 2 + ((?)) + sub<br/>idea 3 + ((?)) + sub<br/>idea 4 + ((?)) +``` + +``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml} +@startuml +' Define participants (actors) +participant "Client" as C +participant "Server" as S +participant "Database" as DB + +' Diagram title +title Simple Request-Response Flow + +' Messages +C -> S: Send Request +note over S: Process request + +alt Request is valid + S -> DB: Query Data + DB -> S: Return Data + S -> C: Respond with Data +else Request is invalid + S -> C: Return Error +end +@enduml +``` + +See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>. \end{markdown} \end{document} ```````` @@ -13076,14 +13220,7 @@ Next, invoke LuaTeX from the terminal: lualatex --shell-escape document.tex `````` A PDF document named `document.pdf` should be produced and contain -a drawing of a directed graph similar to Figure 1 from the following -conference article: - -> NOVOTNÝ, Vít, Petr SOJKA, Michal ŠTEFÁNIK and Dávid LUPTÁK. Three is Better -> than One: Ensembling Math Information Retrieval Systems. *CEUR Workshop -> Proceedings*. Thessaloniki, Greece: M. Jeusfeld c/o Redaktion Sun SITE, -> Informatik V, RWTH Aachen., 2020, vol. 2020, No 2696, p. 1-30. ISSN 1613-0073. -> <http://ceur-ws.org/Vol-2696/paper_235.pdf> +three diagrams. % \fi % \markdownBegin @@ -13103,9 +13240,9 @@ conference article: % \end{document} % ``````` % Typesetting the above document produces the output shown in -% Figure <#fig:witiko/graphicx/http>. +% Figure <#fig:witiko-graphicx-http>. % ![img](https://github.com/witiko/markdown/raw/main/markdown.png -% "The banner of the Markdown package \label{fig:witiko/graphicx/http}") +% "The banner of the Markdown package"){#fig:witiko-graphicx-http} The theme requires the \pkg{catchfile} \LaTeX{} package and a Unix-like operating system with GNU Coreutils `md5sum` and either GNU Wget or cURL installed. The theme also requires shell access unless the @@ -21190,7 +21327,7 @@ following text: % We define the command \mdef{@@_define_renderers:} that defines plain \TeX{} % macros for token renderers. Furthermore, the `\markdownSetup` macro also accepts % the `renderers` and `unprotectedRenderers` keys. The value for these keys -% must be a list of key-values, where the keys correspond to the markdown token +% must be a list of key--values, where the keys correspond to the markdown token % renderer macros and the values are new definitions of these token renderers. % % Whereas the key `renderers` defines protected functions, which are usually @@ -21615,7 +21752,7 @@ following text: % \begin{markdown} % % If plain \TeX{} is the top layer, we use the \mref{@@_define_renderers:} -% macro to define plain \TeX{} token renderer macros and key-values +% macro to define plain \TeX{} token renderer macros and key--values % immediately. Otherwise, we postpone the definition until the upper layers % have been loaded. % @@ -21751,9 +21888,9 @@ following text: #### YAML Metadata Renderer Prototypes {#expl3yamlmetadata} -By default, the renderer prototypes for YAML metadata provide a high-level -interface that can be programmed using the `markdown/jekyllData` key--values -from the l3keys module of the \LaTeX{}3 kernel. +For simple \acro{YAML} metadata, a simple high-level interface is provided +that can be programmed by setting the expl3 key--values [@latex25] for the +module `markdown/jekyllData`. % \end{markdown} % \iffalse @@ -21877,8 +22014,9 @@ following text: % \end{macrocode} % \begin{markdown} % -% The `jekyllDataRenderers` key can be used as a syntactic sugar for setting -% the `markdown/jekyllData` key--values without using the expl3 language. +% The option `jekyllDataRenderers`=\meta{key--values} can be used to set the +% \meta{key--values} for the module `markdown/jekyllData` without using the +% expl3 syntax. % % \end{markdown} % \begin{macrocode} @@ -21942,12 +22080,90 @@ following text: % \end{macrocode} % \begin{markdown} % +% For complex \acro{YAML} metadata, the option `jekyllDataKeyValue`=\meta{module} +% [@starynovotny25] can be used to route the processing of all \acro{YAML} +% metadata in the current \TeX{} group to the key--values from \meta{module}. +% +% \end{markdown} +% \iffalse +%</tex> +%<*manual-tokens> + +##### \LaTeX{} Example {.unnumbered} + +Using a text editor, create a text document named `document.tex` with the +following content: +``` tex +\documentclass{article} +\usepackage{markdown} +\ExplSyntaxOn +\str_new:N \g_markdown_example_title_str +\seq_new:N \g_markdown_example_authors_seq +\keys_define:nn + { markdown / example / module } + { % Define a key--value that processes YAML metadata. + title / programmaticString .str_gset:N = \g_markdown_example_title_str, % Store the raw title in a variable. + title .code:n = { \title { #1 } }, % Set the title. This is the same as writing `title / typographicString`. + authors / unknown .code:n = { % Store a variable-length list of authors in an array variable. + \seq_put_right:Nn + \g_markdown_example_authors_seq + { #1 } + }, + } +\markdownSetupSnippet + { metadata } + { % Define a snippet that routes YAML metadata to the above key key–value. + jekyllDataKeyValue = markdown / example / module, + renderers = { + jekyllDataEnd = { % At the end of the YAML metadata, ... + \clist_set_from_seq:NN % ... set the list of authors and + \l_tmpa_clist + \g_markdown_example_authors_seq + \exp_args:Nx + \author + { \clist_use:Nn \l_tmpa_clist { ,~ } } + \AtBeginDocument { \maketitle } % ... typeset the title page. + }, + } + } +\ExplSyntaxOff +% Process the YAML metadata. +\begin{yaml}[snippet=metadata] +title: Some title that includes _markup_ +authors: [Jane Doe, John Moe] +\end{yaml} +\begin{document} +The raw title of the document is: +\ExplSyntaxOn +\str_use:N \g_markdown_example_title_str +\ExplSyntaxOff +\end{document} +``````` +Next, invoke LuaTeX from the terminal: +``` sh +lualatex document.tex +`````` +A PDF document named `document.pdf` should be produced and contain the +following text: + +> ### Some title that includes _markup_ +> ##### Jane Doe, John Moe +> ##### _⟨Current date⟩_ +> +> The raw title of the document is: +> Some title that includes \_markup\_ + +%</manual-tokens> +%<*tex> +% \fi +% \begin{markdown} +% %#### Generating Plain \TeX{} Token Renderer Prototype Macros and Key-Values {#plain-tex-renderer-prototypes} % % We define the command \mdef{@@_define_renderer_prototypes:} that defines plain \TeX{} % macros for token renderer prototypes. Furthermore, the `\markdownSetup` macro also accepts % the `rendererPrototypes` and `unprotectedRendererPrototypes` keys. The value -% for these keys must be a list of key-values, where the keys correspond to the +% for these keys must be a list of key--values, where the keys correspond to the % markdown token renderer prototype macros and the values are new definitions % of these token renderer prototypes. % @@ -22269,7 +22485,7 @@ following text: % \begin{markdown} % % If plain \TeX{} is the top layer, we use the \mref{@@_define_renderer_prototypes:} -% macro to define plain \TeX{} token renderer prototype macros and key-values +% macro to define plain \TeX{} token renderer prototype macros and key--values % immediately. Otherwise, we postpone the definition until the upper layers % have been loaded. % @@ -22838,7 +23054,7 @@ document: % If \LaTeX{} is the top layer, we use the % \mref{@@_define_option_commands_and_keyvals:}, \mref{@@_define_renderers:}, % and \mref{@@_define_renderer_prototypes:} macro to define plain \TeX{} -% option, token renderer, and token renderer prototype macros and key-values +% option, token renderer, and token renderer prototype macros and key--values % immediately. Otherwise, we postpone the definition until the upper layers % have been loaded. % @@ -22886,7 +23102,7 @@ In \LaTeX{}, we expand on the concept of [themes](#themes) % \fi by allowing a theme to be a full-blown \LaTeX{} package. Specifically, the -key-values `theme`=\meta{theme name} and `import`=\meta{theme name} load a +key--values `theme`=\meta{theme name} and `import`=\meta{theme name} load a \LaTeX{} package named `markdowntheme`\meta{munged theme name}`.sty` if it exists and a \TeX{} document named `markdowntheme`\meta{munged theme name}`.tex` otherwise. @@ -22991,7 +23207,8 @@ Built-in \LaTeX{} themes provided with the Markdown package include: \c_@@_top_layer_tl \c_@@_option_layer_latex_tl { - \ExplSyntaxOff + \use:c + { ExplSyntaxOff } \AtEndOfPackage { \@@_if_option:nF @@ -23009,7 +23226,8 @@ Built-in \LaTeX{} themes provided with the Markdown package include: } } } - \ExplSyntaxOn + \use:c + { ExplSyntaxOn } } \ExplSyntaxOff % \end{macrocode} @@ -23335,7 +23553,7 @@ following text: % If \Hologo{ConTeXt} is the top layer, we use the % \mref{@@_define_option_commands_and_keyvals:}, \mref{@@_define_renderers:}, % and \mref{@@_define_renderer_prototypes:} macro to define plain \TeX{} -% option, token renderer, and token renderer prototype macros and key-values +% option, token renderer, and token renderer prototype macros and key--values % immediately. Otherwise, we postpone the definition until the upper layers % have been loaded. % @@ -23368,7 +23586,7 @@ In \Hologo{ConTeXt}, we expand on the concept of [themes](#themes) % \fi by allowing a theme to be a full-blown \Hologo{ConTeXt} module. Specifically, -the key-values `theme`=\meta{theme name} and `import`=\meta{theme name} load a +the key--values `theme`=\meta{theme name} and `import`=\meta{theme name} load a \Hologo{ConTeXt} module named `t-markdowntheme`\meta{munged theme name}`.tex` if it exists and a \TeX{} document named `markdowntheme`\meta{munged theme name}`.tex` otherwise. @@ -27423,7 +27641,7 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") end print("M.punctuation = {}") - print("local S = lpeg.S") + print("local P = lpeg.P") print("-- luacheck: push no max line length") for length, prefix_tree in pairs(prefix_trees) do local subparsers = {} @@ -27431,9 +27649,9 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") if type(node) == "string" then local suffix if node == "]" then - suffix = "S('" .. node .. "')" + suffix = "P('" .. node .. "')" else - suffix = "S([[" .. node .. "]])" + suffix = "P([[" .. node .. "]])" end if subparsers[path] ~= nil then subparsers[path] = subparsers[path] .. " + " .. suffix @@ -27445,20 +27663,23 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") if #path > 0 then local byte = path:sub(#path, #path) local parent_path = path:sub(1, #path-1) - if subparsers[path] ~= nil then - local suffix - if byte == "]" then - suffix = "S('" .. byte .. "')" - else - suffix = "S([[" .. byte .. "]])" - end - suffix = suffix .. " * (" .. subparsers[path] .. ")" - if subparsers[parent_path] ~= nil then - subparsers[parent_path] = subparsers[parent_path] - .. " + " .. suffix - else - subparsers[parent_path] = suffix - end + local prefix + if byte == "]" then + prefix = "P('" .. byte .. "')" + else + prefix = "P([[" .. byte .. "]])" + end + local suffix + if subparsers[path]:find(" %+ ") then + suffix = prefix .. " * (" .. subparsers[path] .. ")" + else + suffix = prefix .. " * " .. subparsers[path] + end + if subparsers[parent_path] ~= nil then + subparsers[parent_path] = subparsers[parent_path] + .. " + " .. suffix + else + subparsers[parent_path] = suffix end else print("M.punctuation[" .. length .. "] = " .. subparsers[path]) @@ -33589,9 +33810,13 @@ M.extensions.notes = function(notes, inline_notes) * parsers.spnlc * indented_blocks(chunk) / register_note - local Reference = NoteBlock + parsers.Reference + self.update_rule("Reference", function(previous_pattern) + if previous_pattern == nil then + previous_pattern = parsers.Reference + end + return NoteBlock + previous_pattern + end) - self.update_rule("Reference", Reference) self.insert_pattern("Inline before LinkAndEmph", NoteRef, "NoteRef") end @@ -35059,7 +35284,7 @@ end \prop_gput:Nnx \g_@@_plain_tex_loaded_themes_linenos_prop { #1 } - { \tex_the:D \tex_inputlineno:D } + { \tex_the:D \tex_inputlineno:D } % noqa: W200 \prop_gput:Nnn \g_@@_plain_tex_loaded_themes_versions_prop { #1 } @@ -35228,7 +35453,7 @@ end % % \end{markdown} % \begin{macrocode} - \markdownSetup{fencedCode} + \markdownSetup { fencedCode } % \end{macrocode} % \begin{markdown} % @@ -35317,7 +35542,8 @@ end % \end{macrocode} % \begin{markdown} % -% The `witiko/diagrams` loads the theme `witiko/dot`. +% The theme `witiko/diagrams` loads either the theme `witiko/dot` for version +% `v1` or the theme `witiko/diagrams/v2` for version `v2`. % % \end{markdown} % \begin{macrocode} @@ -35332,7 +35558,7 @@ end { \markdownWarning { - Write~"witiko/diagrams@v1"~to~pin~version~"v1"~of~the~ + Write~"witiko/diagrams@v2"~to~pin~version~"v2"~of~the~ theme~"witiko/diagrams".~This~will~keep~your~documents~ from~suddenly~breaking~when~we~have~released~future~ versions~of~the~theme~with~backwards-incompatible~ @@ -35340,7 +35566,14 @@ end } \markdownSetup { - import = witiko/dot@silent, + import = witiko/diagrams/v2, + } + } + { v2 } + { + \markdownSetup + { + import = witiko/diagrams/v2, } } { v1 } @@ -35371,6 +35604,260 @@ end % \end{macrocode} % \begin{markdown} % +% Next, we implement the theme `witiko/diagrams/v2`. +% +% \end{markdown} +% \begin{macrocode} +\prop_gput:Nnn + \g_@@_plain_tex_built_in_themes_prop + { witiko / diagrams / v2 } + { +% \end{macrocode} +% \begin{markdown} +% +% We enable the \Opt{fencedCode} and \Opt{fencedCodeAttributes} Lua +% option. +% +% \end{markdown} +% \begin{macrocode} + \@@_setup:n + { + fencedCode = true, + fencedCodeAttributes = true, + } +% \end{macrocode} +% \begin{markdown} +% +% Store the previous fenced code token renderer prototype. +% +% \end{markdown} +% \begin{macrocode} + \cs_set_eq:NN + \@@_diagrams_previous_fenced_code:nnn + \markdownRendererInputFencedCodePrototype +% \end{macrocode} +% \begin{markdown} +% +% Store the caption of the diagram. +% +% \end{markdown} +% \begin{macrocode} + \tl_new:N + \l_@@_diagrams_caption_tl + \@@_setup:n + { + rendererPrototypes = { +% \end{macrocode} +% \begin{markdown} +% +% Route attributes on fenced code blocks to the image attribute renderer +% prototypes. +% +% \end{markdown} +% \begin{macrocode} + fencedCodeAttributeContextBegin = { + \group_begin: + \markdownRendererImageAttributeContextBegin + \cs_set_eq:NN + \@@_diagrams_previous_key_value:nn + \markdownRendererAttributeKeyValuePrototype + \@@_setup:n + { + rendererPrototypes = { + attributeKeyValue = { + \str_if_eq:nnTF + { ##1 } + { caption } + { + \tl_set:Nn + \l_@@_diagrams_caption_tl + { ##2 } + } + { + \@@_diagrams_previous_key_value:nn + { ##1 } + { ##2 } + } + }, + }, + } + }, + fencedCodeAttributeContextEnd = { + \markdownRendererImageAttributeContextEnd + \group_end: + }, + }, + } + \cs_new:Nn + \@@_diagrams_render_diagram:nnnn + { + \@@_if_option:nF + { frozenCache } + { + \sys_shell_now:n + { + if~!~test~-e~#2.source~ + ||~!~diff~#1~#2.source; + then~ + (#3); + cp~#1~#2.source; + fi + } + \exp_args:NNnV + \exp_last_unbraced:No + \markdownRendererImage + { + { #4 } + { #2 } + { #2 } + } + \l_@@_diagrams_caption_tl + } + } +% \end{macrocode} +% \begin{markdown} +% +% Use the prop \mdef{g_markdown_diagrams_infostrings_prop} to determine how the +% code with a given infostring should be processed and routed to the token +% renderer prototype(s) for images. +% +% \end{markdown} +% \begin{macrocode} + \prop_new:N + \g_markdown_diagrams_infostrings_prop +% \end{macrocode} +% \begin{markdown} +% +% If we know a processing function for a given infostring, use it. +% +% \end{markdown} +% \begin{macrocode} + \@@_setup:n + { + rendererPrototypes = { + inputFencedCode = { + \prop_get:NnNTF + \g_markdown_diagrams_infostrings_prop + { #2 } + \l_tmpa_tl + { + \cs_set:NV + \@@_diagrams_infostrings_current:n + \l_tmpa_tl + \@@_diagrams_infostrings_current:n + { #1 } + } +% \end{macrocode} +% \begin{markdown} +% +% Otherwise, use the previous fenced code token renderer prototype. +% +% \end{markdown} +% \begin{macrocode} + { + \@@_diagrams_previous_fenced_code:nnn + { #1 } + { #2 } + { #3 } + } + }, + }, + } + \cs_generate_variant:Nn + \cs_set:Nn + { NV } +% \end{macrocode} +% \begin{markdown} +% +% Typeset fenced code with infostring `dot` using the command `dot` from +% the package Graphviz. +% +% \end{markdown} +% \begin{macrocode} + \cs_set:Nn + \@@_diagrams_infostrings_current:n + { + \@@_diagrams_render_diagram:nnnn + { #1 } + { #1.pdf } + { dot~-Tpdf~-o~#1.pdf~#1 } + { Graphviz~image } + } + \@@_tl_set_from_cs:NNn + \l_tmpa_tl + \@@_diagrams_infostrings_current:n + { 1 } + \prop_gput:NnV + \g_markdown_diagrams_infostrings_prop + { dot } + \l_tmpa_tl +% \end{macrocode} +% \begin{markdown} +% +% Typeset fenced code with infostring `mermaid` using the command `mmdc` from +% the npm package `@mermaid-js/mermaid-cli`. +% +% \end{markdown} +% \begin{macrocode} + \cs_set:Nn + \@@_diagrams_infostrings_current:n + { + \@@_diagrams_render_diagram:nnnn + { #1 } + { #1.pdf } + { mmdc~--pdfFit~-i~#1~-o~#1.pdf } + { Mermaid~image } + } + \@@_tl_set_from_cs:NNn + \l_tmpa_tl + \@@_diagrams_infostrings_current:n + { 1 } + \prop_gput:NnV + \g_markdown_diagrams_infostrings_prop + { mermaid } + \l_tmpa_tl +% \end{macrocode} +% \begin{markdown} +% +% Typeset fenced code with infostring `plantuml` using the command `plantuml` +% from the package PlantUML. +% +% \end{markdown} +% \begin{macrocode} + \regex_const:Nn + \c_@@_diagrams_filename_suffix_regex + { \.[^.]*$ } + \cs_set:Nn + \@@_diagrams_infostrings_current:n + { + \tl_set:Nn + \l_tmpa_tl + { #1 } + \regex_replace_once:NnN + \c_@@_diagrams_filename_suffix_regex + { .pdf } + \l_tmpa_tl + \@@_diagrams_render_diagram:nVnn + { #1 } + \l_tmpa_tl + { plantuml~-tpdf~#1 } + { PlantUML~image } + } + \cs_generate_variant:Nn + \@@_diagrams_render_diagram:nnnn + { nVnn } + \@@_tl_set_from_cs:NNn + \l_tmpa_tl + \@@_diagrams_infostrings_current:n + { 1 } + \prop_gput:NnV + \g_markdown_diagrams_infostrings_prop + { plantuml } + \l_tmpa_tl + } +% \end{macrocode} +% \begin{markdown} +% % We locally change the category code of percent signs, so that we % can use them in the shell code: % @@ -35796,7 +36283,10 @@ end % \end{macrocode} % \begin{markdown} % -%#### YAML Metadata Renderer Prototypes +%#### Simple YAML Metadata Renderer Prototypes +% In this section, we implement the simple high-level interface for processing +% simple \acro{YAML} metadata using the key--value `markdown/jekyllData`. See +% also Section <#sec:expl3yamlmetadata>. % % To keep track of the current type of structure we inhabit when we are % traversing a \acro{yaml} document, we will maintain the @@ -35831,12 +36321,12 @@ end % To keep track of our current place when we are traversing a \acro{yaml} % document, we will maintain the % \mdef{g_\@\@_jekyll_data_wildcard_absolute_address_seq} stack of keys using -% the \mdef{markdown_jekyll_data_push_address_segment:n} macro. +% the \mdef{\@\@_jekyll_data_push_address_segment:n} macro. % % \end{markdown} % \begin{macrocode} \seq_new:N \g_@@_jekyll_data_wildcard_absolute_address_seq -\cs_new:Nn \markdown_jekyll_data_push_address_segment:n +\cs_new:Nn \@@_jekyll_data_push_address_segment:n { \seq_if_empty:NF \g_@@_jekyll_data_datatypes_seq @@ -35901,23 +36391,23 @@ end % ``` % % We will construct \mref{g_\@\@_jekyll_data_wildcard_absolute_address_tl} -% using the \mdef{markdown_jekyll_data_concatenate_address:NN} macro and +% using the \mdef{\@\@_jekyll_data_concatenate_address:NN} macro and % we will construct both token lists using the -% \mdef{markdown_jekyll_data_update_address_tls:} macro. +% \mdef{\@\@_jekyll_data_update_address_tls:} macro. % % \end{markdown} % \begin{macrocode} \tl_new:N \g_@@_jekyll_data_wildcard_absolute_address_tl \tl_new:N \g_@@_jekyll_data_wildcard_relative_address_tl -\cs_new:Nn \markdown_jekyll_data_concatenate_address:NN +\cs_new:Nn \@@_jekyll_data_concatenate_address:NN { \seq_pop_left:NN #1 \l_tmpa_tl \tl_set:Nx #2 { / \seq_use:Nn #1 { / } } \seq_put_left:NV #1 \l_tmpa_tl } -\cs_new:Nn \markdown_jekyll_data_update_address_tls: +\cs_new:Nn \@@_jekyll_data_update_address_tls: { - \markdown_jekyll_data_concatenate_address:NN + \@@_jekyll_data_concatenate_address:NN \g_@@_jekyll_data_wildcard_absolute_address_seq \g_@@_jekyll_data_wildcard_absolute_address_tl \seq_get_right:NN @@ -35928,21 +36418,21 @@ end % \begin{markdown} % % To make sure that the stacks and token lists stay in sync, we will use the -% \mdef{markdown_jekyll_data_push:nN} and \mdef{markdown_jekyll_data_pop:} +% \mdef{\@\@_jekyll_data_push:nN} and \mdef{\@\@_jekyll_data_pop:} % macros. % % \end{markdown} % \begin{macrocode} -\cs_new:Nn \markdown_jekyll_data_push:nN +\cs_new:Nn \@@_jekyll_data_push:nN { - \markdown_jekyll_data_push_address_segment:n + \@@_jekyll_data_push_address_segment:n { #1 } \seq_put_right:NV \g_@@_jekyll_data_datatypes_seq #2 - \markdown_jekyll_data_update_address_tls: + \@@_jekyll_data_update_address_tls: } -\cs_new:Nn \markdown_jekyll_data_pop: +\cs_new:Nn \@@_jekyll_data_pop: { \seq_pop_right:NN \g_@@_jekyll_data_wildcard_absolute_address_seq @@ -35950,39 +36440,39 @@ end \seq_pop_right:NN \g_@@_jekyll_data_datatypes_seq \l_tmpa_tl - \markdown_jekyll_data_update_address_tls: + \@@_jekyll_data_update_address_tls: } % \end{macrocode} % \begin{markdown} % % To set a single key--value, we will use the -% \mdef{markdown_jekyll_data_set_keyval:Nn} macro, ignoring unknown keys. +% \mdef{\@\@_jekyll_data_set_keyval_known:nn} macro, ignoring unknown keys. % To set key--values for both absolute and relative wildcards, we will use the -% \mdef{markdown_jekyll_data_set_keyvals:nn} macro. +% \mdef{\@\@_jekyll_data_set_keyvals_known:nn} macro. % % \end{markdown} % \begin{macrocode} -\cs_new:Nn \markdown_jekyll_data_set_keyval:nn +\cs_new:Nn \@@_jekyll_data_set_keyval_known:nn { \keys_set_known:nn { markdown/jekyllData } { { #1 } = { #2 } } } \cs_generate_variant:Nn - \markdown_jekyll_data_set_keyval:nn + \@@_jekyll_data_set_keyval_known:nn { Vn } -\cs_new:Nn \markdown_jekyll_data_set_keyvals:nn +\cs_new:Nn \@@_jekyll_data_set_keyvals_known:nn { - \markdown_jekyll_data_push:nN + \@@_jekyll_data_push:nN { #1 } \c_@@_jekyll_data_scalar_tl - \markdown_jekyll_data_set_keyval:Vn + \@@_jekyll_data_set_keyval_known:Vn \g_@@_jekyll_data_wildcard_absolute_address_tl { #2 } - \markdown_jekyll_data_set_keyval:Vn + \@@_jekyll_data_set_keyval_known:Vn \g_@@_jekyll_data_wildcard_relative_address_tl { #2 } - \markdown_jekyll_data_pop: + \@@_jekyll_data_pop: } % \end{macrocode} % \begin{markdown} @@ -35993,29 +36483,29 @@ end % \end{markdown} % \begin{macrocode} \def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{ - \markdown_jekyll_data_push:nN + \@@_jekyll_data_push:nN { #1 } \c_@@_jekyll_data_sequence_tl } \def\markdownRendererJekyllDataMappingBeginPrototype#1#2{ - \markdown_jekyll_data_push:nN + \@@_jekyll_data_push:nN { #1 } \c_@@_jekyll_data_mapping_tl } \def\markdownRendererJekyllDataSequenceEndPrototype{ - \markdown_jekyll_data_pop: + \@@_jekyll_data_pop: } \def\markdownRendererJekyllDataMappingEndPrototype{ - \markdown_jekyll_data_pop: + \@@_jekyll_data_pop: } \def\markdownRendererJekyllDataBooleanPrototype#1#2{ - \markdown_jekyll_data_set_keyvals:nn + \@@_jekyll_data_set_keyvals_known:nn { #1 } { #2 } } \def\markdownRendererJekyllDataEmptyPrototype#1{} \def\markdownRendererJekyllDataNumberPrototype#1#2{ - \markdown_jekyll_data_set_keyvals:nn + \@@_jekyll_data_set_keyvals_known:nn { #1 } { #2 } } @@ -36029,12 +36519,302 @@ end % \begin{macrocode} \def\markdownRendererJekyllDataProgrammaticStringPrototype#1#2{} \def\markdownRendererJekyllDataTypographicStringPrototype#1#2{ - \markdown_jekyll_data_set_keyvals:nn + \@@_jekyll_data_set_keyvals_known:nn { #1 } { #2 } } \ExplSyntaxOff % \end{macrocode} +% \begin{markdown} +% +%#### Complex YAML Metadata Renderer Prototypes +% In this section, we implement the high-level interface for routing complex +% \acro{YAML} metadata to expl3 key--values using the option +% `jekyllDataKeyValue`=\meta{module}. See also Section <#sec:expl3yamlmetadata>. +% +% \end{markdown} +% \begin{macrocode} +\ExplSyntaxOn +\@@_with_various_cases:nn + { jekyllDataKeyValue } + { + \keys_define:nn + { markdown/options } + { + #1 .code:n = { + \@@_route_jekyll_data_to_key_values:n + { ##1 } + }, +% \end{macrocode} +% \begin{markdown} +% +% When no \meta{module} has been provided, assume that the \acro{YAML} metadata +% specify absolute paths to key--values. +% +% \end{markdown} +% \begin{macrocode} + #1 .default:n = { }, + } + } +\seq_new:N + \l_@@_jekyll_data_current_position_seq +\tl_new:N + \l_@@_jekyll_data_current_position_tl +\cs_new:Nn + \@@_route_jekyll_data_to_key_values:n + { + \markdownSetup + { + renderers = { + jekyllData(Sequence|Mapping)Begin = { + \bool_lazy_and:nnTF + { + \seq_if_empty_p:N + \l_@@_jekyll_data_current_position_seq + } + { + \str_if_eq_p:nn + { ##1 } + { null } + } + { + \tl_if_empty:nF + { #1 } + { + \seq_put_right:Nn + \l_@@_jekyll_data_current_position_seq + { #1 } + } + } + { + \seq_put_right:Nn + \l_@@_jekyll_data_current_position_seq + { ##1 } + } + }, + jekyllData(Sequence|Mapping)End = { + \seq_pop_right:NN + \l_@@_jekyll_data_current_position_seq + \l_tmpa_tl + }, +% \end{macrocode} +% \begin{markdown} +% +% For every \acro{YAML} key `path.to.`\meta{key} with a value of type +% \meta{non-string type}, set the key \meta{non-string type} of the key–value +% \meta{module}`/path/to/`\meta{key} if it is known and the key \meta{key} of +% the key–value \meta{module}`/path/to` otherwise. \meta{Non-string type} is +% one of `boolean`, `number`, and `empty`. +% +% \end{markdown} +% \begin{macrocode} + jekyllDataBoolean = { + \tl_set:Nx + \l_@@_jekyll_data_current_position_tl + { + \seq_use:Nn + \l_@@_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l_@@_jekyll_data_current_position_tl + { ##1 / boolean } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 / boolean + } + { ##2 } + } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + }, + jekyllDataNumber = { + \tl_set:Nx + \l_@@_jekyll_data_current_position_tl + { + \seq_use:Nn + \l_@@_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l_@@_jekyll_data_current_position_tl + { ##1 / number } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 / number + } + { ##2 } + } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + }, +% \end{macrocode} +% \begin{markdown} +% +% For the \meta{non-string type} of `empty`, no value is passed to the +% key–value. Therefore, a default value should always be defined for nullable +% keys using the key property `.default:n`. +% +% \end{markdown} +% \begin{macrocode} + jekyllDataEmpty = { + \tl_set:Nx + \l_@@_jekyll_data_current_position_tl + { + \seq_use:Nn + \l_@@_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l_@@_jekyll_data_current_position_tl + { ##1 / empty } + { + \keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 + } + { empty } + } + { + \keys_set:Vn + \l_@@_jekyll_data_current_position_tl + { ##1 } + } + }, +% \end{macrocode} +% \begin{markdown} +% +% For every \acro{YAML} key `path.to.`\meta{key} with a value of type `string`, +% set the keys `typographicString` and `programmaticString` of the key–value +% \meta{module}`/path/to/`\meta{key} if they are known with the typographic and +% programmatic strings of the value, respectively. Furthermore, set the key +% \meta{key} of the key–value \meta{module}`/path/to` with the typographic +% string of the value unless the key `typographicString` is known. If the key +% `programmaticString` is known, only set the key \meta{key} if it is known. In +% contrast, if neither `typographicString` nor `programmaticString` are known, +% set \meta{key} normally, i.e. regardless of whether it is known or unknown. +% +% \end{markdown} +% \begin{macrocode} + jekyllDataTypographicString = { + \tl_set:Nx + \l_@@_jekyll_data_current_position_tl + { + \seq_use:Nn + \l_@@_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l_@@_jekyll_data_current_position_tl + { ##1 / typographicString } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 / typographicString + } + { ##2 } + } + { + \keys_if_exist:VnTF + \l_@@_jekyll_data_current_position_tl + { ##1 / programmaticString } + { + \@@_keys_set_known:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + } + }, + jekyllDataProgrammaticString = { + \tl_set:Nx + \l_@@_jekyll_data_current_position_tl + { + \seq_use:Nn + \l_@@_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnT + \l_@@_jekyll_data_current_position_tl + { ##1 / programmaticString } + { + \@@_keys_set:xn + { + \tl_use:N + \l_@@_jekyll_data_current_position_tl + / ##1 / programmaticString + } + { ##2 } + } + }, + }, + } + } +\cs_new:Nn + \@@_keys_set:nn + { + \keys_set:nn + { } + { { #1 } = { #2 } } + } +\cs_new:Nn + \@@_keys_set_known:nn + { + \keys_set_known:nn + { } + { { #1 } = { #2 } } + } +\cs_generate_variant:Nn + \@@_keys_set:nn + { xn } +\cs_generate_variant:Nn + \@@_keys_set_known:nn + { xn } +\cs_generate_variant:Nn + \keys_set:nn + { xn, Vn } +\prg_generate_conditional_variant:Nnn + \keys_if_exist:nn + { Vn } + { T, TF } +\ExplSyntaxOff +% \end{macrocode} % \iffalse %</themes-witiko-markdown-defaults-tex> %<*tex> @@ -36053,7 +36833,8 @@ end \c_@@_top_layer_tl \c_@@_option_layer_plain_tex_tl { - \ExplSyntaxOff + \use:c + { ExplSyntaxOff } \@@_if_option:nF { noDefaults } { @@ -36068,7 +36849,8 @@ end { theme = witiko/markdown/defaults } } } - \ExplSyntaxOn + \use:c + { ExplSyntaxOn } } \ExplSyntaxOff % \end{macrocode} @@ -36174,8 +36956,16 @@ end \cs_generate_variant:Nn \clist_map_inline:nn { Vn } -\let\markdownPrepareLuaOptions=\@@_format_lua_options: -\def\markdownLuaOptions{{ \g_@@_formatted_lua_options_tl }} +\let + \markdownPrepareLuaOptions + \@@_format_lua_options: +\def + \markdownLuaOptions + { + { + \g_@@_formatted_lua_options_tl + } + } \sys_if_engine_luatex:TF { \cs_new:Nn @@ -37040,7 +37830,8 @@ end { yaml } { \group_begin: - \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}% + \yamlSetup + { jekyllData, expectJekyllData, ensureJekyllData } \markdown } { \yamlEnd } @@ -37199,7 +37990,7 @@ end \prop_gput:Nnx \g_@@_latex_loaded_themes_linenos_prop { #1 } - { \tex_the:D \tex_inputlineno:D } + { \tex_the:D \tex_inputlineno:D } % noqa: W200 \prop_gput:Nnn \g_@@_latex_loaded_themes_versions_prop { #1 } @@ -37304,7 +38095,7 @@ end \c_backslash_str \tl_put_right:Nn \l_tmpa_tl - { begin{document} } + { begin { document } } \tl_set:Nn \l_tmpb_tl { Load~Markdown~theme~#1~before~ } @@ -37313,7 +38104,7 @@ end \c_backslash_str \tl_put_right:Nn \l_tmpb_tl - { begin{document} } + { begin { document } } \msg_new:nnVV { markdown } { latex-theme-after-preamble } @@ -37564,8 +38355,8 @@ end \l_@@_latex_fancy_list_item_label_number_style_tl \tl_new:N \l_@@_latex_fancy_list_item_label_delimiter_style_tl -\@ifpackageloaded{enumitem}{ - \markdownSetup{rendererPrototypes={ +\@ifpackageloaded { enumitem } { + \markdownSetup { rendererPrototypes = { % \end{macrocode} % \begin{markdown} % @@ -37643,7 +38434,7 @@ end { #1 } ] }, - }} + } } % \end{macrocode} % \begin{markdown} % @@ -37653,8 +38444,9 @@ end % % \end{markdown} % \begin{macrocode} -}{\@ifpackageloaded{paralist}{ - \markdownSetup{rendererPrototypes={ +} +{ \@ifpackageloaded { paralist } { + \markdownSetup { rendererPrototypes = { % \end{macrocode} % \begin{markdown} % @@ -37663,14 +38455,14 @@ end % % \end{markdown} % \begin{macrocode} - ulBeginTight = {% + ulBeginTight = { \group_begin: \pltopsep=\topsep \plpartopsep=\partopsep - \begin{compactitem} + \begin { compactitem } }, ulEndTight = { - \end{compactitem} + \end { compactitem } \group_end: }, fancyOlBegin = { @@ -37681,10 +38473,10 @@ end \tl_set:Nn \l_@@_latex_fancy_list_item_label_delimiter_style_tl { #2 } - \begin{enumerate} + \begin { enumerate } }, fancyOlEnd = { - \end{enumerate} + \end { enumerate } \group_end: }, % \end{macrocode} @@ -37695,14 +38487,14 @@ end % % \end{markdown} % \begin{macrocode} - olBeginTight = {% + olBeginTight = { \group_begin: \plpartopsep=\partopsep \pltopsep=\topsep - \begin{compactenum} + \begin { compactenum } }, olEndTight = { - \end{compactenum} + \end { compactenum } \group_end: }, fancyOlBeginTight = { @@ -37715,10 +38507,10 @@ end { #2 } \plpartopsep=\partopsep \pltopsep=\topsep - \begin{compactenum} + \begin { compactenum } }, fancyOlEndTight = { - \end{compactenum} + \end { compactenum } \group_end: }, fancyOlItemWithNumber = { @@ -37742,14 +38534,15 @@ end \group_begin: \plpartopsep=\partopsep \pltopsep=\topsep - \begin{compactdesc} + \begin { compactdesc } }, dlEndTight = { - \end{compactdesc} + \end { compactdesc } \group_end: } - }} -}{ + } } +} +{ % \end{macrocode} % \begin{markdown} % @@ -37775,7 +38568,7 @@ end dlEndTight = \markdownRendererDlEnd, }, } -}} +} } \ExplSyntaxOff \RequirePackage{amsmath} % \end{macrocode} @@ -37855,14 +38648,14 @@ end { { csv } { - \begin{table} - \begin{center} - \csvautotabular{#3} - \end{center} + \begin { table } + \begin { center } + \csvautotabular { #3 } + \end{ center } \tl_if_empty:nF { #4 } - { \caption{#4} } - \end{table} + { \caption { #4 } } + \end { table } } { html } { @@ -38074,7 +38867,7 @@ end % \begin{macrocode} \ltx@ifpackageloaded { listings } - { \lstinputlisting[language=\l_tmpa_tl]{#1} } + { \lstinputlisting [ language = \l_tmpa_tl ] { #1 } } % \end{macrocode} % \begin{markdown} % @@ -38083,7 +38876,7 @@ end % % \end{markdown} % \begin{macrocode} - { \markdownRendererInputFencedCode{#1}{}{} } + { \markdownRendererInputFencedCode { #1 } { } { } } } } } @@ -38096,7 +38889,7 @@ end % \end{markdown} % \begin{macrocode} \ExplSyntaxOn -\def\markdownLATEXStrongEmphasis#1{% +\def\markdownLATEXStrongEmphasis#1{ \str_if_in:NnTF \f@series { b } @@ -38487,12 +39280,13 @@ end } { \markdownLaTeXRendererAutolink { #2 } { #3 } - }{ + } + { \markdownLaTeXRendererDirectOrIndirectLink { #1 } { #2 } { #3 } { #4 } } } -\def\markdownLaTeXRendererAutolink#1#2{% +\def\markdownLaTeXRendererAutolink#1#2{ % \end{macrocode} % \begin{markdown} % If the URL begins with a hash sign, then we assume that it is a relative @@ -38527,7 +39321,8 @@ end \exp_args:NV \ref \l_tmpb_tl - }{ + } + { \url { #2 } } } @@ -38712,12 +39507,19 @@ end % \begin{macrocode} \ExplSyntaxOn \keys_define:nn - { markdown/jekyllData } + { markdown / jekyllData } { - author .code:n = { \author{#1} }, - date .code:n = { \date{#1} }, - title .code:n = { \title{#1} }, - } + author .code:n = { + \author + { #1 } + }, + date .code:n = { + \date + { #1 } + }, + title .code:n = { + \title + { #1 } % \end{macrocode} % \begin{markdown} % @@ -38729,13 +39531,11 @@ end % % \end{markdown} % \begin{macrocode} -\markdownSetup{ - rendererPrototypes = { - jekyllDataEnd = { - \AddToHook{begindocument/end}{\maketitle} + \AddToHook + { begindocument / end } + { \maketitle } }, - }, -} + } % \end{macrocode} % \begin{markdown} % @@ -38843,19 +39643,28 @@ end \markdownSetup { rendererPrototypes = { image = { - \begin { figure } - \begin { center } - \includegraphics - [ alt = { #1 } ] - { #3 } - \tl_if_empty:nF - { #4 } - { \caption { #4 } } - \seq_map_inline:Nn - \l_@@_image_identifiers_seq - { \label { ##1 } } - \end { center } - \end { figure } + \tl_if_empty:nTF + { #4 } + { + \begin { center } + \includegraphics + [ alt = { #1 } ] + { #3 } + \end { center } + } + { + \begin { figure } + \begin { center } + \includegraphics + [ alt = { #1 } ] + { #3 } + \caption { #4 } + \seq_map_inline:Nn + \l_@@_image_identifiers_seq + { \label { ##1 } } + \end { center } + \end { figure } + } }, } } @@ -38863,31 +39672,31 @@ end { linkAttributes } { \RequirePackage { graphicx } - \markdownSetup { - rendererPrototypes = { - imageAttributeContextBegin = { - \group_begin: - \markdownSetup { - rendererPrototypes = { - attributeIdentifier = { - \seq_put_right:Nn - \l_@@_image_identifiers_seq - { ##1 } - }, - attributeKeyValue = { - \setkeys - { Gin } - { { ##1 } = { ##2 } } - }, - }, - } - }, - imageAttributeContextEnd = { - \group_end: - }, - }, - } } +\markdownSetup { + rendererPrototypes = { + imageAttributeContextBegin = { + \group_begin: + \markdownSetup { + rendererPrototypes = { + attributeIdentifier = { + \seq_put_right:Nn + \l_@@_image_identifiers_seq + { ##1 } + }, + attributeKeyValue = { + \setkeys + { Gin } + { { ##1 } = { ##2 } } + }, + }, + } + }, + imageAttributeContextEnd = { + \group_end: + }, + }, +} \ExplSyntaxOff % \end{macrocode} % \begin{markdown} @@ -39258,7 +40067,7 @@ end \prop_gput:Nnx \g_@@_context_loaded_themes_linenos_prop { #1 } - { \tex_the:D \tex_inputlineno:D } + { \tex_the:D \tex_inputlineno:D } % noqa: W200 \prop_gput:Nnn \g_@@_context_loaded_themes_versions_prop { #1 } @@ -39488,7 +40297,7 @@ end \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl - \typefile[\l_tmpa_tl][]{#1} + \typefile[ \l_tmpa_tl ][] {#1} } } \ExplSyntaxOff @@ -39661,7 +40470,8 @@ end \c_@@_top_layer_tl \c_@@_option_layer_context_tl { - \ExplSyntaxOff + \use:c + { ExplSyntaxOff } \@@_if_option:nF { noDefaults } { @@ -39676,7 +40486,8 @@ end { theme = witiko/markdown/defaults } } } - \ExplSyntaxOn + \use:c + { ExplSyntaxOn } } \ExplSyntaxOff \stopmodule diff --git a/Master/texmf-dist/source/generic/markdown/markdown.ins b/Master/texmf-dist/source/generic/markdown/markdown.ins index 3402d668ebe..f1f3be84836 100644 --- a/Master/texmf-dist/source/generic/markdown/markdown.ins +++ b/Master/texmf-dist/source/generic/markdown/markdown.ins @@ -5,6 +5,7 @@ \file{markdown.lua}{\from{markdown.dtx}{lua-loader}} \file{markdown-parser.lua}{\from{markdown.dtx}{lua}} \file{markdown-cli.lua}{\from{markdown.dtx}{lua-cli}} + \file{markdown2tex.lua}{\from{markdown.dtx}{lua-cli}} \file{markdown-unicode-data-generator.lua}{\from{markdown.dtx}{lua-unicode-data-generator}} \file{markdown-unicode-data.lua}{\from{markdown.dtx}{lua-unicode-data}} \usepreamble\texpreamble diff --git a/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex b/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex index e79c9773795..67ca8d8d5c6 100644 --- a/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex +++ b/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex @@ -6,7 +6,7 @@ %% %% markdown.dtx (with options: `context') %% -%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -210,7 +210,7 @@ \prop_gput:Nnx \g__markdown_context_loaded_themes_linenos_prop { #1 } - { \tex_the:D \tex_inputlineno:D } + { \tex_the:D \tex_inputlineno:D } % noqa: W200 \prop_gput:Nnn \g__markdown_context_loaded_themes_versions_prop { #1 } @@ -273,7 +273,8 @@ \c__markdown_top_layer_tl \c__markdown_option_layer_context_tl { - \ExplSyntaxOff + \use:c + { ExplSyntaxOff } \__markdown_if_option:nF { noDefaults } { @@ -288,7 +289,8 @@ { theme = witiko/markdown/defaults } } } - \ExplSyntaxOn + \use:c + { ExplSyntaxOn } } \ExplSyntaxOff \stopmodule diff --git a/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex b/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex index dde11e86ae3..6bad0deb7ba 100644 --- a/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex +++ b/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex @@ -6,7 +6,7 @@ %% %% markdown.dtx (with options: `themes-witiko-markdown-defaults-ctx') %% -%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -143,7 +143,7 @@ \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl - \typefile[\l_tmpa_tl][]{#1} + \typefile[ \l_tmpa_tl ][] {#1} } } \ExplSyntaxOff diff --git a/Master/texmf-dist/tex/generic/markdown/markdown.tex b/Master/texmf-dist/tex/generic/markdown/markdown.tex index d21561f37c1..97cd6e2c800 100644 --- a/Master/texmf-dist/tex/generic/markdown/markdown.tex +++ b/Master/texmf-dist/tex/generic/markdown/markdown.tex @@ -6,7 +6,7 @@ %% %% markdown.dtx (with options: `tex') %% -%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -279,7 +279,7 @@ \l_tmpa_tl \tl_set:Nx #2 - { \the \cs:w \l_tmpa_tl \cs_end: } + { \the \cs:w \l_tmpa_tl \cs_end: } % noqa: W200 } { \__markdown_option_tl_to_csname:nN @@ -619,8 +619,8 @@ { boolean } { true } \ExplSyntaxOff -\def\markdownLastModified{2024-12-17}% -\def\markdownVersion{3.9.1-0-g92254dfb}% +\def\markdownLastModified{2025-01-27}% +\def\markdownVersion{3.10.0-0-g626df6ad}% \let\markdownBegin\relax \let\markdownEnd\relax \let\yamlBegin\relax @@ -707,7 +707,9 @@ Option~#1~has~type~#2,~ but~a~boolean~was~expected. } -\let\markdownIfOption=\__markdown_if_option:nTF +\let + \markdownIfOption + \__markdown_if_option:nTF \__markdown_add_plain_tex_option:nnn { frozenCache } { boolean } @@ -961,7 +963,7 @@ \l_tmpa_tl \clist_set:NV \l_tmpa_clist - { \l_tmpa_tl, { ##1 } } + { \l_tmpa_tl , { ##1 } } \__markdown_set_option_value:nV { #2 } \l_tmpa_clist @@ -3508,7 +3510,7 @@ \prop_gput:Nnx \g__markdown_plain_tex_loaded_themes_linenos_prop { #1 } - { \tex_the:D \tex_inputlineno:D } + { \tex_the:D \tex_inputlineno:D } % noqa: W200 \prop_gput:Nnn \g__markdown_plain_tex_loaded_themes_versions_prop { #1 } @@ -3623,7 +3625,7 @@ Consider~changing~the~name~to~"witiko/diagrams@v1". } } - \markdownSetup{fencedCode} + \markdownSetup { fencedCode } \cs_set_eq:NN \__markdown_dot_previous_definition:nnn \markdownRendererInputFencedCodePrototype @@ -3688,7 +3690,7 @@ { \markdownWarning { - Write~"witiko/diagrams@v1"~to~pin~version~"v1"~of~the~ + Write~"witiko/diagrams@v2"~to~pin~version~"v2"~of~the~ theme~"witiko/diagrams".~This~will~keep~your~documents~ from~suddenly~breaking~when~we~have~released~future~ versions~of~the~theme~with~backwards-incompatible~ @@ -3696,7 +3698,14 @@ } \markdownSetup { - import = witiko/dot@silent, + import = witiko/diagrams/v2, + } + } + { v2 } + { + \markdownSetup + { + import = witiko/diagrams/v2, } } { v1 } @@ -3724,6 +3733,176 @@ { unknown-theme-version } { Unknown~version~"#2"~of~theme~"#1"~has~been~requested. } { Known~versions~are:~#3 } +\prop_gput:Nnn + \g__markdown_plain_tex_built_in_themes_prop + { witiko / diagrams / v2 } + { + \__markdown_setup:n + { + fencedCode = true, + fencedCodeAttributes = true, + } + \cs_set_eq:NN + \__markdown_diagrams_previous_fenced_code:nnn + \markdownRendererInputFencedCodePrototype + \tl_new:N + \l__markdown_diagrams_caption_tl + \__markdown_setup:n + { + rendererPrototypes = { + fencedCodeAttributeContextBegin = { + \group_begin: + \markdownRendererImageAttributeContextBegin + \cs_set_eq:NN + \__markdown_diagrams_previous_key_value:nn + \markdownRendererAttributeKeyValuePrototype + \__markdown_setup:n + { + rendererPrototypes = { + attributeKeyValue = { + \str_if_eq:nnTF + { ##1 } + { caption } + { + \tl_set:Nn + \l__markdown_diagrams_caption_tl + { ##2 } + } + { + \__markdown_diagrams_previous_key_value:nn + { ##1 } + { ##2 } + } + }, + }, + } + }, + fencedCodeAttributeContextEnd = { + \markdownRendererImageAttributeContextEnd + \group_end: + }, + }, + } + \cs_new:Nn + \__markdown_diagrams_render_diagram:nnnn + { + \__markdown_if_option:nF + { frozenCache } + { + \sys_shell_now:n + { + if~!~test~-e~#2.source~ + ||~!~diff~#1~#2.source; + then~ + (#3); + cp~#1~#2.source; + fi + } + \exp_args:NNnV + \exp_last_unbraced:No + \markdownRendererImage + { + { #4 } + { #2 } + { #2 } + } + \l__markdown_diagrams_caption_tl + } + } + \prop_new:N + \g_markdown_diagrams_infostrings_prop + \__markdown_setup:n + { + rendererPrototypes = { + inputFencedCode = { + \prop_get:NnNTF + \g_markdown_diagrams_infostrings_prop + { #2 } + \l_tmpa_tl + { + \cs_set:NV + \__markdown_diagrams_infostrings_current:n + \l_tmpa_tl + \__markdown_diagrams_infostrings_current:n + { #1 } + } + { + \__markdown_diagrams_previous_fenced_code:nnn + { #1 } + { #2 } + { #3 } + } + }, + }, + } + \cs_generate_variant:Nn + \cs_set:Nn + { NV } + \cs_set:Nn + \__markdown_diagrams_infostrings_current:n + { + \__markdown_diagrams_render_diagram:nnnn + { #1 } + { #1.pdf } + { dot~-Tpdf~-o~#1.pdf~#1 } + { Graphviz~image } + } + \__markdown_tl_set_from_cs:NNn + \l_tmpa_tl + \__markdown_diagrams_infostrings_current:n + { 1 } + \prop_gput:NnV + \g_markdown_diagrams_infostrings_prop + { dot } + \l_tmpa_tl + \cs_set:Nn + \__markdown_diagrams_infostrings_current:n + { + \__markdown_diagrams_render_diagram:nnnn + { #1 } + { #1.pdf } + { mmdc~--pdfFit~-i~#1~-o~#1.pdf } + { Mermaid~image } + } + \__markdown_tl_set_from_cs:NNn + \l_tmpa_tl + \__markdown_diagrams_infostrings_current:n + { 1 } + \prop_gput:NnV + \g_markdown_diagrams_infostrings_prop + { mermaid } + \l_tmpa_tl + \regex_const:Nn + \c__markdown_diagrams_filename_suffix_regex + { \.[^.]*$ } + \cs_set:Nn + \__markdown_diagrams_infostrings_current:n + { + \tl_set:Nn + \l_tmpa_tl + { #1 } + \regex_replace_once:NnN + \c__markdown_diagrams_filename_suffix_regex + { .pdf } + \l_tmpa_tl + \__markdown_diagrams_render_diagram:nVnn + { #1 } + \l_tmpa_tl + { plantuml~-tpdf~#1 } + { PlantUML~image } + } + \cs_generate_variant:Nn + \__markdown_diagrams_render_diagram:nnnn + { nVnn } + \__markdown_tl_set_from_cs:NNn + \l_tmpa_tl + \__markdown_diagrams_infostrings_current:n + { 1 } + \prop_gput:NnV + \g_markdown_diagrams_infostrings_prop + { plantuml } + \l_tmpa_tl + } \group_begin: \char_set_catcode_other:N \% \prop_gput:Nnn @@ -3843,7 +4022,8 @@ \c__markdown_top_layer_tl \c__markdown_option_layer_plain_tex_tl { - \ExplSyntaxOff + \use:c + { ExplSyntaxOff } \__markdown_if_option:nF { noDefaults } { @@ -3858,7 +4038,8 @@ { theme = witiko/markdown/defaults } } } - \ExplSyntaxOn + \use:c + { ExplSyntaxOn } } \tl_new:N \g__markdown_formatted_lua_options_tl \cs_new:Nn \__markdown_format_lua_options: @@ -3951,8 +4132,16 @@ \cs_generate_variant:Nn \clist_map_inline:nn { Vn } -\let\markdownPrepareLuaOptions=\__markdown_format_lua_options: -\def\markdownLuaOptions{{ \g__markdown_formatted_lua_options_tl }} +\let + \markdownPrepareLuaOptions + \__markdown_format_lua_options: +\def + \markdownLuaOptions + { + { + \g__markdown_formatted_lua_options_tl + } + } \sys_if_engine_luatex:TF { \cs_new:Nn diff --git a/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex b/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex index 6ca36cac93f..af068b29eeb 100644 --- a/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex +++ b/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex @@ -6,7 +6,7 @@ %% %% markdown.dtx (with options: `themes-witiko-markdown-defaults-tex') %% -%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -228,7 +228,7 @@ \tl_const:Nn \c__markdown_jekyll_data_mapping_tl { mapping } \tl_const:Nn \c__markdown_jekyll_data_scalar_tl { scalar } \seq_new:N \g__markdown_jekyll_data_wildcard_absolute_address_seq -\cs_new:Nn \markdown_jekyll_data_push_address_segment:n +\cs_new:Nn \__markdown_jekyll_data_push_address_segment:n { \seq_if_empty:NF \g__markdown_jekyll_data_datatypes_seq @@ -253,31 +253,31 @@ } \tl_new:N \g__markdown_jekyll_data_wildcard_absolute_address_tl \tl_new:N \g__markdown_jekyll_data_wildcard_relative_address_tl -\cs_new:Nn \markdown_jekyll_data_concatenate_address:NN +\cs_new:Nn \__markdown_jekyll_data_concatenate_address:NN { \seq_pop_left:NN #1 \l_tmpa_tl \tl_set:Nx #2 { / \seq_use:Nn #1 { / } } \seq_put_left:NV #1 \l_tmpa_tl } -\cs_new:Nn \markdown_jekyll_data_update_address_tls: +\cs_new:Nn \__markdown_jekyll_data_update_address_tls: { - \markdown_jekyll_data_concatenate_address:NN + \__markdown_jekyll_data_concatenate_address:NN \g__markdown_jekyll_data_wildcard_absolute_address_seq \g__markdown_jekyll_data_wildcard_absolute_address_tl \seq_get_right:NN \g__markdown_jekyll_data_wildcard_absolute_address_seq \g__markdown_jekyll_data_wildcard_relative_address_tl } -\cs_new:Nn \markdown_jekyll_data_push:nN +\cs_new:Nn \__markdown_jekyll_data_push:nN { - \markdown_jekyll_data_push_address_segment:n + \__markdown_jekyll_data_push_address_segment:n { #1 } \seq_put_right:NV \g__markdown_jekyll_data_datatypes_seq #2 - \markdown_jekyll_data_update_address_tls: + \__markdown_jekyll_data_update_address_tls: } -\cs_new:Nn \markdown_jekyll_data_pop: +\cs_new:Nn \__markdown_jekyll_data_pop: { \seq_pop_right:NN \g__markdown_jekyll_data_wildcard_absolute_address_seq @@ -285,63 +285,298 @@ \seq_pop_right:NN \g__markdown_jekyll_data_datatypes_seq \l_tmpa_tl - \markdown_jekyll_data_update_address_tls: + \__markdown_jekyll_data_update_address_tls: } -\cs_new:Nn \markdown_jekyll_data_set_keyval:nn +\cs_new:Nn \__markdown_jekyll_data_set_keyval_known:nn { \keys_set_known:nn { markdown/jekyllData } { { #1 } = { #2 } } } \cs_generate_variant:Nn - \markdown_jekyll_data_set_keyval:nn + \__markdown_jekyll_data_set_keyval_known:nn { Vn } -\cs_new:Nn \markdown_jekyll_data_set_keyvals:nn +\cs_new:Nn \__markdown_jekyll_data_set_keyvals_known:nn { - \markdown_jekyll_data_push:nN + \__markdown_jekyll_data_push:nN { #1 } \c__markdown_jekyll_data_scalar_tl - \markdown_jekyll_data_set_keyval:Vn + \__markdown_jekyll_data_set_keyval_known:Vn \g__markdown_jekyll_data_wildcard_absolute_address_tl { #2 } - \markdown_jekyll_data_set_keyval:Vn + \__markdown_jekyll_data_set_keyval_known:Vn \g__markdown_jekyll_data_wildcard_relative_address_tl { #2 } - \markdown_jekyll_data_pop: + \__markdown_jekyll_data_pop: } \def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{ - \markdown_jekyll_data_push:nN + \__markdown_jekyll_data_push:nN { #1 } \c__markdown_jekyll_data_sequence_tl } \def\markdownRendererJekyllDataMappingBeginPrototype#1#2{ - \markdown_jekyll_data_push:nN + \__markdown_jekyll_data_push:nN { #1 } \c__markdown_jekyll_data_mapping_tl } \def\markdownRendererJekyllDataSequenceEndPrototype{ - \markdown_jekyll_data_pop: + \__markdown_jekyll_data_pop: } \def\markdownRendererJekyllDataMappingEndPrototype{ - \markdown_jekyll_data_pop: + \__markdown_jekyll_data_pop: } \def\markdownRendererJekyllDataBooleanPrototype#1#2{ - \markdown_jekyll_data_set_keyvals:nn + \__markdown_jekyll_data_set_keyvals_known:nn { #1 } { #2 } } \def\markdownRendererJekyllDataEmptyPrototype#1{} \def\markdownRendererJekyllDataNumberPrototype#1#2{ - \markdown_jekyll_data_set_keyvals:nn + \__markdown_jekyll_data_set_keyvals_known:nn { #1 } { #2 } } \def\markdownRendererJekyllDataProgrammaticStringPrototype#1#2{} \def\markdownRendererJekyllDataTypographicStringPrototype#1#2{ - \markdown_jekyll_data_set_keyvals:nn + \__markdown_jekyll_data_set_keyvals_known:nn { #1 } { #2 } } +\__markdown_with_various_cases:nn + { jekyllDataKeyValue } + { + \keys_define:nn + { markdown/options } + { + #1 .code:n = { + \__markdown_route_jekyll_data_to_key_values:n + { ##1 } + }, + #1 .default:n = { }, + } + } +\seq_new:N + \l__markdown_jekyll_data_current_position_seq +\tl_new:N + \l__markdown_jekyll_data_current_position_tl +\cs_new:Nn + \__markdown_route_jekyll_data_to_key_values:n + { + \markdownSetup + { + renderers = { + jekyllData(Sequence|Mapping)Begin = { + \bool_lazy_and:nnTF + { + \seq_if_empty_p:N + \l__markdown_jekyll_data_current_position_seq + } + { + \str_if_eq_p:nn + { ##1 } + { null } + } + { + \tl_if_empty:nF + { #1 } + { + \seq_put_right:Nn + \l__markdown_jekyll_data_current_position_seq + { #1 } + } + } + { + \seq_put_right:Nn + \l__markdown_jekyll_data_current_position_seq + { ##1 } + } + }, + jekyllData(Sequence|Mapping)End = { + \seq_pop_right:NN + \l__markdown_jekyll_data_current_position_seq + \l_tmpa_tl + }, + jekyllDataBoolean = { + \tl_set:Nx + \l__markdown_jekyll_data_current_position_tl + { + \seq_use:Nn + \l__markdown_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l__markdown_jekyll_data_current_position_tl + { ##1 / boolean } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 / boolean + } + { ##2 } + } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + }, + jekyllDataNumber = { + \tl_set:Nx + \l__markdown_jekyll_data_current_position_tl + { + \seq_use:Nn + \l__markdown_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l__markdown_jekyll_data_current_position_tl + { ##1 / number } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 / number + } + { ##2 } + } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + }, + jekyllDataEmpty = { + \tl_set:Nx + \l__markdown_jekyll_data_current_position_tl + { + \seq_use:Nn + \l__markdown_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l__markdown_jekyll_data_current_position_tl + { ##1 / empty } + { + \keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 + } + { empty } + } + { + \keys_set:Vn + \l__markdown_jekyll_data_current_position_tl + { ##1 } + } + }, + jekyllDataTypographicString = { + \tl_set:Nx + \l__markdown_jekyll_data_current_position_tl + { + \seq_use:Nn + \l__markdown_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnTF + \l__markdown_jekyll_data_current_position_tl + { ##1 / typographicString } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 / typographicString + } + { ##2 } + } + { + \keys_if_exist:VnTF + \l__markdown_jekyll_data_current_position_tl + { ##1 / programmaticString } + { + \__markdown_keys_set_known:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 + } + { ##2 } + } + } + }, + jekyllDataProgrammaticString = { + \tl_set:Nx + \l__markdown_jekyll_data_current_position_tl + { + \seq_use:Nn + \l__markdown_jekyll_data_current_position_seq + { / } + } + \keys_if_exist:VnT + \l__markdown_jekyll_data_current_position_tl + { ##1 / programmaticString } + { + \__markdown_keys_set:xn + { + \tl_use:N + \l__markdown_jekyll_data_current_position_tl + / ##1 / programmaticString + } + { ##2 } + } + }, + }, + } + } +\cs_new:Nn + \__markdown_keys_set:nn + { + \keys_set:nn + { } + { { #1 } = { #2 } } + } +\cs_new:Nn + \__markdown_keys_set_known:nn + { + \keys_set_known:nn + { } + { { #1 } = { #2 } } + } +\cs_generate_variant:Nn + \__markdown_keys_set:nn + { xn } +\cs_generate_variant:Nn + \__markdown_keys_set_known:nn + { xn } +\cs_generate_variant:Nn + \keys_set:nn + { xn, Vn } +\prg_generate_conditional_variant:Nnn + \keys_if_exist:nn + { Vn } + { T, TF } \ExplSyntaxOff \endinput %% diff --git a/Master/texmf-dist/tex/latex/markdown/markdown.sty b/Master/texmf-dist/tex/latex/markdown/markdown.sty index f1ac1337c99..b755869d95a 100644 --- a/Master/texmf-dist/tex/latex/markdown/markdown.sty +++ b/Master/texmf-dist/tex/latex/markdown/markdown.sty @@ -6,7 +6,7 @@ %% %% markdown.dtx (with options: `latex') %% -%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -85,7 +85,8 @@ \c__markdown_top_layer_tl \c__markdown_option_layer_latex_tl { - \ExplSyntaxOff + \use:c + { ExplSyntaxOff } \AtEndOfPackage { \__markdown_if_option:nF @@ -103,7 +104,8 @@ } } } - \ExplSyntaxOn + \use:c + { ExplSyntaxOn } } \ExplSyntaxOff \def\markdownVersionSpace{ }% @@ -193,7 +195,8 @@ { yaml } { \group_begin: - \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}% + \yamlSetup + { jekyllData, expectJekyllData, ensureJekyllData } \markdown } { \yamlEnd } @@ -297,7 +300,7 @@ \prop_gput:Nnx \g__markdown_latex_loaded_themes_linenos_prop { #1 } - { \tex_the:D \tex_inputlineno:D } + { \tex_the:D \tex_inputlineno:D } % noqa: W200 \prop_gput:Nnn \g__markdown_latex_loaded_themes_versions_prop { #1 } @@ -386,7 +389,7 @@ \c_backslash_str \tl_put_right:Nn \l_tmpa_tl - { begin{document} } + { begin { document } } \tl_set:Nn \l_tmpb_tl { Load~Markdown~theme~#1~before~ } @@ -395,7 +398,7 @@ \c_backslash_str \tl_put_right:Nn \l_tmpb_tl - { begin{document} } + { begin { document } } \msg_new:nnVV { markdown } { latex-theme-after-preamble } diff --git a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty index fc531d5e1e4..69726fdf195 100644 --- a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty +++ b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty @@ -6,7 +6,7 @@ %% %% markdown.dtx (with options: `themes-witiko-markdown-defaults-latex') %% -%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -190,8 +190,8 @@ \l__markdown_latex_fancy_list_item_label_number_style_tl \tl_new:N \l__markdown_latex_fancy_list_item_label_delimiter_style_tl -\@ifpackageloaded{enumitem}{ - \markdownSetup{rendererPrototypes={ +\@ifpackageloaded { enumitem } { + \markdownSetup { rendererPrototypes = { ulBeginTight = { \begin { itemize } @@ -255,17 +255,18 @@ { #1 } ] }, - }} -}{\@ifpackageloaded{paralist}{ - \markdownSetup{rendererPrototypes={ - ulBeginTight = {% + } } +} +{ \@ifpackageloaded { paralist } { + \markdownSetup { rendererPrototypes = { + ulBeginTight = { \group_begin: \pltopsep=\topsep \plpartopsep=\partopsep - \begin{compactitem} + \begin { compactitem } }, ulEndTight = { - \end{compactitem} + \end { compactitem } \group_end: }, fancyOlBegin = { @@ -276,20 +277,20 @@ \tl_set:Nn \l__markdown_latex_fancy_list_item_label_delimiter_style_tl { #2 } - \begin{enumerate} + \begin { enumerate } }, fancyOlEnd = { - \end{enumerate} + \end { enumerate } \group_end: }, - olBeginTight = {% + olBeginTight = { \group_begin: \plpartopsep=\partopsep \pltopsep=\topsep - \begin{compactenum} + \begin { compactenum } }, olEndTight = { - \end{compactenum} + \end { compactenum } \group_end: }, fancyOlBeginTight = { @@ -302,10 +303,10 @@ { #2 } \plpartopsep=\partopsep \pltopsep=\topsep - \begin{compactenum} + \begin { compactenum } }, fancyOlEndTight = { - \end{compactenum} + \end { compactenum } \group_end: }, fancyOlItemWithNumber = { @@ -321,14 +322,15 @@ \group_begin: \plpartopsep=\partopsep \pltopsep=\topsep - \begin{compactdesc} + \begin { compactdesc } }, dlEndTight = { - \end{compactdesc} + \end { compactdesc } \group_end: } - }} -}{ + } } +} +{ \markdownSetup { rendererPrototypes = { @@ -344,7 +346,7 @@ dlEndTight = \markdownRendererDlEnd, }, } -}} +} } \ExplSyntaxOff \RequirePackage{amsmath} \@ifpackageloaded{unicode-math}{ @@ -386,14 +388,14 @@ { { csv } { - \begin{table} - \begin{center} - \csvautotabular{#3} - \end{center} + \begin { table } + \begin { center } + \csvautotabular { #3 } + \end{ center } \tl_if_empty:nF { #4 } - { \caption{#4} } - \end{table} + { \caption { #4 } } + \end { table } } { html } { @@ -548,12 +550,12 @@ { \ltx@ifpackageloaded { listings } - { \lstinputlisting[language=\l_tmpa_tl]{#1} } - { \markdownRendererInputFencedCode{#1}{}{} } + { \lstinputlisting [ language = \l_tmpa_tl ] { #1 } } + { \markdownRendererInputFencedCode { #1 } { } { } } } } } -\def\markdownLATEXStrongEmphasis#1{% +\def\markdownLATEXStrongEmphasis#1{ \str_if_in:NnTF \f@series { b } @@ -887,12 +889,13 @@ } { \markdownLaTeXRendererAutolink { #2 } { #3 } - }{ + } + { \markdownLaTeXRendererDirectOrIndirectLink { #1 } { #2 } { #3 } { #4 } } } -\def\markdownLaTeXRendererAutolink#1#2{% +\def\markdownLaTeXRendererAutolink#1#2{ \tl_set:Nn \l_tmpa_tl { #2 } @@ -921,7 +924,8 @@ \exp_args:NV \ref \l_tmpb_tl - }{ + } + { \url { #2 } } } @@ -1067,19 +1071,24 @@ \ExplSyntaxOn \keys_define:nn - { markdown/jekyllData } + { markdown / jekyllData } { - author .code:n = { \author{#1} }, - date .code:n = { \date{#1} }, - title .code:n = { \title{#1} }, - } -\markdownSetup{ - rendererPrototypes = { - jekyllDataEnd = { - \AddToHook{begindocument/end}{\maketitle} + author .code:n = { + \author + { #1 } }, - }, -} + date .code:n = { + \date + { #1 } + }, + title .code:n = { + \title + { #1 } + \AddToHook + { begindocument / end } + { \maketitle } + }, + } \__markdown_if_option:nT { mark } { @@ -1151,19 +1160,28 @@ \markdownSetup { rendererPrototypes = { image = { - \begin { figure } - \begin { center } - \includegraphics - [ alt = { #1 } ] - { #3 } - \tl_if_empty:nF - { #4 } - { \caption { #4 } } - \seq_map_inline:Nn - \l__markdown_image_identifiers_seq - { \label { ##1 } } - \end { center } - \end { figure } + \tl_if_empty:nTF + { #4 } + { + \begin { center } + \includegraphics + [ alt = { #1 } ] + { #3 } + \end { center } + } + { + \begin { figure } + \begin { center } + \includegraphics + [ alt = { #1 } ] + { #3 } + \caption { #4 } + \seq_map_inline:Nn + \l__markdown_image_identifiers_seq + { \label { ##1 } } + \end { center } + \end { figure } + } }, } } @@ -1171,31 +1189,31 @@ { linkAttributes } { \RequirePackage { graphicx } - \markdownSetup { - rendererPrototypes = { - imageAttributeContextBegin = { - \group_begin: - \markdownSetup { - rendererPrototypes = { - attributeIdentifier = { - \seq_put_right:Nn - \l__markdown_image_identifiers_seq - { ##1 } - }, - attributeKeyValue = { - \setkeys - { Gin } - { { ##1 } = { ##2 } } - }, - }, - } - }, - imageAttributeContextEnd = { - \group_end: - }, - }, - } } +\markdownSetup { + rendererPrototypes = { + imageAttributeContextBegin = { + \group_begin: + \markdownSetup { + rendererPrototypes = { + attributeIdentifier = { + \seq_put_right:Nn + \l__markdown_image_identifiers_seq + { ##1 } + }, + attributeKeyValue = { + \setkeys + { Gin } + { { ##1 } = { ##2 } } + }, + }, + } + }, + imageAttributeContextEnd = { + \group_end: + }, + }, +} \cs_new:Nn \__markdown_luaxml_print_html:n { diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua b/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua index c5cdd8ee678..8ce14ef992f 100644 --- a/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua +++ b/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua @@ -20,7 +20,7 @@ -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- --- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur -- -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -58,7 +58,7 @@ -- those in the standard .ins files. -- local metadata = { - version = "3.9.1-0-g92254dfb", + version = "3.10.0-0-g626df6ad", comment = "A module for the conversion from markdown " .. "to plain TeX", author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, " @@ -8104,9 +8104,13 @@ M.extensions.notes = function(notes, inline_notes) * parsers.spnlc * indented_blocks(chunk) / register_note - local Reference = NoteBlock + parsers.Reference + self.update_rule("Reference", function(previous_pattern) + if previous_pattern == nil then + previous_pattern = parsers.Reference + end + return NoteBlock + previous_pattern + end) - self.update_rule("Reference", Reference) self.insert_pattern("Inline before LinkAndEmph", NoteRef, "NoteRef") end diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua b/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua index 81d80db0e5c..7aab0e30850 100644 --- a/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua +++ b/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua @@ -20,7 +20,7 @@ -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- --- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur -- -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -58,7 +58,7 @@ -- those in the standard .ins files. -- local metadata = { - version = "3.9.1-0-g92254dfb", + version = "3.10.0-0-g626df6ad", comment = "A module for the conversion from markdown " .. "to plain TeX", author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, " @@ -71,11 +71,11 @@ local metadata = { local lpeg = require("lpeg") local M = {metadata = metadata} M.punctuation = {} -local S = lpeg.S +local P = lpeg.P -- luacheck: push no max line length -M.punctuation[1] = S([[!]]) + S([["]]) + S([[#]]) + S([[$]]) + S([[%]]) + S([[&]]) + S([[']]) + S([[(]]) + S([[)]]) + S([[*]]) + S([[+]]) + S([[,]]) + S([[-]]) + S([[.]]) + S([[/]]) + S([[:]]) + S([[;]]) + S([[<]]) + S([[=]]) + S([[>]]) + S([[?]]) + S([[@]]) + S([[[]]) + S([[\]]) + S(']') + S([[^]]) + S([[_]]) + S([[`]]) + S([[{]]) + S([[|]]) + S([[}]]) + S([[~]]) -M.punctuation[2] = S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) -M.punctuation[3] = S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) -M.punctuation[4] = S([[]]) * (S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])))) +M.punctuation[1] = P([[!]]) + P([["]]) + P([[#]]) + P([[$]]) + P([[%]]) + P([[&]]) + P([[']]) + P([[(]]) + P([[)]]) + P([[*]]) + P([[+]]) + P([[,]]) + P([[-]]) + P([[.]]) + P([[/]]) + P([[:]]) + P([[;]]) + P([[<]]) + P([[=]]) + P([[>]]) + P([[?]]) + P([[@]]) + P([[[]]) + P([[\]]) + P(']') + P([[^]]) + P([[_]]) + P([[`]]) + P([[{]]) + P([[|]]) + P([[}]]) + P([[~]]) +M.punctuation[2] = P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) +M.punctuation[3] = P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]))) +M.punctuation[4] = P([[]]) * (P([[]]) * (P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]])) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]])) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])))) -- luacheck: pop return M diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown.lua b/Master/texmf-dist/tex/luatex/markdown/markdown.lua index 2ab9f2329b4..6efbf54a91e 100644 --- a/Master/texmf-dist/tex/luatex/markdown/markdown.lua +++ b/Master/texmf-dist/tex/luatex/markdown/markdown.lua @@ -20,7 +20,7 @@ -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- --- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur +-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur -- -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -58,7 +58,7 @@ -- those in the standard .ins files. -- local metadata = { - version = "3.9.1-0-g92254dfb", + version = "3.10.0-0-g626df6ad", comment = "A module for the conversion from markdown " .. "to plain TeX", author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, " diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index ae1847a221f..40c5591fa84 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -3900,6 +3900,7 @@ $standardttf = '\.ttf|\.TTC'; 'm-tx' => 'm-tx.lua', 'make4ht' => 'make4ht$', 'makedtx' => '^makedtx\.pl$', + 'markdown' => '^markdown2tex\.lua$', 'match_parens' => '^match_parens$', 'mathspic' => '^mathspic\.pl$', 'memoize' => '\.p[ly]$', diff --git a/Master/tlpkg/tlpsrc/markdown.tlpsrc b/Master/tlpkg/tlpsrc/markdown.tlpsrc index 60ad525b418..5e364369ef4 100644 --- a/Master/tlpkg/tlpsrc/markdown.tlpsrc +++ b/Master/tlpkg/tlpsrc/markdown.tlpsrc @@ -1,21 +1,26 @@ -depend l3kernel -depend lt3luabridge -depend lua-uni-algos -#soft amsfonts -#soft amsmath -#soft catchfile -#soft csvsimple -#soft epstopdf-pkg -#soft etoolbox -#soft fancyvrb -#soft gobble -#soft graphics -#soft grffile -#soft latex -#soft ltxcmds -#soft paralist -#soft pgf -#soft soul -#soft tools -#soft url -#soft verse +binpattern f bin/${ARCH}/markdown2tex + +hard l3kernel +hard lt3luabridge +hard lua-tinyyaml +hard lua-uni-algos +soft amsfonts +soft amsmath +soft csvsimple +soft enumitem +soft epstopdf +soft epstopdf-pkg +soft etoolbox +soft fancyvrb +soft graphics +soft ltxcmds +soft lua-ul +soft luacolor +soft luaxml +soft paralist +soft pgf +soft soul +soft tools +soft url +soft verse +soft xcolor |