Delete mmgeneric.el.
[elisp/flim.git] / TESTPAT
diff --git a/TESTPAT b/TESTPAT
index 9ade797..107ea08 100644 (file)
--- a/TESTPAT
+++ b/TESTPAT
@@ -1,93 +1,25 @@
+;;; -*- mode: emacs-lisp; coding: iso-2022-7bit-ss2 -*-
 ;----------------------------------------------------------------------------
 ;-------- This sequece of HYPHEN-MINUS is 76 bytes long. --------------------
 ;----------------------------------------------------------------------------
 
-; options:
-;encode-sticked-comment-as-atom    ; violate the policy preserving structures
-;ignore-75bytes-limit              ; violate RFC2047
-;ignore-76bytes-limit              ; violate RFC2047
-;permit-sticked-comment            ; violate RFC2047
-;permit-sticked-special            ; violate RFC2047
-;separate-sticked-comment          ; violate the policy preserving absence of space
-;separate-sticked-special          ; violate the policy preserving absence of space
-;zero-characters-encoded-word-hack ; violate common sense (very tricky)
-;quoted-encoded-word              ; violate character sequence semantics
-
-;;; test driver
-
-(setq decode-test 'decode-flam)
-(setq encode-test 'encode-flam)
-
-(setq decode-succ-count 0)
-(setq decode-all-count 0)
-(defun decode (src dsts &rest opts)
-  (if (stringp dsts) (setq dsts (list dsts)))
-  (setq decode-all-count (1+ decode-all-count))
-  (let ((res (condition-case nil
-              (apply decode-test src dsts opts)
-              (error nil))))
-    (if (eq res t)
-      (progn
-       (setq decode-succ-count (1+ decode-succ-count))
-       (insert "\n'dsucc"))
-      (insert (format "\n%S\n'dfail" res)))
-    res))
-
-(setq encode-succ-count 0)
-(setq encode-all-count 0)
-(defun encode (src dsts &rest opts)
-  (if (stringp dsts) (setq dsts (list dsts)))
-  (setq encode-all-count (1+ decode-all-count))
-  (let ((res (condition-case nil
-              (apply encode-test src dsts opts)
-              (error nil))))
-    (if (eq res t)
-      (progn
-       (setq encode-succ-count (1+ encode-succ-count))
-       (insert "\n'esucc"))
-      (insert (format "\n%S\n'efail" res)))
-    res))
-
-(defun report ()
-  (insert
-    (format "\n\"Decode: %d/%d  Encode: %d/%d\""
-      decode-succ-count decode-all-count
-      encode-succ-count encode-all-count)))
-
-;;; FLAM specific part (FLIM is OK)
-
-(defun decode-flam (src dsts &rest opts)
-  (setq eword-lexical-analyze-cache nil)
-  (setq eword-decode-sticked-encoded-word
-    (or (memq 'permit-sticked-comment opts)
-       (memq 'permit-sticked-special opts)))
-  (setq eword-decode-quoted-encoded-word nil)
-  (with-temp-buffer
-    (insert src "\n" mail-header-separator)
-    (eword-decode-header 'us-ascii mail-header-separator)
-    (goto-char (point-min))
-    (std11-narrow-to-header mail-header-separator)
-    (std11-field-end)
-    (let ((result (buffer-substring (point-min) (point))))
-      (if (member result dsts) t result))))
-
-(defun encode-flam (src dsts &rest opts)
-  (setq eword-lexical-analyze-cache nil)
-  (setq eword-decode-sticked-encoded-word nil)
-  (setq eword-decode-quoted-encoded-word nil)
-  (with-temp-buffer
-    (insert src "\n" mail-header-separator)
-    (goto-char (point-min))
-    (eword-encode-header 'us-ascii)
-    (goto-char (point-min))
-    (std11-narrow-to-header mail-header-separator)
-    (std11-field-end)
-    (let ((result (buffer-substring (point-min) (point))))
-      (if (member result dsts) t result))))
-
-;;;start-test;;;
-
-;; Section 1: Decoding examples from RFC2047
+;;; options:
+;;encode-sticked-comment-as-atom    ; violate the policy preserving structures
+;;ignore-75bytes-limit              ; violate RFC2047
+;;ignore-76bytes-limit              ; violate RFC2047
+;;permit-sticked-comment            ; violate RFC2047
+;;permit-sticked-special            ; violate RFC2047
+;;separate-sticked-comment          ; violate the policy preserving absence of space
+;;separate-sticked-special          ; violate the policy preserving absence of space
+;;zero-characters-encoded-word-hack ; violate common sense (very tricky)
+;;embedded-encoded-word                    ; violate character sequence semantics
+;;separate-sticked-tokens-for-fold  ; violate the policy preserving absence of space
+;;encode-long-ascii-string-for-fold ; violate the policy preserving US-ASCII string
+;;divide-atom-for-fold             ; violate tne policy preserving absence of space
+
+(defconst test-patterns '(
+
+;;; Section 1: Decoding examples from RFC2047
 
 (decode
 "From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>"
 "CC: Andr\e.A\eNi Pirard <PIRARD@vm1.ulg.ac.be>")\e*B
 
 (decode
-"Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
+"Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\r
  =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="
 "Subject: If you can read this you understand the example.")
 
 "From: Patrik F\e.A\eNdltstr\eNvm <paf@nada.kth.se>")\e*B
 
 (decode
-"From: Nathaniel Borenstein <nsb@thumper.bellcore.com>
-       (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)"
-"From: Nathaniel Borenstein <nsb@thumper.bellcore.com> (\e.H\eNm\eNe\eNl\eNy \eNo\eNa \eNi\eNl\eNh\eNt\eNp)")\e*B
+"From: Nathaniel Borenstein <nsb@thumper.bellcore.com>\r
+\t(=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)"
+"From: Nathaniel Borenstein <nsb@thumper.bellcore.com>\t(\e.H\eNm\eNe\eNl\eNy \eNo\eNa \eNi\eNl\eNh\eNt\eNp)")\e*B
 
 (decode
 "From: foo@bar.baz (=?ISO-8859-1?Q?a?=)"
 "From: foo@bar.baz (ab)")
 
 (decode
-"From: foo@bar.baz (=?ISO-8859-1?Q?a?=
-       =?ISO-8859-1?Q?b?=)"
+"From: foo@bar.baz (=?ISO-8859-1?Q?a?=\r
+\t=?ISO-8859-1?Q?b?=)"
 "From: foo@bar.baz (ab)")
 
 (decode
 "Subject: (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)")
 
 (decode
-"Subject: (=?ISO-8859-1?Q?a?=
-       =?ISO-8859-1?Q?b?=)"
-"Subject: (=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)")
+"Subject: (=?ISO-8859-1?Q?a?=\r
+\t=?ISO-8859-1?Q?b?=)"
+"Subject: (=?ISO-8859-1?Q?a?=\t=?ISO-8859-1?Q?b?=)")
 
 (decode
 "Subject: (=?ISO-8859-1?Q?a_b?=)"
 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)"
 "Subject: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)")
 
-;; Section 2: Decoding proper inputs.
+;;; Section 2: Decoding proper inputs.
 
 (decode
 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
 "From: \e$B$"\e(B <akr@jaist.ac.jp>")
 
 (decode
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"From: =?ISO-2022-JP?b?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?iso-2022-jp?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?iSo-2022-jP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?ISO-2022-JP?Q?=1B=24B=24=22=1B=28B?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?ISO-2022-JP?q?=1B=24B=24=22=1B=28B?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?iso-2022-jp?Q?=1B=24B=24=22=1B=28B?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?iSo-2022-jP?Q?=1B=24B=24=22=1B=28B?= <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B <akr@jaist.ac.jp>")
+
+(decode
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  <akr@jaist.ac.jp>"
 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
 
 (decode
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=
- =?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  <akr@jaist.ac.jp>"
 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
 
 (decode
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=
-       =?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+\t=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  <akr@jaist.ac.jp>"
 "From: \e$B$"$$\e(B <akr@jaist.ac.jp>")
 
 (decode
-"From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
- =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= \"ja \\\"a\\\"\" <akr@jaist.ac.jp>"
+"From: \e$B$"\e(B \"ja \\\"a\\\"\" <akr@jaist.ac.jp>")
+
+(decode
+"From: =?US-ASCII?Q?=2C?= <akr@jaist.ac.jp>"
+"From: \",\" <akr@jaist.ac.jp>")
+
+(decode
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?US-ASCII?Q?=2E?= <akr@jaist.ac.jp>"
+"From: \"\e$B$"\e(B.\" <akr@jaist.ac.jp>")
+
+(decode
+"From: =?US-ASCII?Q?=2E?= =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
+"From: \".\e$B$"\e(B\" <akr@jaist.ac.jp>")
+
+(decode
+"From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)")
 
 "From: < =?ISO-2022-JP?B?GyRCJCIbKEI=?= @jaist.ac.jp>")
 
 (decode
-"From: =?ISO-2022-JP?Q?=1B=24BAA=1B=28B?= <akr@jaist.ac.jp>"
-"From: \e$BAA\e(B <akr@jaist.ac.jp>")
-
-(decode
 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>"
 "From: =?ISO-2022-JP?Q?=1B$BAA=1B(B?= ) <akr@jaist.ac.jp>")
 
 "From: (=?US-ASCII?Q?(?=)foo@bar.baz(=?US-ASCII?Q?))baz@bar.foo(?=)")
 
 (decode
+"From: =?US-ASCII?Q?=22?= <akr@jaist.ac.jp>"
+"From: \"\\\"\" <akr@jaist.ac.jp>")
+
+(decode
 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
 "From: \"\e$B$"\e(B(\e$B$"\e(B)\" <akr@jaist.ac.jp>")
 
 (decode
 "From: =?US-ASCII?Q?=28?= <akr@jaist.ac.jp>, =?US-ASCII?Q?=29?= <akr@jaist.ac.jp>"
-"From: \"(\" <akr@jaist.ac.jp>, \")\" <akr@jaist.ac.jp>")
+"From: \"(\" <akr@jaist.ac.jp>, \")\" <akr@jaist.ac.jp>"
+ignore-76bytes-limit)
 
 (decode
 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>"
 "Subject: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\"")
 
 (decode
+"Subject: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\""
+"Subject: \"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"")
+
+(decode
+"Subject: \" =?ISO-2022-JP?B?GyRCJCIbKEI=?= \""
+"Subject: \" \e$B$"\e(B \"")
+
+(decode
 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
 "Subject: (Re: =?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
 
 "Subject: =?ISO-2022-JP?B??=")
 
 (decode
-"Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a
+"Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a\r
  =?ISO-2022-JP?B?GyRCJCQbKEI=?="
 "Subject: \e$B$"\e(B a \e$B$$\e(B")
 
 (decode
-"Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=
- =?US-ASCII?Q?____________________________________________________________?=
+"Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=\r
+ =?US-ASCII?Q?____________________________________________________________?=\r
  =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?="
 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B")
 
 
 (decode
 "Subject: =?Shift_JIS?B?gqA=?="
-"Subject: \e$B$"\e(B"
-'quoted-encoded-word)
+"Subject: \e$B$"\e(B")
 
 (decode
 "Subject: =?EUC-JP?B?pKI=?="
-"Subject: \e$B$"\e(B"
-'quoted-encoded-word)
+"Subject: \e$B$"\e(B")
 
 (decode
 "Subject: = =?ISO-2022-JP?B?GyRCJCIbKEI=?="
 (decode
 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
 "=?ISO-2022-JP?B?GyRCJCIbKEI=?=: test"
-'permit-sticked-special)
+permit-sticked-special)
 
-;; Section 3: Decoding melancholic inputs.
+;;; Section 3: Decoding melancholic inputs.
 
 (decode
 "From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
-"From:=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>")
+"From:\e$B$"\e(B <akr@jaist.ac.jp>")
 
 (decode
-"From: akr@jaist.ac.jp
+"From: akr@jaist.ac.jp\r
  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\\a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
 "From: akr@jaist.ac.jp (\e$B$"\e(B\\a\e$B$$\e(B)")
 
 (decode
 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
 "From: (a)\e$B$"\e(B <akr@jaist.ac.jp>"
-'permit-sticked-comment)
+permit-sticked-comment)
 
 (decode
 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
 "From: \e$B$"\e(B(b) <akr@jaist.ac.jp>"
-'permit-sticked-comment)
+permit-sticked-comment)
 
 (decode
 "From: (a)=?ISO-2022-JP?B?GyRCJCIbKEI=?=(b) <akr@jaist.ac.jp>"
 "From: (a)\e$B$"\e(B(b) <akr@jaist.ac.jp>"
-'permit-sticked-comment)
+permit-sticked-comment)
 
 (decode
 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
 "From: \"a\"=?ISO-2022-JP?B?GyRCJCIbKEI=?=\"b\" <akr@jaist.ac.jp>")
 
 (decode
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
  <akr@jaist.ac.jp>"
 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
-'permit-sticked-comment)
+permit-sticked-comment)
 
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
-'permit-sticked-special)
+permit-sticked-special)
 
 (decode
 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
 (decode
 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
-'permit-sticked-special)
+permit-sticked-special)
 
 (decode
 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
 (decode
 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
-'permit-sticked-special)
+permit-sticked-special)
 
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
-'permit-sticked-special)
+permit-sticked-special)
 
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
-'ignore-76bytes-limit 'permit-sticked-special)
+ignore-76bytes-limit permit-sticked-special)
 
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
 (decode
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
-'ignore-76bytes-limit 'permit-sticked-special)
+ignore-76bytes-limit permit-sticked-special)
 
 (decode
 "Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
-"Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?=")
+"Subject:\e$B$"\e(B")
 
-(decode
-"Subject:=?ISO-2022-JP?B?GyRCJCIbKEI=?="
-"Subject:\e$B$"\e(B"
-'permit-sticked-special)
-
-;; Section 4: Decoding invalid inputs.
+;;; Section 4: Decoding invalid inputs.
 
 (decode
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  <akr@jaist.ac.jp>"
 "From: =?ISO-2022-JP?B?GyRCJCIbKEI=?==?ISO-2022-JP?B?GyRCJCQbKEI=?= <akr@jaist.ac.jp>")
 
 (decode
-"From: akr@jaist.ac.jp
+"From: akr@jaist.ac.jp\r
  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)"
 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=a=?ISO-2022-JP?B?GyRCJCQbKEI=?=)")
 
 (decode
-"From: akr@jaist.ac.jp
+"From: akr@jaist.ac.jp\r
  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
 "From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)")
 
 (decode
-"From: akr@jaist.ac.jp
+"From: akr@jaist.ac.jp\r
  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
-'ignore-76bytes-limit)
+ignore-76bytes-limit)
 
 (decode
 "Subject: =?=?ISO-2022-JP?B?GyRCJCIbKEI=?="
 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?="
 "Subject: =?ISO-2022-JP?B?GyRCNFg-dBsoQg==?=")
 
-;; Section 5: Encoding proper inputs.
+(decode
+"Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= =?= =?ISO-2022-JP?B?GyRCJCIbKEI=?="
+"Subject: \e$B$"\e(B =?= \e$B$"\e(B")
+
+;;; Section 5: Encoding proper inputs.
 
 (encode
 "From: \e$B$"\e(B <akr@jaist.ac.jp>"
 "From: =?ISO-2022-JP?B?GyRCJCIbKEIgGyRCJCQbKEI=?= <akr@jaist.ac.jp>")
 
 (encode
+"From: \e.A\eN! \eN! <akr@jaist.ac.jp>"\e*B
+"From: =?ISO-8859-1?Q?=A1_=A1?= <akr@jaist.ac.jp>")
+
+(encode
 "From: \"\e$B$"\e(B(\e$B$"\e(B)\" <akr@jaist.ac.jp>"
 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>")
 
 (encode
+"From: \e$B$"\e(B\"a\" <akr@jaist.ac.jp>"
+"From: =?ISO-2022-JP?B?GyRCJCIbKEJh?= <akr@jaist.ac.jp>")
+
+(encode
+"From: \"a\"\e$B$"\e(B <akr@jaist.ac.jp>"
+"From: =?ISO-2022-JP?B?YRskQiQiGyhC?= <akr@jaist.ac.jp>")
+
+(encode
 "From: \"a\\\"b\e$B$"\e(Bc\\\\\" <akr@jaist.ac.jp>"
 "From: =?ISO-2022-JP?B?YSJiGyRCJCIbKEJjXA==?= <akr@jaist.ac.jp>")
 
 (encode
 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B"
-"Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=
- =?US-ASCII?Q?____________________________________________________________?=
+"Subject: =?ISO-2022-JP?B?GyRCMCQbKEIgICAgICAgICAgICAgICAgICAgICAgICAgICAg?=\r
+ =?US-ASCII?Q?____________________________________________________________?=\r
  =?ISO-2022-JP?B?ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBskQlJfGyhC?=")
 
 (encode
 "Subject: \e$B0$\e(B                                                                                                                          \e$BR_\e(B"
 "Subject: =?ISO-2022-JP?B?GyQpQrCkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDS3w=="
-'ignore-76bytes-limit 'ignore-75bytes-limit)
+ignore-76bytes-limit ignore-75bytes-limit)
 
 (encode
 "From: \e.A\eN! <akr@jaist.ac.jp>"\e*B
 
 (encode
 "Subject: \e$B$"\e(B a \e.H\eN`"\e*B
-"Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?=")
+("Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?Q?=E0?="
+ "Subject: =?ISO-2022-JP?B?GyRCJCIbKEI=?= a =?ISO-8859-8?B?4A==?="))
 
 (encode
 "Subject: \e.H\eN`\e$BNm\e(B"\e*B
-"Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?=")
+("Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
+ "Subject: =?ISO-8859-8?B?4A==?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="))
 
 (encode
 "Subject: \e.H\eN` \e$BNm\e(B"\e*B
-'("Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
-  "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?IBskQk5tGyhC?="))
+("Subject: =?ISO-8859-8?Q?=E0_?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
+ "Subject: =?ISO-8859-8?Q?=E0?= =?ISO-2022-JP?B?IBskQk5tGyhC?="
+ "Subject: =?ISO-8859-8?B?4CA=?= =?ISO-2022-JP?B?GyRCTm0bKEI=?="
+ "Subject: =?ISO-8859-8?B?4A==?= =?ISO-2022-JP?B?IBskQk5tGyhC?="))
 
 (encode
 "Subject: \e.F\eNC\e$B4X?t\e(B"\e*B
-'("Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
-  "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="))
+("Subject: =?ISO-8859-7?Q?=C3?= =?ISO-2022-JP?B?GyRCNFg/dBsoQg==?="
+ "Subject: =?ISO-2022-JP-2?B?Gy5GG05DGyRCNFg/dBsoQg==?="))
 
 (encode
 "From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
-"From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=
+"From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
  =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
 
-;; Section 6: Encoding melancholic inputs.
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaa (\e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+("From: aaaaaaaaaaaaaaaaaaaaa
+ (=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+ "From: aaaaaaaaaaaaaaaaaaaaa (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
+ =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaa( \e$B$"$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+("From: aaaaaaaaaaaaaaaaaaaaa(
+ =?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+ "From: aaaaaaaaaaaaaaaaaaaaa( =?ISO-2022-JP?B?GyRCJCIbKEI=?=
+ =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+("From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=
+ )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+ "From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEI=?=
+ =?ISO-2022-JP?B?GyRCJCQbKEI=?= )aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"))
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"$$\e(B) aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIkJBsoQg==?=)\r
+ aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B \e$B$$\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaa(=?ISO-2022-JP?B?GyRCJCIbKEIgCg==?=\r
+ =?ISO-2022-JP?B?GyRCJCQbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From:\r
+ (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From:\r
+ (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+separate-sticked-tokens-for-fold)
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)=?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaa?=\r
+ =?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?= <akr@jaist.ac.jp>"
+encode-long-ascii-string-for-fold permit-sticked-special)
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ aaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+divide-atom-for-fold)
+
+(encode
+"From: (\e$B$"\e(B)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+("From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+ "From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ <akr@jaist.ac.jp>")
+ignore-76bytes-limit)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B)aa <akr@jaist.ac.jp>"
+"From: =?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=\r
+ =?US-ASCII?Q?a?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aa <akr@jaist.ac.jp>"
+encode-long-ascii-string-for-fold)
+
+(encode
+"From: \e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\e$B$"\e(B)aa <akr@jaist.ac.jp>"
+"From: =?ISO-2022-JP?B?GyRCJCIbKEIgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==?=\r
+ =?US-ASCII?Q?aaaaaaaaaaaaaaa?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)aa"
+encode-long-ascii-string-for-fold)
+
+(encode
+"From: (\e$B$"\e(B) <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=) <akr@jaist.ac.jp>")
+
+(encode
+"From: ((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From: ((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From: (((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=)))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: ((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From: ((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=))))))))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From: (((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=)))))))))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: ((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From:\r
+ ((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: ((((((((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From:\r
+ ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From:\r
+ ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (((((((((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B))))))))))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From:\r
+ ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((\e$B$"\e(B)))))))))))))))))))))))))))))))))))))))))))))))))))))))) <akr@jaist.ac.jp>"
+"From:\r
+ ((((((((((((((((((((((((((((((((((((((((((((((((((((((=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyhC?=((=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))))))))))=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyhC?=))))))))))))))))))))))))\r
+ <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: ()(\e$B$"\e(B)() <akr@jaist.ac.jp>"
+"From: ()(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)() <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)()()()()()()()()()()()()()()()()()()()\r
+  <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
+"From:\r
+ (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)()()()()()()()()()()()()()()()()()()()()()()\r
+  <akr@jaist.ac.jp>")
+
+(encode
+"From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=)()()()()()()()()()()()()()()()()()()()()()()()\r
+  <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"From: (\e$B$"\e(B)()()()()()()()()()()()()()()()()()()()()()()()()()()() <akr@jaist.ac.jp>"
+"From: (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=)()()()()()()()()()()()()()()()(=?ISO-2022-JP?B?GyhC?=\r
+ =?ISO-2022-JP?B?GyhC?=)()()()()()()()()()()() <akr@jaist.ac.jp>"
+zero-characters-encoded-word-hack)
+
+(encode
+"To: l@d (\e$B$"\e(B aaa)(\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?= aaa)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
+
+(encode
+"To: l@d (\e$B$"\e(B aaaa)(\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ aaaa)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
+
+(encode
+"To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
+
+(encode
+"To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEIgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=?=\r
+ =?US-ASCII?Q?aaaaaaaaaaaaaaaaaa?=)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
+encode-long-ascii-string-for-fold)
+
+(encode
+"To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEIgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=?=\r
+ =?US-ASCII?Q?aaaaaaaaaaaaaaaaaa?=()=?ISO-2022-JP?B?GyRCJCIbKEI=?=)"
+encode-long-ascii-string-for-fold)
+
+(encode
+"To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \e$B$"\e(B)(\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?= aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
+
+(encode
+"To: l@d (\e$B$"\e(B aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \e$B$"\e(B)(\e$B$"\e(B)"
+"To: l@d (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ =?ISO-2022-JP?B?GyRCJCIbKEI=?=)(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)")
+
+(encode
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ?\e$(C$!\e(B?"
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =?EUC-KR?B?P6ShPw==?=")
+
+(encode
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ?\e$(C$!\e(B?"
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=")
+
+(encode
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ?\e$(C$!\e(B?"
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=")
+
+(encode
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ?\e$(C$!\e(B?"
+"Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ =?EUC-KR?B?P6ShPw==?=")
+
+;----------------------------------------------------------------------------
+
+;;; Section 6: Encoding melancholic inputs.
 
 (encode
 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
-"From: akr@jaist.ac.jp
+"From: akr@jaist.ac.jp\r
  (=?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
-'ignore-76bytes-limit)
+ignore-76bytes-limit)
 
 (encode
 "From: akr@jaist.ac.jp (\e$B$"\e(B(\e$B$$\e(B)\e$B$&\e(B)"
-"From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=
- =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"From: akr@jaist.ac.jp (=?ISO-2022-JP?B?GyRCJCIbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=(=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  =?ISO-2022-JP?B?GyhC?=)=?ISO-2022-JP?B?GyRCJCYbKEI=?=)"
-'zero-characters-encoded-word-hack)
+zero-characters-encoded-word-hack)
 
 (encode
 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
 "From: =?ISO-2022-JP?B?GyRCJCIbKEIoGyRCJCIbKEIp?= <akr@jaist.ac.jp>"
-'encode-sticked-comment-as-atom)
+encode-sticked-comment-as-atom)
 
 (encode
 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?=(=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
  <akr@jaist.ac.jp>"
-'permit-sticked-comment)
+permit-sticked-comment)
 
 (encode
 "From: \e$B$"\e(B(\e$B$"\e(B) <akr@jaist.ac.jp>"
-"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)
+"From: =?ISO-2022-JP?B?GyRCJCIbKEI=?= (=?ISO-2022-JP?B?GyRCJCIbKEI=?=)\r
  <akr@jaist.ac.jp>"
-'separate-sticked-comment)
+separate-sticked-comment)
 
 (encode
 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
-'permit-sticked-special)
+permit-sticked-special)
 
 (encode
 "To: \e$B$"\e(B<akr@jaist.ac.jp>"
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
-'separate-sticked-special)
+separate-sticked-special)
 
 (encode
 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
 "To: <akr@jaist.ac.jp>,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
-'permit-sticked-special)
+permit-sticked-special)
 
 (encode
 "To: <akr@jaist.ac.jp>,\e$B$"\e(B<akr@jaist.ac.jp>"
 "To: <akr@jaist.ac.jp>, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
-'separate-sticked-special)
+separate-sticked-special)
 
 (encode
 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
 "To: akr@jaist.ac.jp,=?ISO-2022-JP?B?GyRCJCIbKEI=?=<akr@jaist.ac.jp>"
-'permit-sticked-special)
+permit-sticked-special)
 
 (encode
 "To: akr@jaist.ac.jp,\e$B$"\e(B<akr@jaist.ac.jp>"
 "To: akr@jaist.ac.jp, =?ISO-2022-JP?B?GyRCJCIbKEI=?= <akr@jaist.ac.jp>"
-'separate-sticked-special)
+separate-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:akr@jaist.ac.jp;"
-'permit-sticked-special)
+permit-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:akr@jaist.ac.jp;"
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= :akr@jaist.ac.jp;"
-'separate-sticked-special)
+separate-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<akr@jaist.ac.jp>;"
-'ignore-76bytes-limit 'permit-sticked-special)
+ignore-76bytes-limit permit-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
-"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  =?ISO-2022-JP?B?GyhC?=<akr@jaist.ac.jp>;"
-'zero-characters-encoded-word-hack 'permit-sticked-special)
+zero-characters-encoded-word-hack permit-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:\e$B$$\e(B<akr@jaist.ac.jp>;"
-"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=
+"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
  <akr@jaist.ac.jp>;"
-'separate-sticked-special)
+separate-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
 "To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
-'ignore-76bytes-limit 'permit-sticked-special)
+ignore-76bytes-limit permit-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
-"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=
- =?ISO-2022-JP?B?GyhC?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=
+"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?=:=?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
+ =?ISO-2022-JP?B?GyhC?=<foo@bar>,=?ISO-2022-JP?B?GyRCJCYbKEI=?=\r
  =?ISO-2022-JP?B?GyhC?=<foo@bar>;,=?ISO-2022-JP?B?GyRCJCgbKEI=?=<foo@bar>"
-'zero-characters-encoded-word-hack 'permit-sticked-special)
+zero-characters-encoded-word-hack permit-sticked-special)
 
 (encode
 "To: \e$B$"\e(B:\e$B$$\e(B<foo@bar>,\e$B$&\e(B<foo@bar>;,\e$B$(\e(B<foo@bar>"
-"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=
- <foo@bar>, =?ISO-2022-JP?B?GyRCJCYbKEI=?= <foo@bar>;,
+"To: =?ISO-2022-JP?B?GyRCJCIbKEI=?= : =?ISO-2022-JP?B?GyRCJCQbKEI=?=\r
+ <foo@bar>, =?ISO-2022-JP?B?GyRCJCYbKEI=?= <foo@bar>;,\r
  =?ISO-2022-JP?B?GyRCJCgbKEI=?= <foo@bar>"
-'separate-sticked-special)
-
-;; Section 7: Using quoted-encoded-words.
-;
-;; quoted-encoded-word \e$BI=8=\e(B
-; 
-; RFC2047 \e$B$N%G%3!<%@$O@x:_E*$K\e(B(\e$B%G%3!<%I7k2L$G$J$/\e(B) encoded-word \e$B$=$N$b$N$r\e(B
-; \e$B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#\e(B
-;
-; 1. \e$BCN$i$J$$\e(B charset \e$B$b$7$/$O\e(B encoding \e$B$,;XDj$5$l$F$$$?$H$-!#\e(B
-;  =?unknown-charset?known-encoding?some-encoded-text?=
-;  =?known-charset?unknown-encoding?some-encoded-text?=
-;  =?unknown-charset?unknown-encoding?some-encoded-text?=
-;
-; 2. \e$B%G%3!<%I$G$-$F$bFbMF$,7uF]$9$.$k$H$-!#\e(B
-;  Non ASCII \e$B3HD%\e(B RFC822 \e$B$NCf$K\e(B =?US-ASCII?Q?=0D=0A=0D=0A?= \e$B$N%G%3!<%I\e(B
-; \e$B7k2L$rKd$a9~$`$N$O4m81$9$.$k!#\e(B
-;
-; \e$B$^$?!"%G%3!<%@$O\e(B encoded-word \e$B$N$h$&$K$_$($k%G%3!<%I7k2L$r=PNO$7$J$1\e(B
-; \e$B$l$P$J$i$J$$$3$H$b$"$k!#\e(B
-;
-;  =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?=
-;
-; \e$B%G%3!<%@$,C1$J$kJ8;zNs$r=PNO$9$k>l9g!"C1=c$K$d$k$H\e(B encoded-word \e$B$=$N$b$N$H\e(B
-; encoded-word \e$B$N$h$&$K$_$($kJ8;zNs$r6hJL$G$-$J$$!#\e(B
-; \e$B$3$3$G$OJ8;zNsCf$G$=$l$i$r3N<B$K6hJL$7$FI=8=$9$kJ}K!$r<($9!#\e(B
-;
-; rule 1: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
-;  \e$B%^%C%A$7$J$$ItJ,$O$=$NItJ,$N$^$^$NFbMF$rI=$9!#\e(B
-; 
-; rule 2: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
-;  \e$B%^%C%A$9$kItJ,$O\e(B charset \e$B$N@hF,$K\e(B * \e$B$,$$$/$DIU$$$F$$$k$+$GFbMF$N\e(B
-;  \e$B2r<a$rJQ$($k!#\e(B
-;
-;  \e$B6v?t$N>l9g\e(B(0, 2, 4, ...): charset \e$B$N@hF,$N\e(B * \e$B$N?t$rH>J,$K$7$?J8;zNs\e(B
-;  \e$B4q?t$N>l9g\e(B(1, 3, 5, ...): charset \e$B$N@hF,$N\e(B * \e$B$N?t$rH>J,\e(B(\e$B>.?tE@0J2<\e(B
-;   \e$B@Z<N$F\e(B)\e$B$K$7$F!"$=$l$r\e(B encoded-word \e$B$H;W$C$F%G%3!<%I$7$?J8;zNs!#\e(B
-;
-; NOTE: * \e$B$r\e(B quoted-encoded-word \e$BI=8=$N\e(B quote \e$BJ8;z$H8F$V!#\e(B
-;
-; NOTE: \e$B8=;~E@\e(B(1998/07/19)\e$B$G\e(B IANA \e$B$K$O\e(B * \e$B$r4^$`\e(B charset \e$B$O\e(B
-;  \e$BEPO?$5$l$F$$$J$$$N$G!"$=$l$i$N\e(B charset \e$B$r;H$C$?\e(B
-;  encoded-word \e$B$rI=8=$9$k$K$O\e(B * \e$B$r\e(B 1\e$B$D$D$1$k$3$H$K$J$k!#\e(B
-;
-;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&\e(Bencoded-word : =?*US-ASCII?Q?abcdef?=
-;
-;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B        : =?US-ASCII?Q?abcdef?=
-;  =?*US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B       : =?**US-ASCII?Q?abcdef?=
-;  =?**US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B     : =?****US-ASCII?Q?abcdef?=
-;  =?***US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B    : =?******US-ASCII?Q?abcdef?=
-;  =?US-ASCII*?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?US-ASCII*?Q?abcdef?=
-;  =?U*S-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?U*S-ASCII?Q?abcdef?=
-;
-; NOTE: encoded-word \e$B$K8+$($kJ8;zNs$G\e(B * \e$B$,G\A}$5$l$k$N$O\e(B charset \e$B$N\e(B
-;  \e$B@hF,$@$1$G$"$j!"\e(Bencoding \e$B$d\e(B encoded-text \e$B$O$?$H$(\e(B * \e$B$,F~$C$F$$$F$b\e(B
-;  \e$BJQ2=$7$J$$!#$^$?!"\e(Bcharset \e$BCf$G$b\e(B \e$B@hF,0J30$N\e(B * \e$B$OJQ2=$7$J$$!#\e(B
-;
-; rule 3: \e$BJ8;zNsA4BN$NFbMF$O!"\e(Brule 1 \e$B$H\e(B rule 2 \e$B$G2r<a$7$?3FItJ,$N\e(B
-;   \e$BJ8;zNs$rC1=c$KO"7k$7$?J8;zNs$H$9$k!#\e(B
-;
-; NOTE: RFC2047 \e$B$G$O\e(B encoded-word \e$B$,6uGr$G6h@Z$i$l$J$1$l$P$J$i$J$$$H$+!"\e(B
-;  encoded-word \e$B$O\e(B 75bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"\e(B
-;  encoded-word \e$B$,4^$^$l$k9T$O\e(B 76bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$J$I$H$$$&\e(B
-;  \e$B5,Ls$,$"$k$,!"\e(Bquoted-encoded-word \e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#\e(B
-;  \e$BC1=c$K\e(B encoded-word \e$BFbIt$NJ8K!$@$1$rMxMQ$9$k!#\e(B
-;  (\e$BK\<AE*$K$O0[$J$kJ8K!$r:NMQ$9$k$3$H$b2DG=$G$"$k$,!"\e(BRFC2047 \e$B$K7I0U$r\e(B
-;  \e$BI=$7$F\e(B encoded-word \e$B$NJ8K!$r:NMQ$9$k!#\e(B)
-;
-; NOTE: quoted-encoded-word \e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#\e(B
-;  =?*US-ASCII?Q?ab \e$B$H\e(B cd?= \e$B$H$$$&\e(B quoted-encoded-word \e$BI=8=$7$?J8;zNs$O\e(B
-;  \e$B$=$l$>$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs\e(B
-;  =?*US-ASCII?Q?abcd?= \e$B$O\e(B abcd \e$B$H$$$&J8;zNs$rI=8=$9$k$3$H$K$J$j!"\e(B
-;  \e$B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#\e(B
-;
-;  \e$B$3$l$O$H$/$K\e(B Non ASCII \e$B3HD%\e(B RFC822 \e$B$NCf$K\e(B quoted-encoded-word \e$BI=8=$r\e(B
-;  \e$BKd$a9~$`$H$-$K5$$rIU$1$J$1$l$P$J$i$J$$!#\e(B(\e$BKd$a9~$s$@7k2L$O@5$7$$\e(B
-;  quoted-encoded-word \e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#\e(B)
+separate-sticked-special)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6ShPw==?=()aaaaa\r
+ <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaa <akr@jaist.ac.jp>"
+("From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()aaaaa <akr@jaist.ac.jp>"
+ "From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaa <akr@jaist.ac.jp>")
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=
+ =?US-ASCII?Q?=3F?=()aaaaa <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+("From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+ "From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>")
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From:\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+"From:\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <akr@jaist.ac.jp>"
+("From:\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?EUC-KR?B?P6Sh?=\r
+ =?US-ASCII?Q?=3F?=()=?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=\r
+ =?US-ASCII?Q?aaaaaaaaaaaaaaaa?= <akr@jaist.ac.jp>"
+ "From: =?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=
+ =?US-ASCII?Q?aa?=()=?US-ASCII?Q?=3F?=\r 
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
+ <akr@jaist.ac.jp>")
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<akr@jaist.ac.jp>"
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<akr@jaist.ac.jp>"
+"From:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+(encode
+"From: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()?\e$(C$!\e(B?()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<akr@jaist.ac.jp>"
+"From:\r
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()=?US-ASCII?Q?=3F?=\r
+ =?EUC-KR?B?pKE/?=()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<akr@jaist.ac.jp>"
+permit-sticked-comment)
+
+;----------------------------------------------------------------------------
+
+;;; Section 7: Using embedded-encoded-words.
+;;
+;; embedded-encoded-word \e$BI=8=\e(B
+;; 
+;; RFC2047 \e$B$N%G%3!<%@$O@x:_E*$K\e(B(\e$B%G%3!<%I7k2L$G$J$/\e(B) encoded-word \e$B$=$N$b$N$r\e(B
+;; \e$B=PNO$7$J$1$l$P$J$i$J$$$3$H$,$"$k!#\e(B
+;;
+;; 1. \e$BCN$i$J$$\e(B charset \e$B$b$7$/$O\e(B encoding \e$B$,;XDj$5$l$F$$$?$H$-!#\e(B
+;;  =?unknown-charset?known-encoding?some-encoded-text?=
+;;  =?known-charset?unknown-encoding?some-encoded-text?=
+;;  =?unknown-charset?unknown-encoding?some-encoded-text?=
+;;
+;; 2. \e$B%G%3!<%I$G$-$F$bFbMF$,7uF]$9$.$k$H$-!#\e(B
+;;  Non ASCII \e$B3HD%\e(B RFC822 \e$B$NCf$K\e(B =?US-ASCII?Q?=0D=0A=0D=0A?= \e$B$N%G%3!<%I\e(B
+;; \e$B7k2L$rKd$a9~$`$N$O4m81$9$.$k!#\e(B
+;;
+;; \e$B$^$?!"%G%3!<%@$O\e(B encoded-word \e$B$N$h$&$K$_$($k%G%3!<%I7k2L$r=PNO$7$J$1\e(B
+;; \e$B$l$P$J$i$J$$$3$H$b$"$k!#\e(B
+;;
+;;  =?US-ASCII?Q?=3D=3FUS-ASCII=3FQ=3Ftext=3F=3D?=
+;;
+;; \e$B%G%3!<%@$,C1$J$kJ8;zNs$r=PNO$9$k>l9g!"C1=c$K$O\e(B encoded-word \e$B$=$N$b$N$H\e(B
+;; encoded-word \e$B$N$h$&$K$_$($kJ8;zNs$r6hJL$G$-$J$$!#\e(B
+;; \e$B$3$3$G$OJ8;zNsCf$G$=$l$i$r3N<B$K6hJL$7$FI=8=$9$kJ}K!$r<($9!#\e(B
+
+;;;; 1999/05/26 \e$B?7$7$$I=8=$r;W$$$D$$$?!#\e(B
+;;;; \e$BG$0U$NJ8;zNsCf$K4^$^$l$kFCDj$N\e(B =?charset?encoding?text?= \e$B$H$$$&$r6hJL$9$l$PNI$$$+$i!"\e(B
+;;;; =?charset?encoding?text?=?charset?encoding?text?=...?charset?encoding?text?= \e$B$H$$$&\e(B
+;;;; \e$B%Q%?!<%s$G:GD9%^%C%A$r9T$$!"LdBj$N\e(B encoded-word \e$B$+$I$&$+$r\e(B charset \e$B$K%^!<%-%s%0$7$F$*$1$PNI$$!#\e(B
+;;;; + \e$B$O\e(B 3\e$BG\A}$G$J$/!"G\A}$G:Q$`!#\e(B
+
+;;
+;; rule 1: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
+;;  \e$B%^%C%A$7$J$$ItJ,$O$=$NItJ,$N$^$^$NFbMF$rI=$9!#\e(B
+;; 
+;; rule 2: \e$BJ8;zNsCf$G\e(B =?charset?encoding?text?= \e$B$H$$$&%Q%?!<%s$K\e(B
+;;  \e$B%^%C%A$9$kItJ,$O\e(B charset \e$B$N@hF,$K\e(B + \e$B$,$$$/$DIU$$$F$$$k$+$GFbMF$N\e(B
+;;  \e$B2r<a$rJQ$($k!#\e(B
+;;
+;;  3\e$B$rK!$H$7$F\e(B0\e$B$HEy$7$$>l9g\e(B(0, 3, 6, ...): charset \e$B$N@hF,$N\e(B + \e$B$N?t$r\e(B
+;;    1/3 \e$B$K$7$?J8;zNs\e(B
+;;  3\e$B$rK!$H$7$F\e(B1\e$B$HEy$7$$>l9g\e(B(1, 4, 7, ...): charset \e$B$N@hF,$N\e(B + \e$B$N?t$r\e(B
+;;    1/3 (\e$B>.?tE@0J2<@Z<N$F\e(B)\e$B$K$7$F!"$=$l$r\e(B encoded-word \e$B$H;W$C$F%G\e(B
+;;    \e$B%3!<%I$7$?J8;zNs!#\e(B
+;;  3\e$B$rK!$H$7$F\e(B2\e$B$HEy$7$$>l9g\e(B(2, 5, 8, ...): charset \e$B$N@hF,$N\e(B + \e$B$N?t$r\e(B
+;;    1/3 (\e$B>.?tE@0J2<@Z<N$F\e(B)\e$B$K$7$F!":G8e$N\e(B = \e$B$r<h$j=|$$$?J8;zNs\e(B
+;;
+;;  =?c?e?t?=?c?e?t?=... \e$B$H$$$&$h$&$K!"%Q%?!<%s$N@hF,$N\e(B = \e$B$H\e(B \e$BKvHx$N\e(B = 
+;;  \e$B$,=E$J$k>l9g!"4q?tHVL\$N$b$N$KBP$7$F>e5-$N%k!<%k$rE,MQ$9$k!#\e(B
+;;
+;; NOTE: + \e$B$r\e(B embedded-encoded-word \e$BI=8=$N\e(B quote \e$BJ8;z$H8F$V!#\e(B
+;;
+;; NOTE: \e$B8=;~E@\e(B(1998/07/19)\e$B$G\e(B IANA \e$B$K$O\e(B + \e$B$r4^$`\e(B charset \e$B$O\e(B
+;;  \e$BEPO?$5$l$F$$$J$$$N$G!"$=$l$i$N\e(B charset \e$B$r;H$C$?\e(B
+;;  encoded-word \e$B$rI=8=$9$k$K$O\e(B + \e$B$r\e(B 1\e$B$D$D$1$k$3$H$K$J$k!#\e(B
+;;
+;;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&\e(Bencoded-word : =?+US-ASCII?Q?abcdef?=
+;;
+;;  =?US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B       : =?US-ASCII?Q?abcdef?=
+;;  =?+US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?+++US-ASCII?Q?abcdef?=
+;;  =?++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B     : =?++++++US-ASCII?Q?abcdef?=
+;;  =?+++US-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B    : =?+++++++++US-ASCII?Q?abcdef?=
+;;  =?US-ASCII+?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?US-ASCII+?Q?abcdef?=
+;;  =?U+S-ASCII?Q?abcdef?= \e$B$H$$$&J8;zNs\e(B      : =?U+S-ASCII?Q?abcdef?=
+;;
+;;  =?US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B        : =?++US-ASCII?Q?abcdef?=
+;;  =?+US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B       : =?+++++US-ASCII?Q?abcdef?=
+;;  =?++US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B     : =?++++++++US-ASCII?Q?abcdef?=
+;;  =?+++US-ASCII?Q?abcdef? \e$B$H$$$&J8;zNs\e(B    : =?+++++++++++US-ASCII?Q?abcdef?=
+;;
+;; NOTE: encoded-word \e$B$K8+$($kJ8;zNs$G\e(B + \e$B$,\e(B 3\e$BG\A}$5$l$k$N$O\e(B charset \e$B$N\e(B
+;;  \e$B@hF,$@$1$G$"$j!"\e(Bencoding \e$B$d\e(B encoded-text \e$B$O$?$H$(\e(B + \e$B$,F~$C$F$$$F$b\e(B
+;;  \e$BJQ2=$7$J$$!#$^$?!"\e(Bcharset \e$BCf$G$b\e(B \e$B@hF,0J30$N\e(B + \e$B$OJQ2=$7$J$$!#\e(B
+;;
+;; NOTE: charset \e$B$H\e(B encoding \e$B$K$O\e(B = \e$B$O4^$^$l$J$$$N$G\e(B 1\e$BJ8;z0J>e=E$J$k$3\e(B
+;;  \e$B$H$O$J$$!#\e(B
+;;
+;; rule 3: \e$BJ8;zNsA4BN$NFbMF$O!"\e(Brule 1 \e$B$H\e(B rule 2 \e$B$G2r<a$7$?3FItJ,$N\e(B
+;;   \e$BJ8;zNs$rC1=c$KO"7k$7$?J8;zNs$H$9$k!#\e(B
+;;
+;; NOTE: RFC2047 \e$B$G$O\e(B encoded-word \e$B$,6uGr$G6h@Z$i$l$J$1$l$P$J$i$J$$$H$+!"\e(B
+;;  encoded-word \e$B$O\e(B 75bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"\e(B
+;;  encoded-word \e$B$,4^$^$l$k9T$O\e(B 76bytes \e$B0J2<$G$J$1$l$P$J$i$J$$$H$+!"\e(B
+;;  encoded-word \e$B$,\e(B quoted-string \e$BFb$K$OB8:_$G$-$J$$$H$+!"\e(B
+;;  encoded-text \e$B$,\e(B 1byte \e$B0J>e$J$1$l$P$J$i$J$$$J$I$H$$$&\e(B
+;;  \e$B5,Ls$,$"$k$,!"\e(Bembedded-encoded-word \e$BI=8=$G$O$=$l$i$O:NMQ$7$J$$!#\e(B
+;;  \e$BC1=c$K\e(B encoded-word \e$BFbIt$NJ8K!$@$1$r\e(B(\e$B=$@5$7$F\e(B)\e$BMxMQ$9$k!#\e(B
+;;  (\e$BK\<AE*$K$O0[$J$kJ8K!$r:NMQ$9$k$3$H$b2DG=$G$"$k$,!"\e(BRFC2047 \e$B$K7I0U$r\e(B
+;;  \e$BI=$7$F\e(B encoded-word \e$B$NJ8K!$r:NMQ$9$k!#\e(B)
+;;
+;; NOTE: embedded-encoded-word \e$BI=8=$7$?J8;zNs$NO"7k$O0BA4$G$O$J$$!#\e(B
+;;  =?+US-ASCII?Q?ab \e$B$H\e(B cd?= \e$B$H$$$&\e(B embedded-encoded-word \e$BI=8=$7$?J8;zNs$O\e(B
+;;  \e$B$=$l$>$l$=$NJ8;zNs$=$N$b$N$rI=8=$9$k$,!"$=$l$i$rO"7k$7$?J8;zNs\e(B
+;;  =?+US-ASCII?Q?abcd?= \e$B$O\e(B abcd \e$B$H$$$&J8;zNs$rI=8=$9$k$3$H$K$J$j!"\e(B
+;;  \e$B$=$l$>$l$NFbMF$NO"7k$H$O$J$i$J$$!#\e(B
+;;  \e$B$3$N>l9g!"\e(B=?+++US-ASCII?Q?abcd?= \e$B$H$7$J$1$l$P$J$i$J$$!#\e(B
+;;
+;;  \e$B$3$l$O$H$/$K\e(B Non ASCII \e$B3HD%\e(B RFC822 \e$B$NCf$K\e(B embedded-encoded-word \e$BI=8=$r\e(B
+;;  \e$BKd$a9~$`$H$-$K5$$rIU$1$J$1$l$P$J$i$J$$!#\e(B(\e$BKd$a9~$s$@7k2L$O@5$7$$\e(B
+;;  embedded-encoded-word \e$BI=8=$H$O$J$i$J$$$+$bCN$l$J$$!#\e(B)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?="
-"Subject: =?*Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+"Subject: =?+Unknown-Charset?B?gqA=?="
+embedded-encoded-word)
 
 (decode
-"Subject: =?US-ASCII?G?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
-"Subject: =?*US-ASCII?G?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
-'quoted-encoded-word)
+"Subject: =?US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
+"Subject: =?+US-ASCII?G?H4sIACqUszUAA8tIzcnJBwCGphA2BQAAAA==?="
+embedded-encoded-word)
 
 (decode
-"Subject: =?US-ASCII?Unknown-Encoding?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
-"Subject: =?*US-ASCII?Unknown-Encoding?H4sIAMsIsjUCA0tMSk5JTQMA7zmOSwYAAAA?="
-'quoted-encoded-word)
+"Subject: =?US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
+"Subject: =?+US-ASCII?Unknown-Encoding?H4sIAGOUszUAAwtyczYyMDEHAEpvqpIHAAAA?="
+embedded-encoded-word)
+
+(decode
+"Subject: =?ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?=\r
+ =?ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
+"Subject: =?+ISO-2022-JP?G?H4sIAGiTszUAA5NWcVIBAhMtaQ0nAGLSaeEMAAAA?==?+ISO-2022-JP?G?H4sIAH6TszUAA5NWcVIxV3FTyVbxldZwAgAuIikKDgAAAA==?="
+embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?= =?Unknown-Charset?B?gqA=?="
-"Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+"Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
+embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?=  =?Unknown-Charset?B?gqA=?="
-"Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+"Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
+embedded-encoded-word)
 
 (decode
-"Subject: =?Unknown-Charset?B?gqA=?=
+"Subject: =?Unknown-Charset?B?gqA=?=\r
  =?Unknown-Charset?B?gqA=?="
-"Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+"Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
+embedded-encoded-word)
 
 (decode
-"Subject: =?Unknown-Charset?B?gqA=?=
-       =?Unknown-Charset?B?gqA=?="
-"Subject: =?*Unknown-Charset?B?gqA=?==?*Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+"Subject: =?Unknown-Charset?B?gqA=?=\r
+\t=?Unknown-Charset?B?gqA=?="
+"Subject: =?+Unknown-Charset?B?gqA=?==?+Unknown-Charset?B?gqA=?="
+embedded-encoded-word)
 
 (decode
 "Subject: a=?Unknown-Charset?B?gqA=?="
 "Subject: a=?Unknown-Charset?B?gqA=?="
-'quoted-encoded-word)
+embedded-encoded-word)
 
 (decode
 "Subject: =?Unknown-Charset?B?gqA=?=b"
 "Subject: =?Unknown-Charset?B?gqA=?=b"
-'quoted-encoded-word)
+embedded-encoded-word)
 
 (decode
 "Subject: a=?Unknown-Charset?B?gqA=?=b"
 "Subject: a=?Unknown-Charset?B?gqA=?=b"
-'quoted-encoded-word)
+embedded-encoded-word)
 
 (decode
 "Subject: a =?Unknown-Charset?B?gqA=?= b"
-"Subject: a =?*Unknown-Charset?B?gqA=?= b"
-'quoted-encoded-word)
+"Subject: a =?+Unknown-Charset?B?gqA=?= b"
+embedded-encoded-word)
 
 (decode
 "Subject: =?ISO-2022-JP?B?DQoNCg==?="
-"Subject: =?*US-ASCII?Q?=0D=0A=0D=0A?="
-'quoted-encoded-word)
+"Subject: =?+US-ASCII?Q?=0D=0A=0D=0A?="
+embedded-encoded-word)
 
 (decode
 "Subject: =?US-ASCII?Q?a=0D=0A_b?="
-"Subject: a=?*US-ASCII?Q?=0D=0A?= b"
-'quoted-encoded-word)
+"Subject: a b"
+embedded-encoded-word)
 
 (decode
 "Subject: =?US-ASCII?Q?a=0D=0Ab?="
-"Subject: a=?*US-ASCII?Q?=0D=0A?=b"
-'quoted-encoded-word)
+"Subject: a=?+US-ASCII?Q?=0D=0A?=b"
+embedded-encoded-word)
+
+(decode
+"From: =?+C?Q?abcdef?= <akr@jaist.ac.jp>"
+"From: =?++++C?Q?abcdef?= <akr@jaist.ac.jp>"
+embedded-encoded-word)
+
+(decode
+"From: \"=?+C?Q?abcdef?=\" <akr@jaist.ac.jp>"
+"From: \"=?+++C?Q?abcdef?=\" <akr@jaist.ac.jp>"
+embedded-encoded-word)
+
+(decode
+"From: =?C?Q?abc?= =?US-ASCII?Q?=2E?= <akr@jaist.ac.jp>"
+"From: \"=?+C?Q?abc?=.\" <akr@jaist.ac.jp>"
+embedded-encoded-word)
+
+;;; Section 8: CR and LF.
+
+(decode
+"From: akr@jaist.ac.jp (\r\\\n)"
+"From: akr@jaist.ac.jp (\r\\\n)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= a)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A_?=)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A_?=)")
+
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A=09?=)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A=09?=)")
 
-;;;end-test;;;
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= )"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?= )")
 
-(report)
+(decode
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=\t)"
+"From: akr@jaist.ac.jp (\r=?US-ASCII?Q?=0A?=\t)")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r\\\n)"
+"From: akr@jaist.ac.jp (\\\r\\\n)")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=a)"
+embedded-encoded-word)
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0Aa?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=a)"
+embedded-encoded-word)
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A_?=)"
+"From: akr@jaist.ac.jp (\\ )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A=09?=)"
+"From: akr@jaist.ac.jp (\\\t)")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?= )"
+"From: akr@jaist.ac.jp (\\ )")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\t)"
+"From: akr@jaist.ac.jp (\\\t)")
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r
+ =?US-ASCII?Q?=0D=0A?= =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A=0D=0A?=a)"
+embedded-encoded-word)
+
+(decode
+"From: akr@jaist.ac.jp (\\\r=?US-ASCII?Q?=0A?=\r
+ =?US-ASCII?Q?=0D?=\\\n =?US-ASCII?Q?a?=)"
+"From: akr@jaist.ac.jp (=?+US-ASCII?Q?=0D=0A?=\r\\
+ a)"
+embedded-encoded-word)
+
+))
 
 ;----------------------------------------------------------------------------
+
+;;; test driver.
+
+(defun report (decoder encoder &optional verbose)
+  (let ((pats test-patterns) pat src dsts opts dst
+       (decode-success 0)
+       (decode-failure 0)
+       (decode-error 0)
+       (decode-giveup 0)
+       (encode-success 0)
+       (encode-failure 0)
+       (encode-error 0)
+       (encode-giveup 0))
+    (while pats
+      (setq pat (car pats)
+           src (nth 1 pat)
+           dsts (nth 2 pat)
+           opts (nthcdr 3 pat)
+            pats (cdr pats))
+      (if (stringp dsts) (setq dsts (list dsts)))
+      (cond
+       ((eq (car pat) 'decode)
+        (condition-case err
+            (progn
+              (setq dst (apply decoder src opts))
+              (if dst
+                  (if (member dst dsts)
+                      (progn
+                        (if verbose (message "decode-success: %S" pat))
+                        (setq decode-success (1+ decode-success)))
+                    (progn
+                      (if verbose (message "decode-failure: %S %S" pat dst))
+                      (setq decode-failure (1+ decode-failure))))
+                (progn
+                  (if verbose (message "decode-giveup: %S" pat))
+                  (setq decode-giveup (1+ decode-giveup)))))
+          (error
+            (if verbose (message "decode-error: %S %S" err pat))
+            (setq decode-error (1+ decode-error)))))
+       ((eq (car pat) 'encode)
+        (condition-case err
+            (progn
+              (setq dst (apply encoder src opts))
+              (if dst
+                  (if (member dst dsts)
+                      (progn
+                        (if verbose (message "encode-success: %S" pat))
+                        (setq encode-success (1+ encode-success)))
+                    (progn
+                      (if verbose (message "encode-failure: %S %S" pat dst))
+                      (setq encode-failure (1+ encode-failure))))
+                (progn
+                  (if verbose (message "encode-giveup: %S" pat))
+                  (setq encode-giveup (1+ encode-giveup)))))
+          (error
+            (if verbose (message "encode-error: %S %S" err pat))
+            (setq encode-error (1+ encode-error)))))
+       (t
+         (message "pattern error: %S" pat))))
+    (message "\
+decode %d patterns:
+  success: %d
+  failure: %d
+  error: %d
+  giveup: %d
+encode %d patterns:
+  success: %d
+  failure: %d
+  error: %d
+  giveup: %d"
+      (+ decode-success decode-failure decode-error decode-giveup)
+      decode-success decode-failure decode-error decode-giveup
+      (+ encode-success encode-failure encode-error encode-giveup)
+      encode-success encode-failure encode-error encode-giveup)))