ÿØÿà JFIF ÿÛ „ ( %"1!%)+...383,7(-.+
-+++--++++---+-+-----+---------------+---+-++7-----ÿÀ ß â" ÿÄ ÿÄ H !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ ÿÄ % !1AQa"23‘ÿÚ ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6
öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ
"Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷ó²·˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%Ìòh´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ÇýÊTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆÑªQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»&
î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$ËÚsäÿ
÷Û #°xŸëí(l
»ý3—¥5m!
rt`†0~'j2(]S¦¦kv,ÚÇl¦øJA£Šƒ
J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉä¢mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg
A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD
é©¤&‡ïDbàÁôMÁ."
¤‡ú*õ'VŽ|¼´Úgllº¼klz[Æüï÷Aób‡Eÿ dÑ»Xx9ÃÜ£ÁT/`¼¸vI±Ýµ·Ë‚“G³þ*Ÿû´r|*}<¨îºœ @¦mÄ’M¹”.œ«Y–|6ÏU¤jç¥ÕÞqO
˜kDÆÁ¨5ÿ š;Њ¦¦€GÙk \
–Þ=â¼=SͧµªS°ÚÍpÜãQűÀõ¬?ÃÁ1Ñ•õZà?hóœ€
L¦l{Y*K˜Ù›zc˜–ˆâø+¾ -Ök¥%ùEÜA'}ˆ><ÊIè“bpÍ/qÞâvoX€w,\úªò6Z[XdÒæ@Ö—€$òJí#é>'°Ú
ôª˜<)4ryÙ£|óAÅn5žêŸyÒäMÝ2{"}‰–¤l÷ûWX\l¾Á¸góÉOÔ /óñB¤f¸çñ[.P˜ZsÊË*ßT܈§QN¢’¡¨§V¼(Üù*eÕ“”5T¨‹Âê¥FŒã½Dü[8'Ò¥a…Ú¶k7a
*•›¼'Ò·\8¨ª\@\õ¢¦íq+DÙrmÎ…_ªæ»ŠÓœ¡¯’Ré9MÅ×D™lælffc+ŒÑ,ý™ÿ ¯þǤ=Å’Á7µ÷ÚÛ/“Ü€ñýã¼àí¾ÕÑ+ƒ,uµMâÀÄbm:ÒÎPæ{˜Gz[ƒ¯«® KHà`ߨŠéí¯P8Aq.C‰ à€kòpj´kN¶qô€…Õ,ÜNŠª-{Zö’æû44‰sŽè‰îVíRœÕm"
6?³D9¡ÇTíÅꋇ`4«¸ÝÁô ï’ýorqКÇZ«x4Žâéþuïf¹µö[P ,Q£éaX±`PÉÍZ ¸äYúgüAx
’6Lê‚xÝÓ*äQ
Ï’¨hÍ
=²,6ï#rÃ<¯–£»ƒ‹,–ê•€ aÛsñ'%Æ"®ÛüìBá HÚ3ß°©$“XnœÖ’î2ËTeûìxîß
¦å¿çÉ
ðK§þ{‘t‚Ϋ¬jéîZ[”š7L¥4VÚCE×]m¤Øy”ä4-dz£œ§¸x.*ãÊÊ b÷•h:©‡¦s`BTÁRû¾g⻩‹jø sF¢àJøFl‘È•Xá“à~*j¯ +(ÚÕ6-£¯÷GŠØy‚<Ç’.F‹Hœw(+)ÜÜâÈzÄäT§FߘãÏ;DmVœ3Àu@mÚüXÝü•3B¨òÌÁÛ<·ÃÜz,Ì@õÅ·d2]ü8s÷IôÞ¯^Ç9¢u„~ëAŸï4«M?
K]ÅàPl@s_ p:°¬ZR”´›JC[CS.h‹ƒïËœ«Æ]–÷ó‚wR×k7X‰k›‘´ù¦=¡«‰¨¨Â')—71ó’c‡Ðúµ
`é.{§p¹ój\Ž{1h{o±Ý=áUÊïGÖŒõ–-BÄm+AZX¶¡
ïHðæ¥JmÙ;…䡟ˆ¦ ° äšiÉg«$üMk5¤L“’çÊvïâï ,=f“"íἊ5ô¬x6{ÉžID0e¸vçmi'︧ºð9$ò¹÷*£’9ÿ ²TÔ…×>JV¥}Œ}$p[bÔ®*[jzS*8
”·T›Í–ñUîƒwo$áè=LT™ç—~ô·¤ÈÚ$æ¦q‰„+´kFm)ž‹©i–ËqÞŠ‰à¶ü( ‚•§ •°ò·‡#5ª•µÊ﯅¡X¨šÁ*F#TXJÊ
ušJVÍ&=iÄs1‚3•'fý§5Ñ<=[íÞ
PÚ;ѱÌ_~Ä££8rÞ
²w;’hDT°>ÈG¬8Á²ÚzŽ®ò®qZcqJêäÞ-ö[ܘbň±çb“ж31²n×iƒðÕ;1¶þÉ
ªX‰,ßqÏ$>•î íZ¥Z 1{ç൵+ƒÕµ¥°T$§K]á»Ûï*·¤tMI’ÂZbŽÕiÒ˜}bÓ0£ª5›¨[5Ž^ÝœWøÂÝh°
¢OWun£¤5 a2Z.G2³YL]jåtì”ä ÁÓ‘%"©<Ôúʰsº UZvä‡ÄiÆÒM .÷V·™ø#kèýií To run it, do this: \ Details of HTTP come from:Œºîϲ=¦6rO]XI¿Œ÷¤zÚ›¶ 6÷”w\dü~v®ˆÌk«^m<ÿ ¢‰Õ\)ùºŽ;… lîÙÅEŠ®cѾ@vnMÏ,¼“ñ•ŽBxðÃzãÇç%3ˆ"}Ù•Åî>
BÉú;Ò]V+P˜F_´ßé>
Øše|ï‡ÄOmFæÇ ãqÞ$/xÐxz`ï9"œÜij‚!7.\Td…9M‡•iŽ‹¾‘50ÞŽn¥ß4ÉôO¹*í^QêËÜÇÌ8=ާs‰'ÂëÙ«á%Pú[O
†ÅP¯Vsް.‰,kc¶ ¬A9n˜XÎ-ÞšN["¹QÕ‰ƒMýÁߺXJæÍaLj¾×Ãmã¾ãÚ uñÒþåQô¦¥
/ÄUx:‚ÍÜ’ Ä©ØÝ3V¨‰ÕnÐ6ó*óúK«…c ¯U òhsýjóÔj#,ímŒRµ«lbïUTŒÑ8†Ä0œÏr`ð¡¬É Ї
ë"À²
™ 6¥ f¶¢ÚoܱԷ-<Àî)†a¶ž'Ú»¨TXqØæ¶÷YÄHy˜9ÈIWYÀuMFë
ºÏ’AqÌ4·/Ú
†ô'i$øä=Ä
Ý|öK×40è|È6p‘0§)o¥ctî§H+CA-“ xØ|ÐXŠç
l8íºð3Ø:³¤¬KX¯UÿÙ
function SetUpServer() {
SetUpEliza()
TopHeader = \
"
Please choose one of the following actions:
\
"
TopFooter = ""
}
function HandleGET() {
# A real HTTP server would treat some parts of the URI as a file name.
# We take parts of the URI as menu choices and go on accordingly.
if(MENU[2] == "AboutServer") {
Document = "This is not a CGI script.\
This is an httpd, an HTML file, and a CGI script all \
in one GAWK script. It needs no separate www-server, \
no installation, and no root privileges.\
\
\\
JK 14.9.1997
" } else if (MENU[2] == "AboutELIZA") { Document = "This is an implementation of the famous ELIZA\ program by Joseph Weizenbaum. It is written in GAWK and\ uses an HTML GUI." } else if (MENU[2] == "StartELIZA") { gsub(/\+/, " ", GETARG["YouSay"]) # Here we also have to substitute coded special characters Document = "" } } function ElizaSays(YouSay) { if (YouSay == "") { cost = 0 answer = "HI, IM ELIZA, TELL ME YOUR PROBLEM" } else { q = toupper(YouSay) gsub("'", "", q) if(q == qold) { answer = "PLEASE DONT REPEAT YOURSELF !" } else { if (index(q, "SHUT UP") > 0) { answer = "WELL, PLEASE PAY YOUR BILL. ITS EXACTLY ... $"\ int(100*rand()+30+cost/100) } else { qold = q w = "-" # no keyword recognized yet for (i in k) { # search for keywords if (index(q, i) > 0) { w = i break } } if (w == "-") { # no keyword, take old subject w = wold subj = subjold } else { # find subject subj = substr(q, index(q, w) + length(w)+1) wold = w subjold = subj # remember keyword and subject } for (i in conj) gsub(i, conj[i], q) # conjugation # from all answers to this keyword, select one randomly answer = r[indices[int(split(k[w], indices) * rand()) + 1]] # insert subject into answer gsub("_", subj, answer) } } } cost += length(answer) # for later payment : 1 cent per character return answer } function SetUpEliza() { srand() wold = "-" subjold = " " # table for conjugation conj[" ARE " ] = " AM " conj["WERE " ] = "WAS " conj[" YOU " ] = " I " conj["YOUR " ] = "MY " conj[" IVE " ] =\ conj[" I HAVE " ] = " YOU HAVE " conj[" YOUVE " ] =\ conj[" YOU HAVE "] = " I HAVE " conj[" IM " ] =\ conj[" I AM " ] = " YOU ARE " conj[" YOURE " ] =\ conj[" YOU ARE " ] = " I AM " # table of all answers r[1] = "DONT YOU BELIEVE THAT I CAN _" r[2] = "PERHAPS YOU WOULD LIKE TO BE ABLE TO _ ?" r[3] = "YOU WANT ME TO BE ABLE TO _ ?" r[4] = "PERHAPS YOU DONT WANT TO _ " r[5] = "DO YOU WANT TO BE ABLE TO _ ?" r[6] = "WHAT MAKES YOU THINK I AM _ ?" r[7] = "DOES IT PLEASE YOU TO BELIEVE I AM _ ?" r[8] = "PERHAPS YOU WOULD LIKE TO BE _ ?" r[9] = "DO YOU SOMETIMES WISH YOU WERE _ ?" r[10] = "DONT YOU REALLY _ ?" r[11] = "WHY DONT YOU _ ?" r[12] = "DO YOU WISH TO BE ABLE TO _ ?" r[13] = "DOES THAT TROUBLE YOU ?" r[14] = "TELL ME MORE ABOUT SUCH FEELINGS" r[15] = "DO YOU OFTEN FEEL _ ?" r[16] = "DO YOU ENJOY FEELING _ ?" r[17] = "DO YOU REALLY BELIEVE I DONT _ ?" r[18] = "PERHAPS IN GOOD TIME I WILL _ " r[19] = "DO YOU WANT ME TO _ ?" r[20] = "DO YOU THINK YOU SHOULD BE ABLE TO _ ?" r[21] = "WHY CANT YOU _ ?" r[22] = "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM _ ?" r[23] = "WOULD YOU PREFER IF I WERE NOT _ ?" r[24] = "PERHAPS IN YOUR FANTASIES I AM _ " r[25] = "HOW DO YOU KNOW YOU CANT _ ?" r[26] = "HAVE YOU TRIED ?" r[27] = "PERHAPS YOU CAN NOW _ " r[28] = "DID YOU COME TO ME BECAUSE YOU ARE _ ?" r[29] = "HOW LONG HAVE YOU BEEN _ ?" r[30] = "DO YOU BELIEVE ITS NORMAL TO BE _ ?" r[31] = "DO YOU ENJOY BEING _ ?" r[32] = "WE WERE DISCUSSING YOU -- NOT ME" r[33] = "Oh, I _" r[34] = "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU ?" r[35] = "WHAT WOULD IT MEAN TO YOU, IF YOU GOT _ ?" r[36] = "WHY DO YOU WANT _ ?" r[37] = "SUPPOSE YOU SOON GOT _" r[38] = "WHAT IF YOU NEVER GOT _ ?" r[39] = "I SOMETIMES ALSO WANT _" r[40] = "WHY DO YOU ASK ?" r[41] = "DOES THAT QUESTION INTEREST YOU ?" r[42] = "WHAT ANSWER WOULD PLEASE YOU THE MOST ?" r[43] = "WHAT DO YOU THINK ?" r[44] = "ARE SUCH QUESTIONS IN YOUR MIND OFTEN ?" r[45] = "WHAT IS IT THAT YOU REALLY WANT TO KNOW ?" r[46] = "HAVE YOU ASKED ANYONE ELSE ?" r[47] = "HAVE YOU ASKED SUCH QUESTIONS BEFORE ?" r[48] = "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT ?" r[49] = "NAMES DON'T INTEREST ME" r[50] = "I DONT CARE ABOUT NAMES -- PLEASE GO ON" r[51] = "IS THAT THE REAL REASON ?" r[52] = "DONT ANY OTHER REASONS COME TO MIND ?" r[53] = "DOES THAT REASON EXPLAIN ANYTHING ELSE ?" r[54] = "WHAT OTHER REASONS MIGHT THERE BE ?" r[55] = "PLEASE DON'T APOLOGIZE !" r[56] = "APOLOGIES ARE NOT NECESSARY" r[57] = "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE ?" r[58] = "DON'T BE SO DEFENSIVE" r[59] = "WHAT DOES THAT DREAM SUGGEST TO YOU ?" r[60] = "DO YOU DREAM OFTEN ?" r[61] = "WHAT PERSONS APPEAR IN YOUR DREAMS ?" r[62] = "ARE YOU DISTURBED BY YOUR DREAMS ?" r[63] = "HOW DO YOU DO ... PLEASE STATE YOUR PROBLEM" r[64] = "YOU DON'T SEEM QUITE CERTAIN" r[65] = "WHY THE UNCERTAIN TONE ?" r[66] = "CAN'T YOU BE MORE POSITIVE ?" r[67] = "YOU AREN'T SURE ?" r[68] = "DON'T YOU KNOW ?" r[69] = "WHY NO _ ?" r[70] = "DON'T SAY NO, IT'S ALWAYS SO NEGATIVE" r[71] = "WHY NOT ?" r[72] = "ARE YOU SURE ?" r[73] = "WHY NO ?" r[74] = "WHY ARE YOU CONCERNED ABOUT MY _ ?" r[75] = "WHAT ABOUT YOUR OWN _ ?" r[76] = "CAN'T YOU THINK ABOUT A SPECIFIC EXAMPLE ?" r[77] = "WHEN ?" r[78] = "WHAT ARE YOU THINKING OF ?" r[79] = "REALLY, ALWAYS ?" r[80] = "DO YOU REALLY THINK SO ?" r[81] = "BUT YOU ARE NOT SURE YOU _ " r[82] = "DO YOU DOUBT YOU _ ?" r[83] = "IN WHAT WAY ?" r[84] = "WHAT RESEMBLANCE DO YOU SEE ?" r[85] = "WHAT DOES THE SIMILARITY SUGGEST TO YOU ?" r[86] = "WHAT OTHER CONNECTION DO YOU SEE ?" r[87] = "COULD THERE REALLY BE SOME CONNECTIONS ?" r[88] = "HOW ?" r[89] = "YOU SEEM QUITE POSITIVE" r[90] = "ARE YOU SURE ?" r[91] = "I SEE" r[92] = "I UNDERSTAND" r[93] = "WHY DO YOU BRING UP THE TOPIC OF FRIENDS ?" r[94] = "DO YOUR FRIENDS WORRY YOU ?" r[95] = "DO YOUR FRIENDS PICK ON YOU ?" r[96] = "ARE YOU SURE YOU HAVE ANY FRIENDS ?" r[97] = "DO YOU IMPOSE ON YOUR FRIENDS ?" r[98] = "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU" r[99] = "DO COMPUTERS WORRY YOU ?" r[100] = "ARE YOU TALKING ABOUT ME IN PARTICULAR ?" r[101] = "ARE YOU FRIGHTENED BY MACHINES ?" r[102] = "WHY DO YOU MENTION COMPUTERS ?" r[103] = "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEMS ?" r[104] = "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE ?" r[105] = "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU ?" r[106] = "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS ?" r[107] = "WHAT DOES THAT SUGGEST TO YOU ?" r[108] = "I SEE" r[109] = "IM NOT SURE I UNDERSTAND YOU FULLY" r[110] = "COME COME ELUCIDATE YOUR THOUGHTS" r[111] = "CAN YOU ELABORATE ON THAT ?" r[112] = "THAT IS QUITE INTERESTING" r[113] = "WHY DO YOU HAVE PROBLEMS WITH MONEY ?" r[114] = "DO YOU THINK MONEY IS EVERYTHING ?" r[115] = "ARE YOU SURE THAT MONEY IS THE PROBLEM ?" r[116] = "I THINK WE WANT TO TALK ABOUT YOU, NOT ABOUT ME" r[117] = "WHAT'S ABOUT ME ?" r[118] = "WHY DO YOU ALWAYS BRING UP MY NAME ?" # table for looking up answers that # fit to a certain keyword k["CAN YOU"] = "1 2 3" k["CAN I"] = "4 5" k["YOU ARE"] =\ k["YOURE"] = "6 7 8 9" k["I DONT"] = "10 11 12 13" k["I FEEL"] = "14 15 16" k["WHY DONT YOU"] = "17 18 19" k["WHY CANT I"] = "20 21" k["ARE YOU"] = "22 23 24" k["I CANT"] = "25 26 27" k["I AM"] =\ k["IM "] = "28 29 30 31" k["YOU "] = "32 33 34" k["I WANT"] = "35 36 37 38 39" k["WHAT"] =\ k["HOW"] =\ k["WHO"] =\ k["WHERE"] =\ k["WHEN"] =\ k["WHY"] = "40 41 42 43 44 45 46 47 48" k["NAME"] = "49 50" k["CAUSE"] = "51 52 53 54" k["SORRY"] = "55 56 57 58" k["DREAM"] = "59 60 61 62" k["HELLO"] =\ k["HI "] = "63" k["MAYBE"] = "64 65 66 67 68" k[" NO "] = "69 70 71 72 73" k["YOUR"] = "74 75" k["ALWAYS"] = "76 77 78 79" k["THINK"] = "80 81 82" k["LIKE"] = "83 84 85 86 87 88 89" k["YES"] = "90 91 92" k["FRIEND"] = "93 94 95 96 97 98" k["COMPUTER"] = "99 100 101 102 103 104 105" k["-"] = "106 107 108 109 110 111 112" k["MONEY"] = "113 114 115" k["ELIZA"] = "116 117 118" }