[net.bizarre] Obscene letter generating program

fred@gymble.UUCP (Fred Blonder) (08/24/85)

Here's another bizarre program. I can't claim credit for it, other than
writing the manual entry. The shar archive is rot-13'd on account of the
offensive nature of the program. Enjoy!

P.S.: To un-rot13 something, run it through the command:

		tr '[a-zA-Z]' '[n-za-mN-ZA-M]'


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
X.TH LETTER 6
X.SH NAME
Xletter \- pornographic letter generating program
X.SH SYNOPSIS
X.I /usr/games/letter
X.SH DESCRIPTION
X.I Letter
Xis a mindless program which generates dirty letters. (purportedly to the
Xeditor of Penthouse magazine) It works by meandering through a story
Xoutline, filling in slots with words from compiled-in lists.
XThe result is written to the standard output.
X.SH CAVEAT
XThis program should not be run by anyone who is easily offended.
X.SH AUTHOR
XYou wouldn't admit to having written this program, so I don't see why you
Xexpect someone else to.
X.SH FILES
X.SH "SEE ALSO"
Xrogue(6) \- for some good
X.I clean
Xfun.
X.SH DIAGNOSTICS
Xnone
X.SH BUGS
XOutput should be run through
X.I fmt.
X.sp
XThe nature of the story doesn't vary much, and the choice of words is
Xrather limited, so it gets boring real quickly.
X.sp
XMakes grammatical errors, which are sometimes amusing.
X.sp
XHas no knowledge of human anatomy, so it glibly describes acts which are
Xphysically impossible (or at least very, very improbable).
X.sp
XOutput should be rot13'd.
X.sp
XYou should be ashamed of yourself for running this program. ;-)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
: Eha guvf furyy fpevcg jvgu "fu" abg "pfu"
CNGU=:/ova:/hfe/ova:/hfe/hpo
rkcbeg CNGU
nyy=SNYFR
vs [ $1k = -nk ]; gura
	nyy=GEHR
sv
/ova/rpub 'Rkgenpgvat znxrsvyr'
frq 'f/^K//' <<'//tb.flfva qq *' >znxrsvyr
yrggre: erg.b jbeqf.u
	pp -f -B erg.b -b yrggre
	/ova/ez erg.b
	puzbq 700 yrggre

//tb.flfva qq *
znqr=GEHR
vs [ $znqr = GEHR ]; gura
	/ova/puzbq 644 znxrsvyr
	/ova/rpub -a '	'; /ova/yf -yq znxrsvyr
sv
/ova/rpub 'Rkgenpgvat jbeqf.u'
frq 'f/^K//' <<'//tb.flfva qq *' >jbeqf.u
#vapyhqr <fgqvb.u>

#qrsvar bar(glcr) glcr[eaq(a/**/glcr)]

fgngvp pune *rkp[] = {
	"Lbh'er znxvat zr pbzr",
	"Bbbbu onol",
	"Ubg pbbxvrf",
	"Yrg zr jenc zl gbathr nebhaq vg",
	"Oebja tboorgf hc V guebj",
	"Trfryyfpunsg she Fpujrevbarasbefpuhat",
	"Fjrrg Wrfhf",
	"Tnt zr jvgu n fcbba",
	"Abg gung",
	"V arire qernzrq vg jbhyq or yvxr guvf",
	"Snfgre",
	"V'z PPPHHHZZZVVVAAATTT!!",
	"Vs V qb, lbh jba'g erfcrpg zr",
	"Ng ynfg",
	"Ynaq b' Tbfura",
	"Tbyyl",
	"Bu, zl",
	"Trr juvm",
	"Jbj",
	"Jubbcrr",
	"Lhz",
	"Nnnnnuuuu",
	"Nnnnetu",
	"Vf gung nyy???",
	"Ubg qbt",
	"Arr",
	"Gnxr zr",
	"Uneqre",
	"Zber",
	"Ubyl Fuvg",
	"BuZlTbq",
	"@#$%&*(%",
	"Jung n uhtr bar",
	"Gung'f gur ovttrfg bar V rire fnj",
	"Bu, jung n ornhgl",
	"Zl Tbq, lbh'er xvyyvat zr",
	"Bu, obl",
	"Vf vg va lrg?",
	};

#qrsvar arkp (fvmrbs rkp / fvmrbs (pune *))

fgngvp pune *nqi[] = {
	"cynlshyyl",
	"raguhfvnfgvpnyyl",
	"qryvpvbhfyl",
	"qryvevbhfyl",
	"znqyl",
	"va na bqq jnl",
	"jvgu rpfgnpl",
	"fbyrzayl",
	"cnffvbangryl",
	"fvyragyl",
	"onpxjneqf",
	"pnershyyl",
	"ybhqyl",
	"frkvyl",
	"fyrrcvyl",
	"dhvpxyl",
	"fybjyl",
	"ibyhcghbhfyl",
	"fybccvyl",
	"ubeevoyl",
	"jvgu gerzraqbhf cnffvba",
	"pnfhnyyl",
	"fgrnqvyl",
	"areibhfyl",
	"senagvpnyyl",
	"ng n seramvrq cnpr",
	"yhkhevbhfyl",
	"jvgu ure ornhgvshyyl jrg yvcf",
	"jvgu gerzoyvat unaqf",
	"svanyyl",
	"jvgu fhecevfvat rnfr",
	"ynathbebhfyl",
	"frys-vaqhytragyl",
	"eulguzvpnyyl",
	"tragyl",
	"jrgyl"
	};

