403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/gnus/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/gnus/spam.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\"\210\305\310\311\"\210\305\312\311\"\210\305\313\311\"\210\305\314\311\"\210\305\315\316\"\210\305\317\316\"\210\305\320\316\"\210\305\321\316\"\210\305\322\323\"\207" [require message gnus-sum gnus-uu gnus autoload query-dig "dig" spam-report-gmane "spam-report" spam-report-gmane-spam spam-report-gmane-ham spam-report-resend gnus-registry-group-count "gnus-registry" gnus-registry-get-id-key gnus-registry-set-id-key gnus-registry-handle-action dns-query "dns"] 3)
#@98 List of spam.el backends with all the pertinent data.
Populated by `spam-install-backend-super'.
(defvar spam-backends nil (#$ . 630))
(byte-code "\300\301\302\303\304\305\306\307\306\310&	\210\311\312\313\314\315DD\316\317\320\306\301&\210\311\321\313\314\322DD\323\317\324\306\301&\210\311\325\313\314\326DD\327\317\330\306\301&\210\311\331\313\314\332DD\333\317\330\306\301&\210\311\334\313\314\335DD\336\317\330\306\301&\210\311\337\313\314\340DD\341\317\330\306\301&\210\311\342\313\314\343DD\344\317\330\306\301&\210\311\345\313\314\346DD\347\317\330\306\301&\210\311\350\313\314\351DD\352\317\330\306\301&\210\311\353\313\314\354DD\355\317\330\306\301&\210\311\356\313\314\357DD\360\317\361\306\301&\210\311\362\313\314\363DD\364\317\361\306\301&\210\311\365\313\314\366DD\367\317\330\306\301&\210\311\370\313\314\371DD\372\317\330\306\301&\210\311\373\313\314\374DD\375\317\330\306\301&\210\311\376\313\314\377DD\201@\317\201A\306\301&\210\311\201B\313\314\201CDD\201D\317\330\306\301&\210\311\201E\313\314\201FDD\201G\317\330\306\301&\210\311\201H\313\314\201IDD\201J\317\330\306\301&\210\311\201K\313\314\201LDD\201M\317\330\306\301&\210\311\201N\313\314\201ODD\201P\317\330\306\301&\210\311\201Q\313\314\201RDD\201S\317\330\306\301&\210\311\201T\313\314\201UDD\201V\317\330\306\301&\210\311\201W\313\314\201XDD\201Y\317\330\306\301&\210\311\201Z\313\314\201[DD\201\\\317\330\306\301&\210\311\201]\313\314\201^DD\201_\317\330\306\301&\210\311\201`\313\314\201aDD\201b\317\330\306\301&\210\311\201c\313\314\201dDD\201e\317\330\306\301&\210\311\201f\313\314\201gDD\201h\317\330\306\301&\210\311\201i\313\314\201jDD\201k\317\330\306\301&\210\311\201l\313\314\201mDD\201n\317\330\306\301&\210\311\201o\313\314\201pDD\201q\317\330\306\301&\210\311\201r\313\314\201sDD\201t\317\330\306\301&\210\311\201u\313\314\201vDD\201w\317\330\306\301&\210\311\201x\313\314\201yDD\201z\306\301\317\330&\210\311\201{\313\314\201|DD\201}\317\201~\306\301&\210\311\201\313\314\201\200DD\201\201\317\201\202\306\301&\210\311\201\203\313\314\201\204DD\201\205\317\201~\306\301&\210\311\201\206\313\314\201\207DD\201\210\317\201\211\306\301&\210\311\201\212\313\314\201\213DD\201\214\317\201\215\306\301&\210\201\216\301\201\217\201\220\306\301%\210\311\201\221\313\314\201\222DD\201\220\317\201\223\306\301&\210\311\201\224\313\314\201\225DD\201\226\317\201\227\306\301&\210\311\201\230\313\314\201\231DD\201\232\317\201\233\306\301&\210\311\201\234\313\314\201\235DD\201\236\317\201\237\306\301&\210\311\201\240\313\314\201\241DD\201\242\317\201\243\306\301&\210\311\201\244\313\314\201\245DD\201\246\317\201\247\306\301&\210\300\201\250\302\201\251\306\301%\210\311\201\252\313\314\201\253DD\201\254\317\201\255\306\201\250&\210\311\201\256\313\314\201\257DD\201\260\317\201\261\306\201\250&\210\311\201\262\313\314\201\263DD\201\264\317\201~\306\201\250&\210\311\201\265\313\314\201\266DD\201\267\317\201\270\306\201\250&\210\311\201\271\313\314\201\272DD\201\273\317\330\306\201\250&\210\300\201\274\302\201\275\306\301%\210\311\201\276\313\314\201\277DD\201\300\317\201\301\306\201\274&\207" [custom-declare-group spam nil "Spam configuration." :version "22.1" :group mail news custom-declare-variable spam-summary-exit-behavior funcall function #[0 "\300\207" [default] 1 #1=""] "Exit behavior at the time of summary exit.\nNote that setting the `spam-use-move' or `spam-use-copy' backends on\na group through group/topic parameters overrides this mechanism." :type (choice (const :tag "Move spam out of all groups and ham out of spam groups" default) (const :tag "Move spam out of all groups and ham out of all groups" move-all) (const :tag "Never move spam or ham out of any groups" move-none)) spam-directory #[0 "\301\302\"\207" [gnus-directory nnheader-concat "spam/"] 3 #1#] "Directory for spam whitelists and blacklists." directory spam-mark-new-messages-in-spam-group-as-spam #[0 "\300\207" [t] 1 #1#] "Whether new messages in a spam group should get the spam-mark." boolean spam-log-to-registry #[0 "\300\207" [nil] 1 #1#] "Whether spam/ham processing should be logged in the registry." spam-split-symbolic-return #[0 "\300\207" [nil] 1 #1#] "Whether `spam-split' should work with symbols or group names." spam-split-symbolic-return-positive #[0 "\300\207" [nil] 1 #1#] "Whether `spam-split' should ALWAYS work with symbols or group names.\nDo not set this if you use `spam-split' in a fancy split method." spam-mark-only-unseen-as-spam #[0 "\300\207" [t] 1 #1#] "Whether only unseen articles should be marked as spam in spam groups.\nWhen nil, all unread articles in a spam group are marked as\nspam.  Set this if you want to leave an article unread in a spam group\nwithout losing it to the automatic spam-marking process." spam-mark-ham-unread-before-move-from-spam-group #[0 "\300\207" [nil] 1 #1#] "Whether ham should be marked unread before it's moved.\nThe article is moved out of a spam group according to `ham-process-destination'.\nThis variable is an official entry in the international Longest Variable Name\nCompetition." spam-disable-spam-split-during-ham-respool #[0 "\300\207" [nil] 1 #1#] "Whether `spam-split' should be ignored while resplitting ham.\nThis is useful to prevent ham from ending up in the same spam\ngroup after the resplit.  Don't set this to t if you have `spam-split' as the\nlast rule in your split configuration." spam-autodetect-recheck-messages #[0 "\300\207" [nil] 1 #1#] "Should spam.el recheck all messages when autodetecting?\nNormally this is nil, so only unseen messages will be checked." spam-whitelist #[0 "\301\302\"\207" [spam-directory expand-file-name "whitelist"] 3 #1#] "The location of the whitelist.\nThe file format is one regular expression per line.\nThe regular expression is matched against the address." file spam-blacklist #[0 "\301\302\"\207" [spam-directory expand-file-name "blacklist"] 3 #1#] "The location of the blacklist.\nThe file format is one regular expression per line.\nThe regular expression is matched against the address." spam-use-dig #[0 "\300\207" [t] 1 #1#] "Whether `query-dig' should be used instead of `dns-query'." spam-use-gmane-xref #[0 "\300\207" [nil] 1 #1#] "Whether the Gmane spam xref should be used by `spam-split'." spam-use-blacklist #[0 "\300\207" [nil] 1 #1#] "Whether the blacklist should be used by `spam-split'." spam-blacklist-ignored-regexes #[0 "\300\207" [nil] 1 #1#] "Regular expressions that the blacklist should ignore." (repeat (regexp :tag "Regular expression to ignore when blacklisting")) spam-use-whitelist #[0 "\300\207" [nil] 1 #1#] "Whether the whitelist should be used by `spam-split'." spam-use-whitelist-exclusive #[0 "\300\207" [nil] 1 #1#] "Whether whitelist-exclusive should be used by `spam-split'.\nExclusive whitelisting means that all messages from senders not in the whitelist\nare considered spam." spam-use-blackholes #[0 "\300\207" [nil] 1 #1#] "Whether blackholes should be used by `spam-split'." spam-use-hashcash #[0 "\300\207" [nil] 1 #1#] "Whether hashcash payments should be detected by `spam-split'." spam-use-regex-headers #[0 "\300\207" [nil] 1 #1#] "Whether a header regular expression match should be used by `spam-split'.\nAlso see the variables `spam-regex-headers-spam' and `spam-regex-headers-ham'." spam-use-regex-body #[0 "\300\207" [nil] 1 #1#] "Whether a body regular expression match should be used by `spam-split'.\nAlso see the variables `spam-regex-body-spam' and `spam-regex-body-ham'." spam-use-bogofilter-headers #[0 "\300\207" [nil] 1 #1#] "Whether bogofilter headers should be used by `spam-split'.\nEnable this if you pre-process messages with Bogofilter BEFORE Gnus sees them." spam-use-bogofilter #[0 "\300\207" [nil] 1 #1#] "Whether bogofilter should be invoked by `spam-split'.\nEnable this if you want Gnus to invoke Bogofilter on new messages." spam-use-bsfilter-headers #[0 "\300\207" [nil] 1 #1#] "Whether bsfilter headers should be used by `spam-split'.\nEnable this if you pre-process messages with Bsfilter BEFORE Gnus sees them." spam-use-bsfilter #[0 "\300\207" [nil] 1 #1#] "Whether bsfilter should be invoked by `spam-split'.\nEnable this if you want Gnus to invoke Bsfilter on new messages." spam-use-BBDB #[0 "\300\207" [nil] 1 #1#] "Whether BBDB should be used by `spam-split'." spam-use-BBDB-exclusive #[0 "\300\207" [nil] 1 #1#] "Whether BBDB-exclusive should be used by `spam-split'.\nExclusive BBDB means that all messages from senders not in the BBDB are\nconsidered spam." spam-use-ifile #[0 "\300\207" [nil] 1 #1#] "Whether ifile should be used by `spam-split'." spam-use-stat #[0 "\300\207" [nil] 1 #1#] "Whether `spam-stat' should be used by `spam-split'." spam-use-spamoracle #[0 "\300\207" [nil] 1 #1#] "Whether spamoracle should be used by `spam-split'." spam-use-spamassassin #[0 "\300\207" [nil] 1 #1#] "Whether spamassassin should be invoked by `spam-split'.\nEnable this if you want Gnus to invoke SpamAssassin on new messages." spam-use-spamassassin-headers #[0 "\300\207" [nil] 1 #1#] "Whether spamassassin headers should be checked by `spam-split'.\nEnable this if you pre-process messages with SpamAssassin BEFORE Gnus sees\nthem." spam-use-crm114 #[0 "\300\207" [nil] 1 #1#] "Whether the CRM114 Mailfilter should be used by `spam-split'." spam-install-hooks #[0 "\206`	\206`\n\206`\206`\f\206`
\206`\206`\206`\206`	\206`\n\206`\206`\f\206`
\206`\206`\206`\206`\206`\206`\206`\207" [spam-use-dig spam-use-gmane-xref spam-use-blacklist spam-use-whitelist spam-use-whitelist-exclusive spam-use-blackholes spam-use-hashcash spam-use-regex-headers spam-use-regex-body spam-use-bogofilter spam-use-bogofilter-headers spam-use-spamassassin spam-use-spamassassin-headers spam-use-bsfilter spam-use-bsfilter-headers spam-use-BBDB spam-use-BBDB-exclusive spam-use-ifile spam-use-stat spam-use-spamoracle spam-use-crm114] 1 #1#] "Whether the spam hooks should be installed.\nDefault to t if one of the spam-use-* variables is set." spam-split-group #[0 "\300\207" ["spam"] 1 #1#] "Group name where incoming spam should be put by `spam-split'." string spam-junk-mailgroups #[0 "\301B\207" [spam-split-group ("mail.junk" "poste.pourriel")] 2 #1#] "Mailgroups with spam contents.\nAll unmarked article in such group receive the spam mark on group entry." (repeat (string :tag "Group")) spam-gmane-xref-spam-group #[0 "\300\207" ["gmane.spam.detected"] 1 #1#] "The group where spam xrefs can be found on Gmane.\nOnly meaningful if you enable `spam-use-gmane-xref'." spam-blackhole-servers #[0 "\300\207" [("bl.spamcop.net" "relays.ordb.org" "dev.null.dk" "relays.visi.com")] 1 #1#] "List of blackhole servers.\nOnly meaningful if you enable `spam-use-blackholes'." (repeat (string :tag "Server")) spam-blackhole-good-server-regex #[0 "\300\207" [nil] 1 #1#] "String matching IP addresses that should not be checked in the blackholes.\nOnly meaningful if you enable `spam-use-blackholes'." (radio (const nil) regexp) custom-declare-face ((((class color) (type tty) (background dark)) (:foreground "gray80" :background "gray50")) (((class color) (type tty) (background light)) (:foreground "gray50" :background "gray80")) (((class color) (background dark)) (:foreground "ivory2")) (((class color) (background light)) (:foreground "ivory4")) (t :inverse-video t)) "Face for spam-marked articles." spam-face #[0 "\300\207" [spam] 1 #1#] face spam-regex-headers-spam #[0 "\300\207" [("^X-Spam-Flag: YES")] 1 #1#] "Regular expression for positive header spam matches.\nOnly meaningful if you enable `spam-use-regex-headers'." (repeat (regexp :tag "Regular expression to match spam header")) spam-regex-headers-ham #[0 "\300\207" [("^X-Spam-Flag: NO")] 1 #1#] "Regular expression for positive header ham matches.\nOnly meaningful if you enable `spam-use-regex-headers'." (repeat (regexp :tag "Regular expression to match ham header")) spam-regex-body-spam #[0 "\300\207" [nil] 1 #1#] "Regular expression for positive body spam matches.\nOnly meaningful if you enable `spam-use-regex-body'." (repeat (regexp :tag "Regular expression to match spam body")) spam-regex-body-ham #[0 "\300\207" [nil] 1 #1#] "Regular expression for positive body ham matches.\nOnly meaningful if you enable `spam-use-regex-body'." (repeat (regexp :tag "Regular expression to match ham body")) spam-summary-score-preferred-header #[0 "\300\207" [nil] 1 #1#] "Preferred header to use for `spam-summary-score'." (choice :tag "Header name" (symbol :tag "SpamAssassin etc" X-Spam-Status) (symbol :tag "Bogofilter" X-Bogosity) (const :tag "No preference, take best guess." nil)) spam-ifile "Spam ifile configuration." spam-ifile-program #[0 "\300\301!\207" [executable-find "ifile"] 2 #1#] "Name of the ifile program." (choice (file :tag "Location of ifile") (const :tag "ifile is not installed")) spam-ifile-database #[0 "\300\207" [nil] 1 #1#] "File name of the ifile database." (choice (file :tag "Location of the ifile database") (const :tag "Use the default")) spam-ifile-spam-category #[0 "\300\207" ["spam"] 1 #1#] "Name of the spam ifile category." spam-ifile-ham-category #[0 "\300\207" [nil] 1 #1#] "Name of the ham ifile category.\nIf nil, the current group name will be used." (choice (string :tag "Use a fixed category") (const :tag "Use the current group name")) spam-ifile-all-categories #[0 "\300\207" [nil] 1 #1#] "Whether the ifile check will return all categories, or just spam.\nSet this to t if you want to use the `spam-split' invocation of ifile as\nyour main source of newsgroup names." spam-bogofilter "Spam bogofilter configuration." spam-bogofilter-program #[0 "\300\301!\207" [executable-find "bogofilter"] 2 #1#] "Name of the Bogofilter program." (choice (file :tag "Location of bogofilter") (const :tag "Bogofilter is not installed"))] 10)
#@34 Is the bogofilter version valid?
(defvar spam-bogofilter-valid 'unknown (#$ . 14600))
(byte-code "\301\302\303\304\305DD\306\307\310\311\312&\210\301\313\303\304\314DD\315\307\310\311\312&\210\301\316\303\304\317DD\320\307\310\311\312&\210\301\321\303\304\322DD\323\307\310\311\312&\210\301\324\303\304\325DD\326\307\310\311\312&\210\301\327\303\304\330DD\331\307\332\311\312&\210\301\333\303\304\334DD\335\307\336\311\312&\210\337\340\341\342\311\343%\210\301\344\303\304\345DD\346\307\347\311\340&\210\301\350\303\304\351DD\352\307\310\311\340&\210\301\353\303\304\354DD\355\307\310\311\340&\210\301\356\303\304\357DD\360\307\310\311\340&\210\301\361\303\304\362DD\363\307\310\311\340&\210\301\364\303\304\365DD\366\307\310\311\340&\210\301\367\303\304\370DD\371\307\310\311\340&\210\301\372\303\304\373DD\374\307\375\311\340&\210\337\376\341\377\311\343%\210\301\201@\303\304\201ADD\201B\307\201C\311\376&\210\301\201D\303\304\201EDD\201F\307\201G\311\376&\210\337\201H\341\201I\311\343%\210\301\201J\303\304\201KDD\201L\307\201M\311\201H&\210\301\201N\303\304\201ODD\201P\307\201Q\311\201H&\210\301\201R\303\304\201SDD\201T\307\310\311\201H&\210\301\201U\303\304\201VDD\201W\307\332\311\201H&\210\301\201X\303\304\201YDD\201Z\307\310\311\201H&\210\301\201[\303\304\201\\DD\201]\307\201^\311\201H&\210\301\201_\303\304\201`DD\201a\307\201b\311\201H&\210\301\201c\303\304\201dDD\201e\307\310\311\201H&\210\301\201f\303\304\201gDD\201h\307\310\311\201H&\210\301\201i\303\304\201jDD\201k\307\310\311\201H&\210\337\201l\341\201m\311\343%\210\301\201n\303\304\201oDD\201p\307\201q\311\201l&\210\301\201r\303\304\201sDD\201t\307\310\311\201l&\210\301\201u\303\304\201vDD\201w\307\310\311\201l&\210\301\201x\303\304\201yDD\201z\307\310\311\201l&\210\301\201{\303\304\201|DD\201}\307\310\311\201l&\210\301\201~\303\304\201DD\201\200\307\310\311\201l&\210\301\201\201\303\304\201\202DD\201\203\307\332\311\201l&\210\301\201\204\303\304\201\205DD\201\206\307\201\207\311\201l&\210\201\210\201\211\"\207" [gnus-summary-mode-map custom-declare-variable spam-bogofilter-header funcall function #[0 "\300\207" ["X-Bogosity"] 1 #1=""] "The header that Bogofilter inserts in messages." :type string :group spam-bogofilter spam-bogofilter-spam-switch #[0 "\300\207" ["-s"] 1 #1#] "The switch that Bogofilter uses to register spam messages." spam-bogofilter-ham-switch #[0 "\300\207" ["-n"] 1 #1#] "The switch that Bogofilter uses to register ham messages." spam-bogofilter-spam-strong-switch #[0 "\300\207" ["-S"] 1 #1#] "The switch that Bogofilter uses to unregister ham messages." spam-bogofilter-ham-strong-switch #[0 "\300\207" ["-N"] 1 #1#] "The switch that Bogofilter uses to unregister spam messages." spam-bogofilter-bogosity-positive-spam-header #[0 "\300\207" ["^\\(Yes\\|Spam\\)"] 1 #1#] "The regex on `spam-bogofilter-header' for positive spam identification." regexp spam-bogofilter-database-directory #[0 "\300\207" [nil] 1 #1#] "Location of the Bogofilter database.\nWhen nil, use the default location." (choice (directory :tag "Location of the Bogofilter database directory") (const :tag "Use the default")) custom-declare-group spam-bsfilter nil "Spam bsfilter configuration." spam spam-bsfilter-program #[0 "\300\301!\207" [executable-find "bsfilter"] 2 #1#] "Name of the Bsfilter program." (choice (file :tag "Location of bsfilter") (const :tag "Bsfilter is not installed")) spam-bsfilter-header #[0 "\300\207" ["X-Spam-Flag"] 1 #1#] "The header inserted by Bsfilter to flag spam." spam-bsfilter-probability-header #[0 "\300\207" ["X-Spam-Probability"] 1 #1#] "The header that Bsfilter inserts in messages." spam-bsfilter-spam-switch #[0 "\300\207" ["--add-spam"] 1 #1#] "The switch that Bsfilter uses to register spam messages." spam-bsfilter-ham-switch #[0 "\300\207" ["--add-clean"] 1 #1#] "The switch that Bsfilter uses to register ham messages." spam-bsfilter-spam-strong-switch #[0 "\300\207" ["--sub-spam"] 1 #1#] "The switch that Bsfilter uses to unregister ham messages." spam-bsfilter-ham-strong-switch #[0 "\300\207" ["--sub-clean"] 1 #1#] "The switch that Bsfilter uses to unregister spam messages." spam-bsfilter-database-directory #[0 "\300\207" [nil] 1 #1#] "Directory path of the Bsfilter databases." (choice (directory :tag "Location of the Bsfilter database directory") (const :tag "Use the default")) spam-spamoracle "Spam spamoracle configuration." spam-spamoracle-database #[0 "\300\207" [nil] 1 #1#] "Location of spamoracle database file.\nWhen nil, use the default spamoracle database." (choice (directory :tag "Location of spamoracle database file.") (const :tag "Use the default")) spam-spamoracle-binary #[0 "\300\301!\207" [executable-find "spamoracle"] 2 #1#] "Location of the spamoracle binary." (choice (directory :tag "Location of the spamoracle binary") (const :tag "Use the default")) spam-spamassassin "Spam SpamAssassin configuration." spam-assassin-program #[0 "\300\301!\207" [executable-find "spamassassin"] 2 #1#] "Name of the spamassassin program.\nHint: set this to \"spamc\" if you have spamd running.  See the spamc and\nspamd man pages for more information on these programs." (choice (file :tag "Location of spamc") (const :tag "spamassassin is not installed")) spam-spamassassin-arguments #[0 "\300\207" [nil] 1 #1#] "Arguments to pass to the spamassassin executable.\nThis must be a list.  For example, `(\"-C\" \"configfile\")'." (restricted-sexp :match-alternatives (listp)) spam-spamassassin-spam-flag-header #[0 "\300\207" ["X-Spam-Flag"] 1 #1#] "The header inserted by SpamAssassin to flag spam." spam-spamassassin-positive-spam-flag-header #[0 "\300\207" ["YES"] 1 #1#] "The regex on `spam-spamassassin-spam-flag-header' for positive spam\nidentification." spam-spamassassin-spam-status-header #[0 "\300\207" ["X-Spam-Status"] 1 #1#] "The header inserted by SpamAssassin, giving extended scoring information." spam-sa-learn-program #[0 "\300\301!\207" [executable-find "sa-learn"] 2 #1#] "Name of the sa-learn program." (choice (file :tag "Location of spamassassin") (const :tag "spamassassin is not installed")) spam-sa-learn-rebuild #[0 "\300\207" [t] 1 #1#] "Whether sa-learn should rebuild the database every time it is called.\nEnable this if you want sa-learn to rebuild the database automatically.  Doing\nthis will slightly increase the running time of the spam registration process.\nIf you choose not to do this, you will have to run \"sa-learn --rebuild\" in\norder for SpamAssassin to recognize the new registered spam." boolean spam-sa-learn-spam-switch #[0 "\300\207" ["--spam"] 1 #1#] "The switch that sa-learn uses to register spam messages." spam-sa-learn-ham-switch #[0 "\300\207" ["--ham"] 1 #1#] "The switch that sa-learn uses to register ham messages." spam-sa-learn-unregister-switch #[0 "\300\207" ["--forget"] 1 #1#] "The switch that sa-learn uses to unregister messages." spam-crm114 "Spam CRM114 Mailfilter configuration." spam-crm114-program #[0 "\300\301!\207" [executable-find "mailfilter.crm"] 2 #1#] "File path of the CRM114 Mailfilter executable program." (choice (file :tag "Location of CRM114 Mailfilter") (const :tag "CRM114 Mailfilter is not installed")) spam-crm114-header #[0 "\300\207" ["X-CRM114-Status"] 1 #1#] "The header that CRM114 Mailfilter inserts in messages." spam-crm114-spam-switch #[0 "\300\207" ["--learnspam"] 1 #1#] "The switch that CRM114 Mailfilter uses to register spam messages." spam-crm114-ham-switch #[0 "\300\207" ["--learnnonspam"] 1 #1#] "The switch that CRM114 Mailfilter uses to register ham messages." spam-crm114-spam-strong-switch #[0 "\300\207" ["--unlearn"] 1 #1#] "The switch that CRM114 Mailfilter uses to unregister ham messages." spam-crm114-ham-strong-switch #[0 "\300\207" ["--unlearn"] 1 #1#] "The switch that CRM114 Mailfilter uses to unregister spam messages." spam-crm114-positive-spam-header #[0 "\300\207" ["^SPAM"] 1 #1#] "The regex on `spam-crm114-header' for positive spam identification." spam-crm114-database-directory #[0 "\300\207" [nil] 1 #1#] "Directory path of the CRM114 Mailfilter databases." (choice (directory :tag "Location of the CRM114 Mailfilter database directory") (const :tag "Use the default")) gnus-define-keys-1 ("St" spam-generic-score "Sx" gnus-summary-mark-as-spam "Mst" spam-generic-score "Msx" gnus-summary-mark-as-spam "\344" gnus-summary-mark-as-spam "$" gnus-summary-mark-as-spam)] 8)
#@64 Whether spam.el will try to cache lookups using `spam-caches'.
(defvar spam-cache-lookups t (#$ . 23094))
#@34 Cache of spam detection entries.
(defvar spam-caches (make-hash-table :size 10 :test 'equal) (#$ . 23206))
#@71 List of old ham and spam articles, generated when a group is entered.
(defvar spam-old-articles nil (#$ . 23319))
#@63 If non-nil, `spam-split' is disabled, and always returns nil.
(defvar spam-split-disabled nil (#$ . 23439))
#@103 Internal variable.
`spam-split' will set this to nil or a spam-use-XYZ check if it
finds ham or spam.
(defvar spam-split-last-successful-check nil (#$ . 23554))
(defvar spam-use-copy nil)
(defvar spam-use-move nil)
(defvar spam-use-gmane nil)
(defvar spam-use-resend nil)
#@57 Clear the `spam-caches' entry for a check.

(fn SYMBOL)
(defalias 'spam-clear-cache #[257 "\301\"\207" [spam-caches remhash] 4 (#$ . 23832)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias spam-xor xor nil make-obsolete "27.1"] 4)
#@111 Return a set difference of LIST1 and LIST2.
When either list is nil, the other is returned.

(fn LIST1 LIST2)
(defalias 'spam-set-difference #[514 "\2037\211\2037\300\"\211\2031\211@\211>\203*\211>\203*\301\"\262\301\"\262A\266\202\202\f\210\300\"\207\203=\207\207" [append delq] 7 (#$ . 24091)])
#@83 Checks if MARK is considered a ham mark in GROUP.

(fn GROUP MARK &optional SPAM)
(defalias 'spam-group-ham-mark-p #[770 ";\205\300\"9\203\211\202\301\302\">\266\202\207" [spam-group-ham-marks mapcar symbol-value] 7 (#$ . 24417)])
#@69 Checks if MARK is considered a spam mark in GROUP.

(fn GROUP MARK)
(defalias 'spam-group-spam-mark-p #[514 "\300\301#\207" [spam-group-ham-mark-p t] 6 (#$ . 24667)])
#@61 In GROUP, get all the ham marks.

(fn GROUP &optional SPAM)
(defalias 'spam-group-ham-marks #[513 ";\205 \211\203\300!\202\301!\211@\211@<\203\211@\207\211\266\202\207" [gnus-parameter-spam-marks gnus-parameter-ham-marks] 5 (#$ . 24842)])
#@47 In GROUP, get all the spam marks.

(fn GROUP)
(defalias 'spam-group-spam-marks #[257 "\300\301\"\207" [spam-group-ham-marks t] 4 (#$ . 25097)])
#@36 Is GROUP a spam group?

(fn GROUP)
(defalias 'spam-group-spam-contents-p #[257 "\211;\205\301GW\205\211\235\206\302\303!>\207" [spam-junk-mailgroups 0 gnus-group-spam-classification-spam gnus-parameter-spam-contents] 4 (#$ . 25248)])
#@35 Is GROUP a ham group?

(fn GROUP)
(defalias 'spam-group-ham-contents-p #[257 "\211;\205\n\300\301!>\207" [gnus-group-spam-classification-ham gnus-parameter-spam-contents] 4 (#$ . 25497)])
#@39 Return list of valid classifications.
(defalias 'spam-classifications #[0 "\300\207" [(spam ham)] 1 (#$ . 25693)])
#@73 Is CLASSIFICATION a valid spam/ham classification?

(fn CLASSIFICATION)
(defalias 'spam-classification-valid-p #[257 "\211\300 >\207" [spam-classifications] 3 (#$ . 25814)])
#@39 Return list of valid classifications.
(defalias 'spam-backend-properties #[0 "\300\207" [(statistical mover check hrf srf huf suf)] 1 (#$ . 25994)])
#@54 Is PROPERTY a valid backend property?

(fn PROPERTY)
(defalias 'spam-backend-property-valid-p #[257 "\211\300 >\207" [spam-backend-properties] 3 (#$ . 26149)])
#@13 

(fn TYPE)
(defalias 'spam-backend-function-type-valid-p #[257 "\211\300=\206	\211\301=\207" [registration unregistration] 3 (#$ . 26315)])
#@21 

(fn PROCESS-TYPE)
(defalias 'spam-process-type-valid-p #[257 "\211\300=\206	\211\301=\207" [incoming process] 3 (#$ . 26463)])
#@32 

(fn ARTICLES CLASSIFICATION)
(defalias 'spam-list-articles #[514 "\211\302=\203\n\303\202\304\305\211\211\211\203m\211@\211\306\2061\307`\310\"\211\205&\311!\266\307`\312\"\2061\313 \"\211A@\266\202\211>\204Y\211>\204Y	\"\203T\211B\262\202Y\211B\262\211>\203eB\262\210A\266\202\202\210\207" [gnus-newsgroup-data gnus-newsgroup-name spam spam-group-spam-mark-p spam-group-ham-mark-p nil gnus-data-find-in get-text-property gnus-intangible gnus-summary-goto-subject gnus-number gnus-summary-last-subject] 13 (#$ . 26599)])
#@269 Install BACKEND for spam.el.
Accepts incoming CHECK, ham registration function HRF, spam
registration function SRF, ham unregistration function HUF, spam
unregistration function SUF, and an indication whether the
backend is STATISTICAL.

(fn BACKEND &rest PROPERTIES)
(defalias 'spam-install-backend-super #[385 "\235\203\n\202B\211\211\205:\211A\262\242\211A\262\242\301!\2030\302#\266\202\303\304\305#\266\202\207" [spam-backends spam-backend-property-valid-p put gnus-error 5 "spam-install-backend-super got an invalid property %s"] 8 (#$ . 27164)])
#@205 Return a list of all the backend symbols, constrained by TYPE.
When TYPE is `non-mover', only non-mover backends are returned.
When TYPE is `mover', only mover backends are returned.

(fn &optional TYPE)
(defalias 'spam-backend-list #[256 "\301\211\2030\211@\203$\302=\203\303!\204$\304=\203)\303!\204)\211B\262A\266\202\202\210\207" [spam-backends nil mover spam-backend-mover-p non-mover] 6 (#$ . 27751)])
#@604 Get the check function for BACKEND.
Each individual check may return nil, t, or a mailgroup name.
The value nil means that the check does not yield a decision, and
so, that further checks are needed.  The value t means that the
message is definitely not spam, and that further spam checks
should be inhibited.  Otherwise, a mailgroup name or the symbol
'spam (depending on `spam-split-symbolic-return') is returned where
the mail should go, and further checks are also inhibited.  The
usual mailgroup name is the value of `spam-split-group', meaning
that the message is definitely a spam.

(fn BACKEND)
(defalias 'spam-backend-check #[257 "\211\300N\207" [check] 3 (#$ . 28184)])
#@33 Is BACKEND valid?

(fn BACKEND)
(defalias 'spam-backend-valid-p #[257 "\211\300 \235\207" [spam-backend-list] 3 (#$ . 28870)])
#@49 Return information about BACKEND.

(fn BACKEND)
(defalias 'spam-backend-info #[257 "\300!\203)\301\302\303\"\262\304 \211\203'\211@\302\305N$\262A\266\202\202\210\207\306\307\310#\207" [spam-backend-valid-p nil format "Backend %s has the following properties:\n" spam-backend-properties "%s%s=%s\n" gnus-error 5 "spam-backend-info was asked about an invalid backend %s"] 10 (#$ . 29003)])
#@168 Get the BACKEND function for CLASSIFICATION and TYPE.
TYPE is `registration' or `unregistration'.
CLASSIFICATION is `ham' or `spam'.

(fn BACKEND CLASSIFICATION TYPE)
(defalias 'spam-backend-function #[771 "\300!\203\301!\203\302\303\304#!\211!\207\305\306\307\310&\207" [spam-classification-valid-p spam-backend-function-type-valid-p intern format "spam-backend-%s-%s-function" gnus-error 5 "%s was passed invalid backend %s, classification %s, or type %s" "spam-backend-function"] 10 (#$ . 29414)])
#@109 Property name of article list with CLASSIFICATION and UNREGISTER.

(fn CLASSIFICATION &optional UNREGISTER)
(defalias 'spam-backend-article-list-property #[513 "\211\203\300\202	\301\302\303#\207" ["unregister" "register" format "%s-%s"] 7 (#$ . 29938)])
#@228 Get the articles to be processed for BACKEND and CLASSIFICATION.
With UNREGISTER, get articles to be unregistered.
This is a temporary storage function - nothing here persists.

(fn BACKEND CLASSIFICATION &optional UNREGISTER)
(defalias 'spam-backend-get-article-todo-list #[770 "\300\301\"!N\207" [intern spam-backend-article-list-property] 8 (#$ . 30205)])
#@241 Set the LIST of articles to be processed for BACKEND and CLASSIFICATION.
With UNREGISTER, set articles to be unregistered.
This is a temporary storage function - nothing here persists.

(fn BACKEND CLASSIFICATION LIST &optional UNREGISTER)
(defalias 'spam-backend-put-article-todo-list #[1027 "\300\301\302\"!#\207" [put intern spam-backend-article-list-property] 10 (#$ . 30574)])
#@62 Get the ham registration function for BACKEND.

(fn BACKEND)
(defalias 'spam-backend-ham-registration-function #[257 "\211\300N\207" [hrf] 3 (#$ . 30967)])
#@63 Get the spam registration function for BACKEND.

(fn BACKEND)
(defalias 'spam-backend-spam-registration-function #[257 "\211\300N\207" [srf] 3 (#$ . 31129)])
#@64 Get the ham unregistration function for BACKEND.

(fn BACKEND)
(defalias 'spam-backend-ham-unregistration-function #[257 "\211\300N\207" [huf] 3 (#$ . 31293)])
#@65 Get the spam unregistration function for BACKEND.

(fn BACKEND)
(defalias 'spam-backend-spam-unregistration-function #[257 "\211\300N\207" [suf] 3 (#$ . 31459)])
#@39 Is BACKEND statistical?

(fn BACKEND)
(defalias 'spam-backend-statistical-p #[257 "\211\300N\207" [statistical] 3 (#$ . 31627)])
#@35 Is BACKEND a mover?

(fn BACKEND)
(defalias 'spam-backend-mover-p #[257 "\211\300N\207" [mover] 3 (#$ . 31762)])
#@107 Add ALIAS to an existing BACKEND.
The previous backend settings for ALIAS are erased.

(fn BACKEND ALIAS)
(defalias 'spam-install-backend-alias #[514 "\300!\210\301 \211\205\211@\302N#\210A\266\202\202\207" [spam-install-backend-super spam-backend-properties put] 9 (#$ . 31882)])
#@69 Install a BACKEND than can only CHECK for spam.

(fn BACKEND CHECK)
(defalias 'spam-install-checkonly-backend #[514 "\300\301#\207" [spam-install-backend-super check] 6 (#$ . 32180)])
#@288 Install a BACKEND than can move articles at summary exit.
Accepts ham registration function HRF, spam registration function
SRF, ham unregistration function HUF, spam unregistration
function SUF.  The backend has no incoming check and can't be
statistical.

(fn BACKEND HRF SRF HUF SUF)
(defalias 'spam-install-mover-backend #[1285 "\300\301\302\303\304	\305\306&\207" [spam-install-backend-super hrf srf huf suf mover t] 17 (#$ . 32373)])
#@318 Install a BACKEND than has no check.
Accepts ham registration function HRF, spam registration function
SRF, ham unregistration function HUF, spam unregistration
function SUF.  The backend has no incoming check and can't be
statistical (it could be, but in practice that doesn't happen).

(fn BACKEND HRF SRF HUF SUF)
(defalias 'spam-install-nocheck-backend #[1285 "\300\301\302\303\304	&	\207" [spam-install-backend-super hrf srf huf suf] 15 (#$ . 32829)])
#@295 Install a BACKEND.
Accepts incoming CHECK, ham registration function HRF, spam
registration function SRF, ham unregistration function HUF, spam
unregistration function SUF.  The backend won't be
statistical (use `spam-install-statistical-backend' for that).

(fn BACKEND CHECK HRF SRF HUF SUF)
(defalias 'spam-install-backend #[1542 "\300\301\302\303	\304\n\305&\207" [spam-install-backend-super check hrf srf huf suf] 18 (#$ . 33301)])
#@302 Install a BACKEND.
Accepts incoming CHECK, ham registration function HRF, spam
registration function SRF, ham unregistration function HUF, spam
unregistration function SUF.  The backend will be
statistical (use `spam-install-backend' for non-statistical
backends).

(fn BACKEND CHECK HRF SRF HUF SUF)
(defalias 'spam-install-statistical-backend #[1542 "\300\301\302\303\304\n\305\306\f\307
&
\207" [spam-install-backend-super check statistical t hrf srf huf suf] 20 (#$ . 33756)])
#@81 Install a statistical BACKEND than can only CHECK for spam.

(fn BACKEND CHECK)
(defalias 'spam-install-statistical-checkonly-backend #[514 "\300\301\302\303%\207" [spam-install-backend-super check statistical t] 8 (#$ . 34252)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\210\300\315\316\"\210\317\320\321\"\210\322\323\324\325\326\211%\210\327\330\331\332\326\211%\210\327\333\334\335\211\334%\210\327\336\337\340\326\211%\210\341\342\343\344\326\345\326&\210\346\342\347\"\210\341\350\351\326\352\326\353&\210\341\354\355\356\326\357\326&\210\360\361\362\363\364\365\366&\210\360\367\370\371\372\373\374&\210\360\375\376\377\201@\201A\201B&\210\360\201C\201D\201E\201F\201G\201H&\210\360\201I\201J\201K\201L\201M\201N&\210\360\201O\201P\201Q\201R\201S\201T&\210\360\201U\201V\201W\201X\201Y\201Z&\207" [spam-install-checkonly-backend spam-use-blackholes spam-check-blackholes spam-use-hashcash spam-check-hashcash spam-use-spamassassin-headers spam-check-spamassassin-headers spam-use-bogofilter-headers spam-check-bogofilter-headers spam-use-bsfilter-headers spam-check-bsfilter-headers spam-use-gmane-xref spam-check-gmane-xref spam-use-regex-headers spam-check-regex-headers spam-install-statistical-checkonly-backend spam-use-regex-body spam-check-regex-body spam-install-mover-backend spam-use-move spam-move-ham-routine spam-move-spam-routine nil spam-install-nocheck-backend spam-use-copy spam-copy-ham-routine spam-copy-spam-routine spam-use-gmane spam-report-gmane-unregister-routine spam-report-gmane-register-routine spam-use-resend spam-report-resend-register-ham-routine spam-report-resend-register-routine spam-install-backend spam-use-BBDB spam-check-BBDB spam-BBDB-register-routine spam-BBDB-unregister-routine spam-install-backend-alias spam-use-BBDB-exclusive spam-use-blacklist spam-check-blacklist spam-blacklist-register-routine spam-blacklist-unregister-routine spam-use-whitelist spam-check-whitelist spam-whitelist-register-routine spam-whitelist-unregister-routine spam-install-statistical-backend spam-use-ifile spam-check-ifile spam-ifile-register-ham-routine spam-ifile-register-spam-routine spam-ifile-unregister-ham-routine spam-ifile-unregister-spam-routine spam-use-spamoracle spam-check-spamoracle spam-spamoracle-learn-ham spam-spamoracle-learn-spam spam-spamoracle-unlearn-ham spam-spamoracle-unlearn-spam spam-use-stat spam-check-stat spam-stat-register-ham-routine spam-stat-register-spam-routine spam-stat-unregister-ham-routine spam-stat-unregister-spam-routine spam-use-spamassassin spam-check-spamassassin spam-spamassassin-register-ham-routine spam-spamassassin-register-spam-routine spam-spamassassin-unregister-ham-routine spam-spamassassin-unregister-spam-routine spam-use-bogofilter spam-check-bogofilter spam-bogofilter-register-ham-routine spam-bogofilter-register-spam-routine spam-bogofilter-unregister-ham-routine spam-bogofilter-unregister-spam-routine spam-use-bsfilter spam-check-bsfilter spam-bsfilter-register-ham-routine spam-bsfilter-register-spam-routine spam-bsfilter-unregister-ham-routine spam-bsfilter-unregister-spam-routine spam-use-crm114 spam-check-crm114 spam-crm114-register-ham-routine spam-crm114-register-spam-routine spam-crm114-unregister-ham-routine spam-crm114-unregister-spam-routine] 7)
#@56 Return the extra headers spam.el thinks are necessary.
(defalias 'spam-necessary-extra-headers #[0 "\305\204
	\204
\n\203\306C\262\204\n\203\307B\262\f\204&\n\203+\310B\262\207" [spam-use-spamassassin spam-use-spamassassin-headers spam-use-regex-headers spam-use-bogofilter spam-use-crm114 nil X-Spam-Status X-Bogosity X-CRM114-Status] 3 (#$ . 37639)])
#@16 

(fn HEADERS)
(defalias 'spam-user-format-function-S #[257 "\211\205\301\302\303\"\"\207" [spam-summary-score-preferred-header format "%3.2f" spam-summary-score] 6 (#$ . 38015)])
#@37 Sort articles by score.

(fn H1 H2)
(defalias 'spam-article-sort-by-spam-status #[514 "\300\30121\302 \211\205.\211@\303\"\303\"U\204%W\262\304\301\300\"\210\266A\266\202\202\2620\210\207" [nil --cl-block-nil-- spam-necessary-extra-headers spam-summary-score throw] 10 (#$ . 38205)])
#@83 Regexp matching SpamAssassin score header.
The first group must match the number.
(defvar spam-spamassassin-score-regexp ".*\\b\\(?:score\\|hits\\)=\\(-?[0-9.]+\\)" (#$ . 38512))
#@110 Transform an extra HEADER to a number, using list of HEADERS.
Note this has to be fast.

(fn HEADER HEADERS)
(defalias 'spam-extra-header-to-number #[514 "\301\"\211\2059\302=\203\303\304\305#!\207\306\307\"\203%\303\310\311\"![\207\312=\2038\303\304\313\314\304\315\314##!\207\316\207" [spam-spamassassin-score-regexp gnus-extra-header X-Spam-Status string-to-number replace-regexp-in-string "\\1" string-match "( pR: \\([0-9.-]+\\)" match-string 1 X-Bogosity ",.*" "" ".*spamicity=" nil] 11 (#$ . 38698)])
#@188 Score an article for the summary buffer, as fast as possible.
With SPECIFIC-HEADER, returns only that header's score.
Will not return a nil score.

(fn HEADERS &optional SPECIFIC-HEADER)
(defalias 'spam-summary-score #[513 "\300\30120\203C\202\302 \211\205-\211@\303\"\262\203&\304\301\300\"\210A\266\202\202\2620\210\211\2066\305\207" [nil --cl-block-nil-- spam-necessary-extra-headers spam-extra-header-to-number throw 0] 8 (#$ . 39228)])
#@64 Invoke whatever scoring method we can.

(fn &optional RECHECK)
(defalias 'spam-generic-score #[256 "\204	\203\f\305!\207\n\204\203\306!\207\f\203\307 \207\310!\207" [spam-use-spamassassin spam-use-spamassassin-headers spam-use-bsfilter spam-use-bsfilter-headers spam-use-crm114 spam-spamassassin-score spam-bsfilter-score spam-crm114-score spam-bogofilter-score] 3 (#$ . 39694) "P"])
#@68 Unique value identifying changes to `nnimap--split-download-body'.
(defconst spam--widened (list nil) (#$ . 40098))
#@41 Set up IMAP widening if it's necessary.
(defalias 'spam-setup-widening #[0 "\302\300!\205?\205\303 \205	\211\207" [nnimap--split-download-body spam--widened boundp spam-widening-needed-p] 2 (#$ . 40220)])
#@26 Tear down IMAP widening.
(defalias 'spam-teardown-widening #[0 "\302\300!\205	=\205\303\211\207" [nnimap--split-download-body spam--widened boundp nil] 2 (#$ . 40439)])
#@32 

(fn &optional FORCE-SYMBOLS)
(defalias 'spam-widening-needed-p #[256 "\300\301 \211\203$\211@\302!\203\211J\204\211>\203\211\262A\266\202\202\210\207" [nil spam-backend-list spam-backend-statistical-p] 6 (#$ . 40620)])
#@235 Checks if GROUP has a BACKEND with CLASSIFICATION registered.
In the case of mover backends, checks the setting of
`spam-summary-exit-behavior' in addition to the set values for the group.

(fn GROUP BACKEND &optional CLASSIFICATION)
(defalias 'spam-group-processor-p #[770 ";\205l9\205l\301!@\302\211\2038\211@\2041\211<\2031@=\2031A@=\2031\303\262A\266\202\202\210\211\204j\304!\203j\305\267\202c\303\202h\302\202h\306=\206h\307=\205h\310!\202h\311\312\313#\262\262\207" [spam-summary-exit-behavior gnus-parameter-spam-process nil t spam-backend-mover-p #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (move-all 73 move-none 77 default 81)) spam ham spam-group-spam-contents-p gnus-error 5 "Unknown spam-summary-exit-behavior: %s"] 9 (#$ . 40861)])
(defalias 'spam-mark-junk-as-spam-routine #[0 "\306!\205?\307\310\311	\203\312\202\313#\210	\203\n\202\f\2039\211\211\2054\211@\314
\"\210A\266\202\202\"\262\202=\307\315\316\"\262\207" [gnus-newsgroup-name spam-mark-only-unseen-as-spam gnus-newsgroup-unseen gnus-newsgroup-unreads spam-mark-new-messages-in-spam-group-as-spam gnus-spam-mark spam-group-spam-contents-p gnus-message 6 "Marking %s articles as spam" "unseen" "unread" gnus-summary-mark-article 9 "Did not mark new messages as spam."] 6])
(defalias 'spam-summary-prepare #[0 "\302\303\302\"B\304\303\304\"BD\305 \207" [gnus-newsgroup-articles spam-old-articles ham spam-list-articles spam spam-mark-junk-as-spam-routine] 5])
(defalias 'spam-summary-prepare-exit #[0 "\204\310\305\306\307\"\210\310 \211\203k\211@\211	\236\243\311\n\"\312\"\313 \211\203b\211@\314\211\203H\211@\315!\316\317\f$\203@B\262\210A\266\202\202'\210\211\203ZJ\203Z\320\321$\210\210A\266\202\202\266A\266\202\202\210\322\211\203\255\211@\310 \211\203\245\211@\313!\211\203\235\211@\323#\203\226\320\311\n\"#\210A\266\202\202~\210A\266\202\202u\210A\266\202\202m\210\324 \210\311\n\325\"\211\203\307\211@\326\f\"\210A\266\202\202\265\210\314\211\207" [gnus-group-is-exiting-without-update-p spam-old-articles gnus-newsgroup-articles gnus-newsgroup-name gnus-expirable-mark gnus-message 6 "Exiting summary buffer and applying spam rules" spam-classifications spam-list-articles spam-set-difference spam-backend-list nil spam-fetch-field-message-id-fast spam-log-unregistration-needed-p process spam-backend-put-article-todo-list t (non-mover mover) spam-group-processor-p spam-resolve-registrations-routine spam gnus-summary-mark-article] 16])
#@44 

(fn COPY GROUPS ARTICLES CLASSIFICATION)
(defalias 'spam-copy-or-move-routine #[1028 "\242\203\242<\203\211A\262\242\262<\204C\262\306 \210\307\3101N\211;\2031\311!@\2022\211\312!\204<\313!\210\314\315\316\317#!!\2620\266\202\202Q\266\320\311!\320\211\211\321>\203d\322\262\323\262\211\203\260\211@\324=\203\210\325!\203\210\325!\203\210\326\327\330$\204\251\331=\203\244\332!\203\244\332!\203\244\326\327\333$\204\251\211B\262A\266\202\202f\210\211\237\262\211\203_\211@\203X\211;\203X\211\203W\211@	\331=\203\345	\203\345\326\334\335#\210\336\n\"\210	\324=\203\374\f\204\374\326\334\337#\210\336\"\210\340!\210\203#\f\206	\331=\205
\326\334\341$\210\342\320	\"\210)\202P\2030G\343V\203C\326\334\344$\210\345\320\"\210\322\262\202P\326\334\346$\210\347\320\"\210A\266\202\202\311\210A\266\202\202\267\210\204\224\203\224\203\224\211\203\206\211@\340!\210\326\334\350#\210A\266\202\202o\210\203\224\320+\351\320!\210)\352 \210G\207" [gnus-newsgroup-name spam-mark-ham-unread-before-move-from-spam-group gnus-unread-mark gnus-expirable-mark spam-split-disabled spam-disable-spam-split-during-ham-respool gnus-summary-kill-process-mark request-move-article (error) gnus-find-method-for-group featurep require fboundp intern format "%s-%s" nil respool t ("fake") spam spam-group-spam-contents-p gnus-message 3 "Sorry, can't move spam from spam group %s to spam group %s" ham spam-group-ham-contents-p "Sorry, can't move ham from ham group %s to ham group %s" 9 "Marking ham article %d unread before move" gnus-summary-mark-article "Marking spam article %d expirable before move" gnus-summary-set-process-mark "Respooling article %d with method %s" gnus-summary-respool-article 1 "Copying article %d to group %s" gnus-summary-copy-article "Moving article %d to group %s" gnus-summary-move-article "Deleting article %d" gnus-summary-delete-article gnus-summary-yank-process-mark gnus-novice-user] 18 (#$ . 43449)])
#@17 

(fn ARTICLES)
(defalias 'spam-copy-spam-routine #[257 "\301\302\303!\304$\207" [gnus-newsgroup-name spam-copy-or-move-routine t gnus-parameter-spam-process-destination spam] 6 (#$ . 45505)])
#@17 

(fn ARTICLES)
(defalias 'spam-move-spam-routine #[257 "\301\302\303!\304$\207" [gnus-newsgroup-name spam-copy-or-move-routine nil gnus-parameter-spam-process-destination spam] 6 (#$ . 45706)])
#@17 

(fn ARTICLES)
(defalias 'spam-copy-ham-routine #[257 "\301\302\303!\304$\207" [gnus-newsgroup-name spam-copy-or-move-routine t gnus-parameter-ham-process-destination ham] 6 (#$ . 45909)])
#@17 

(fn ARTICLES)
(defalias 'spam-move-ham-routine #[257 "\301\302\303!\304$\207" [gnus-newsgroup-name spam-copy-or-move-routine nil gnus-parameter-ham-process-destination ham] 6 (#$ . 46107)])
#@16 

(fn ARTICLE)
(defalias 'spam-get-article-as-string #[257 "\211\247\205\301\302\303\"r\211q\210\304\305\"\216\306\"\210\307 *\262\207" [gnus-newsgroup-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] gnus-request-article-this-buffer buffer-string] 5 (#$ . 46307)])
#@270 Fetch a FIELD for ARTICLE with the internal `gnus-data-find' function.
When PREPARED-DATA-HEADER is given, don't look in the Gnus data.
When FIELD is `number', ARTICLE can be any number (since we want
to find it out).

(fn ARTICLE FIELD &optional PREPARED-DATA-HEADER)
(defalias 'spam-fetch-field-fast #[770 "\247\205Z\211\206\f\300!\301!\204\302\303\304#\202X\305\267\202Q\211\306H\202X\211\307H\202X\211\310H\202X\211\311H\202X\211\312H\202X\211\313H\202X\211\314H\202X\211\315H\202X\316\312\317#\210\320\262\207" [spam-fetch-article-header arrayp gnus-message 6 "Article %d has a nil data header" #s(hash-table size 8 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (number 33 from 39 message-id 45 subject 51 references 57 date 63 xref 69 extra 75)) 0 2 4 1 5 3 8 9 gnus-error "spam-fetch-field-fast: unknown field %s requested" nil] 8 (#$ . 46654)])
#@47 

(fn ARTICLE &optional PREPARED-DATA-HEADER)
(defalias 'spam-fetch-field-from-fast #[513 "\300\301#\207" [spam-fetch-field-fast from] 6 (#$ . 47553)])
#@47 

(fn ARTICLE &optional PREPARED-DATA-HEADER)
(defalias 'spam-fetch-field-subject-fast #[513 "\300\301#\207" [spam-fetch-field-fast subject] 6 (#$ . 47713)])
#@47 

(fn ARTICLE &optional PREPARED-DATA-HEADER)
(defalias 'spam-fetch-field-message-id-fast #[513 "\300\301#\207" [spam-fetch-field-fast message-id] 6 (#$ . 47879)])
#@16 

(fn ARTICLE)
(defalias 'spam-generate-fake-headers #[257 "\300!\211\203E\301\302\303\304#\303\305#\303\306#\303\307#\303\310	#\303	\311\n#&\303\312#\205C\301\313\303\312#\"P\207\314\315\316#\207" [spam-fetch-article-header format "From: %s\nSubject: %s\nMessage-ID: %s\nDate: %s\nReferences: %s\nXref: %s\n" spam-fetch-field-fast from subject message-id date references xref extra "%s\n" gnus-message 5 "spam-generate-fake-headers: article %d didn't have a valid header"] 13 (#$ . 48051)])
#@16 

(fn ARTICLE)
(defalias 'spam-fetch-article-header #[257 "rq\210\302!\210\303	\"\3048\262)\207" [gnus-summary-buffer gnus-newsgroup-data gnus-read-header gnus-data-find-in 3] 4 (#$ . 48577)])
#@374 Split this message into the `spam' group if it is spam.
This function can be used as an entry in the variable `nnmail-split-fancy',
for example like this: (: spam-split).  It can take checks as
parameters.  A string as a parameter will set the
`spam-split-group' to that string.

See the Info node `(gnus)Fancy Mail Splitting' for more details.

(fn &rest SPECIFIC-CHECKS)
(defalias 'spam-split #[128 "\305	?\205\252\n\211\203$\211@\211;\203\211\262\306\"\262A\266\202\202	\210\211\307!\212\214\211\2039~\210\310\311\312#\210\313 \305\203\222\211\204\222\211A\262\242\314!\203U\315\202V\n>\204h\204\214J\203\214\310\316\317#\210\211 \262\203x\315=\203\214\204\214\320\321\322\323#\"\210)\266\202<\211\324=\203\242\f\205\243\266\325\202\245\211\266\202+\266\202\262\207" [spam-split-last-successful-check spam-split-disabled spam-split-group spam-split-symbolic-return spam-split-symbolic-return-positive nil delq spam-widening-needed-p gnus-message 8 "spam-split: widening the buffer (%s requires it)" spam-backend-list spam-backend-check spam 6 "spam-split: calling the %s function" gnus-error 5 format "spam-split got %s but %s is nil" t ham] 14 (#$ . 48782)])
#@58 Detect spam in the current newsgroup using `spam-split'.
(defalias 'spam-find-spam #[0 "\304!\305!\211@	\203\n\202\306C\30728\211\2055\211@\310!\203.\311\240\210\312\307\306\"\210A\266\202\202\2620\210\313>\203C\211\311\240\210\205\\\314=?\205\\\315\316\317%\"\207" [gnus-newsgroup-name spam-autodetect-recheck-messages gnus-newsgroup-articles gnus-newsgroup-unseen gnus-parameter-spam-autodetect gnus-parameter-spam-autodetect-methods nil --cl-block-nil-- spam-backend-statistical-p t throw default none mapcar make-closure #[257 "\306!\307!\310!\311\204\312\313\314#\210\203.\f\203.\315\316\"\262\211\203.\312\317\320#\210\321\211!\322!\206r\323\324\321\"r\211q\210\325\326\"\216\303\242\203U\327\300\"\210\202\\\203\\c\210\302\203f\302\330=\203k\331 \202o\332\331\301\"*\262\211\333=\203\334\"\"\210\205\255\211\205\255\f\205\255\335!\336U\203\237\337\311\300%\210?\205\255\340\316#\300%*\207" [V0 V1 V2 V3 spam-log-to-registry spam-split-symbolic-return spam-fetch-field-message-id-fast spam-fetch-field-subject-fast spam-fetch-field-from-fast nil gnus-message 6 "Article %d has no message ID!" spam-log-registration-type incoming 9 "spam-find-spam: message %s was already registered incoming" t spam-generate-fake-headers generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] gnus-request-article-this-buffer default spam-split apply spam gnus-summary-mark-article gnus-registry-group-count 0 gnus-registry-handle-action spam-log-processing-to-registry spam-split-symbolic-return-positive gnus-spam-mark spam-split-last-successful-check] 14 "\n\n(fn ARTICLE)"]] 13 (#$ . 50007) [nil (gnus-summary-mode)]])
#@72 Go through the backends and register or unregister articles as needed.
(defalias 'spam-resolve-registrations-routine #[0 "\300\211\205\273\211@\301 \211\203\263\211@\302!\211\203\253\211@\303\"\303\304#\305\306\307\211$\210\306\307\304$\210\310!\211\203Y\211@\211>\203RT\262\311\"\262\311\"\262A\266\202\2025\210\211\305U\204f\312\313\314#\210G\305U\204\204\315#\211\305V\203\203\312\316\317\n	%\210\210G\305U\204\242\320#\211\305V\203\241\312\316\321\n	%\210\210\266A\266\202\202\210A\266\202\202	\210A\266\202\202\207" [(non-mover mover) spam-classifications spam-backend-list spam-backend-get-article-todo-list t 0 spam-backend-put-article-todo-list nil copy-sequence delq gnus-message 9 "%d messages did not have to unregister and then register" spam-unregister-routine 6 "%d %s messages were unregistered by backend %s." spam-register-routine "%d %s messages were registered by backend %s."] 16 (#$ . 51770)])
#@49 

(fn CLASSIFICATION BACKEND SPECIFIC-ARTICLES)
(defalias 'spam-unregister-routine #[771 "\300\301$\207" [spam-register-routine t] 8 (#$ . 52751)])
#@70 

(fn CLASSIFICATION BACKEND SPECIFIC-ARTICLES &optional UNREGISTER)
(defalias 'spam-register-routine #[1027 "\302!\205\204\303!\205\204\304\305#\304\306#\203\211\202 \203(\307\202)\310\311\203\200\2068\312\n\"\262\211G\313V\203\200\314\315\316\203M\317\202N\320G\203Y\321\202Z\322&\210!\210\211\211\203\211@\323!\324

	%\210A\266\202\202f\210\211G\266\205\207" [gnus-newsgroup-articles gnus-newsgroup-name spam-classification-valid-p spam-backend-valid-p spam-backend-function registration unregistration spam-log-undo-registration spam-log-processing-to-registry nil spam-list-articles 0 gnus-message 5 "%s %d %s articles as %s using backend %s" "Unregistering" "Registering" "specific" "" spam-fetch-field-message-id-fast process] 17 (#$ . 52908)])
#@45 

(fn ID TYPE CLASSIFICATION BACKEND GROUP)
(defalias 'spam-log-processing-to-registry #[1285 "\205<;\2035\211;\2035\301!\2035\302!\2035\303!\2035\304\"E\211B\262\305#\207\306\307\310\311\312\"\"\207" [spam-log-to-registry spam-process-type-valid-p spam-classification-valid-p spam-backend-valid-p gnus-registry-get-id-key gnus-registry-set-id-key gnus-error 7 format "%s call with bad ID, type, classification, spam-backend, or group" "spam-log-processing-to-registry"] 11 (#$ . 53716)])
#@16 

(fn ID TYPE)
(defalias 'spam-log-registered-p #[514 "\205;\203\301!\203\302\"\207\303\304\305\306\307\"\"\210\310\207" [spam-log-to-registry spam-process-type-valid-p gnus-registry-get-id-key gnus-error 7 format "%s called with bad ID, type, classification, or spam-backend" "spam-log-registered-p" nil] 7 (#$ . 54234)])
#@16 

(fn ID TYPE)
(defalias 'spam-log-registration-type #[514 "\300\301\302\"\211\203-\211@\211@\303!\203%\203\"\211=\204\"T\262\211\262\210A\266\202\202\210\300W?\2056\211\207" [0 nil spam-log-registered-p spam-classification-valid-p] 9 (#$ . 54574)])
#@39 

(fn ID TYPE CLASSIFICATION BACKEND)
(defalias 'spam-log-unregistration-needed-p #[1028 "\205O;\203F\301!\203F\302!\203F\303!\203F\304\"\305\211\203D\211@\204=@=\203=A@=\203=\306\262A\266\202\202!\210\207\307\310\311\312\313\"\"\210\305\207" [spam-log-to-registry spam-process-type-valid-p spam-classification-valid-p spam-backend-valid-p gnus-registry-get-id-key nil t gnus-error 7 format "%s called with bad ID, type, classification, or spam-backend" "spam-log-unregistration-needed-p"] 10 (#$ . 54847)])
#@55 

(fn ID TYPE CLASSIFICATION BACKEND &optional GROUP)
(defalias 'spam-log-undo-registration #[1284 "\205^\301$\205^;\203U\302!\203U\303!\203U\304!\203U\305\"\306\211\203L\211@@=\203@A@=\204E\211B\262A\266\202\202*\210\307#\207\310\311\312\313\314\"\"\210\306\207" [spam-log-to-registry spam-log-unregistration-needed-p spam-process-type-valid-p spam-classification-valid-p spam-backend-valid-p gnus-registry-get-id-key nil gnus-registry-set-id-key gnus-error 7 format "%s call with bad ID, type, spam-backend, or group" "spam-log-undo-registration"] 11 (#$ . 55386)])
(defalias 'spam-check-gmane-xref #[0 "\302\303!\206	\302\304!\211\205\305\"\205	\207" [spam-gmane-xref-spam-group spam-split-group message-fetch-field "Xref" "Newsgroups" string-match] 4])
(defalias 'spam-check-regex-body #[0 "	\304\305!*\207" [spam-regex-body-ham spam-regex-body-spam spam-regex-headers-spam spam-regex-headers-ham spam-check-regex-headers t] 2])
#@23 

(fn &optional BODY)
(defalias 'spam-check-regex-headers #[256 "\211\203\303\202	\304\305\211\211\2031\211@\204*eb\210\306\305\307#\203*\310\311\"\210\307\262A\266\202\202\f\210	\211\203[\211@\204Teb\210\306\305\307#\203T\310\312\"\210\307\262\n\262A\266\202\2023\210\207" [spam-regex-headers-ham spam-regex-headers-spam spam-split-group "body" "header" nil re-search-forward t message "Ham regex %s search positive." "Spam regex %s search positive."] 10 (#$ . 56370)])
#@11 

(fn IP)
(defalias 'spam-reverse-ip-string #[257 "\211;\205\300\301\302\303\"\237\304#\207" [mapconcat identity split-string "\\." "."] 6 (#$ . 56873)])
#@51 Check the Received headers for blackholed relays.
(defalias 'spam-check-blackholes #[0 "\304\305!\306\211\203\251\307\310\311\"r\211q\210\312\313\"\216c\210eb\210\314\315\316\"\210\317\320\306\311#\203=\314\321\322\323\324!#\210\325\323\324!!B\262\202!*\210\211\203\250\211@\211\203\240\211@	\203Z\326	\325!\"\204\231\204\231\211\327Q\n\203\201\330!\211\203|\314\315\331#\210EB\262\266\202\231\332!\203\230\314\315\333\"\210\332\334\"EB\262\210A\266\202\202G\210A\266\202\202@\210\211\205\256\207" [spam-blackhole-servers spam-blackhole-good-server-regex spam-use-dig spam-split-group message-fetch-field "received" nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] gnus-message 6 "Checking headers for relay addresses" re-search-forward "\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" 9 "Blackhole search found host IP %s." match-string 1 spam-reverse-ip-string string-match "." query-dig "(DIG): positive blackhole check `%s'" dns-query "positive blackhole check" TXT] 13 (#$ . 57036)])
#@42 Check the headers for hashcash payments.
(defalias 'spam-check-hashcash #[0 "\3001\301 0\207\210\302\207" [(error) mail-check-payment nil] 1 (#$ . 58135)])
(byte-code "\300\301\302\303#\210\300\304\302\303#\207" [require bbdb nil noerror bbdb-com] 4)
#@25 

(fn &rest IMMATERIAL)
(defalias 'spam-clear-cache-BBDB #[128 "\300\301!\207" [spam-clear-cache spam-use-BBDB] 3 (#$ . 58394)])
(byte-code "\300\301!\203\302\303\304\"\210\300\207" [featurep bbdb-com add-hook bbdb-change-hook spam-clear-cache-BBDB] 3)
#@96 Enter an address into the BBDB; implies ham (non-spam) sender

(fn ADDRESSES &optional REMOVE)
(defalias 'spam-enter-ham-BBDB #[513 "\211\205f\211@\211;\203_\300!\211@\206\301\203\302\202\303A@\211\205(\304!\203]\305\306\307\n\2038\310\2029\311	\f\203D\312\202E\313%\210\211\203S!\266\202_\314\315\315\211\316&\210\266A\266\202\202\207" [gnus-extract-address-components "Ham Sender" bbdb-delete-record-internal ignore spam-exists-in-BBDB-p gnus-message 6 "%s address %s %s BBDB" "Deleting" "Adding" "from" "to" bbdb-create-internal nil "ham sender added by spam.el"] 16 (#$ . 58655)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-BBDB-register-routine #[513 "\300\211\203\211@\301!;\203\301!B\262A\266\202\202\210\302\"\207" [nil spam-fetch-field-from-fast spam-enter-ham-BBDB] 7 (#$ . 59281)])
#@17 

(fn ARTICLES)
(defalias 'spam-BBDB-unregister-routine #[257 "\300\301\"\207" [spam-BBDB-register-routine t] 4 (#$ . 59519)])
#@12 

(fn NET)
(defalias 'spam-exists-in-BBDB-p #[257 "\211;\205\211G\300U?\205\301 \210\302\227!\207" [0 bbdb-records bbdb-gethash] 3 (#$ . 59653)])
#@63 Mail from people in the BBDB is classified as ham or non-spam
(defalias 'spam-check-BBDB #[0 "\302\303!\211\205\304!A@\262\305!\203\306\207\205	\207" [spam-use-BBDB-exclusive spam-split-group message-fetch-field "from" gnus-extract-address-components spam-exists-in-BBDB-p t] 3 (#$ . 59810)])
#@84 Return the command-line parameter for ifile's database.
See `spam-ifile-database'.
(defalias 'spam-get-ifile-database-parameter #[0 "\205\301\302\"\207" [spam-ifile-database format "--db-file=%s"] 3 (#$ . 60119)])
#@65 Check the ifile backend for the classification of this message.
(defalias 'spam-check-ifile #[0 "\304 \305\211\306\307\310\"r\211q\210\311\312\"\216\304 \313 rq\210\314\315ed\305\305\316	\203/	\317B\2020\320&	\210)eb\210m\204A`\321 {\262G\322U\204]	\203T\262\266\202_\n\230\203]\262\266*\210\207" [spam-ifile-program spam-ifile-all-categories spam-ifile-spam-category spam-split-group buffer-name nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] spam-get-ifile-database-parameter apply call-process-region "-c" ("-q") ("-q") point-at-eol 0] 17 (#$ . 60343)])
#@173 Register an article, given as a string, with a category.
Uses `gnus-newsgroup-name' if category is nil (for ham registration).

(fn ARTICLES CATEGORY &optional UNREGISTER)
(defalias 'spam-ifile-register-with-ifile #[770 "\206\203
\302\202\303\304 \305\306\307\"r\211q\210\310\311\"\216\211\2038\211@\312!\211;\2030\211c\210\210A\266\202\202\210\313\314ed	\315\211\211\n\f\203Q\316B\202R\317&\n*\207" [gnus-newsgroup-name spam-ifile-program "-d" "-i" spam-get-ifile-database-parameter generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] spam-get-article-as-string apply call-process-region nil ("-h") ("-h")] 19 (#$ . 60999)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-ifile-register-spam-routine #[513 "\301#\207" [spam-ifile-spam-category spam-ifile-register-with-ifile] 6 (#$ . 61716)])
#@17 

(fn ARTICLES)
(defalias 'spam-ifile-unregister-spam-routine #[257 "\300\301\"\207" [spam-ifile-register-spam-routine t] 4 (#$ . 61899)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-ifile-register-ham-routine #[513 "\301#\207" [spam-ifile-ham-category spam-ifile-register-with-ifile] 6 (#$ . 62045)])
#@17 

(fn ARTICLES)
(defalias 'spam-ifile-unregister-ham-routine #[257 "\300\301\"\207" [spam-ifile-register-ham-routine t] 4 (#$ . 62226)])
(require 'spam-stat)
#@69 Check the spam-stat backend for the classification of this message.
(defalias 'spam-check-stat #[0 "\303 \304 *\207" [spam-split-group spam-stat-buffer spam-stat-split-fancy-spam-group buffer-name spam-stat-split-fancy] 2 (#$ . 62391)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-stat-register-spam-routine #[513 "\211\2051\211@\300!\301\302\303\"r\211q\210\304\305\"\216c\210\203$\306 \210\202'\307 \210*\266A\266\202\202\207" [spam-get-article-as-string generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] spam-stat-buffer-change-to-non-spam spam-stat-buffer-is-spam] 9 (#$ . 62637)])
#@17 

(fn ARTICLES)
(defalias 'spam-stat-unregister-spam-routine #[257 "\300\301\"\207" [spam-stat-register-spam-routine t] 4 (#$ . 63075)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-stat-register-ham-routine #[513 "\211\2051\211@\300!\301\302\303\"r\211q\210\304\305\"\216c\210\203$\306 \210\202'\307 \210*\266A\266\202\202\207" [spam-get-article-as-string generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] spam-stat-buffer-change-to-spam spam-stat-buffer-is-non-spam] 9 (#$ . 63219)])
#@17 

(fn ARTICLES)
(defalias 'spam-stat-unregister-ham-routine #[257 "\300\301\"\207" [spam-stat-register-ham-routine t] 4 (#$ . 63656)])
(defalias 'spam-maybe-spam-stat-load #[0 "\205\301 \207" [spam-use-stat spam-stat-load] 1])
(defalias 'spam-maybe-spam-stat-save #[0 "\205\301 \207" [spam-use-stat spam-stat-save] 1])
(defvar spam-whitelist-cache nil)
(defvar spam-blacklist-cache nil)
(defalias 'spam-kill-whole-line #[0 "\301 \210\302\303 )\207" [kill-whole-line beginning-of-line t kill-line] 1])
#@119 Enter ADDRESS (list or single) into the whitelist.
With a non-nil REMOVE, remove them.

(fn ADDRESS &optional REMOVE)
(defalias 'spam-enter-whitelist #[513 "\302#\210\303\304\305!\207" [spam-whitelist spam-whitelist-cache spam-enter-list nil spam-clear-cache spam-use-whitelist] 6 (#$ . 64172) "sAddress: "])
#@119 Enter ADDRESS (list or single) into the blacklist.
With a non-nil REMOVE, remove them.

(fn ADDRESS &optional REMOVE)
(defalias 'spam-enter-blacklist #[513 "\302#\210\303\304\305!\207" [spam-blacklist spam-blacklist-cache spam-enter-list nil spam-clear-cache spam-use-whitelist] 6 (#$ . 64492) "sAddress: "])
#@178 Enter ADDRESSES into the given FILE.
Either the whitelist or the blacklist files can be used.
With a non-nil REMOVE, remove the ADDRESSES.

(fn ADDRESSES FILE &optional REMOVE)
(defalias 'spam-enter-list #[770 ";\203\f\300C#\207\301\302!!\204\303\302!\304\"\210r\305!q\210\211\203^\211@\211;\203Web\210\306\307!\310\304#\203D\203W\311 \210\202W\204Wdb\210o\204R\312c\210\211\312\261\210A\266\202\202\"\210\313 )\207" [spam-enter-list file-exists-p file-name-directory make-directory t find-file-noselect re-search-forward regexp-quote nil spam-kill-whole-line "\n" save-buffer] 9 (#$ . 64812)])
#@13 

(fn TYPE)
(defalias 'spam-filelist-build-cache #[257 "\211\303=\203\n\202	\304\305\n\"?\205I\203D\211A\262\242\211G\306U\204<\307!\262\310\311\"\203<\312\313\314\211$\262\202*\211B\266\202\202\315\n#\207" [spam-blacklist-cache spam-whitelist-cache spam-caches spam-use-blacklist nil gethash 0 regexp-quote string-match "\\\\\\*" replace-match ".*" t puthash] 9 (#$ . 65437)])
#@18 

(fn TYPE FROM)
(defalias 'spam-filelist-check-cache #[514 "\211;\2059\301!\210\302\30325\304\"\211\2052\211@\211\203+\305\"\203+\306\262\307\303\302\"\210A\266\202\202\2620\210\211\262\207" [spam-caches spam-filelist-build-cache nil --cl-block-nil-- gethash string-match t throw] 8 (#$ . 65844)])
(defalias 'spam-check-whitelist #[0 "\204\304	!\305\306!\203\307\207\n\205\207" [spam-whitelist-cache spam-whitelist spam-use-whitelist-exclusive spam-split-group spam-parse-list spam-from-listed-p spam-use-whitelist t] 2])
(defalias 'spam-check-blacklist #[0 "\204\303	!\304\305!\205\n\207" [spam-blacklist-cache spam-blacklist spam-split-group spam-parse-list spam-from-listed-p spam-use-blacklist] 2])
#@13 

(fn FILE)
(defalias 'spam-parse-list #[257 "\300!\205E\301\211\302\303\304\"r\211q\210\305\306\"\216\307!\210m\204?`\310 {\262\311y\210G\312U\204\313!A@\211\2067B\262\210\202*\210\237\266\202\207" [file-readable-p nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents point-at-eol 1 0 gnus-extract-address-components] 7 (#$ . 66585)])
#@13 

(fn TYPE)
(defalias 'spam-from-listed-p #[257 "\300\301!\302\"\207" [message-fetch-field "from" spam-filelist-check-cache] 5 (#$ . 67028)])
#@48 

(fn ARTICLES BLACKLIST &optional UNREGISTER)
(defalias 'spam-filelist-register-routine #[770 "\203\301\202	\302\203\303\202\304\203\305\202\306\203#\306\202$\305\307\211\211	\211\203\215\211@\310!\311!\307;\203\204\211\203]\211@\204V\211;\203V\312\"\203V\313\262A\266\202\202<\210\f\204z\314\315
$\203zB\262B\262\211\204\204B\262\266A\266\202\202)\210\203\230\313\"\207\313\"\210\211\211\203\266\211@\316\311!\315\n\f$\210A\266\202\202\236\210\307\"\207" [spam-blacklist-ignored-regexes spam-use-whitelist spam-use-blacklist ham spam spam-enter-blacklist spam-enter-whitelist nil spam-fetch-field-from-fast spam-fetch-field-message-id-fast string-match t spam-log-unregistration-needed-p process spam-log-undo-registration] 20 (#$ . 67178)])
#@17 

(fn ARTICLES)
(defalias 'spam-blacklist-unregister-routine #[257 "\300\301\"\207" [spam-blacklist-register-routine t] 4 (#$ . 68001)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-blacklist-register-routine #[513 "\300\301#\207" [spam-filelist-register-routine t] 6 (#$ . 68145)])
#@17 

(fn ARTICLES)
(defalias 'spam-whitelist-unregister-routine #[257 "\300\301\"\207" [spam-whitelist-register-routine t] 4 (#$ . 68307)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-whitelist-register-routine #[513 "\300\301#\207" [spam-filelist-register-routine nil] 6 (#$ . 68451)])
#@17 

(fn ARTICLES)
(defalias 'spam-report-gmane-register-routine #[257 "\211\205\300\301\"\207" [apply spam-report-gmane-spam] 4 (#$ . 68615)])
#@17 

(fn ARTICLES)
(defalias 'spam-report-gmane-unregister-routine #[257 "\211\205\300\301\"\207" [apply spam-report-gmane-ham] 4 (#$ . 68765)])
#@17 

(fn ARTICLES)
(defalias 'spam-report-resend-register-ham-routine #[257 "\300\301\"\207" [spam-report-resend-register-routine t] 4 (#$ . 68916)])
#@31 

(fn ARTICLES &optional HAM)
(defalias 'spam-report-resend-register-routine #[513 "\302\303!\210\211\203\304!\202\305!\211\242\206	\306\")\207" [gnus-newsgroup-name spam-report-resend-to require spam-report gnus-parameter-ham-resend-to gnus-parameter-spam-resend-to spam-report-resend] 6 (#$ . 69070)])
#@24 

(fn &optional SCORE)
(defalias 'spam-check-bogofilter-headers #[256 "\303!\211\205!\203\304\305\"\203\306\307\"\207\310\207\304	\"\205!\n\207" [spam-bogofilter-header spam-bogofilter-bogosity-positive-spam-header spam-split-group message-fetch-field string-match "spamicity=\\([0-9.]+\\)" match-string 1 "0"] 5 (#$ . 69391)])
#@61 Get the Bogofilter spamicity score.

(fn &optional RECHECK)
(defalias 'spam-bogofilter-score #[256 "\301 \302\303\"\216\304\305!\210q\210\204\306\305!\206\307\305!\304 \210\310\311\"\210\211\206(\312\262)\207" [gnus-article-buffer current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] gnus-summary-show-article t spam-check-bogofilter-headers spam-check-bogofilter message "Spamicity score %s" "0"] 6 (#$ . 69736) ["P" (gnus-summary-mode)]])
#@46 Verify the Bogofilter version is sufficient.
(defalias 'spam-verify-bogofilter #[0 "\302=\203\303\304\305\306\307	\"!\"?\207" [spam-bogofilter-valid spam-bogofilter-program unknown string-match "^bogofilter version 0\\.\\([0-9]\\|1[01]\\)\\." shell-command-to-string format "%s -V"] 6 (#$ . 70235)])
#@92 Check the Bogofilter backend for the classification of this message.

(fn &optional SCORE)
(defalias 'spam-check-bogofilter #[256 "\302 \203B\303 \304\305\306\307\"r\211q\210\310\311\"\216\303 rq\210\312\313ed	\304\304\2033\314\f\315BB\2024\316&\210)\317!\262\210*\210\207\320\321\322\"\207" [spam-bogofilter-database-directory spam-bogofilter-program spam-verify-bogofilter buffer-name nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region "-d" ("-v") ("-v") spam-check-bogofilter-headers gnus-error 5 "`spam.el' doesn't support obsolete bogofilter versions"] 17 (#$ . 70546)])
#@103 Register an article, given as a string, as spam or non-spam.

(fn ARTICLES SPAM &optional UNREGISTER)
(defalias 'spam-bogofilter-register-with-bogofilter #[770 "\306 \203f\211\205e\211@\307!\203 \203	\202)\n\202)\203(\202)\f;\203\\\310\311\312\"r\211q\210\313\314\"\216c\210\315\316ed
\317\211\211	\203V\320\f\321BB\202W\322&	\210*\210\266A\266\202\202\207\323\324\325\"\207" [spam-bogofilter-database-directory spam-bogofilter-spam-strong-switch spam-bogofilter-ham-strong-switch spam-bogofilter-spam-switch spam-bogofilter-ham-switch spam-bogofilter-program spam-verify-bogofilter spam-get-article-as-string generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region nil "-d" ("-v") ("-v") gnus-error 5 "`spam.el' doesn't support obsolete bogofilter versions"] 21 (#$ . 71235)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-bogofilter-register-spam-routine #[513 "\300\301#\207" [spam-bogofilter-register-with-bogofilter t] 6 (#$ . 72131)])
#@17 

(fn ARTICLES)
(defalias 'spam-bogofilter-unregister-spam-routine #[257 "\300\301\"\207" [spam-bogofilter-register-spam-routine t] 4 (#$ . 72309)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-bogofilter-register-ham-routine #[513 "\300\301#\207" [spam-bogofilter-register-with-bogofilter nil] 6 (#$ . 72465)])
#@17 

(fn ARTICLES)
(defalias 'spam-bogofilter-unregister-ham-routine #[257 "\300\301\"\207" [spam-bogofilter-register-ham-routine t] 4 (#$ . 72644)])
#@62 Run spamoracle on an article to determine whether it's spam.
(defalias 'spam-check-spamoracle #[0 "\303 \304\305\306\"r\211q\210\307\310\"\216\303 rq\210\311\312ed\313\313	\203*\314	\315BB\202+\316&\211\317=\203Eq\210eb\210\320\321\313\306#\205I\n\202I\322\323\"\262)\262*\207" [spam-spamoracle-binary spam-spamoracle-database spam-split-group buffer-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region nil "-f" ("mark") ("mark") 0 re-search-forward "^X-Spam: yes;" error "Error running spamoracle: %s"] 14 (#$ . 72798)])
#@88 Run spamoracle in training mode.

(fn ARTICLES ARTICLE-IS-SPAM-P &optional UNREGISTER)
(defalias 'spam-spamoracle-learn #[770 "\302\303\304\"r\211q\210\305\306\"\216\307 \212eb\210\211\203&\211@\310!c\210A\266\202\202\210\2042\262\202:\211?\2058\266\202\203A\311\202B\312\313\314ed\315\315	\203X\316	\317F\202\\\317	D&\211\320=?\205i\321\322\"\266\202)\262*\207" [spam-spamoracle-binary spam-spamoracle-database generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] buffer-name spam-get-article-as-string "-spam" "-good" apply call-process-region nil "-f" "add" 0 error "Error running spamoracle: %s"] 18 (#$ . 73432)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-spamoracle-learn-ham #[513 "\300\301#\207" [spam-spamoracle-learn nil] 6 (#$ . 74145)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-spamoracle-unlearn-ham #[513 "\300\301\"\207" [spam-spamoracle-learn-ham t] 5 (#$ . 74294)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-spamoracle-learn-spam #[513 "\300\301#\207" [spam-spamoracle-learn t] 6 (#$ . 74447)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-spamoracle-unlearn-spam #[513 "\300\301\"\207" [spam-spamoracle-learn-spam t] 5 (#$ . 74595)])
#@94 Check the SpamAssassin headers for the classification of this message.

(fn &optional SCORE)
(defalias 'spam-check-spamassassin-headers #[256 "\211\203\305!\211\205\306	\"\203\307\310\"\207\311\207\305\n!\211\205(\306\"\205(\f\207" [spam-spamassassin-spam-status-header spam-spamassassin-score-regexp spam-spamassassin-spam-flag-header spam-spamassassin-positive-spam-flag-header spam-split-group message-fetch-field string-match match-string 1 "0"] 5 (#$ . 74750)])
#@94 Check the SpamAssassin backend for the classification of this message.

(fn &optional SCORE)
(defalias 'spam-check-spamassassin #[256 "\302 \303\304\305\"r\211q\210\306\307\"\216\302 rq\210\310\311ed\312\312	&\210)eb\210\313!\262*\207" [spam-assassin-program spam-spamassassin-arguments buffer-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region nil spam-check-spamassassin-headers] 13 (#$ . 75236)])
#@53 Get the SpamAssassin score.

(fn &optional RECHECK)
(defalias 'spam-spamassassin-score #[256 "\301 \302\303\"\216\304\305!\210q\210\204\306\305!\206\307\305!\304 \210\310\311\"\210\211\206(\312\262)\207" [gnus-article-buffer current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] gnus-summary-show-article t spam-check-spamassassin-headers spam-check-spamassassin message "SpamAssassin score %s" "0"] 6 (#$ . 75742) ["P" (gnus-summary-mode)]])
#@110 Register articles with spamassassin's sa-learn as spam or non-spam.

(fn ARTICLES SPAM &optional UNREGISTER)
(defalias 'spam-spamassassin-register-with-sa-learn #[770 "\205o\211\203\f\202\203	\202\n\305 \306\307\310\"r\211q\210\311\312\"\216\211\203P\211@\313rq\210\314!\262)\211;\203H\315\316 \317Qc\210\211c\210\317c\210\210A\266\202\202%\210\320\321ed\313\211\211\322\f\203dC\202h\323\fD&	*\262\266\202\207" [spam-sa-learn-unregister-switch spam-sa-learn-spam-switch spam-sa-learn-ham-switch spam-sa-learn-program spam-sa-learn-rebuild buffer-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] nil spam-get-article-as-string "From nobody " current-time-string "\n" apply call-process-region "--mbox" "--no-rebuild"] 17 (#$ . 76243)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-spamassassin-register-spam-routine #[513 "\300\301#\207" [spam-spamassassin-register-with-sa-learn t] 6 (#$ . 77079)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-spamassassin-register-ham-routine #[513 "\300\301#\207" [spam-spamassassin-register-with-sa-learn nil] 6 (#$ . 77259)])
#@17 

(fn ARTICLES)
(defalias 'spam-spamassassin-unregister-spam-routine #[257 "\300\301\211#\207" [spam-spamassassin-register-with-sa-learn t] 5 (#$ . 77440)])
#@17 

(fn ARTICLES)
(defalias 'spam-spamassassin-unregister-ham-routine #[257 "\300\301\302#\207" [spam-spamassassin-register-with-sa-learn nil t] 5 (#$ . 77604)])
#@24 

(fn &optional SCORE)
(defalias 'spam-check-bsfilter-headers #[256 "\211\203\f\303!\206\304\207\303	!\211\205\305\306\"\205\n\262\207" [spam-bsfilter-probability-header spam-bsfilter-header spam-split-group nnmail-fetch-field "0" string-match "YES"] 5 (#$ . 77771)])
#@59 Get the Bsfilter spamicity score.

(fn &optional RECHECK)
(defalias 'spam-bsfilter-score #[256 "\301 \302\303\"\216\304\305!\210q\210\204\306\305!\206\307\305!\304 \210\310\311\"\210\211\206(\312\262)\207" [gnus-article-buffer current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] gnus-summary-show-article t spam-check-bsfilter-headers spam-check-bsfilter message "Spamicity score %s" "0"] 6 (#$ . 78055) ["P" (gnus-summary-mode)]])
#@90 Check the Bsfilter backend for the classification of this message.

(fn &optional SCORE)
(defalias 'spam-check-bsfilter #[256 "\302 \303\304\305\306\"r\211q\210\307\310\"\216\302 rq\210\311\312ed	\303\303\313\314\315\205,\316D&\210)\317!\262\210*\210\207" [spam-bsfilter-database-directory spam-bsfilter-program buffer-name nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region "--pipe" "--insert-flag" "--insert-probability" "--homedir" spam-check-bsfilter-headers] 19 (#$ . 78546)])
#@103 Register an article, given as a string, as spam or non-spam.

(fn ARTICLES SPAM &optional UNREGISTER)
(defalias 'spam-bsfilter-register-with-bsfilter #[770 "\211\205X\211@\306!\203\203\202#	\202#\203\"\n\202#;\203O\307\310\311\"r\211q\210\312\313\"\216c\210\314\315ed\f\316\211\211	\317
\205J\320
D&\n\210*\210\266A\266\202\202\207" [spam-bsfilter-spam-strong-switch spam-bsfilter-ham-strong-switch spam-bsfilter-spam-switch spam-bsfilter-ham-switch spam-bsfilter-program spam-bsfilter-database-directory spam-get-article-as-string generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region nil "--update" "--homedir"] 20 (#$ . 79140)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-bsfilter-register-spam-routine #[513 "\300\301#\207" [spam-bsfilter-register-with-bsfilter t] 6 (#$ . 79888)])
#@17 

(fn ARTICLES)
(defalias 'spam-bsfilter-unregister-spam-routine #[257 "\300\301\"\207" [spam-bsfilter-register-spam-routine t] 4 (#$ . 80060)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-bsfilter-register-ham-routine #[513 "\300\301#\207" [spam-bsfilter-register-with-bsfilter nil] 6 (#$ . 80212)])
#@17 

(fn ARTICLES)
(defalias 'spam-bsfilter-unregister-ham-routine #[257 "\300\301\"\207" [spam-bsfilter-register-ham-routine t] 4 (#$ . 80385)])
#@24 

(fn &optional SCORE)
(defalias 'spam-check-crm114-headers #[256 "\303!\211\205!\203\304\305\"\203\306\307\"\207\310\207\304	\"\205!\n\207" [spam-crm114-header spam-crm114-positive-spam-header spam-split-group message-fetch-field string-match "( pR: \\([0-9.-]+\\)" match-string 1 "0"] 5 (#$ . 80535)])
#@31 Get the CRM114 Mailfilter pR.
(defalias 'spam-crm114-score #[0 "\301 \302\303\"\216\304\305!\210q\210\306\305!\206\307\305!\304 \210\310\311\"\210\211\206$\312\262)\207" [gnus-article-buffer current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] gnus-summary-show-article t spam-check-crm114-headers spam-check-crm114 message "pR: %s" "0"] 5 (#$ . 80856) [nil (gnus-summary-mode)]])
#@99 Check the CRM114 Mailfilter backend for the classification of this message.

(fn &optional SCORE)
(defalias 'spam-check-crm114 #[256 "\302 \303\304\305\306\"r\211q\210\307\310\"\216\302 rq\210\311\312ed	\303\303\205*\313\fPC&\210)\314!\262\210*\210\207" [spam-crm114-database-directory spam-crm114-program buffer-name nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region "--fileprefix=" spam-check-crm114-headers] 16 (#$ . 81292)])
#@103 Register an article, given as a string, as spam or non-spam.

(fn ARTICLES SPAM &optional UNREGISTER)
(defalias 'spam-crm114-register-with-crm114 #[770 "\211\205[\211@\306!\203\203	\202$\n\202$\203#\202$\f;\203R\307\310\311\"r\211q\210\312\313\"\216c\210\314\315ed
\316\211\211\n\205M	\317\fPD&\210*\210\266A\266\202\202\207" [spam-crm114-database-directory spam-crm114-spam-strong-switch spam-crm114-ham-strong-switch spam-crm114-spam-switch spam-crm114-ham-switch spam-crm114-program spam-get-article-as-string generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply call-process-region nil "--fileprefix="] 20 (#$ . 81833)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-crm114-register-spam-routine #[513 "\300\301#\207" [spam-crm114-register-with-crm114 t] 6 (#$ . 82558)])
#@17 

(fn ARTICLES)
(defalias 'spam-crm114-unregister-spam-routine #[257 "\300\301\"\207" [spam-crm114-register-spam-routine t] 4 (#$ . 82724)])
#@38 

(fn ARTICLES &optional UNREGISTER)
(defalias 'spam-crm114-register-ham-routine #[513 "\300\301#\207" [spam-crm114-register-with-crm114 nil] 6 (#$ . 82872)])
#@17 

(fn ARTICLES)
(defalias 'spam-crm114-unregister-ham-routine #[257 "\300\301\"\207" [spam-crm114-register-ham-routine t] 4 (#$ . 83039)])
#@316 Install the spam.el hooks and do other initialization.
When SYMBOLS is given, set those variables to t.  This is so you
can call `spam-initialize' before you set spam-use-* variables on
explicitly, and matters only if you need the extra headers
installed through `spam-necessary-extra-headers'.

(fn &rest SYMBOLS)
(defalias 'spam-initialize #[128 "\205[\211\211\203\211@\211\302L\210A\266\202\202\210\303 \211\2030\211@\304\305\"\210\304\306\"\210A\266\202\202\210\307	B\310\311\312\"\210\310\313\314\"\210\310\315\314\"\210\310\316\317\"\210\310\320\321\"\210\310\322\323\"\210\310\324\325\"\210\326\211\207" [spam-install-hooks gnus-summary-highlight t spam-necessary-extra-headers add-to-list nnmail-extra-headers gnus-extra-headers ((eq mark gnus-spam-mark) . spam) add-hook gnus-save-newsrc-hook spam-maybe-spam-stat-save gnus-get-top-new-news-hook spam-maybe-spam-stat-load gnus-startup-hook gnus-summary-prepare-exit-hook spam-summary-prepare-exit gnus-summary-prepare-hook spam-summary-prepare gnus-get-new-news-hook spam-setup-widening gnus-summary-prepared-hook spam-find-spam nil] 6 (#$ . 83186) nil])
#@30 Uninstall the spam.el hooks.
(defalias 'spam-unload-hook #[0 "\300 \210\301\302\303\"\210\301\304\305\"\210\301\306\305\"\210\301\307\310\"\210\301\311\312\"\210\301\313\314\"\210\301\311\315\"\207" [spam-teardown-widening remove-hook gnus-save-newsrc-hook spam-maybe-spam-stat-save gnus-get-top-new-news-hook spam-maybe-spam-stat-load gnus-startup-hook gnus-summary-prepare-exit-hook spam-summary-prepare-exit gnus-summary-prepare-hook spam-summary-prepare gnus-get-new-news-hook spam-setup-widening spam-find-spam] 3 (#$ . 84321) nil])
(byte-code "\300\301\211\"\210\302\303!\207" [add-hook spam-unload-hook provide spam] 3)

Youez - 2016 - github.com/yon3zu
LinuXploit