force use of pandoc version >= 3.1.12.2

The `bin/pandoc-wrapper.sh` tool will verify that the ssytem
has a recent enough version of `pandoc(1)`.

We explain why we insist on `pandoc(1)`. version >= 3.1.12.2
in comments where the $PANDOC_MIN_VERSION is set.

Added `--wrap=preserve` as a default argument to `pandoc(1)`.
While this change will impact every HTML file generated,
we believe this will improve the ability of someone to look
at the generated HTML and correlate with the original markdown.

Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17"
to "1.4.3 2024-03-18".

Performed `make www` to achieve all of the above and to generate
HTML using the new  `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
Landon Curt Noll committed 2024-03-18 01:26:39 -07:00
1 parent 9eb7a54e9f
commit b0b212acb1
402 files changed
+37061 -55132

No files matched your search

+82 -122
View File
@@ -130,8 +130,8 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Don_Yang">Don Yang</a><br>
Location: <a href="../../location.html#US">US</a> - <em>United States of
America</em> (<em>United States</em>) <br><br></li>
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -141,11 +141,10 @@ America</em> (<em>United States</em>) <br><br></li>
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
<p>There is an alternate version that will read from the compiled file
itself, in case you don’t have a <code>/dev/urandom</code> file. There
is also a version that should theoretically work with Windows which
distinguishes binary and text. See <a href="#alternate-code">alternate
code</a> below.</p>
<p>There is an alternate version that will read from the compiled file itself, in
case you don’t have a <code>/dev/urandom</code> file. There is also a version that should
theoretically work with Windows which distinguishes binary and text. See
<a href="#alternate-code">alternate code</a> below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./nyaruko</span> <span class="pp">[</span><span class="ss">seed.txt</span><span class="pp">]</span> <span class="op">&lt;</span> original.bin <span class="op">&gt;</span> output.c</span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="fu">bash</span> output.c <span class="op">&gt;</span> key.c</span>
@@ -155,102 +154,89 @@ code</a> below.</p>
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> output.c <span class="at">-o</span> output</span>
<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a><span class="ex">./output</span> <span class="op">&gt;</span> regenerated.bin</span></code></pre></div>
<p>NOTE: if your OS does not have <code>/dev/urandom</code> then you
should specify a seed file or use the <a
href="#alternate-code">alternate version</a> which reads in the compiled
<p>NOTE: if your OS does not have <code>/dev/urandom</code> then you should specify a seed
file or use the <a href="#alternate-code">alternate version</a> which reads in the compiled
binary itself.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<p>The script <a href="try.sh">try.sh</a> will check if you have perl
before trying to use the perl parts of the script.</p>
<p>The script <a href="try.sh">try.sh</a> will check if you have perl before trying to use the
perl parts of the script.</p>
<h2 id="alternate-code">Alternate code:</h2>
<p>The alternate version will, if no file is specified, read in the
compiled binary itself rather than trying to open
<code>/dev/urandom</code>, which is the default for the original entry.
This is useful if your system does not have a <code>/dev/urandom</code>
file and you do not want to specify an extra file. The second alternate
version is like the first except it also should theoretically work with
Windows, setting binary mode on <code>stdin</code> and
<code>stdout</code>.</p>
<p>The alternate version will, if no file is specified, read in the compiled binary
itself rather than trying to open <code>/dev/urandom</code>, which is the default for the
original entry. This is useful if your system does not have a <code>/dev/urandom</code>
file and you do not want to specify an extra file. The second alternate version
is like the first except it also should theoretically work with Windows, setting
binary mode on <code>stdin</code> and <code>stdout</code>.</p>
<h3 id="alternate-build">Alternate build:</h3>
<p>For the first version:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<p>For the second version:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt2</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>nyaruko.alt</code> or <code>nyaruko.alt2</code> as you
would <code>nyaruko</code> above.</p>
<p>Use <code>nyaruko.alt</code> or <code>nyaruko.alt2</code> as you would <code>nyaruko</code> above.</p>
<h3 id="alternate-try">Alternate try:</h3>
<p>For the first alternate version:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<p>We have no way to test the second version, sorry (tm Canada :-)
)!</p>
<p>We have no way to test the second version, sorry (tm Canada :-) )!</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The judges have nothing to add that has not already been written
about in the <a href="spoiler.html">spoiler.html</a> (requires
JavaScript) file! :-)</p>
<p>The judges have nothing to add that has not already been written about in the
<a href="spoiler.html">spoiler.html</a> (requires JavaScript) file! :-)</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="usage">Usage</h3>
<p><code>Nyaruko</code> is a binary to text filter. Given some input on
<code>stdin</code>, <code>Nyaruko</code> will produce C code that
reproduces this input on <code>stdout</code>:</p>
<p><code>Nyaruko</code> is a binary to text filter. Given some input on <code>stdin</code>,
<code>Nyaruko</code> will produce C code that reproduces this input on <code>stdout</code>:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./nyaruko</span> <span class="op">&lt;</span> original.bin <span class="op">&gt;</span> output.c</span>
<span id="cb7-2"><a href="#cb7-2" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> output.c <span class="at">-o</span> output</span>
<span id="cb7-3"><a href="#cb7-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./output</span> <span class="op">&gt;</span> regenerated.bin</span></code></pre></div>
<p>Output is encrypted, but both key and data are included in the
output. To separate the key from the data, run these commands:</p>
<p>Output is encrypted, but both key and data are included in the output.
To separate the key from the data, run these commands:</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="fu">bash</span> output.c <span class="op">&gt;</span> key.c</span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a><span class="fu">perl</span> output.c <span class="op">&gt;</span> data.c</span></code></pre></div>
<p>The key-less <code>data.c</code> still compiles, but produces a
different message on <code>stdout</code> instead of the original input.
This message is a hint to why the code is formatted the way it is.</p>
<p>The key-less <code>data.c</code> still compiles, but produces a different message
on <code>stdout</code> instead of the original input. This message is a hint to
why the code is formatted the way it is.</p>
<p>To combine the key and data, concatenate them together in either
order:</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="fu">cat</span> key.c data.c <span class="op">&gt;</span> output.c</span>
<span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cat</span> data.c key.c <span class="op">&gt;</span> output.c</span></code></pre></div>
<p>By default, <code>Nyaruko</code> generates a unique random key for
every message, using <code>/dev/urandom</code> as the seed. If given an
extra command line argument, <code>Nyaruko</code> will seed using that
file instead of <code>/dev/urandom</code>:</p>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./nyaruko</span> seed.txt <span class="op">&lt;</span> input.bin <span class="op">&gt;</span> output.c</span></code></pre></div>
<p>This makes the output key deterministic, allowing the same key to be
shared across different files. On operating systems that do not have
<code>/dev/urandom</code>, users should always specify this extra seed
argument to avoid indeterministic keys, or else use the alternate
version which will by default read the compiled alternate version
itself, which might or might not be deterministic, depending on where
and how it’s used.</p>
<p>By default, <code>Nyaruko</code> generates a unique random key for every message,
using <code>/dev/urandom</code> as the seed. If given an extra command line
argument, <code>Nyaruko</code> will seed using that file instead of <code>/dev/urandom</code>:</p>
<div class="sourceCode" id="cb10"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./nyaruko</span> seed.txt <span class="op">&lt;</span> input.bin <span class="op">&gt;</span> output.c</span></code></pre></div>
<p>This makes the output key deterministic, allowing the same key to be shared
across different files. On operating systems that do not have <code>/dev/urandom</code>,
users should always specify this extra seed argument to avoid indeterministic
keys, or else use the alternate version which will by default read the compiled
alternate version itself, which might or might not be deterministic, depending
on where and how it’s used.</p>
<h3 id="features">Features</h3>
<p>Implementation details that make <code>Nyaruko</code> more obfuscated
than usual programs:</p>
<p>Implementation details that make <code>Nyaruko</code> more obfuscated than usual
programs:</p>
<ul>
<li><code>Nyaruko</code> recycles variables and buffers to reduce
internal state. The variable names are also carefully chosen for
mixed-case madness.</li>
<li><code>Nyaruko</code> employs some preprocessor magic to share much
of the same code and state between the encoder and decoder, and to
increase occurrences of smileys ;)</li>
<li><code>Nyaruko</code> recycles variables and buffers to reduce internal state.
The variable names are also carefully chosen for mixed-case
madness.</li>
<li><code>Nyaruko</code> employs some preprocessor magic to share much of the same
code and state between the encoder and decoder, and to increase
occurrences of smileys ;)</li>
</ul>
<p>Output code has these features:</p>
<ul>
<li>Fits nicely under 80 columns, and does not contain any
trigraphs.</li>
<li>Uses a fairly efficient encoding scheme, better than
<code>uuencode</code> for files larger than ~13K, and better than
<code>base64</code> for files larger than 20K.</li>
<li>Encryption with <a
href="https://en.wikipedia.org/wiki/ISAAC_(cipher)">ISAAC</a>, a
<li>Fits nicely under 80 columns, and does not contain any trigraphs.</li>
<li>Uses a fairly efficient encoding scheme, better than <code>uuencode</code> for
files larger than ~13K, and better than <code>base64</code> for files larger
than 20K.</li>
<li>Encryption with <a href="https://en.wikipedia.org/wiki/ISAAC_(cipher)">ISAAC</a>, a
cryptographically secure pseudorandom number generator.</li>
<li>Trivial 3 language polyglot.</li>
</ul>
<p>Code layout is meant to resemble <a
href="https://en.wikipedia.org/wiki/Nyarlathotep">Nyaruko</a>, also
known as <code>Nyarlathotep</code>, the Crawling Chaos. The most obvious
thing to do with chaos is to make a random number generator, and the
most obvious thing to do with a random number generator is to make <a
href="https://en.wikipedia.org/wiki/One-time_pad">one-time-pads</a> for
encryption.</p>
<p>Code layout is meant to resemble
<a href="https://en.wikipedia.org/wiki/Nyarlathotep">Nyaruko</a>, also known as
<code>Nyarlathotep</code>, the Crawling Chaos. The most obvious thing to do with chaos is
to make a random number generator, and the most obvious thing to do with a
random number generator is to make
<a href="https://en.wikipedia.org/wiki/One-time_pad">one-time-pads</a> for encryption.</p>
<h3 id="compatibility">Compatibility</h3>
<p><code>Nyaruko</code> has these environment dependencies:</p>
<ul>
@@ -260,11 +246,11 @@ encryption.</p>
</ul>
<p>Output code has the same dependencies, with the additional
requirement that the compiler must support arbitrarily long string
literals. Maximum input size that can be encoded while still producing
standard-compliant output is ~276 bytes for C89, and ~3168 bytes for
C99.</p>
<p><code>Nyaruko</code> has been to verified to work with these
compiler/OS combinations:</p>
literals. Maximum input size that can be encoded while still
producing standard-compliant output is ~276 bytes for C89, and ~3168
bytes for C99.</p>
<p><code>Nyaruko</code> has been to verified to work with these compiler/OS
combinations:</p>
<ul>
<li>gcc 4.4.5 on Linux (32bit and 64bit)</li>
<li>clang 3.1 on Windows (Cygwin)</li>
@@ -273,70 +259,44 @@ compiler/OS combinations:</p>
<li>gcc 4.3.5 on JSLinux</li>
<li>tcc 0.9.25 on JSLinux</li>
</ul>
<p>Note that on MingW, <code>stdin</code> and <code>stdout</code> are
not opened in binary mode by default, this means <code>Nyaruko</code>
may not faithfully encode files on MingW.</p>
<p>Note that on MingW, <code>stdin</code> and <code>stdout</code> are not opened in binary mode by
default, this means <code>Nyaruko</code> may not faithfully encode files on MingW.</p>
<h3 id="extra-files">Extra files</h3>
<p><a href="spoiler.html">spoiler.html</a> - Contains full recording of
how the code went from blank state to an obfuscated program, gzipped to
fit under 1MB. Requires JavaScript.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<p><a href="spoiler.html">spoiler.html</a> - Contains full recording of how the code went from
blank state to an obfuscated program, gzipped to fit under 1MB. Requires
JavaScript.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-2012omoikane"><a name="inventory"></a>Inventory
for 2012/omoikane</h1>
<h1 id="inventory-for-2012omoikane"><a name="inventory"></a>Inventory for 2012/omoikane</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.alt.c">omoikane.alt.c</a>
- alternative source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.alt2.c">omoikane.alt2.c</a>
- alternate alternative source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.orig.c">omoikane.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.c">omoikane.c</a>
- source to generate random data</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/try.alt.sh">try.alt.sh</a>
- how to run alternative code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/try.sh">try.sh</a>
- how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.alt.c">omoikane.alt.c</a> - alternative source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.alt2.c">omoikane.alt2.c</a> - alternate alternative source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.orig.c">omoikane.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.c">omoikane.c</a> - source to generate random data</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/try.alt.sh">try.alt.sh</a> - how to run alternative code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/try.sh">try.sh</a> - how to run</li>
<li><a href="spoiler.html">spoiler.html</a> - SPOILER WARNING</li>
<li><a href="2012_omoikane.tar.bz2">2012_omoikane.tar.bz2</a> - download
entry source</li>
<li><a href="2012_omoikane.tar.bz2">2012_omoikane.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->