#qrsvar anqi (fvmrbs nqi / fvmrbs (pune *))

fgngvp pune *nqw[] = {
	"fybj, abvfl, naq unezyrff",
	"phgr",
	"srngurel",
	"sheel",
	"shmml",
	"ohful",
	"jnez",
	"qrnq",
	"yvsryrff",
	"qevrq hc",
	"oebxra",
	"ryrpgevp",
	"Yvyyvchgvna",
	"oner",
	"fynirevat",
	"whvpl",
	"urnivat",
	"fhpphyrag",
	"yhfg-penmrq",
	"fngnavp",
	"fchegvat",
	"ybat",
	"fubeg",
	"fyvccrel",
	"fyvpx",
	"fybccl",
	"ovt",
	"fznyy",
	"jrg",
	"frkl",
	"fzbbgu",
	"uhtr",
	"dhvirevat",
	"gueboovat",
	"chyfngvat",
	"fgbhg",
	"znffvir",
	"uhzzvat",
	"yvggyr",
	"fvatyr",
	"obhapvat",
	"lbhgushy",
	"svez",
	"cebghorenag",
	"abj-anxrq",
	"tybohyne",
	"ubg",
	"syrful",
	"ornhgvshy",
	"gbeevq",
	"rerpg",
	"ubirevat"
	};

#qrsvar anqw (fvmrbs nqw / fvmrbs (pune *))

fgngvp pune *snqw[] = {
	"tybohyne",
	"chpxrerq",
	"jvyyvat",
	"guernqrq",
	"phgr",
	"srzvavar",
	"cerggl",
	"oner",
	"cvax",
	"whvpl",
	"fhpphyrag",
	"fgenvavat",
	"pevaxyrq",
	"ovt",
	"fbsg",
	"dhvirevat",
	"jrg",
	"fzbbgu",
	"gvtug",
	"anxrq",
	"ernql",
	"chyfngvat",
	"fyhggvfu",
	"nebzngvp",
	"creshzrq",
	"funirq",
	"qevccvat",
	"fbccvat",
	"fbnxrq",
	"frrguvat",
	"zbygra",
	"zbvfg",
	"ubg",
	"jnvgvat",
	"ebhaq",
	"vaivgvat",
	"nzcyr",
	"veerfvfgvoyr",
	"funcryl",
	"yhfpvbhf",
	"qryvpvbhf",
	"erq",
	"cvkvrvfu",
	"ynetr",
	"zntavsvprag",
	"pernzl juvgr",
	"cnegrq",
	"arngyl gevzzrq",
	"tyvfgravat",
	"rkcbfrq",
	"tveyvfu"
	};

#qrsvar asnqw (fvmrbs snqw / fvmrbs (pune *))

fgngvp pune *znqw[] = {
	"rvtug-vapu",
	"jbaqreshy",
	"fgrryl",
	"guernqrq",
	"znfphyvar",
	"fjbyyra",
	"oneorq",
	"evtvq",
	"vafngvnoyr",
	"qevooyvat",
	"ivyr",
	"ohefgvat",
	"tyvfgravat",
	"cebqvtvbhf",
	"checyr",
	"enzcntvat",
	"jnegl",
	"sbnzvat",
	"unvel",
	"tbetrq",
	"cebfgurgvp",
	"fchegvat",
	"ybat",
	"ovt",
	"frkl",
	"znayl",
	"znpub",
	"zhfphyne",
	"ebpx-uneq",
	"uhtr",
	"chyfngvat",
	"qevccvat",
	"gueboovat",
	"orag",
	"nebhfrq",
	"rabezbhf",
	"rerpg",
	"fgvss",
	"zhfphyne",
	"ybiryl",
	"gerzraqbhf",
	"fgenvavat",
	"jnez",
	"tvnag",
	"ynathvq",
	"rkgenbeqvanel",
	"ghetvq"
	};

#qrsvar aznqw (fvmrbs znqw / fvmrbs (pune *))

fgngvp pune *gnyx[] = {
	"dhvcc",
	"pnpxy",
	"pbasrff",
	"uvff",
	"oryybj",
	"lryc",
	"pebnx",
	"cnag",
	"tehag",
	"ynhtu",
	"jneoy",
	"fvtu",
	"rwnphyng",
	"juvfcre",
	"jurrm",
	"fdhrny",
	"juvzcre",
	"fgnzzre",
	"tnfc",
	"lryc",
	"ortt",
	"cyrnq",
	"cebzvf",
	"lryy",
	"fpernz",
	"fuevrx",
	"oerngu",
	"lvcc",
	"zbna",
	"tvtty",
	"zhezhe",
	"chee",
	"onooy"
	};

#qrsvar agnyx (fvmrbs gnyx / fvmrbs (pune *))

fgngvp pune *uvf[] = {
	"shpx-fgvpx",
	"fprcgre",
	"fpuybat",
	"znwrfgl",
	"cyhatre",
	"cvfgba",
	"gbby",
	"znaubbq",
	"xvqarl cebqqre",
	"vagehqre",
	"qvpx",
	"ebq",
	"pbpx",
	"cevpx",
	"zrng",
	"cravf",
	"wblfgvpx",
	"fgvpxfuvsg",
	"pbyhza",
	"funsg",
	"ybir betna",
	"crpxre",
	"tynaf",
	"crg",
	"zrzore"
	};

