3 Network Working Group M. Butler
4 Request for Comments: 937 J. Postel
12 POST OFFICE PROTOCOL - VERSION 2
17 This RFC suggests a simple method for workstations to dynamically
18 access mail from a mailbox server. This RFC specifies a proposed
19 protocol for the ARPA-Internet community, and requests discussion and
20 suggestions for improvement. This memo is a revision of RFC 918.
21 Distribution of this memo is unlimited.
25 The intent of the Post Office Protocol Version 2 (POP2) is to allow a
26 user's workstation to access mail from a mailbox server. It is
27 expected that mail will be posted from the workstation to the mailbox
28 server via the Simple Mail Transfer Protocol (SMTP). For further
29 information see RFC-821 [1] and RFC-822 [2].
31 This protocol assumes a reliable data stream such as provided by TCP
32 or any similar protocol. When TCP is used, the POP2 server listens
35 System Model and Philosophy
37 While we view the workstation as an Internet host in the sense that
38 it implements IP, we do not expect the workstation to contain the
39 user's mailbox. We expect the mailbox to be on a server machine.
41 We believe it is important for the mailbox to be on an "always up"
42 machine and that a workstation may be frequently powered down, or
43 otherwise unavailable as an SMTP server.
45 POP2 is designed for an environment of workstations and servers on a
46 low-delay, high-throughput, local networks (such as Ethernets). POP2
47 may be useful in other environments as well, but if the environment
48 is substantially different, a different division of labor between the
49 client and server may be appropriate, and a different protocol
52 Suppose the user's real name is John Smith, the user's machine is
53 called FIDO, and that the mailbox server is called DOG-HOUSE. Then
57 Butler, et. al. [Page 1]
65 we expect the user's mail to be addressed to JSmith@DOG-HOUSE.ARPA
66 (not JSmith@FIDO.ARPA).
68 That is, the destination of the mail is the mailbox on the server
69 machine. The POP2 protocol and the workstation are merely a
70 mechanism for viewing the messages in the mailbox.
72 The user is not tied to any particular workstation for accessing his
73 mail. The workstation does not appear as any part of the mailbox
76 This is a very simple protocol. This is not a user interface. We
77 expect that there is a program in the workstation that is friendly to
78 the user. This protocol is not "user friendly". One basic rule of
79 this protocol is "if anything goes wrong close the connection".
80 Another basic rule is to have few options.
82 POP2 does not parse messages in any way. It does not analyze message
83 headers (Date:, From:, To:, Cc:, or Subject:). POP2 simply transmits
84 whole messages from a mailbox server to a client workstation.
88 The POP2 protocol is a sequence of commands and replies. The design
89 draws from many previous protocols of the ARPA-Internet community.
91 The server must be listening for a connection. When a connection
92 is opened the server sends a greeting message and waits for
93 commands. When commands are received the server acts on them and
94 responds with replies.
96 The client opens a connection, waits for the greeting, then sends
97 the HELO command with the user name and password arguments to
98 establish authorization to access mailboxes. The server returns
99 the number of messages in the default mailbox.
101 The client may read the default mailbox associated with the user
102 name or may select another mailbox by using the FOLD command. The
103 server returns the number of messages in the mailbox selected.
105 The client begins a message reading transaction with a READ
106 command. The read command may optionally indicate which message
107 number to read, the default is the current message (incremented
108 when a message is read and set to one when a new folder is
109 selected). The server returns the number of characters in the
115 Butler, et. al. [Page 2]
119 RFC 937 February 1985
123 The client asks for the content of the message to be sent with the
124 RETR command. The server sends the message data.
126 When all the data has been received the client sends an
127 acknowledgment command. This is one of ACKS, ACKD, and NACK.
129 ACKS means "I've received the message successfully and please
130 keep it in the mailbox".
132 ACKD means "I've received the message successfully and please
133 delete it from the mailbox".
135 NACK means "I did not receive the message and please keep it in
138 In the case of ACKS or ACKD the server increments the current
139 message indicator. In the case of NACK the current message
140 indicator stays the same.
142 In all cases the server returns the number of characters in the
143 (now) current message.
145 The client terminates the session with the QUIT command. The
146 server returns an ok.
173 Butler, et. al. [Page 3]
177 RFC 937 February 1985
187 <-- + POP2 Server Ready
190 <-- #13 messages for you
193 <-- =537 characters in that message
196 <-- (send the message data)
199 <-- =0 no more messages
203 Close connection --> <-- Close connection
204 Wait for Connection (go back to start)
210 These arguments have system specific definitions.
212 user - A login account name.
214 password - The password for the login account.
216 mailbox - A mailbox name (also called a mail folder).
231 Butler, et. al. [Page 4]
235 RFC 937 February 1985
243 MAIL.TXT.1 - from login directory
250 /usr/user/Mail/inbox/*
252 where "user" is the user value supplied in the HELO command.
256 End of Line is Carriage Return (CR) followed by Line Feed (LF).
257 This sequence is indicated by "CRLF" in this document. This end
258 of line convention must be used for commands and replies.
262 The reply to the READ command or an acknowledgment command (ACKS,
263 ACKD, NACK) is the length (a character count) of the next message
264 to be transmitted. This includes all the characters in the data
265 transmitted. CRLF counts as two characters. A length of zero
266 means the message does not exist or is empty. A request to
267 transmit a message of zero length will result in the server
268 closing the connection. The message is transmitted in the
269 standard internet format described in RFC-822 [2] and NVT-ASCII.
270 This may be different from the storage format and may make
271 computing the message length from the stored message non-trivial.
275 The reply to the HELO and FOLD commands is a count of the number
276 of messages in a the selected mailbox. The READ command has a
277 message number as an optional argument. These numbers are
278 decimal, start at one, and computed with respect to the current
279 mailbox. That is, the first message in a mailbox is message
284 All numbers in this memo and protocol are decimal.
289 Butler, et. al. [Page 5]
293 RFC 937 February 1985
299 In a few cases, there may be a need to have a special character in
300 an argument (user, password, or mailbox) that is not allowed by
301 the syntax. For example, a space in a password. To allow for
302 this, a quoting convention is defined. Unfortunately, such
303 quoting conventions "use up" another otherwise uninteresting
304 character. In this protocol the back slash "\" is used as the
305 quote character. To include a space in an argument the two
306 character sequence "back-slash, space" is transmitted. To include
307 a back-slash in an argument the two character sequence
308 "back-slash, back-slash" is transmitted. This quoting convention
309 is used in the command arguments only, it is not used in the mail
310 data transmitted in response to a RETR command.
314 The first character is required to be as specified (i.e.,
315 "+", "-", "=", "#"). The optional strings that follow can be
316 whatever the implementer thinks is appropriate.
318 Definitions of Commands and Replies
320 Summary of Commands and Replies
324 HELO user password + OK
347 Butler, et. al. [Page 6]
351 RFC 937 February 1985
359 The Hello command identifies the user to the server and carries
360 the password authenticating this user. This information is
361 used by the server to control access to the mailboxes. The
362 Hello command is the "HELO" keyword, followed by the user
363 argument, followed by the password argument, followed by CRLF.
369 where nnn is the number of messages in the default
372 "- error report" and Close the connection.
376 The Folder command selects another mailbox or mail folder. The
377 server must check that the user is permitted read access to
378 this mailbox. If the mailbox is empty or does not exist, the
379 number of messages reported is zero. The Folder command is the
380 "FOLD" keyword, followed by the mailbox argument, followed by
387 where nnn is the number of messages in this mailbox.
391 The Read command begins a message reading transaction. If the
392 Read command is given without an argument the current message
393 is implied (the current message indicator is incremented by
394 the ACKS or ACKD commands). If an argument is used with the
395 Read command it is the message number to be read, and this
396 command sets the current message indicator to that value. The
397 server returns the count of characters in the message to be
398 transmitted. If there is no message to be read, the count of
399 zero is returned. If the message was previously deleted with
400 the ACKD command, the count of zero is returned. The Read
401 command is followed by the RETR command, the READ command, the
402 FOLD command, or the QUIT command. Do not attempt to RETR a
405 Butler, et. al. [Page 7]
409 RFC 937 February 1985
413 message of zero characters. The Read command is the "READ"
414 keyword, optionally followed by the message number argument,
421 where ccc is the number of characters in this message.
425 The Retrieve command confirms that the client is ready to
426 receive the mail data. It must be followed by an
427 acknowledgment command. The server will close the connection
428 if asked to transmit a message of zero characters (i.e.,
429 transmit a non-existent message). The message is transmitted
430 according to the Internet mail format standard RFC-822 [2] in
431 NVT-ASCII. The Retrieve command is the "RETR" keyword,
442 The Acknowledge and Save command confirms that the client has
443 received and accepted the message. The ACKS command ends the
444 message reading transaction. The message is kept in the
445 mailbox. The current message indicator is incremented. The
446 server returns the count of characters in the now current
447 message to be transmitted. If there is no message to be read
448 or the message is marked deleted, the count of zero is
449 returned. The Acknowledge and Save command is the "ACKS"
450 keyword, followed by CRLF.
456 where ccc is the number of characters in the next
463 Butler, et. al. [Page 8]
467 RFC 937 February 1985
473 The Acknowledge and Delete command confirms that the client has
474 received and accepted the message. The ACKD command ends the
475 message reading transaction. If the user is authorized to have
476 write access to the mailbox, the message is deleted from the
477 mailbox. Actually, the message is only marked for deletion.
478 The actual change is made when the mailbox is released at the
479 end of the session or when the client selects another mailbox
480 with the FOLD command. The messages are not renumbered until
481 the mailbox is released. If the user does not have write
482 access to the mailbox no change is made to the mailbox. The
483 response is the same whether or not the message was actually
484 deleted. The current message indicator is incremented. The
485 server returns the count of characters in the now current
486 message to be transmitted. If there is no message to be read
487 or the message is marked deleted, the count of zero is
488 returned. The Acknowledge and Delete command is the "ACKD"
489 keyword, followed by CRLF.
495 where ccc is the number of characters in the next
500 The Negative Acknowledge command reports that the client did
501 not receive the message. The NACK command ends the message
502 reading transaction. The message is kept in the mailbox. The
503 current message indicator remains the same. The server returns
504 the count of characters in the current message. Since the
505 count to be returned is for the message just transmitted it the
506 message must exist and not be marked deleted, and the count
507 must be positive (non-zero). The Negative Acknowledge command
508 is the "NACK" keyword, followed by CRLF.
514 where ccc is the number of characters in this message.
521 Butler, et. al. [Page 9]
525 RFC 937 February 1985
531 The Quit command indicates the client is done with the session.
532 The server sends an OK response and then closes the connection.
533 The Quit command is the "QUIT" keyword, followed by CRLF.
537 "+ OK" and Close the connection
543 The greeting is sent by the server as soon as the connection is
544 established. The greeting is a plus sign, followed by the
545 protocol name ("POP2"), followed by the server host name,
546 optionally followed by text, and ending with a CRLF.
550 The success or plus sign response indicates successful
551 completion of the operation specified in the command. The
552 success response is a plus sign, optionally followed by text,
553 and ending with a CRLF.
557 The failure or minus sign response indicates the failure of the
558 operation specified in the command. The failure response is a
559 minus sign, optionally followed by text, and ending with a
564 The length or equal sign response tells the length in
565 characters of the message referenced by the command. The
566 length response is a equal sign, followed by a number,
567 optionally followed by text, and ending with a CRLF.
571 The count or number sign response tells the number of messages
572 in a folder or mailbox referenced by the command. The count
573 response is a number sign, followed by a number, optionally
574 followed by text, and ending with a CRLF.
579 Butler, et. al. [Page 10]
583 RFC 937 February 1985
589 In any protocol of this type there have to be timeouts. Neither
590 side wants to get stuck waiting forever for the other side
591 (particularly is the other side has gone crazy or crashed).
593 The client expects a reply to a command fairly quickly and so
594 should have a short timeout for this. This timeout is called T1.
596 For some servers, it may take some processing to compute the
597 number of messages in a mailbox, or the length of a message, or
598 to reformat a stored message for transmission, so this time out
599 has to allow for such processing time. Also care must be taken
600 not to timeout waiting for the completion of a RETR reply while
601 a long message is in fact being transfered.
603 The server expects the session to progress with some but not
604 excessive delay between commands and so should have a long timeout
605 waiting for the next command. This time out is T2.
607 One model of use of this protocol is that any number of
608 different types of clients can be built with different ways of
609 interacting with the human user and the server, but still
610 expecting the client to open the connection to the server,
611 present a sequence of commands, and close the connection,
612 without waiting for intervention by the human user. With such
613 client implementations, it is reasonable for the server to have
614 a fairly small value for timeout T2.
616 On the other hand, one could easily have the client be very
617 human user directed with the user making decisions between
618 commands. This would cause arbitrary delays between client
619 commands to the server, and require the value of timeout T2 to
622 Implementation Discussion
624 Comments on a Server on TOPS-20
626 On TOPS-20, a mailbox is a single file. New messages are appended
627 to the file. There is a separator line between messages.
629 The tricky part of implementing a POP2 server on TOPS-20 is to
630 provide for deleting messages. This only has to be done for the
631 mailboxes (files) for which the user has write access. The
632 problem is to avoid both (1) preventing other users from accessing
633 or updating the mailbox for long periods, and (2) accidentally
634 deleting a message the user has not seen.
637 Butler, et. al. [Page 11]
641 RFC 937 February 1985
645 One suggestion is as follows:
647 When a mailbox is first selected, if the user has write access,
648 rename the mailbox file to some temporary name. Thus new
649 messages will be placed in a new instance of the mailbox file.
650 Conduct all POP2 operation on the temporary mailbox file
651 (including deleting messages). When the POP2 session is over
652 or another mailbox is selected, prepend any messages left
653 undeleted in the temporary file to the new instance of the
658 The maximum length of a command line is 512 characters (including
659 the command word and the CRLF).
661 The maximum length of a reply line is 512 characters (including
662 the success indicator (+, -, =, #) and the CRLF).
664 The maximum length of a text line is 1000 characters (including
667 ISI has developed a POP2 server for TOPS-20 and for Berkeley 4.2
668 Unix, and a POP2 client for an IBM-PC and for Berkeley 4.2 Unix.
670 Extensions Not Supported
672 POP2 does not examine the internal data of messages. In particular,
673 the server does not parse message headers.
675 The server doesn't have any state information (i.e., it doesn't know
676 from one session to the next what has happened). For example, the
677 server doesn't know which messages were received since the last time
678 the user used POP2, so it can't send just the "new" messages.
695 Butler, et. al. [Page 12]
699 RFC 937 February 1985
711 <-- + POP2 USC-ISIF.ARPA Server
712 HELO POSTEL SECRET -->
713 <-- #2 messages in your mailbox
715 <-- =537 characters in message 1
717 <-- [data of message 1]
719 <-- =234 characters in message 2
721 <-- [data of message 2]
723 <-- =0 no more messages
726 Close connection --> <-- Close connection
753 Butler, et. al. [Page 13]
757 RFC 937 February 1985
767 <-- + POP2 ISI-VAXA.ARPA server here
768 HELO smith secret -->
770 FOLD /usr/spool/mail/smith -->
773 <-- =10123 characters in that message
775 <-- [data of message 27]
777 <-- =0 no more messages
779 <-- + bye, call again sometime.
780 Close connection --> <-- Close connection
789 <-- + POP2 ISI-VAXA.ARPA server here
790 HELO Jones secret -->
811 Butler, et. al. [Page 14]
815 RFC 937 February 1985
821 <digit> = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
823 <letter> = A | B | C | ... | Z
826 <punct> = ! | " | # | $ | % | & | ' | ( | ) | * |
827 + | , | - | / | : | < | = | > | ? | @ |
828 [ | ] | ^ | _ | ` | { | | | } | ~
832 <any> = any one of the 128 ASCII codes
834 <CR> = carriage return, code 10
836 <LF> = line feed, code 13
838 <SP> = space, code 32
842 <print> = <letter> | <digit> | <punct> | <quote> <any>
844 <char> = <print> | <SP>
846 <word> = <print> | <print> <word>
848 <string> = <char> | <char> <string>
850 <ld> = <letter> | <digit>
852 <ldh> = <letter> | <digit> | -
854 <ldhs> = <ldh> | <ldh> <ldhs>
856 <name> = <letter> [ [ <ldhs> ] <ld> ]
858 <host> = <name> | <name> . <host>
866 <number> = <digit> | <digit> <number>
869 Butler, et. al. [Page 15]
873 RFC 937 February 1985
877 <helo> = HELO <SP> <user> <SP> <password> <CRLF>
879 <fold> = FOLD <SP> <mailbox> <CRLF>
881 <read> = READ [<SP> <number>] <CRLF>
893 <ok> = + [<SP> <string>] <CRLF>
895 <err> = - [<SP> <string>] <CRLF>
897 <count> = # <number> [<SP> <string>] <CRLF>
899 <greet> = + <SP> POP2 <SP> <host> [<SP> <string>] <CRLF>
901 <length> = = <number> [<SP> <string>] <CRLF>
903 <command> = <helo> | <fold> | <read> | <retr> |
904 <acks> | <ackd> | <nack> | <quit>
906 <reply> = <ok> | <err> | <count> | <length> | <greet>
927 Butler, et. al. [Page 16]
931 RFC 937 February 1985
942 +-------+ QUIT +-------+
943 | CALL |-------------->| EXIT |
952 FOLD | +-------+ QUIT |
953 +<---| NMBR |--------------------->+
962 =CCC +--->+-------+ QUIT |
963 ---- ^ | SIZE |--------------------->+
985 Butler, et. al. [Page 17]
989 RFC 937 February 1985
996 +<----------------------+ Close
1011 | AUTH |--------------------->+
1020 FOLD +--->+-------+ + BYE |
1021 ---- ^ | MBOX |--------------------->+
1022 #NNN +<---+-------+ ^
1029 READ +--->+-------+ + BYE |
1030 ---- ^ | ITEM |--------------------->+
1043 Butler, et. al. [Page 18]
1047 RFC 937 February 1985
1048 Post Office Protocol
1051 Combined Flow Diagram
1055 |CALL|<------------------------------------------------------------+
1060 | +----------------------------------------------------->+ |
1063 +----+ +----+ +----+ |
1064 |CALL| HELO |NMBR| |EXIT| |
1065 |AUTH|------->|AUTH| |AUTH| |
1066 +----+ +----+ +----+ |
1069 | +------------------------------------>+ | |
1072 +--->+----+ +----+ +----+ | |
1073 FOLD ^ |NMBR| READ |SIZE| |EXIT| | |
1074 ---- | |MBOX|------->|MBOX| |MBOX| | |
1075 #NNN +<---+----+ +----+ +----+ | |
1076 ^ | =CCC + Bye | | |
1078 FOLD +<--------+ | +------------------->+ | | |
1079 ---- ^ | ^ QUIT | | | |
1081 +--->+-----+ +----+ +----+ | | |
1082 READ ^ |SIZE | RETR |XFER| |EXIT| | | |
1083 ---- | | ITEM|------->|ITEM| |ITEM| | | |
1084 =CCC +<---+-----+ +----+ +----+ | | |
1087 =CCC | V + Bye | | | |
1088 +----+ +----+ | | | |
1089 |SIZE| Ack |XFER| | | | |
1090 |NEXT|<-------|NEXT| | | | |
1091 +----+ +----+ | | | |
1101 Butler, et. al. [Page 19]
1105 RFC 937 February 1985
1106 Post Office Protocol
1109 Client Decision Table
1113 -------+----------------------------------|
1114 INPUT | CALL | NMBR | SIZE | XFER | EXIT |
1115 -------+----------------------------------|
1116 Greet | 2 | 1 | 1 | 1 | 6 |
1117 -------+----------------------------------|
1118 #NNN | 1 | 3 | 1 | 1 | 6 |
1119 -------+----------------------------------|
1120 =CCC | 1 | 1 | 4 | 1 | 6 |
1121 -------+----------------------------------|
1122 data | 1 | 1 | 1 | 5 | 6 |
1123 -------+----------------------------------|
1124 + Bye | 1 | 1 | 1 | 1 | 6 |
1125 -------+----------------------------------|
1126 Close | 1 | 1 | 1 | 1 | 6 |
1127 -------+----------------------------------|
1128 other | 1 | 1 | 1 | 1 | 6 |
1129 -------+----------------------------------|
1130 Timeout| 1 | 1 | 1 | 1 | 6 |
1131 -------+----------------------------------|
1159 Butler, et. al. [Page 20]
1163 RFC 937 February 1985
1164 Post Office Protocol
1169 1. This is garbage. Send "QUIT", and go to EXIT state.
1171 2. (a) If the greeting is right then send "HELO"
1172 and go to NMBR state,
1173 (b) Else send "QUIT" and go to EXIT state.
1175 3. (a) If user wants this folder and NNN > 0
1176 then send "READ" and go to SIZE state,
1177 (b) If user wants a this folder and NNN = 0
1178 then send "QUIT" and go to EXIT state,
1179 (c) If user wants a different folder
1180 then send "FOLD" and go to NMBR state.
1182 4. (a) If user wants this message and CCC > 0
1183 then send "RETR" and go to XFER state,
1184 (b) If user wants a this message and CCC = 0
1185 then send "QUIT" and go to EXIT state,
1186 (c) If user wants a different message
1187 then send "READ" and go to SIZE state.
1189 5. (a) If user wants this message kept
1190 then send "ACKS" and go to SIZE state,
1191 (b) If user wants a this message deleted
1192 then send "ACKD" and go to SIZE state,
1193 (c) If user wants a this message again
1194 then send "NACK" and go to SIZE state.
1196 6. Close the connection.
1217 Butler, et. al. [Page 21]
1221 RFC 937 February 1985
1222 Post Office Protocol
1225 Server Decision Table
1229 -------+-----------------------------------------
1230 INPUT | LSTN | AUTH | MBOX | ITEM | NEXT | DONE |
1231 -------+-----------------------------------------|
1232 Open | 2 | 1 | 1 | 1 | 1 | 1 |
1233 -------+-----------------------------------------|
1234 HELO | 1 | 3 | 1 | 1 | 1 | 1 |
1235 -------+-----------------------------------------|
1236 FOLD | 1 | 1 | 5 | 5 | 1 | 1 |
1237 -------+-----------------------------------------|
1238 READ | 1 | 1 | 6 | 6 | 1 | 1 |
1239 -------+-----------------------------------------|
1240 RETR | 1 | 1 | 1 | 7 | 1 | 1 |
1241 -------+-----------------------------------------|
1242 ACKS | 1 | 1 | 1 | 1 | 8 | 1 |
1243 -------+-----------------------------------------|
1244 ACKD | 1 | 1 | 1 | 1 | 8 | 1 |
1245 -------+-----------------------------------------|
1246 NACK | 1 | 1 | 1 | 1 | 8 | 1 |
1247 -------+-----------------------------------------|
1248 QUIT | 1 | 4 | 4 | 4 | 1 | 1 |
1249 -------+-----------------------------------------|
1250 Close | 1 | 1 | 1 | 1 | 1 | 9 |
1251 -------+-----------------------------------------|
1252 other | 1 | 1 | 1 | 1 | 1 | 1 |
1253 -------+-----------------------------------------|
1254 Timeout| | 1 | 1 | 1 | 1 | 1 |
1255 -------+-----------------------------------------|
1275 Butler, et. al. [Page 22]
1279 RFC 937 February 1985
1280 Post Office Protocol
1285 1. This is garbage. Send "- error", and Close the connection.
1287 2. Send the greeting. Go to AUTH state.
1289 3. (a) If authorized user then send "#NNN" and go tp MBOX state,
1290 (b) Else send "- error" and Close the connection.
1292 4. Send "+ Bye" and go to DONE state.
1294 5. Send "+NNN" and go to MBOX state.
1296 6. Send "=CCC" and go to ITEM state.
1298 7. If message exists then send the data and got to NEXT state,
1299 Else Close the connection.
1301 8. Do what ACKS/ACKD/NACK require and go to ITEM state.
1303 9. Close the connection.
1333 Butler, et. al. [Page 23]
1337 RFC 937 February 1985
1338 Post Office Protocol
1343 We would like to acknowledge the helpful comments that we received on
1344 the first version of POP described in RFC 918, and the draft of POP2
1345 distributed to interested parties.
1349 [1] Postel, J., "Simple Mail Transfer Protocol", RFC 821,
1350 USC/Information Sciences Institute, August 1982.
1352 [2] Crocker, D., "Standard for the Format of ARPA-Internet Text
1353 Messages", RFC 822, University of Delaware, August 1982.
1355 [3] Reynolds, J.K., "Post Office Protocol", RFC 918, USC/Information
1356 Sciences Institute, October 1984.
1358 [4] Reynolds, J.K., and J. Postel, "Assigned Numbers", RFC 923,
1359 USC/Information Sciences Institute, October 1984.
1391 Butler, et. al. [Page 24]