;ELC   
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@63 US-ASCII control characters excluding CR, LF and white space.
(defvar ietf-drums-no-ws-ctl-token "-\f-" (#$ . 408))
#@42 US-ASCII characters excluding CR and LF.
(defvar ietf-drums-text-token "-	\f-" (#$ . 536))
#@21 Special characters.
(defvar ietf-drums-specials-token "()<>[]:;@\\,.\"" (#$ . 637))
#@18 Quote character.
(defvar ietf-drums-quote-token "\\" (#$ . 727))
#@14 White space.
(defvar ietf-drums-wsp-token " 	" (#$ . 798))
#@22 Folding white space.
(defvar ietf-drums-fws-regexp (concat "[" ietf-drums-wsp-token "]*\n[" ietf-drums-wsp-token "]+") (#$ . 863))
#@16 Textual token.
(defvar ietf-drums-atext-token "-^a-zA-Z0-9!#$%&'*+/=?_`{|}~" (#$ . 1000))
#@36 Textual token including full stop.
(defvar ietf-drums-dot-atext-token "-^a-zA-Z0-9!#$%&'*+/=?_`{|}~." (#$ . 1096))
#@97 Non-white-space control characters, plus the rest of ASCII excluding
backslash and doublequote.
(defvar ietf-drums-qtext-token (concat ietf-drums-no-ws-ctl-token "!#-[]-") (#$ . 1217))
#@12 Tspecials.
(defvar ietf-drums-tspecials "][()<>@,;:\\\"/?=" (#$ . 1409))
(defvar ietf-drums-syntax-table (byte-code "\301!\302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\312#\210\302\314\315#\210\302\316\315#\210\302\317\315#\210\211\207" [emacs-lisp-mode-syntax-table copy-syntax-table modify-syntax-entry 92 "/" 60 "(" 62 ")" 64 "w" 47 42 "_" 59 39] 5))
#@56 Translate TOKEN into a list of characters.

(fn TOKEN)
(defalias 'ietf-drums-token-to-list #[257 "\300\301\211\211\211GW\203r H\262T\262\302=\203. \203& \303\262\202 B\262\202 \211\203M X\203G \304\305\"B\262T\262\2022 \301\262\202 GU\203` \304\305\"B\262\202 \203l \304\305\"B\262\262\202 \237\207" [0 nil 45 t make-char ascii] 9 (#$ . 1809)])
#@15 

(fn STRING)
(defalias 'ietf-drums-init #[257 "\301!\210\211c\210\302 \210eb\207" [ietf-drums-syntax-table set-syntax-table ietf-drums-unfold-fws] 3 (#$ . 2200)])
(put 'ietf-drums-init 'byte-optimizer 'byte-compile-inline-expand)
#@43 Remove comments from STRING.

(fn STRING)
(defalias 'ietf-drums-remove-comments #[257 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312\313!\210\211c\210\314 \210eb\266m\204~ \312f\262\211\315\267\202x \3161< \317\320!0\202? \210db\210\202# `\3211q \322 p\303\304\323\306\307\"\324\"\311$\216\313\325!!\210\326\327\330\"\210\317\320!\210`)\266\2020\202s \210d|\210\202# \320u\210\202# \331 \262*\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 nil set-syntax-table ietf-drums-unfold-fws #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 49 40 67)) (error) forward-sexp 1 (error) syntax-table "r\301q\210\302\300!)\207" [set-syntax-table] copy-syntax-table modify-syntax-entry 34 "w" buffer-string] 13 (#$ . 2438)])
#@45 Remove whitespace from STRING.

(fn STRING)
(defalias 'ietf-drums-remove-whitespace #[257 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210\211c\210\313 \210eb\266\314m\204L \314f\262\211\315\267\202F \316\317!\210\202# \316\317!\210\202# \320\317!\210\202# \317u\210\202# \321 \262*\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-syntax-table ietf-drums-unfold-fws nil #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 49 40 56 32 63 9 63 10 63 13 63)) forward-sexp 1 delete-char buffer-string] 8 (#$ . 3323)])
#@50 Return the first comment in STRING.

(fn STRING)
(defalias 'ietf-drums-get-comment #[257 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210\211c\210\313 \210eb\266\314\211m\204M \314f\262\211\315\267\202G \316\317!\210\202$ `T\316\317!\210`S{\262\202$ \317u\210\202$ \266\202*\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-syntax-table ietf-drums-unfold-fws nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 50 40 57)) forward-sexp 1] 8 (#$ . 4010)])
#@58 Remove comments and whitespace from STRING.

(fn STRING)
(defalias 'ietf-drums-strip #[257 "\300\301!!\207" [ietf-drums-remove-whitespace ietf-drums-remove-comments] 4 (#$ . 4641)])
#@47 Remove some garbage from STRING.

(fn STRING)
(defalias 'ietf-drums-remove-garbage #[257 "\300\301\"\203 \302\303\211\224#\302\303\225\"P\262\202  \207" [string-match "[][()<>@,;:\\\"/?=]+" substring 0] 5 (#$ . 4830)])
#@171 Remove comments, whitespace and garbage from STRING.
STRING is assumed to be a string that is extracted from
the Content-Transfer-Encoding header of a mail.

(fn STRING)
(defalias 'ietf-drums-strip-cte #[257 "\300\301\302!!\262!\207" [ietf-drums-remove-garbage ietf-drums-remove-whitespace ietf-drums-remove-comments] 6 (#$ . 5061)])
#@188 Parse STRING and return a MAILBOX / DISPLAY-NAME pair.
If DECODE, the DISPLAY-NAME will have RFC2047 decoding performed
(that's the "=?utf...q...=?") stuff.

(fn STRING &optional DECODE)
(defalias 'ietf-drums-parse-address #[513 "\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313\211\211\211\314!\210\211c\210\315 \210eb\266m\204\265 \313f\262\316=\203Q \212\3171C \320\321!\210\3220\202E \210\313)\204Q \323\321!\210\313f\262\324=\204] \325=\203c \321u\210\202' \326\267\202\200 \320\321!\210\202' `T\320\321!\210`S{B\262\202' \327\330	\331Q!\203\227 `\320\321!\210`{B\262\202' \332=\203\257 \333\334`T\320\321!\210`S{!!\262\202' \321u\210\202' \203\306 \335\336\337!\340#\262\202\314 \341!\262\204\351 \211\205\367 \342\343\"\205\367 \335\336\237\344#\341!B\202\367 \203\365 \345!\202\366 B\266\204*\207" [ietf-drums-syntax-table ietf-drums-atext-token generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 nil set-syntax-table ietf-drums-unfold-fws 34 (error) forward-sexp 1 t delete-char 32 9 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (40 105 34 112)) looking-at "[" "@]" 60 ietf-drums-remove-whitespace ietf-drums-remove-comments mapconcat identity reverse " " ietf-drums-get-comment string-match "@" "" rfc2047-decode-string] 12 (#$ . 5405)])
#@184 Parse STRING and return a list of MAILBOX / DISPLAY-NAME pairs.
If RAWP, don't actually parse the addresses, but instead return
a list of address strings.

(fn STRING &optional RAWP)
(defalias 'ietf-drums-parse-addresses #[513 "\205\251 \301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210\211c\210\313 \210eb\266`\314\211\211m\204~ \314f\262\315\267\202x \3161C \317\320!0\202G \210\321\314w\210\202* \203U `{\202d \3221b \323`{!0\202d \210\314\262\211\203o \211B\262\320u\210`\262\202* \320u\210\202* \203\210 `{\202\227 \3241\225 \323`{!0\202\227 \210\314\262\211\203\242 \211B\262\237\266\204*\262\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-syntax-table ietf-drums-unfold-fws nil #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 56 60 56 40 56 44 75)) (error) forward-sexp 1 "^," (error) ietf-drums-parse-address (error)] 10 (#$ . 6815)])
#@51 Unfold folding white space in the current buffer.
(defalias 'ietf-drums-unfold-fws #[0 "eb\210\301\302\303#\203 \304\305\303\211#\210\202 eb\207" [ietf-drums-fws-regexp re-search-forward nil t replace-match " "] 4 (#$ . 7850)])
#@53 Return an Emacs time spec from STRING.

(fn STRING)
(defalias 'ietf-drums-parse-date #[257 "\300\301!!\207" [encode-time parse-time-string] 4 (#$ . 8087)])
#@53 Narrow to the header section in the current buffer.
(defalias 'ietf-drums-narrow-to-header #[0 "eb\300\301\302\303#\203 \304\224\202 d}\210eb\207" [re-search-forward "^?$" nil 1 0] 5 (#$ . 8250)])
#@76 Quote string if it needs quoting to be displayed in a header.

(fn STRING)
(defalias 'ietf-drums-quote-string #[257 "\301\302\303Q\"\203 \304\304Q\207\207" [ietf-drums-atext-token string-match "[^" "]" "\""] 5 (#$ . 8456)])
#@21 

(fn NAME ADDRESS)
(defalias 'ietf-drums-make-address #[514 "\203\f \300!\301\302R\207\207" [ietf-drums-quote-string " <" ">"] 6 (#$ . 8690)])
(provide 'ietf-drums)