#qrsvar auvf (fvmrbs uvf / fvmrbs (pune *))

fgngvp pune *uref[] = {
	"bevsvpr",
	"zbhgu",
	"ybir ubyr",
	"abfgevy",
	"oryyl ohggba",
	"obk",
	"pnirea",
	"dhvz",
	"phag",
	"fyvg",
	"orneqrq pynz",
	"wnz wne",
	"ghaary",
	"intvan",
	"chffl",
	"fangpu",
	"gjng",
	"ubyr",
	"phaal",
	"nffubyr"
	};

#qrsvar auref (fvmrbs uref / fvmrbs (pune *))

fgngvp pune *gvgf[] = {
	"tnmbatnf",
	"tebbqvrf",
	"tbbqvrf",
	"ubbgref",
	"xabof",
	"punezf",
	"zbhagnvaf",
	"gjva crnxf",
	"ahof",
	"ohqf",
	"tyborf",
	"ohaf",
	"enqbzrf",
	"xabpxref",
	"ybir pynccref",
	"zbhaqf",
	"jnec qevir ratvarf",
	"grngf",
	"gvggvrf",
	"obbof",
	"cebghorenaprf",
	"oernfgf",
	"zrybaf",
	"zbhgu",
	"gvgf",
	"znzznevrf",
	"rne"
	};

#qrsvar agvgf (fvmrbs gvgf / fvmrbs (pune *))

fgngvp pune *cra[] = {
	"fubi",
	"fghss",
	"cbx",
	"chzc",
	"veevtng",
	"fdhvfu",
	"cyhat",
	"fdhrrm",
	"penzz",
	"jevtty",
	"qevyy",
	"wnzz",
	"enzz",
	"vawrpg",
	"crargeng",
	"fyvcc",
	"sbep",
	"rnf",
	"shpx",
	"cbhaq",
	"fynzz",
	"gjvfg"
	};

#qrsvar acra (fvmrbs cra / fvmrbs (pune *))

fgngvp pune *abha[] = {
	"crnahg ohggre",
	"ancnyz",
	"ohggrefpbgpu chqqvat",
	"grezvany",
	"tynffrf",
	"qlanzvgr",
	"inphhz pyrnare",
	"rttorngre",
	"sebt",
	"sybjre tneqra",
	"Fcnz",
	"orq",
	"pnaqyr",
	"ehoore furrgf",
	"juvccrq pernz",
	"fbnc",
	"furrgf",
	"fngva furrgf",
	"jrg furrgf",
	"gnoyrgbc",
	"punve",
	"Jrffba bvy",
	"xarr",
	"Tvey Fpbhg",
	"jngreorq",
	"pbzchgre",
	"Oebjavr Fpbhg",
	"ebpxvat orq",
	"Oyhroveq",
	"ivoengbe",
	"ivoengvat orq",
	"sver"
	};

#qrsvar aabha (fvmrbs abha / fvmrbs (pune *))

fgngvp pune *ernp[] = {
	"tnfcrq",
	"urnirq",
	"gerzoyrq",
	"rkcybqrq",
	"fubbx",
	"dhvirerq",
	"jvguqerj",
	"fuenax njnl",
	"pubxrq",
	"tnttrq",
	"oyhfurq"
	};

#qrsvar aernp (fvmrbs ernp / fvmrbs (pune *))

fgngvp pune *fgbc[] = {
	"cynlrq jvgu",
	"fuvg ba",
	"fdhrnyrq ng",
	"fgehttyrq jvgu",
	"sbhtug jvgu",
	"pevrq ba",
	"xvpxrq",
	"qvfgenpgrq",
	"guenfurq",
	"phffrq ng",
	"npdhvrfprq gb",
	"fheeraqrerq gb",
	"cyrnqrq jvgu",
	"orttrq",
	"cbhaqrq"
	};

#qrsvar afgbc (fvmrbs fgbc / fvmrbs (pune *))

fgngvp pune *obl[] = {
	"Zna bs Yn Znapun",
	"pbecfr",
	"uhapuonpx",
	"sevne",
	"nepuqhxr",
	"ebobg",
	"zvqtrg",
	"uverq unaq",
	"terng Qnar",
	"yrpurebhf yvpxfcvggyr",
	"snttbg ohgyre",
	"cnencyrtvp cbgurnq",
	"qvegl byq zna",
	"rtt-fhpxvat puvpxra syvpxre",
	"enovq qbaxrl",
	"ryrpgevp rry",
	"thl",
	"zna",
	"onol frny",
	"uvtu fpubby fghqrag",
	"qbpgbe",
	"tebja zna",
	"sbbgonyy cynlre",
	"obl"
	};

#qrsvar aobl (fvmrbs obl / fvmrbs (pune *))

