>10&63|q>>24&4032|q>>38&258048
+char J[1<<18]; int G[W*p],_,k,I=W/4+1,w=p/4+1; float C,B,e;
+
+unsigned So long A,n,d, t,h,x, f,o,r,a,l,L,F,i,s,H=1<<18,b=250,D[1<<14],z[W*p],q
+=0x82000820000000;main(){Display *j=XOpenDisplay(0);Window u=XCreateSimpleWindow
+(j,RootWindow(j,0),0,0,W,p,1,0,0);XImage *Y=XCreateImage(j,DefaultVisual(j,0),24
+,2,0,(char*)G,W,p,32,0); XEvent M; for(XMapWindow(j,u); XSelectInput( j,u,1)&&a-
+65307; ){ if(!H){ if(XCheckWindowEvent(j,u,1,&M)){ a=XLookupKeysym(&M.xkey,0);*(
+a&1?&C:& B)-=(.05
+-a/2% 2* .1)*!(a-
+1& 4092^ 3920);a+
+2&0xfe0^ 0xfc0||(
+s=a+2&31 ); }else
+{ y(k,p+ ){ F=k%w* 4|k/w; float a[6],S=(F-p /2.) /p;
+y(_,W+){ i=_%I*4|_/I; if( F>38)) { float V=(i-W/2. )/p,U=O(
+S,1,B),m =32768,Q=m; a[4] =O(-1,S,B); a[3]= O(U,V,C)
+; a[5]=O (-V,U,C); P((a+3 ),s*42); t||(A=d) ;f=0;y(n
+,){float N=a[n+3], E=1024 /fabs(N); b= N<0; float K=
+(((q>>20 *n)^~-b)+!b&1023 )/1024.; y(d,)a[d ]=a[d+3]
+*E; a[n] =round(a[n]); P( a,K); i=q+d; P(a, 1); e=E*
+K; for(; e>40)&1023|i>>8&4190208 |4194304
+:i&1023| i>>28&4190208|(b^l==r)<<23; if(h =D[(x>>6
+&0xf|x>> 14&0x3f0)+t*768]){ o=h; f=n|l*4| x<<32; m
+=e; } if (t==8&e>8; G[L]=o>> 32<<8|o&
+16711935 ; z[L]=3*(Q<=m)|f|b<<56; } else{ d=l*(f<<
+8>>40)+( 4-l)*(h<<8>>40)>>2&16774143; o=D [(d>> 6&
+15|d>>14 &1008)+J[(int)h/4]*768]*(b=h>>56 )>>8; G[
+L]=o>>32 <<8 | o& 16711935 ; z[L]=(
+int) h|d <<32|b<< 56; } }} } q +=A;
+XPutImage (j, u+0, DefaultGC (j,J[X(q
+)]=0),Y, 0,0,0,0, W,p); }} else{ L=
+--H/768; J[H] =R% 16*(R%4< abs((H>>
+6&63)-32 )+abs((H
+>>12&63) -32)-3);
+i=H &15; F=H %768
+>>4; if( L<16){if
+(L-1|!(R %3))b=R%
+96^255; l=i*i*3+i*81/4&3; a=L>3?L-8?L-5?9858122:12365733-488848*((i+F/4*4)%8&&F%
+4):R%2*5298487:3352537*L*L-14202379*L+19205553; if(L==4)if(FF-19)b*=0.7; if(L==3){ if((i-1&15)<14&(F-1&15)<14&!(F&16)){ a=12359778; _=7
+-i; k=7-F%16; _^=_>>31; k^=k>>31; b=196-R%32+(k>_?k:_)%3*42;} else{ b*=1+R%2*(.5
+-(i&1)); } } D[H]=(a&16711935|(a&65280)<<24)*(b>>(F>>5))>>8&0xff00ff00ff; } } }}
diff --git a/thanks-for-help.md b/thanks-for-help.md
index fb3c76ed9..5941015ad 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -3792,6 +3792,16 @@ output.
# 2015
+## [2015/dogon](2015/dogon/prog.c) ([README.md](2015/dogon/README.md]))
+
+[Cody](#cody) improved the Makefile so that one can easily change the dimensions
+at compilation time via `make(1)`.
+
+Cody also added alt code that is based on the author's remarks, suggesting that
+one change the value of `q` to a different number, in order to see a bug that
+they avoided.
+
+
## [2015/duble](2015/duble/prog.c) ([README.md](2015/duble/README.md]))
[Cody](#cody) added the [try.sh](2015/duble/try.sh) script.
From 29903d763b534b9a620296df4c1487ff44bb61f7 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Fri, 8 Dec 2023 10:01:40 -0800
Subject: [PATCH 3/6] Add 2015/endoh2/try.sh + format/typo checks
---
2015/endoh2/README.md | 10 ++++------
2015/endoh2/try.sh | 36 ++++++++++++++++++++++++++++++++++++
thanks-for-help.md | 5 +++++
3 files changed, 45 insertions(+), 6 deletions(-)
create mode 100755 2015/endoh2/try.sh
diff --git a/2015/endoh2/README.md b/2015/endoh2/README.md
index 98687b7b0..52982c88b 100644
--- a/2015/endoh2/README.md
+++ b/2015/endoh2/README.md
@@ -15,9 +15,7 @@ make
### Try:
```sh
-cat prog.c
-
-./prog | diff - prog.c
+./try.sh
```
@@ -42,14 +40,14 @@ more prog.c
Where did those underscores come from? Well [RTFS](http://acronyms.thefreedictionary.com/RTFS)!\*\*
** Read the Freaking Source (polite form)
-** Read The Freakin' Screen (polite form)
+** Read The Freaking Screen (polite form)
-If you are still puzzled, look at prog.c with your favorite text editor.
+If you are still puzzled, look at [prog.c](prog.c) with your favorite text editor.
## Author's remarks:
-**Follow this instruction literally!**
+**Follow these instructions literally!**
```sh
cat prog.c
diff --git a/2015/endoh2/try.sh b/2015/endoh2/try.sh
new file mode 100755
index 000000000..243663356
--- /dev/null
+++ b/2015/endoh2/try.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# try.sh - demonstrate IOCCC winner 2015/endoh2
+#
+
+# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
+# this way allows us to have the user specify a different compiler in an easy
+# way.
+if [[ -z "$CC" ]]; then
+ CC="cc"
+fi
+
+make CC="$CC" all >/dev/null || exit 1
+
+# clear screen after compilation so that only the entry is shown
+clear
+
+echo "$ cat prog.c" 1>&2
+cat prog.c
+echo 1>&2
+
+echo "$ ./prog | diff -s - prog.c"
+./prog | diff -s - prog.c
+echo 1>&2
+
+echo "$ less -EXF prog.c" 1>&2
+read -r -n 1 -p "Press any key to continue: "
+less -EXF prog.c
+echo 1>&2
+
+echo "$ wc -c prog.c" 1>&2
+wc -c prog.c
+echo 1>&2
+echo "Can you figure out the inconsistencies?" 1>&2
+echo "If you can't or you're still confused try" 1>&2
+echo "opening prog.c in an editor like vim." 1>&2
diff --git a/thanks-for-help.md b/thanks-for-help.md
index 5941015ad..1133900d0 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -3807,6 +3807,11 @@ they avoided.
[Cody](#cody) added the [try.sh](2015/duble/try.sh) script.
+## [2015/endoh2](2015/endoh2/prog.c) ([README.md](2015/endoh2/README.md]))
+
+[Cody](#cody) added the [try.sh](2015/endoh2/try.sh) script.
+
+
## [2015/endoh3](2015/endoh3/prog.c) ([README.md](2015/endoh3/README.md]))
[Cody](#cody) fixed this to compile with Linux which was having a problem with duplicate
From d9b281039291862b0168e1255644edee6d8e13da Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Fri, 8 Dec 2023 10:20:44 -0800
Subject: [PATCH 4/6] Add 2015/endoh3/try.sh + format/typo checks
A new make rule (or alias for mullender and back_to) called 'future' was
added for the theme. The try.sh script uses make future ('back_to' just
doesn't look that good in my eyes even when I added it).
The try.sh tries to stay in character with the award theme a bit too
though that will only be noticeable if you pay attention. I found the
films very boring (though maybe years later I would find it more
enjoyable) so I'm sure that something more fun could have been
added if I knew them more but I do not. Well I tried anyway.
---
2015/endoh3/Makefile | 2 +-
2015/endoh3/README.md | 16 +++++++++-------
2015/endoh3/try.sh | 36 ++++++++++++++++++++++++++++++++++++
thanks-for-help.md | 6 ++++--
4 files changed, 50 insertions(+), 10 deletions(-)
create mode 100755 2015/endoh3/try.sh
diff --git a/2015/endoh3/Makefile b/2015/endoh3/Makefile
index 26609e3a6..bd1b8a519 100644
--- a/2015/endoh3/Makefile
+++ b/2015/endoh3/Makefile
@@ -135,7 +135,7 @@ all: data ${TARGET}
${PROG}: ${PROG}.c
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
-mullender back_to: ${PROG}.c mullender.c
+future mullender back_to: ${PROG}.c mullender.c
${CC} ${CFLAGS} $< -o ${PROG} ${LDFLAGS} ${BACK_TO}
diff --git a/2015/endoh3/README.md b/2015/endoh3/README.md
index a837ebb61..fad826025 100644
--- a/2015/endoh3/README.md
+++ b/2015/endoh3/README.md
@@ -17,14 +17,12 @@ make
To see the original [mullender](mullender.c) in action:
```sh
-cc -o prog prog.c mullender.c # or make mullender or make back_to
-./prog
-q
-^C # where ^C is ctrl-C, interrupt.
+./try.sh
```
-Observe what happens when you hit enter or another character! Send INTR to end
-the program.
+Observe what happens when you hit enter or another character! You might even try
+typing out, one character at a time, `1984/mullender`, and then see what it looks
+like at the end. Send INTR to end the program.
More generally use:
@@ -34,7 +32,7 @@ cc -o prog prog.c foo.c
^C # if necessary, where ^C is ctrl-C, interrrupt
```
-to run `prog` as whatever foo.c is in the joke PDP-11 emulator.
+to compile and run `prog` as whatever foo.c is in the joke PDP-11 emulator.
## Judges' remarks:
@@ -55,6 +53,7 @@ clue, see the end of the author's remarks.) If in doubt, use
## Author's remarks:
+
### Hint / Compatibility
* A little-endian system is required due to an external factor.
@@ -65,6 +64,7 @@ the same reason. But I believe it is reasonably portable.
the source code from all angles..
* Find `main()` function.
+
### Spoiler
This program is a joke PDP-11 emulator. ("ll-dpd" is embedded in the code.
@@ -80,6 +80,7 @@ clang -o prog prog.c mullender.c
You can enjoy the legendary winner of the first IOCCC, again.
+
### Internal
This program uses `__attribute__((constructor))`, which is a GCC extension, to
@@ -104,6 +105,7 @@ needed for [mullender.c](mullender.c) to work:
* 4: Auto-decrement deferred
* 6: Index (incomplete)
+
### Limitations
Non-trivial combination of instruction and addressing mode may cause undefined
diff --git a/2015/endoh3/try.sh b/2015/endoh3/try.sh
new file mode 100755
index 000000000..43dceebe0
--- /dev/null
+++ b/2015/endoh3/try.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# try.sh - demonstrate IOCCC winner 2015/endoh3
+#
+
+# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
+# this way allows us to have the user specify a different compiler in an easy
+# way.
+if [[ -z "$CC" ]]; then
+ CC="cc"
+fi
+
+# clear screen so that only the entry is shown
+clear
+
+read -r -n 1 -p "Press any key to run: less -EXF prog.c (space = next page, q = quit): "
+echo 1>&2
+less -EXF prog.c
+echo 1>&2
+
+echo "$ make future" 1>&2
+make future || exit 1
+
+echo 1>&2
+echo 1>&2
+
+echo "Will go back to the future and run 1984/mullender through prog. To quit" 1>&2
+echo "the program hit ctrl-c/intr." 1>&2
+echo 1>&2
+echo "You might want to try hitting enter or another key when the output reaches" 1>&2
+echo "the end of the line." 1>&2
+echo 1>&2
+read -r -n 1 -p "Press any key to continue: "
+echo 1>&2
+echo "$ ./prog" 1>&2
+./prog
diff --git a/thanks-for-help.md b/thanks-for-help.md
index 1133900d0..4b84dca2a 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -3818,9 +3818,11 @@ they avoided.
symbols of `main()`. The fix is through the compiler option `-fcommon` which
will let it compile like it does with macOS.
-Cody also made it easier to enjoy the theme of [Back to the
+Cody also added the [try.sh](2015/endoh3/try.sh) script which makes use of the
+make rule he added (to enjoy the theme of the entry, [Back to the
Future](https://en.wikipedia.org/wiki/Back_to_the_Future) using this entry by
-simply typing `make back_to` or `make mullender`.
+simply typing `make back_to` or `make mullender`) and then runs the famous
+[1984/mullender.c](/1984/mullender/mullender.c).
## [2015/hou](2015/hou/prog.c) ([README.md](2015/hou/README.md))
From 549633020ff8fa2babacc435efde1a8db4a2a89e Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Fri, 8 Dec 2023 10:38:42 -0800
Subject: [PATCH 5/6] Add 2015/endoh4/try.sh + format/typo checks
---
2015/endoh4/README.md | 26 ++++++++++---------
2015/endoh4/try.sh | 58 +++++++++++++++++++++++++++++++++++++++++++
thanks-for-help.md | 5 ++++
3 files changed, 77 insertions(+), 12 deletions(-)
create mode 100755 2015/endoh4/try.sh
diff --git a/2015/endoh4/README.md b/2015/endoh4/README.md
index f40d85466..00941d19a 100644
--- a/2015/endoh4/README.md
+++ b/2015/endoh4/README.md
@@ -5,6 +5,10 @@ make
```
+There is an alt version which is the originally submitted entry. See [Alternate
+code](#alternate-code) below for details.
+
+
## To use:
```sh
@@ -15,29 +19,27 @@ make
### Try:
```sh
-./prog @ @ @ @ @ @
-
-./prog @ @ @ @ @ @ @ @ @ @ @ @
-
-./prog $(perl -e 'print "@ " x (2*3*5*7);')
-
-./prog $(< Makefile)
+./try.sh
```
## Alternate code:
-An alternate version of this entry, `prog.alt.c`, is provided.\
+An alternate version of this entry, [prog.alt.c](prog.alt.c), is provided.
This alternate code does not contain improvements suggested by [Gil
-Dogon](/winners.html#Gil_Dogon); it is
-the author's original entry.
+Dogon](/winners.html#Gil_Dogon); it is the author's original entry.
+
+
+### Alternate build:
-To compile this alternate version:
```sh
make alt
```
+
+### Alternate use:
+
Use `prog.alt` as you would `prog` above.
@@ -67,7 +69,7 @@ gcc -o prog prog.c
Inspired by [Animated Factorization
Diagrams](http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/).
-`prog.alt.c` is the original version that I submitted. [Gil
+[prog.alt.c](prog.alt.c) is the original version that I submitted. [Gil
Dogon](/winners.html#Gil_Dogon) kindly improved it during the review. Thank
you!
diff --git a/2015/endoh4/try.sh b/2015/endoh4/try.sh
new file mode 100755
index 000000000..c06358f07
--- /dev/null
+++ b/2015/endoh4/try.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+#
+# try.sh - demonstrate IOCCC winner 2015/endoh4
+#
+
+# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
+# this way allows us to have the user specify a different compiler in an easy
+# way.
+if [[ -z "$CC" ]]; then
+ CC="cc"
+fi
+
+make CC="$CC" all >/dev/null || exit 1
+
+# clear screen after compilation so that only the entry is shown
+clear
+
+PERL="$(type -P perl)"
+
+echo "$ ./prog @" 1>&2
+./prog @
+
+echo "$ ./prog @ @" 1>&2
+./prog @ @
+
+echo "$ ./prog @ @ @" 1>&2
+./prog @ @ @
+
+echo "$ ./prog @ @ @ @ @" 1>&2
+./prog @ @ @ @ @
+
+echo "$ ./prog @ @ @ @ @ @" 1>&2
+./prog @ @ @ @ @ @
+
+echo "$ ./prog @ @ @ @ @ @ @" 1>&2
+./prog @ @ @ @ @ @ @
+
+echo "$ ./prog @ @ @ @ @ @ @ @" 1>&2
+./prog @ @ @ @ @ @ @ @
+
+echo "$ ./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @" 1>&2
+./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
+
+echo "$ ./prog @ @ @ @ @ @ @ @ @ @ @ @" 1>&2
+./prog @ @ @ @ @ @ @ @ @ @ @ @
+
+echo "$ ./prog \"\$(< Makefile)\"" 1>&2
+read -r -n 1 -p "Press any key to continue: "
+echo 1>&2
+./prog "$(< Makefile)"
+
+if [[ -n "$PERL" ]]; then
+ echo "$ ./prog \$($PERL -e 'print "@ " x (2*3*5*7);')" 1>&2
+ read -r -n 1 -p "Press any key to continue: "
+ echo 1>&2
+ ./prog "$($PERL -e 'print "@ " x (2*3*5*7);')"
+fi
+
diff --git a/thanks-for-help.md b/thanks-for-help.md
index 4b84dca2a..021f8176c 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -3825,6 +3825,11 @@ simply typing `make back_to` or `make mullender`) and then runs the famous
[1984/mullender.c](/1984/mullender/mullender.c).
+## [2015/endoh4](2015/endoh4/prog.c) ([README.md](2015/endoh4/README.md]))
+
+[Cody](#cody) added the [try.sh](2015/endoh4/try.sh) script.
+
+
## [2015/hou](2015/hou/prog.c) ([README.md](2015/hou/README.md))
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this
From c0b8d32b5970b3c939d957e1a57642e29097e7c8 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Fri, 8 Dec 2023 10:53:15 -0800
Subject: [PATCH 6/6] Add 2015/hou/try.sh + format/typo checks
The file large is from dd(1) of /dev/zero to be large enough to cause
the program to run out of memory (but not too large for the repo, see
'wc -c' on it) as suggested by the judges' remarks.
---
2015/hou/README.md | 28 ++++++++++++++++++++++------
2015/hou/large | Bin 0 -> 524288 bytes
2015/hou/try.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++
thanks-for-help.md | 3 +++
4 files changed, 70 insertions(+), 6 deletions(-)
create mode 100644 2015/hou/large
create mode 100755 2015/hou/try.sh
diff --git a/2015/hou/README.md b/2015/hou/README.md
index 7b6146b2f..c712151af 100644
--- a/2015/hou/README.md
+++ b/2015/hou/README.md
@@ -5,10 +5,24 @@ make
```
+### Bugs and (Mis)features:
+
+The current status of this entry is:
+
+```
+STATUS: INABIAF - please **DO NOT** fix
+```
+
+For more detailed information see [2015 hou in bugs.md](/bugs.md#2015-hou).
+
+
+
+
## To use:
```sh
-echo IOCCC | ./prog
+echo something | ./prog
+./prog < file
```
@@ -37,7 +51,7 @@ Some things that make you go, "huh?"
How are those values magically returned?
-What happens with a large file? Something over 256K
+What happens with a large file? Something over 256K.
```sh
./prog < large_file
@@ -50,7 +64,7 @@ Where does that message come from?
This looks like a normal C program.
-Almost everything is a double.
+Almost everything is a `double`.
There are tell-tale signs like `pow(2,(?/12))` and `exp(-?*?)` (names redacted).
You can also find a bunch of cosines and polynomial evaluations.
@@ -59,6 +73,7 @@ It looks like a ????? ???????????, right?
Run and find out.
+
### Why obfuscated
Some poor scripting folks only have access to doubles (Jav?script, L?a, BA?IC,
@@ -72,10 +87,11 @@ isn't a single integer. Even `getchar()` and `EOF` are immediately converted.
Since `bool` counts as an integer type too, there is no boolean either. No
comparison, no `if`, no `?:`, no `||` `&&`. Everything is done in a single loop
-that terminates on printf. Straight up arithmetic.
+that terminates on `printf(3)`. Straight up arithmetic.
+
+`floor(3)` and `ceil(3)` are technically double-to-double functions, but they feel
+like cheating. Yes `cos(3)`, no `floor(3)`.
-`floor` and `ceil` are technically double-to-double functions, but they feel
-like cheating. Yes `cos`, no `floor`.
### Limitations
diff --git a/2015/hou/large b/2015/hou/large
new file mode 100644
index 0000000000000000000000000000000000000000..8dd9b32398037d9b41b3651c8ca362d48243bb3d
GIT binary patch
literal 524288
zcmeIufdBvi0K=g9Q{UhOg-~I@fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM
z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*
z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd
z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA
zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj
zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r
z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@
z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK
zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5
zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM
z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*
z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd
z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA
zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj
zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r
z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@
z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK
zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5
zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM
z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*
z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd
z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA
zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj
zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r
z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@
z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK
zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5
zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM
z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*
z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd
z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA
zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj
zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r
z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@
z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK
zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5
zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM
z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*
z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd
z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA
zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj
zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r
z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@
z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK
VfB^#r3>YwAz<>b*1`HVZ0|Nkf00961
literal 0
HcmV?d00001
diff --git a/2015/hou/try.sh b/2015/hou/try.sh
new file mode 100755
index 000000000..6fadf04b5
--- /dev/null
+++ b/2015/hou/try.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+#
+# try.sh - demonstrate IOCCC winner 2015/hou
+#
+
+# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
+# this way allows us to have the user specify a different compiler in an easy
+# way.
+if [[ -z "$CC" ]]; then
+ CC="cc"
+fi
+
+make CC="$CC" all >/dev/null || exit 1
+
+# clear screen after compilation so that only the entry is shown
+clear
+
+
+echo "$ echo IOCCC | ./prog" 1>&2
+echo IOCCC | ./prog
+echo 1>&2
+
+echo "$ ./prog < rfc1321.txt" 1>&2
+./prog < rfc1321.txt
+echo 1>&2
+
+echo "$ echo \"\" | ./prog" 1>&2
+echo "" | ./prog
+echo 1>&2
+
+echo "For the next two, observe the magical values: "
+read -r -n 1 -p "Press any key to continue: "
+echo 1>&2
+echo "$ ./prog < prog.c | cut -c-5" 1>&2
+./prog < prog.c | cut -c-5
+
+echo "$ ./prog < Makefile | cut -c-4" 1>&2
+./prog < Makefile | cut -c-4
+echo 1>&2
+
+echo "$ wc -c large" 1>&2
+wc -c large
+
+echo "$ ./prog < large" 1>&2
+./prog < large
diff --git a/thanks-for-help.md b/thanks-for-help.md
index 021f8176c..335ce31cd 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -3835,6 +3835,9 @@ simply typing `make back_to` or `make mullender`) and then runs the famous
[Cody](#cody) added explicit linking of libm (`-lm`) for systems that do not do this
(Linux doesn't seem to but macOS does).
+Cody also added the [try.sh](2015/hou/try.sh) script and the large file `large`
+which the `try.sh` script uses.
+
Cody also added the RFC 1321 text file, [rfc1321.txt](2015/hou/rfc1321.txt) to
the directory, to make it so one need not download it, and which the README.md
file now links to.