fgngvp pune *tvey[] = {
	"gevcyr-oernfgrq juber bs Rebgvpba Fvk",
	"jnagba uhffl",
	"xvgpura fyhg",
	"hasbeghangr jbzna",
	"srznyr vzcrefbangbe",
	"45-lrne-byq ivetva",
	"ohyy-qlxr yrngure sernx",
	"qrsebpxrq aha",
	"zvyvgnag srzvavfg",
	"Pngubyvp uvtu fpubby tvey",
	"onolfvggre",
	"nggenpgvir terra nyvra",
	"Bylzcvp tbyq zrqny jvaare",
	"pnzchf juber",
	"ratyvfu grnpure",
	"tenaqzbgure bs svsgl",
	"avar-lrne-byq alzcubznavnp",
	"tvey",
	"jrapu",
	"qhpurff",
	"jbzna",
	"onol"
	};

#qrsvar atvey (fvmrbs tvey / fvmrbs (pune *))

fgngvp pune *fgvz[] = {
	"avooy",
	"fhpx",
	"tenoo",
	"cvapu",
	"ohmm",
	"nggnpx",
	"xvff",
	"qrsvy",
	"ahmmy",
	"qvqqy",
	"sbaqy",
	"zbhgu",
	"gjrnx",
	"qribhe",
	"ehoo",
	"fzrne",
	"gbath",
	"fgebx",
	"syvpx",
	"gvpxy"
	};

#qrsvar afgvz (fvmrbs fgvz / fvmrbs (pune *))

fgngvp pune *ery[] = {
	"fvfgre",
	"oebgure",
	"zbgure",
	"sngure",
	"pbhfva",
	"nhag",
	"hapyr",
	"avrpr",
	"arcurj",
	"tenaqsngure",
	"tenaqzbgure",
	"tenaqzn",
	"tenaqcn",
	"qnhtugre",
	"fba",
	"sevraq",
	"nepu-rarzl",
	"arkg qbbe arvtuobe",
	"crg cnenxrrg",
	"qbt"
	};

#qrsvar aery (fvmrbs ery / fvmrbs (pune *))

fgngvp pune *inva[] = {
	"vqvbgvpnyyl",
	"vebavpnyyl",
	"sbe ab tbbq ernfba",
	"gb ab ninvy",
	"hfryrffyl",
	"cbvagyrffyl",
	"va inva",
	"sbe ab ernfba"
	};

#qrsvar ainva (fvmrbs inva / fvmrbs (pune *))

fgngvp pune *fbzr[] = {
	"fbzr",
	"n yvggyr",
	"n ovg bs"
	};

#qrsvar afbzr (fvmrbs fbzr / fvmrbs (pune *))

fgngvp pune *gbathr[] = {
	"gbathr",
	"lnumvpx",
	"yvpx fgvpx",
	"rlrf",
	"abfr",
	"svatre",
	"zbhgu",
	"yvcf",
	"sbbg"
	};

#qrsvar agbathr (fvmrbs gbathr / fvmrbs (pune *))

fgngvp pune *pyb[] = {
	"fuveg",
	"oybhfr",
	"cnagf",
	"fxveg",
	"fbpx",
	"haqrejrne",
	"haqrebbf",
	"oen",
	"cnagvrf",
	"tnegre oryg",
	"qerff",
	"ovxvav",
	"fubr",
	"fubegf",
	"gvtugf"
	};

#qrsvar apyb (fvmrbs pyb / fvmrbs (pune *))

fgngvp pune *cneg[] = {
	"nez",
	"yrt",
	"unaq",
	"sbbg",
	"snpr",
	"rne",
	"abfr",
	"rlr",
	"zbhgu",
	"arpx",
	"gbefb",
	"gubenk",
	"purfg",
	"noqbzra",
	"guvtu",
	"fuva",
	"gbr",
	"svatre",
	"xarr",
	"uvc",
	"jevfg",
	"ryobj",
	"sbernez",
	"fpnyc",
	"unve",
	"rneybor",
	"guebng",
	"fgbznpu",
	"ghzzl",
	"oryyl",
	"guhzo",
	"urry",
	"vafgrc",
	"haqrenez",
	"aniry",
	"pebgpu",
	"cnyz"
	};

#qrsvar acneg (fvmrbs cneg / fvmrbs (pune *))

fgngvp pune *anzrf[] = {
	"Ybvf",
	"Ybela",
	"Yvaqn",
	"Xngul",
	"Orpxl",
	"Xngr",
	"Oneonen",
	"Fhr",
	"Yvfn",
	"Tybevn",
	"Ynhen",
	"Whql",
	"Qbaan",
	"Orgu",
	"Qneyn",
	"Wnarg",
	"Zvpuryyr",
	"Navgn",
	"Qroovr",
	"Enpury",
	"Rvyrra",
	"Pvaql",
	"Ylaar",
	"Whar",
	"Whyvn",
	"Wrnaavr"
	};

#qrsvar aanzrf (fvmrbs anzrf / fvmrbs (pune *))
//tb.flfva qq *
znqr=GEHR
vs [ $znqr = GEHR ]; gura
	/ova/puzbq 644 jbeqf.u
	/ova/rpub -a '	'; /ova/yf -yq jbeqf.u
sv
/ova/rpub 'Rkgenpgvat erg.p'
frq 'f/^K//' <<'//tb.flfva qq *' >erg.p
#vapyhqr "jbeqf.u"

znva()
{

	ybat gvzr();
	vag eaq(), a, juvpu, ubjznal;
	pune c(), *anzr;

	fenaq(gvzr(0));

	anzr = bar(anzrf);
	juvpu=eaq(2);
	vs (juvpu == 0)
		cevags("Qrne Cragubhfr:\a\a");
	vs (juvpu == 1)
		cevags("Qrne Fvef:\a\a");

	juvpu=eaq(6);
	vs (juvpu == 0)
	{
		cevags("\gYrg zr gryy lbh whfg ubj %f\a",bar(nqw));
		cevags("yvsr pna or!\a");
	};
	vs (juvpu == 1)
	{
		cevags("\gV'ir ernq n ybg bs sbehz yrggref, naq\a");
		cevags("abg oryvrirq n jbeq bs gurz, hagvy V unq\a");
		cevags("gur zbfg %f rkcrevrapr bs zl yvsr%p\a",bar(nqw),c());
	};
	vs (juvpu == 2)
	{
		cevags("\gJung n %f qnl%p\a",bar(nqw),c());
	};
	vs (juvpu == 3)
	{
		cevags("V xabj lbh'er abg tbvat gb oryvrir guvf,\a");
		cevags("ohg guvf ernyyl unccrarq%p\a",c());
	};
	vs (juvpu == 4)
	{
		cevags("V'z n %f, %f thl,\a",bar(nqw),bar(znqw));
		cevags("naq V'z tbvat jvgu gur zbfg %f tvey lbh unir rire frra%p\a",bar(snqw),c());
	}
	vs (juvpu == 5)
	{
		cevags("%f naq V unir orra zrnavat gb jevgr sbe n ybat gvzr.\a",anzr);
	}

	juvpu=eaq(4);
	vs (juvpu == 0)
	{
		cevags("Bar qnl, V jnf bhgfvqr,\a");
		cevags("fcevat pyrnavat zl %f %f%p\a",bar(nqw),bar(abha),c());
	};
	vs (juvpu == 1)
	{
		cevags("Whfg lrfgreqnl, V jnf bhg va zl\a");
		cevags("onpx lneq, %f %fvat zl %f %f%p\a",bar(nqi),bar(cra),bar(snqw),bar(abha),c());
	};
	vs (juvpu == 2)
	{
		cevags("Nf V erzrzore, V jnf fb jnfgrq, V jnf gelvat\a");
		cevags("gb frr vs lbh pbhyq trg bss ba %f %fvat%p\a",bar(abha),bar(fgvz),c());
	};
	vs (juvpu == 3)
	{cevags("Bar Fngheqnl avtug, nsgre V unq whfg erghearq sebz n tehryvat tnzr bs fdhnfu,\a");
	cevags("V jnf ernql gb whzc vagb gur fubjre jura %f,\a",anzr);
	cevags("bhe %f fghpx-hc arvtuobe,\a",bar(nqw));
	cevags("pnzr va jnagvag gb gnyx gb zr nobhg bhe culfvpf ubzrjbex.\a");
	}

	juvpu=eaq(3);
	vs (juvpu == 0)
	{
		cevags("Gura, n pne fgbccrq va sebag bs zl ubhfr,\a");
		cevags("naq guvf %f %f whzcrq bhg,\a",bar(snqw),bar(tvey));
		cevags("jnyxrq evtug hc gb zr naq %frq zr\a",bar(fgvz));
		cevags("evtug ba gur %f%p\a",bar(gbathr),c());
	};
	vs (juvpu == 1)
	{
		cevags("Gura, guvf %f\a",bar(snqw));
		cevags("%f jnyxrq hc, naq nfxrq zr zl anzr!\a",bar(tvey));
	};
	vs (juvpu == 2)
	{
		cevags("V tynaprq hc, naq gurer fgbbq\a");
		cevags("n %f ornhgvshy %f %f\a",bar(nqi),bar(snqw),bar(tvey));
		cevags("jrnevat n %f %f%p\a",bar(nqw),bar(pyb),c());
	};

	juvpu=eaq(2);
	vs (juvpu == 0)
	{
		cevags("Guvf frrzrq n ovg bqq, ohg V, orvat n\a");
		cevags("cerggl %f %f, gubhtug vg jnf whfg %f\a",bar(znqw),bar(obl),bar(nqw));
		cevags("rabhtu gb or %f.\a",bar(nqw));
	};
	vs (juvpu == 1)
	{
		cevags("V jnf n ovg fhecevfrq, bs pbhefr, ohg V\a");
		cevags("qvqa'g zvaq n ovg.\a");
	};

	juvpu=eaq(4);
	vs (juvpu == 0)
	{
		cevags("Nsgre gur hfhny %fvat nobhg gur\a",bar(gnyx));
		cevags("jrngure, naq gur %f ba gryrivfvba, V\a",bar(abha));
		cevags("nfxrq ure va gb frr zl ubhfr.\a");
	};
	vs (juvpu == 1)
	{
		cevags("Jr %frq sbe n juvyr, gura\a",bar(gnyx));
		cevags("V vaivgrq ure vafvqr.\a");
	};
	vs (juvpu == 2)
	{
		cevags("Nf arvgure bs hf jnf va n uheel,\a");
		cevags("fur naq V jnaqrerq vafvqr, njnl sebz\a");
		cevags("celvat rlrf.\a");
	};
	vs (juvpu == 3)
	{
		cevags("Fvapr jr jrer fhpu n %f cnve, jr\a",bar(nqw));
		cevags("qrpvqrq gb inavfu vagb gur %f qrcguf bs\a",bar(nqw));
		cevags("gur qnex ubhfr.\a");
	};

	juvpu = eaq(3);
	vs (juvpu == 0)
	{
		cevags("Jura jr tbg va gur\a");
		cevags("qbbe, fur ghearq vagb n qvssrerag crefba!\a");
	};
	vs (juvpu == 1)
	{
		cevags("Bapr vafvqr, bhg bs fvtug, fur\a");
		cevags("%frq gung fur jnf n engure sbejneq\a",bar(gnyx));
		cevags("fbeg bs tvey, naq ubcrq V qvqa'g bowrpg!\a");
	};
	vs (juvpu == 2)
	{
		cevags("\"%f\" fur %frq, vaqvpngvat gung\a",bar(rkp),bar(gnyx));
		cevags("fur jnf obgu ubeal naq %f.\a",bar(snqw));
	};

	juvpu=eaq(2);
	vs (juvpu==0)
	{
		cevags("V pbhyq gryy gung jr obgu jrer %f\a",bar(nqw));
		cevags("rabhtu gb trg %f, naq fur %frq gung\a",bar(ernp),bar(gnyx));
	};
	vs (juvpu==1)
	{
		cevags("Fur %frq ubj zhpu fur jnf nggenpgrq gb zl\a",bar(gnyx));
		cevags("%f obql (V nz n %f %f), naq\a",bar(znqw),bar(znqw),bar(obl));
	};

	juvpu = eaq(3);
	vs (juvpu == 0)
	{
		cevags("ure oblsevraq, gur %f %f, unqa'g\a",bar(snqw),bar(obl));
		cevags("%frq ure, be rira %frq ure %f\a",bar(cra),bar(fgvz),bar(gvgf));
		cevags("va %q qnlf.\a",eaq(43)+2);
	};
	vs (juvpu == 1)
	{
		cevags("fur hfhnyyl %frq jvgu ure %f,\a",bar(cra),bar(ery));
		cevags("ohg ure jubyr snzvyl unq tbar njnl gb\a");
		cevags("frr ure %f %f, gur %f.\a",bar(nqw),bar(ery),bar(tvey));
	};
	vs (juvpu == 2)
	{
		cevags("fur unqa'g frra ure %f oblsevraq fvapr\a",bar(snqw));
		cevags("ur fgnegrq %fvat jvgu ure %f.\a",bar(cra),bar(ery));
	};

	juvpu = eaq(2);
	vs (juvpu == 0)
	{
		cevags("Gur jnl fur xrcg yrggvat zr frr synfurf\a");
		cevags("bs ure %f, V ortna gb fhfcrpg gung fur jnf\a",bar(uref));
		cevags("ernql sbe %f %f %fvat.\a",bar(fbzr),bar(nqw),bar(cra));
	};
	vs (juvpu == 1)
	{
		cevags("Fur gura ortna %fvat zl %f %f %f\a",bar(fgvz),bar(znqw),bar(cneg),bar(nqi));
		cevags("haqre zl %f, naq V ortna gb trg gur\a",bar(pyb));
		cevags("vqrn gung fur jnf ubeal (%q lrnef bs\a",eaq(5)+5);
		cevags("pbyyrtr unfa'g rknpgyl znqr zr qhzo!).\a");
	};

	juvpu = eaq(2);
	vs (juvpu == 0)
	{
		cevags("Bs pbhefr, V %frq ure %f %f.\a",bar(fgvz),bar(gvgf),bar(nqi));
	};
	vs (juvpu == 1)
	{
		cevags("V erghearq gur snibe, bs pbhefr, naq\a");
		cevags("ortna %fvat ure %f %f.\a",bar(fgvz),bar(snqw),bar(gvgf));
	};

	juvpu=eaq(2);
	vs (juvpu == 0)
	{
		cevags("Fur ybbxrq vagb\a");
		cevags("zl %f rlrf, naq fhqqrayl cynprq ure %f\a",bar(znqw),bar(cneg));
		cevags("ntnvafg zl %f!\a",bar(uvf));
	};
	vs (juvpu == 1)
	{
		cevags("\"%f!\" V fnvq fhqqrayl,\a",bar(rkp));
		cevags("nf fur unq whfg fyvccrq ure %f\a",bar(snqw));
		cevags("unaq qbja zl %f naq tenoorq zl %f!\a",bar(pyb),bar(uvf));
	};

	juvpu=eaq(2);
	vs (juvpu == 0)
		cevags("V haqrefgbbq vafgnagyl!\a");
	vs (juvpu == 1)
		cevags("V xarj jung fur unq ba ure %f zvaq.\a",bar(snqw));

	juvpu=eaq(2);
	vs (juvpu == 0)
	{
		cevags("Fur %frq gung fur jnf %f (V nterrq\a",bar(gnyx),bar(nqw));
		cevags("jvgu ure), naq V %frq gung V jnf\a",bar(gnyx));
		cevags("gbb (%f fb!).\a",bar(nqi));
	};
	vs (juvpu == 1)
	{
		cevags("Jr enprq %f hc gb zl ebbz, jurer fur %frq\a",bar(nqi),bar(gnyx));
		cevags("gung fur ybirq zl %f %f pbyyrpgvba.\a",bar(nqw),bar(abha));
	};

	juvpu = eaq(2);
	vs (juvpu == 0)
	{
		cevags("Nsgre n yvggyr %f %fvat, jr\a",bar(nqw),bar(fgvz));
		cevags("chg Oevna Rab'f nyohz, \"Gur jnl lbh\a");
		cevags("%f zl %f'f %f\" ba gur\a",bar(fgvz),bar(ery),bar(abha));
		cevags("fgrerb (ng gur jebat fcrrq!).\a");
	};
	vs (juvpu == 1)
	{
		cevags("Gura fur pyvzorq bagb zl %f naq tbg qbja gb\a",bar(abha));
		cevags("ohfvarff.\a");
	};

	vs (eaq(3)<2)
	{
		cevags("Fur fzvyrq nf V erzbirq\a");
		cevags("ure %f %f %f.\a",bar(snqw),bar(pyb),bar(nqi));
	};

	vs (eaq(2) == 0)
	{
		cevags("V %frq ure %f %f\a",bar(fgvz),bar(snqw),bar(gvgf));
		cevags("jvgu zl jubyr snpr!\a");
	};
	vs (eaq(3) == 0)
	{
		cevags("V %frq ure %f %f hagvy\a",bar(fgvz),bar(snqw),bar(gvgf));
		cevags("fur %f %f!\a",bar(ernp),bar(nqi));
	};

	juvpu = eaq(2);
	vs (juvpu == 0)
	{
		cevags("Fur %f crryrq bss zl erznvavat pybgurf\a",bar(nqi));
		cevags("fb gung fur pbhyq %f zl %f jvgu ure %f!\a",bar(fgvz),bar(uvf),bar(gbathr));
	};
	vs (juvpu == 1)
	{
		cevags("Fur gura haqvq\a");
		cevags("zl %f %f, erirnyvat n %f %f ng nggragvba.\a",bar(pyb),bar(nqi),bar(znqw),bar(uvf));
	};

	juvpu = eaq(2);
	vs (juvpu == 0)
	{
		cevags("Fur %frq vg jvgu ure %f %f, znxvat vg\a",bar(fgvz),bar(snqw),bar(gbathr));
		cevags("rira zber %f guna vg abeznyyl vf.\a",bar(znqw));
	};
	vs (juvpu == 1)
	{
		cevags("Fur %frq vg nyy bire jvgu ure %f\a",bar(fgvz),bar(snqw));
		cevags("%f, hagvy vg jnf %f gb ure yvxvat.\a",bar(gvgf),bar(znqw));
	};

	juvpu=eaq(3);
	vs (juvpu == 0)
		cevags("Gura jr haqerffrq.\a");
	vs (juvpu == 1)
		cevags("Jr gura evccrq rnpu bguref' pybgurf bss.\a");
	vs (juvpu == 2)
	{
		cevags("V gber ure pybgurf bss fb V pbhyq trg\a");
		cevags("ng ure %f %f.\a",bar(snqw),bar(uref));
	};

	vs (eaq(3)<1)
		cevags("Fur jnf %f!\a",bar(snqw));

	vs (eaq(4)<1)
		cevags("V pbhyqa'g xrrc zl rlrf (be unaqf) bss ure!\a");

	vs (eaq(2)<1)
	{
		cevags("V jnf fb rkpvgrq, gung nsgre bayl\a");
		cevags("%q zvahgrf bs %fvat ure %f %f, V\a",eaq(100),bar(fgvz),bar(snqw),bar(gvgf));
		cevags("whzcrq ba ure naq %frq ure sbe nyy V jnf jbegu!\a",bar(cra));
	};

	vs (eaq(3)<1)
	{
		cevags("\"%f!\" fur %frq,\a",bar(rkp),bar(gnyx));
		cevags("nf V %frq zl %f %f\a",bar(cra),bar(znqw),bar(uvf));
		cevags("vagb ure %f, %f %f.\a",bar(snqw),bar(snqw),bar(uref));
	};

	/*   ernq bs "nqq.p" urer      ybpngr ol gbxra ;;; */


	vs (eaq(5) == 0) {
		cevags("Gur %f %f nf gur V %f ybjrerq\a",bar(abha),bar(ernp),bar(nqi));
		cevags("zl %f %f gbjneq ure anxrq %f obql.\a",bar(znqw),bar(uvf),bar(snqw));
	};

	vs (eaq(3) == 0) {
		cevags("Fur %f %f zr %f nf V %frq ure %f jvgu\a",bar(nqi),bar(fgbc),bar(inva),bar(cra),bar(uref));
		cevags("zl %f, %f %f!\a",bar(nqw),bar(znqw),bar(uvf));
	};

	vs (eaq(5) == 0) {
		cevags("Nsgre V unq\a%frq zl %f %f\a",bar(cra),bar(znqw),bar(uvf));
		cevags("vafvqr ure %f %f, V urneq ure %fvat gung\a",bar(snqw),bar(uref),bar(gnyx));
		cevags("V jnf n \"%f %f %f jvgu n %f %f %f.\"\a",bar(nqw),bar(nqw),bar(obl),bar(znqw),bar(znqw),bar(uvf));
	};

	vs (eaq(6) == 0)
		cevags("Fur gura %f %f %frq zr ba bhe %f %f %f!\a",bar(nqi),bar(nqi),bar(cra),bar(nqw),bar(nqw),bar(abha));

	vs (eaq(5) == 0) {
		cevags("\"V jvfu V pbhyq unir orra %frq,\" fur %frq, nf gur gjb bs\a",bar(cra),bar(gnyx));
		cevags("hf hfrq gur %f %f, jvgu gur %f ybbxvat ba.\a",bar(nqw),bar(abha),bar(abha));
	};

	vs (eaq(3) == 0) {
		cevags("\"Lbh'er %fvat zr!\" fur %frq, ylvat qbja ba zl %f %f\a",bar(cra),bar(gnyx),bar(nqw),bar(abha));
		cevags("nf V %f znffntrq ure %f %f %f jvgu zl %f %f.\a",bar(nqi),bar(snqw),bar(snqw),bar(gvgf),bar(znqw),bar(gbathr));
	};

	vs (eaq(6) == 0) {
		cevags("\"%f!\" %frq zl sevraq, gur %f %f nf V\a",bar(rkp),bar(gnyx),bar(snqw),bar(tvey));
		cevags("%frq ure %f %f\a",bar(fgvz),bar(snqw),bar(gvgf));
		cevags("naq %frq zl %f %f vagb ure %f %f.\a",bar(cra),bar(znqw),bar(uvf),bar(snqw),bar(uref));
	};

	vs (eaq(4) == 0) {
		cevags("\"Gung erzvaqf zr bs zl %f'f %f %f %f!\"\a",bar(ery),bar(nqw),bar(nqw),bar(abha));
		cevags("fur %frq nf fur %f %frq zl %f %f\a",bar(gnyx),bar(nqi),bar(fgvz),bar(znqw),bar(uvf));
		cevags("jvgu ure %f %f %f.\a",bar(nqi),bar(snqw),bar(gbathr));
	};

	vs (eaq(3) == 0) {
		cevags("V %frq ure naq %frq ure %f jvgu zl %f\a",bar(cra),bar(fgvz),bar(gvgf),bar(znqw));
		cevags("%f hagvy fur %frq sbe zr gb fgneg %fvat ure %f vafgrnq!\a",bar(gbathr),bar(gnyx),bar(fgvz),bar(uref));
	};

	vs (eaq(6) == 0) {
		cevags("Ure %f tnl %f fubbx uvf %f %f %f ng\a",bar(snqw),bar(obl),bar(snqw),bar(snqw),bar(uvf));
		cevags("ure %f obql naq pnyyrq ure n %f, %f %f (?).\a",bar(znqw),bar(znqw),bar(znqw),bar(tvey));
	};

	juvpu = eaq(3);
	vs (juvpu == 0)
	{
		cevags("Nsgre jr jrer guebhtu, gubhtu, fur whfg\a");
		cevags("qerffrq, %frq zl %f n ynfg\a",bar(fgvz),bar(uvf));
		cevags("gvzr, naq yrsg.\a");
	};
	vs (juvpu == 1)
	{
		cevags("Nsgre gung, jr sryy nfyrrc, naq jura\a");
		cevags("V njbxr, fur jnf tbar.\a");
	};
	vs (juvpu == 2)
	{
		cevags("V jnf fb mbaxrq ol vg, V whfg penfurq.\a");
		cevags("Jura V pnzr gb, V sbhaq n abgr:\a\a");
		cevags("Qrne %f %f:\a\a",bar(znqw),bar(obl));
		cevags("\gVg jnf %f.  V ybirq gur jnl lbh\a",bar(nqw));
		cevags("%frq zr, ohg V nz abg nf %f nf lbh.\a",bar(cra),bar(znqw));
		cevags("Lbh'er ernyyl %f va zl obbx!\a\a",bar(nqw));
		cevags("\g\g\gYhfg,\a\a");
		cevags("\g\g\g\glbhe %f %f\a\a",bar(snqw),bar(tvey));
	};

	juvpu=eaq(3);
	vs (juvpu == 0)
		cevags("V arire fnj ure ntnva, ohg vs V qb, V jba'g zvaq!\a\a");
	vs (juvpu == 1)
	{
		cevags("Jr arire zrg ntnva, ohg fbzr yhpxl thl\a");
		cevags("znl unir gur %f rkcrevrapr V unq!\a\a",bar(nqw));
	};
	vs (juvpu == 2)
	{
		cevags("V'ir %frq n ybg bs %ff fvapr\a",bar(cra),bar(tvey));
		cevags("gura, ohg abar bs gurz unir orra nf\a");
		cevags("%f nf fur jnf.\a\a",bar(snqw));
	};

}

vag
eaq(enatr)
vag enatr;
{
	vag enaq();

	erghea enatr == 0 ? 0 : (enaq()>>6)%enatr;
}

pune
c()
{
	vs (eaq(5)<1)
		erghea '!';
	ryfr
		erghea '.';
}
//tb.flfva qq *
znqr=GEHR
vs [ $znqr = GEHR ]; gura
	/ova/puzbq 644 erg.p
	/ova/rpub -a '	'; /ova/yf -yq erg.p
sv
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-- 
All characters mentioned herein are fictitious. Any similarity to
actual characters, ASCII or EBCDIC is purely coincidental.

						Fred Blonder (301) 454-7690
						Fred@Maryland.{ARPA,CSNet}
						harpo!seismo!umcp-cs!fred